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


Фильтрация товаров

  • Обнаружил ошибку, но не знаю как решить.
    В каталоге выбираем фильтрацию любого параметра, если результатов больше 1 страницы и появляется пагинация, то при переходе на вторую страницу фильтр обнуляется и видим все товары на 2 странице а не только то что выбрали.
    Подскажите пожалуйста, кто сталкивался или знает в чем проблема или куда копать.

  • Покажите как выводите товары и фильтры.

  • @Andchir
    Фильтрация:

    [[*id:is=`8`:then=``:else=`
                        <div id="filters">
                        <div class="pull-right">
                        <button class="btn btn-default btn-sm" data-toggle="tooltip" data-placement="bottom" onclick="tmFilters.resetFilters(); return false;">
                           Сбросить все <i class="fa fa-times" aria-hidden="true"></i>
                        </button>
                        </div>
                        [[tmFilters?
                        &filterOuterTpl=`tm2_filterOuterTpl`
                        &filterTpl=`tm2_filterTpl`
                        &filterNumericTpl=`tm2_filterNumericTpl`
                        &jsMap=`1`
                        &jsScript=`1`
                        &filtersType=`filters_shk`
                        &toPlaceholder=`filters`
                        ]]
                        <form action="[[~[[*id]]]]" method="get"  >
                            <input type="hidden" name="page_id" value="[[*id]]" disabled="disabled" />
                            [[+filters]]
                        </form>
                    </div>`]]
    

    Вывод товара:

    [[!tmCatalog]]
    

    Набор параметров TM:
    0_1473221395928_Безымянный.png

  • Не хватает постраничной навигации, как выводится (полный код).

  • @Andchir

    <div class="row" id="products">
    [[!tmCatalog]]
    <div class="clearfix"></div>
    </div>
    <div class="clearfix"></div>
     <ul class="pagination ">
     [[+page.nav]]
     </ul>
    

    page.nav расписан в наборах параметров TM в скриншоте постом выше.

  • И настройки filters.js.

  • @Andchir

    /* ########################################### */
        /**
         * config
         *
         * Настройки
         * 
         */
        config: {
            filters_cont: '#filters',//Селектор оберточного элемента блоков с фильтрами
            sortby: 'pagetitle',//Имя поля сортировки по умолчанию
            sortdir: 'asc',//Направление сортировки по умолчанию
            numeric: ['price', 'weight'],//Имена доп. полей с числовыми значениями
            multitags: ['tags','color','material'],//Имена доп. полей с множественными значениями
            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'
        },
        /* ########################################### */```
  • pages_cont1: '#pages',//Селектор контейнера с постраничной навигацией
    pages_cont2: '#pages2',//Селектор второго контейнера с постраничной навигацией. Если нет, оставить пустым.
    

    Не соответствует вашему HTML коду.

    Нужно сделать так:

     <ul class="pagination" id="pages">
     [[+page.nav]]
     </ul>
    
  • @Andchir Спасибо большое.
    Помогло.
    Появилась идея сделать раздел FAQ - чтобы проще было находить уже решенные вопросы по SHK.

 

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

  • Z

    Спасибо, действительно проще создать отдельно.

    Читать далее
  • Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]].

    Можно не использовать [[+addit_data]], а выводить параметры по-отдельности.

    Цитата из документации:

    [[+shk_любой доп.параметр]] - любой доп. параметр, выбранный при добавлении товара в корзину (из [[+addit_data]]), например [[+shk_param1]].
    Если параметры сделаны в виде чекбоксов, то чтобы вывести отдельно каждый из них, нужно добавлять индекс (номер от нуля) для параметров следующих за первым.
    Пример: [[+shk_param1]], [[+shk_param1_1]], [[+shk_param1_2]] ...
    [[+shk_любой доп.параметр_price]] - цена доп.параметра. Пример: [[+shk_param1_price]].

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

    Доброго времени суток. Не могу разобраться, как передать данные migx-поля в корзину в плейсхолдер без "дублирования" в [[+addit_data]]
    Суть в чем: У меня есть 2 цены у товара (со скидкой и без скидки) Форма для отправки в корзину:

    <form action="[[~[[*resource_id]]? &scheme=`abs`]][[*alias]].html" method="post"> <input type="hidden" name="shk-id" value="[[*id]]" /> <input type="hidden" name="shk-name" value="[[*pagetitle]]" /> <input type="hidden" name="price_old__[[*id]]__add" value="[[*price_old]]" /> <input type="hidden" name="shk-count" value="1" /> <div class="product-price"> Цена: <span class="shk-price">[[!*price:shk_curr_rate:num_format]]</span> Старая цена - <span class="shk-price-old">[[+price_old]]</span> [[!+shk_currency]] </div> <div class="padding-lr-30"> <h5>Дополнительные услуги</h5> [[*param1]] </div> <div class="product-price"> <button class="btn btn-lg btn-primary" type="submit" class="shk-but">В корзину</button> </div> </form>

    Данные со "старой ценой" в корзину попадают нормально и выводится в нужном месте в плейсхолдере:
    [[+shk_price_old]]
    Но проблема в том, что эта старая цена "дублируется" в плесхолдер "Дополнительных услуг" - [[+addit_data]]. Как сделать чтобы старая цена не выводилась в [[+addit_data]]? Или может я как то не правильно передаю MIGX-параметр в корзину ? Заранее спасибо.

    Читать далее
  • Фотографии, как я понял, это второй вопрос. Я по нему пока ничего не отвечал и не просил информации. Это не отменяет того, что в вашем конфиге есть ошибка, о которой я писал выше. Не нужно задавать разные вопросы в одной теме, чтобы не было путаницы.
    http://forum.modx-shopkeeper.ru/topic/15/рекомендации-по-оформлению-темы-с-вопросом

    Читать далее