Вывод опций в списке товаров.



  • Не получается правильно вывести опции товара в списке товаров. Использую

    [[param_edit_table?
                            &docId=`[[+id]]`
                            &tvName=`option`
                            &tpl=`ШАБЛОН-ОПЦИИ-В-СПИСКЕ`
                    ]]
    

    В списке товаров. Опции отображаются, но работают не правильно. Если выбрать опции и положить товар в корзину, то к цене прибваляется цена опции от первого товара в списке.((( Что я делаю не так подскажите кто сталкивался с таким??? Вот сайт на тест домене. http://42.denis64.ru/katalog/kolcza/



  • для начала попробуй шаблон называть ЛАТИНИЦЕЙ



  • @Agrich На функциональность это ни как не влияет.



  • Извиняюсь, но все же лучше латиницей, зашел на сайт --- потыкал и у меня не совсем верно селектится выбор, думаю проблема в том что там два label один в одном, кстати можно посмотреть код которым вы подключили опции, у меня почемуто цена не бежит в корзину (нолик показывает) скиньте код чанка товара пожалуста).



  • @Agrich

    <div class="product-options">
        [[+inner]]
    </div>
    <!--tpl_separator-->
    <label>
        <input id="option[[+id]][[+idx]]" type="radio" class="shk_param shk-class" value="[[+idx]]__[[+field2]]" name="option__[[+id]]" onclick="SHK.additOpt(this)" [[+idx:eq=`0`:then=`checked`]] />
        <label class="shk-label" for="option[[+id]][[+idx]]" [[+selected1]]>
                <div class="option-item-img"><img class="shk-image" src="[[+field1]]" width="40"/></div>
                <div class="param-item-title">[[+field3]] 
                <div class="param-price">
                
                [[!If? 
                    &operator=`EQ` 
                    &subject=`[[+field2]]`
                    &operand=`notempty`
                    &then=`<i>+</i><span class="param-price-cena">0</span>`
                    &else=`
                    <i>+</i><span class="param-price-cena">[[+field2]]</span>
                `]]
                
                
                </div>
                </div>
        </label>
    </label>
    

    Два лабела это я поставил из-за materialize . Выяснил что idx скорее всего не правильно работает... Он там в первом товаре везде рисует 0 , во втором 1, а должны все опции по номерам. быть...



  • А можно ище чанк товара посмотреть?



  • @Agrich

    <div class="tovar shk-item">
        <form class="shk-tovat-form" action="[[~[[*id]]? &scheme=`abs`]]" method="post">
            
            <input type="hidden" name="shk-id" value="[[*id]]" />
            <input type="hidden" name="shk-name" value="[[*pagetitle]]" />
            
        <div class="row">
            <div class="tovar-image col s12 m12 l6">
                    <div class="main-image">
                        <div class="main-image-item">
                           <a href="[[*image:phpthumbon=`w=800&h=800&zc=1&q=100`]]" class="fancyimage"><img src="[[*image:phpthumbon=`w=800&h=800&zc=1&q=100`]]" width="100%"  alt="[[+title]]"/></a>
                        </div>
                    </div>
                    <div class="dop-image">
                        <div class="dop-image-item">
                            <a href="[[*image:phpthumbon=`w=800&h=800&zc=1&q=100`]]"><img src="[[*image:phpthumbon=`w=225&h=225&zc=1&q=100`]]" width="100%" alt="[[+title]]"/></a>
                        </div>
                        [[!getPage? &parents=`[[*id]]` &element=`getImageList` &limit=`1000` &tvname=`gallery` &tpl=`ДОПОЛНИТЕЛЬНОЕ-ИЗОБРАЖЕНИЕ`]]</div>
                    
                    <div class="clearfix"></div>
                    
                    <script type="text/javascript">
                        $(document).ready(function(){
                        	$(".dop-image-item a").click(function(){
                        		$(".main-image img").attr({"src": $(this).attr("href"), "title": $("> img", this).attr("title")});
                        		$(".main-image a").attr({"href": $(this).attr("href"), "title": $("> img", this).attr("title")});
                        		return false;
                        	});
                        	$(".main-image>img").load(function(){$(".main-image>img:hidden").fadeIn("slow")});
                        });
                    </script>
                
            </div>
            <div class="tovar-text col s12 m12 l6">
               <div class="tovar-text-title"><h1>[[*longtitle]]</h1></div>
               <div class="tovar-text-kontent">
                 <div class="tovar-text-kontent-des">
                     [[*content]]
                 </div>
                 <div class="tovar-options">
                     [[!param_edit_table?
                            &docId=`[[*id]]`
                            &tvName=`option`
                            &tpl=`ШАБЛОН-ОПЦИИ-В-СПИСКЕ`
                    ]]
                 </div>
                 <div class="tovar-text-kontent-button row">
                     <span class="tovar-text-kontent-price price-tv col s12 m12 l4"><span>[[*price]]</span> <i class="fa fa-rub" style="font-size:20px; color:rgba(184,26,70,1.00)" aria-hidden="true"></i></span>
                     <span class="col s12 m12 l3">
                         <span class="button-count-t minus">-</span>
                         <input class="count-tovar" type="text" name="shk-count" value="1" />
                         <span class="button-count-t plus">+</span>
                         <script>
                             $(document).ready(function() {
                                $('.minus').click(function () {
                                    var $input = $(this).parent().find('input');
                                    var count = parseInt($input.val()) - 1;
                                    count = count < 1 ? 1 : count;
                                    $input.val(count);
                                    $input.change();
                                    return false;
                                });
                                $('.plus').click(function () {
                                    var $input = $(this).parent().find('input');
                                    $input.val(parseInt($input.val()) + 1);
                                    $input.change();
                                    return false;
                                });
                            });
                         </script>
                     </span>
                     <span class="col s12 m12 l5 buttom-cart-blok"><button type="submit" class="btn button-site"><i class="fa fa-cart-arrow-down" aria-hidden="true"></i> В КОРЗИНУ</button></span>
                 </div>
               </div>
            </div>
        </div>
        </form>
    </div>
    
    [[$ОКНО-СПАСИБО]]
    


  • <div class="shk-item one-product">
    		<div class="one-product-slider">
    		<img class="slider-l-arrow" src="assets/img/white_l_arrow.png" alt="">
    		<img class="slider-r-arrow" src="assets/img/white_r_arrow.png" alt="">
    			<div class="one-product-viewer">
    			    <img src="assets/img/images/[[*image]]" alt="">
    			    [[getImageList?
    			    &tvname=`gallery`
    			    &tpl = `galImg`
    			    &limit = `10`
    			    &docid = `[[*id]]`
    ]]
    			</div>
    			<div class="one-product-video">
    			    [[*video]]
    			</div>
    		</div>
    		<div class="one-product-info">
    			<h1 class="sub-red"><b>[[*longtitle]] [[*brand]]</b></h1>
    			<p class="big"><b>Рейтинг товара</b></p>
    			<div data-rat="[[*rating]]" class="rating">
    			    <span></span>
    			    <span></span>
    			    <span></span>
    			    <span></span>
    			    <span></span>
    			</div>
    			    	    <form action="[[~[[*id]]? &scheme=`abs`]]" method="post">
    	    <fieldset>
    [[param_edit_table?
    &docId=`[[*id]]`
    &tvName=`complect`
    &tpl=`complectTpl`
    ]]
    [[param_edit_table?
    &docId=`[[*id]]`
    &tvName=`color`
    &tpl=`colorTpl`
    ]]
    	    <input type="hidden" name="shk-id" value="[[*id]]" />
            <input type="hidden" name="shk-name" value="[[*pagetitle]]" />
            <input type="hidden" name="shk-count" value="1" />
            <div><span class="shk-price">[[!*price:num_format]]</span> <span class="shk-currency"> грн </span></div>
     		<button type="submit" class="sub-white shk-but">Купить</button>
     					 		</fieldset>
       </form>
    

    почему же у меня не работает?)))



  • @Agrich А что не работает?



  • Кстати а зачем использовать скрипт для изменения количества товара? в опциях шопкипера есть две опции, отдельно для корзины и отдельно для карточки товара добавить плюс и минус к каунтеру, врубаете ту которую хотите и появятся встроеные прямо в карточке (если вам неравится всплывающее окно)



  • @Agrich Ну мы щаз отклонились от темы... Всё остальное меня устраивает... Не устраивает только вывод опций в списке товаров...



  • @akradeus цена не попадает в корзину, там или ноль ( если править shk-id на id_complect) или же добавляется стандартная цена , при этом в самой карточке товара при выборе комплектаций отображается верно посчитаная цена.

    <p class="big"><b>1. Выберите товары</b></p>
    <div class="product-options goods-complects">
    [[+inner]]
    </div>
    <!--tpl_separator-->
    <label>
    <input type="checkbox" class="shk_param one-goods-checkbox" id="complect[[+id]][[+idx]]" value="[[+idx]]__[[+field3]]" name="complect__[[+id]]" onclick="SHK.additOpt(this)">
    <div class="one-goods-complect">
    <img src="assets/img/images/[[+field1]]" alt="">
    <p class="small">[[+field2]]</p>
    <p class="small">[[+field3]] грн</p>
    </div>
    </label>
    

    у меня idx отображается нормально



  • @Agrich а есть ссылка на сайт что бы глянуть?



  • @akradeus он у меня на локальном хосте(



  • @Agrich Всё сделал... ПРосто копирнул сниппет param_edit_table и везде где есть idx исправил на idxx... И в чанке это тоже поменял.. .Всё заработало...



  • @akradeus вшоке



Последние темы

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.