Новости

Не получается настроить Shopkeeper3 для корзины в хедере

  • Помогите пожалуйста все перепробовал, как в документации, вывожу в шапке

    [[!Shopkeeper3@cartRowTpl?
                  &propertySetName=`cartRowTpl` 
    			  &cartTpl=`cartRowTpl`
    			  &flyToCart=`nofly`
    			  &noJQuery=`1`
    			  &debug=`1`
    			]]
    

    Подключается мой чанк, но после добавления товара , чанк меняется из папки
    core/components/shopkeeper3/elements/chunks/ru/shopCart.tpl
    В настройках системы shk3.property_sets
    cart_catalog,cart_order_page,cartRowTpl,cartTpl
    Код чанка cartRowTpl

    <div class="shop-cart" data-shopcart="3">
    	<a href="[[~2138~]]" class="basket-link">
    	  <div class="icon icon-basket">
    		<span>Корзина: 0</span>
    	  </div>		
    	</a>
    
    </div>
    <!--tpl_separator-->
    <div class="shop-cart" data-shopcart="3">
    <a href="[[~2138~]]" class="basket-link">
      <div class="icon icon-basket">
    	<span>Корзина: [[+items_total]]</span>
      </div>
    
      </a>
    </div>
    
  • Вообще не понимаю как работают параметры корзины, почему аякс возвращает дефолтный шаблон

  • Вот что написано в документации

    Пример
    [[!Shopkeeper3@cart_catalog]]
    cart_catalog - Имя набора параметров. Рекомендуется все параметры указывать в наборе параметров, т.к. нужно синхронизировать эти параметры при аякс-запросе.
    

    https://modx-shopkeeper.ru/docs/shopkeeper-3/shopkeeper-3

  • @Andchir так тоже пробовал
    в шапке

    [[!Shopkeeper3@cart_order_page?
                  &propertySetName=`cart_order_page` 
    			  &cartTpl=`cartRowTpl`
    			  &flyToCart=`nofly`
    			  &noJQuery=`1`
    			]]
    

    У меня постоянно отображается чанк из файла
    core/components/shopkeeper3/elements/chunks/ru/shopCart.tpl

  • Какие бы я параметры не передавал , он все равно возвращает аяксом этот шаблон , синхронизировал data-shopcart="">
    core/components/shopkeeper3/elements/chunks/ru/shopCart.tpl

  • У вас отличается вызов от того что дан в документации. Нужно не "пробовать", а делать как написано. Покажите параметры набора "cart_order_page".

    синхронизировал data-shopcart="">

    Почему здесь нет цифры?

  • @Andchir цифра есть, вот вызов в шапке

    [[!Shopkeeper3@cart_order_page?
                  &propertySetName=`cart_order_page` 
    			  &cartTpl=`cartRowTpl`
    			  &flyToCart=`nofly`
    			  &noJQuery=`1`
    			]]
    

    Вот в корзине

    [[!Shopkeeper3@cart_catalog?
        &propertySetName=`cart_catalog` 
    	&cartTpl=`сartNew`
    	&flyToCart=`nofly`
        &noJQuery=`1` 
    ]]
    

    Вот чанк cartNew

    <div class="shop-cart" data-shopcart="1">
    	<div class="shop-cart-head"><b>Корзина</b></div>
    	<div class="empty">
    		<div class="shop-cart-empty">Пусто</div>
    	</div>
    </div>
    <!--tpl_separator-->
    <div class="shop-cart" data-shopcart="1">
    	<div class="shop-cart-head"><a name="shopCart"></a><b>Корзина</b></div>
    	<div class="full">
    		<form action="[[+this_page_url]]#shopCart" method="post">
    			<fieldset>
    				<div  style="text-align:right;">
    					<a href="[[+empty_url]]" id="shk_butEmptyCart">Очистить корзину</a>
    				</div>
    				<table width="100%">
    					<colgroup>
    						<col width="40%" />
    						<col width="25%" />
    						<col width="25%" />
    						<col width="10%" />
    					</colgroup>
    					<tbody>
    						[[+inner]]
    					</tbody>
    				</table>
    				<div  style="text-align:right;">
    					Доставка: [[+delivery_name]] ([[+delivery_price]] [[+currency]])
    				</div>
    				<div  style="text-align:right;">
    					Общая сумма: <b>[[+price_total]]</b> [[+currency]]
    				</div>
    				<noscript>
    					<div><input type="submit" name="shk_recount" value="Пересчитать" /></div>
    				</noscript>
    				<div class="cart-order">
    					<a href="[[+order_page_url]]" id="shk_butOrder">Оформить заказ</a>
    				</div>
    			</fieldset>
    		</form>
    	</div>
    </div>
    

    А вот чанк cartRowTpl

    <div class="shop-cart" data-shopcart="2">
    	<a href="[[~2138~]]" class="basket-link">
    	  <div class="icon icon-basket">
    		<span>Корзина: 0</span>
    	  </div>		
    	</a>
    
    </div>
    <!--tpl_separator-->
    <div class="shop-cart" data-shopcart="2">
    <a href="[[~2138~]]" class="basket-link">
      <div class="icon icon-basket">
    	<span>Корзина: [[+items_total]]</span>
      </div>
    
      </a>
    </div>
    
  • Покажите параметры наборов "cart_order_page" и "cart_catalog" (в админке).

  • @Andchir
    0_1553848278774_2846eff6-f24f-48b5-b081-6df71fe8ef80-image.png
    Эти ?

  • Эти ?

    Нет.

    [[!Shopkeeper3@cart_catalog]]
    

    Здесь "cart_catalog" - это название набора параметров. Шаблон корзины нужно указывать именно там, если вам нужен аякс.
    0_1553863968713_screenshot_100.png
    0_1553863976086_screenshot_101.png

 

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

  • M

    @Andchir
    Да, в TM2 в админке фильтр age включен. Все данные из TV подтянулись, все норм.

    Читать далее
  • В компоненте в админке фильтры есть?

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

    Ломаю голову над запуском Tagmanager2 на простом сайте с выводом обычных item-ов для последующей фильтрации. Делую все по инструкции. Запустил tmCatalog, все отображается:

    [[!tmCatalog? &cache=`1` &elementClass=`modSnippet` &element=`getProducts` &tpl=`filtr_tpl` &sortbyTV=`age` &sortdirTV=`ASC` &parents=`3` &limit=`0` &debug=`0` ]]

    Чанк вывода каждого itema имеет следующий вид:

    <div class="col-xl-4" style="padding-left: 5px; padding-right: 5px; float: left;"> <div class="post-02 post-02__style-02 js-post-effect"> <div class="post-02__media"> <a href="[[~[[+id]]]]"> [[getImageList? &tvname=`slider` &docid=`[[+id]]` &limit=`1` &tpl=`@CODE:<img src="[[+slide]]" alt="[[+alt]]" />` ]] </a></div> <div class="post-02__body"> <h2 class="post-02__title"><a href="[[~[[+id]]]]">[[!pdoField? &id=`[[+id]]` &field=`name`]]</a></h2> <div class="post-02__department">[[!pdoField? &id=`[[+id]]` &field=`seo_tag`]]</div> <div class="post-02__content"> <div class="post-02__description"> [[pdoField:ellipsis=`200`? &id=`[[+id]]` &field=`specification`]] <ul> <li><span class="primary-color">Age</span>[[!pdoField? &id=`[[+id]]` &field=`age`]]</li> <li><span class="primary-color">Dress Size</span>[[!pdoField? &id=`[[+id]]` &field=`dress_size`]]</li> <li><span class="primary-color">Height</span>[[!pdoField? &id=`[[+id]]` &field=`height`]] cm</li> <li><span class="primary-color">Weight</span>[[!pdoField? &id=`[[+id]]` &field=`weight`]] kg</li> </ul> </div> <a class="post-02__link" href="[[~[[+id]]]]">View detail</a> </div> </div> </div> </div>

    filter.js имеет следующий вид. Пока решил фильтровать только числовое значение age:

    config: { filters_cont: '#filters',//Селектор оберточного элемента блоков с фильтрами sortby: 'pagetitle',//Имя поля сортировки по умолчанию sortdir: 'asc',//Направление сортировки по умолчанию numeric: ['age'],//Имена доп. полей с числовыми значениями multitags: [''],//Имена доп. полей с множественными значениями guard_key: '#',//Разделитель для множественных значений products_cont: '#products',//Селектор контейнера с выводом товаров filter_slider: 'div.range-slider',//Селектор слайдеров (ползунок для числовых значений) filter_slider_cont: 'div.filter_slider',//Селектор контейнера со слайдером pages_cont1: '#pages',//Селектор контейнера с постраничной навигацией pages_cont2: '#pages2',//Селектор второго контейнера с постраничной навигацией. Если нет, оставить пустым. active_page_selector: '.current',//селектор номера текущей страницы внутри контейнера (pages_cont) filters_type: 'default',//Тип фильтрации. Возможные значения: // default (показ числа товаров по каждому фильтру и блокирование пустых вариантов), // only_block (только блокирование пустых париантов), // none (не показывать цифры и не блокировать) filter_delay: 700,//Задержка до отправления запроса на сервер (сбрасывается после каждой отметки фильтра) price_field: 'price',//Название поля или TV цены товара multi_currency: true,//Мультивалютность включить / выключить (true/false) base_url: '/', ajax_url: 'assets/components/tag_manager2/connector_fe.php', ajax_loader: 'assets/components/tag_manager2/img/ajax-loader2.gif' },

    Все скрипты подключи вручную, все отображается внизу страницы, проверял.
    Сам tmFilters не отображается хоть убей. Вывожу:

    <div id="filters"> [[tmFilters? &filterNumericTpl=`tm2_filterNumericTpl` &filterNumericOuterTpl=`tm2_filterOuterTpl` &jsScript=`0` &jsMap=`1` &filtersType=`filters` ]] <form action="[[~[[*id]]]]" method="get"> <input type="hidden" name="page_id" value="[[*id]]" disabled="disabled" /> [[+filters]] <button id="clear" class="btn btn-danger btn-sm" type="button" onclick="tmFilters.resetFilters(); return false;">Сбросить</button> </form> </div>

    При выводе на странице выводится только кнопка. Фильтров как и не существует. Я понимаю, если бы кривенько вывелись чанки с фильтром и он не фильтровал, здесь же сам фильтр никак не хочет выводиться в бэкенд. Кто с таким сталкивался? Куда копать?

    Читать далее
  • @Andchir Спасибо!!!
    Все перепробовал кроме [[+note]]
    В письме со статусом отправлен, чтобы трек-номер отправлять покупателю. Все работает. Еще раз спасибо.

    Читать далее