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


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

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

    [[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 вшоке

 

Последние комментарии

  • Что нового в Shopkeeper 4.0.3:

    Исправлено некорректное определение языка по умолчанию В настройках в админке скрываются пароли. Добавлена возможность загружать картинки для категорий. shopkeeper.js - добавлена функция updateProductsPrice() для поддержки текстовых полей для цены. Twig-функции contentList() и includeContent() вынесены в отдельный класс. Добавлено событие "order.before_create". Сортировка всех полей типа контента перетаскиванием. Автоматическое сохранение сортировки полей при сохранении типа контента (не нужно нажимать на отдельную кнопку). В интерфейсе админа добавлено поле поиска для списка Composer-пакетов.

    Скачать можно на главной странице https://modx-shopkeeper.ru/

    Читать далее
  • Вот этот плагин:
    0_1550334109280_screenshot_022.png

    Вроде по умолчанию он выключен. Надо включить. Но плагин работает только на редактирование товаров, при удалении он делалать ничего не будет. Только что проверил кнопку, всё работает корректно, фильтры удаляются и добавляются, когда нужно. Но нужно очищать корзину после удаления товаров (возможно баг).

    Читать далее
  • J

    @Andchir Если нажимаю кнопочку "Обновить значения", то в фильтрах появляются как раз те самые удаленные значения фильтра.. Потом приходится Ручками выбирать эти удаленные значения.
    вот так выглядит Управление фильтрами когда удаляешь ручками: https://yadi.sk/i/_zw64CGkZ_sAYg
    А вот так выглядит когда просто нажимаешь "Обновить значения": https://yadi.sk/i/7WFbXC6xV5sQAw (красным выделено, то что приходится постоянно удалять

    Читать далее
  • J

    Участник @Jokerit написал в TagManager2 отображает в фильтре удаленные значения TV-полей:

    tmRefresh

    Так и не смог найти как включить

    Читать далее