Новости

Shopkeeper 3 Дополнительные параметры

  • Приветствую!
    Всех с праздником.
    Возник вопрос по дополнительным параметрам.
    Как можно сделать вывод в карточке товаров вывод дополнительных параметров в таком виде
    <span class="color_radio" >Цвет:</span>
    <ul>
    <li>
    <input type="radio" id="p" name="l" />
    <label for="p"><span class="pink-i" ><i class="all-colors pink-c"></i></span></label>
    </li>
    <li>
    <input type="radio" id="p2" name="l" />
    <label for="p2"><span class="blue-i" ><i class="all-colors blue-c"></i></span></label>
    </li>
    <li>
    <input type="radio" id="p3" name="l" />
    <label for="p3"><span class="green-i" ><i class="all-colors green-c"></i></span></label>
    </li>
    <li>
    <input type="radio" id="p4" name="l" />
    <label for="p4"><span class="white-i"><i class="all-colors white-c"></i></span></label>
    </li>
    </ul>

    А так же сделать что бы эти параметры передавались в корзину.
    Раньше для вывода параметра был чанк в SHK3 этого чанка нет.
    Заранее благодарю за помощь.

  • @Metsof Через param-edit, а вывод делать через param-edit-table. В документации к Shopkeeper3 эти сведения есть.

  • C этим разобрался остался вопрос как к примеру чекбоксы кастомизировать? Чанка для этого никакого нет

  • @Metsof В образцах есть сниппета param_edit_table. Сниппет этот открывайте и там в комментариях есть образцы для разных случаев, в том числе и чанка. А так делайте вызов [[param_edit_table? &docId=[[*id]] &tvName=название вашей tv &tpl=имя вашего чанка]]

  • @anton83 СПАсибо оргомное а как в чанке значения указывать не подскажете?

  • @Metsof У меня для выбора оттенка (цвета) чанк вывода так сделан:

    <div class="btn-group d-inline-flex flex-wrap" data-toggle="buttons" role="group">
        [[+inner]]
    </div>
    <!--tpl_separator-->
    <label class="btn btn-secondary">
        <img src="[[!phpthumbon? input=`[[+field1]]` &options=`w=30&h=30&zc=1`]]" class="img-fluid mx-auto" alt="Оттенок [[+field2]]">
        <input type="radio" class="shk_param" value="[[+field2]]" name="tint__[[+id]]__add" id="tint[[*id]]" onclick="SHK.additOpt(this)" [[+idx:eq=`0`:then=`checked`]]><small>[[+field2]]</small>
    </label>
    

    Плейсхолдеры field1 и field2 это значения из таблицы tv param-edit. field1 - первая колонка, field2 - вторая колонка. Если у вас больше будет колонок, то соответственно значения колонок вызывать так field3 и fieldn соответственно.
    name="tint__[[+id]]__add" указывает какое поле будет в корзину передано, в письмо и в админку. У меня это текстовое название оттенка.

  • @anton83 Огромное спасибо за помощь. Все отлично и никаких трудностей нет.
    Осталось решить с фильтрацией так как в фильтре отображаются параметры в виде Синий==0

 

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

  • 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]]
    В письме со статусом отправлен, чтобы трек-номер отправлять покупателю. Все работает. Еще раз спасибо.

    Читать далее