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


Вывод фильтров на другую страницу.

  • И еще небольшой, надеюсь, вопрос.
    Каталог организован следующим образом: Главная каталога > категория товаров > товар.
    На страницах категорий товаров все прекрасно работает (http://forum.modx-shopkeeper.ru/topic/1170/tagmanager2-не-сортирует-и-не-фильтрует/10)
    Пытаюсь вывести товары с фильтрацией на главную страницу каталога (design.alanmebel.by/kuhni/)
    В "Управлении фильтрами" все работает. На страницу выбранные фильтры выводятся, правда без числовых значений. Товары указанные в

    [[!tmCatalog?
             &parents=`161,159,162,176,203`
             &tpl=`Product_tpl`
             &sortby=`RAND()`
       ]]
    

    выводятся, но при попытке фильтрации или сортировки все товары пропадают. Понимаю, что где-то какая-то ошибка, но где?

  • Немного разобрался с помощью
    В параметрах шаблона страницы, куда выводятся товары указал название набора параметров,

     [[tmFilters?
          &filterOuterTpl=`tm2_filterOuterTpl`
          &filterTpl=`tm2_filterTpl`
          &filterNumericOuterTpl=`tm2_filterOuterTpl`
          &filterNumericTpl=`tm2_filterNumericTpl`
          &jsMap=`1`
          &toPlaceholder=`filters`
          &categoryId=`161`
     ]]
                           
    <div id="filters" class="mt-4">
           <p class="pt-3"><b>Подбор по параметрам</b></p>
           <form action="[[~[[*id]]]]" method="get">
           <input type="hidden" name="page_id" value="161" disabled="disabled" />
           [[+filters]]
           <button type="button" class="btn btn-sm btn-outline-secondary" onclick="tmFilters.resetFilters(); return false;">Сбросить</button>
           </form>
    </div>
    
    <div id="products" class="row">
          [[!tmCatalog?
            &parents=`161`
            &dept=`2`
          ]]
     </div>
    

    и получилось почти нормально вывести товары из категории с id=161. (почти, т.к. не отображается количество найденных товаров)
    Т.е. все выводится фильтруется и сортируется.
    Теперь вопросы:

    1. Как вывести сюда товары с других категорий, например, с id=159,162,176?
    2. Почему в фильтре не отображаются количество найденных товаров по каждому фильтру?
    1. Как вывести сюда товары с других категорий, например, с id=159,162,176?

    Не уверен, но по-моему такой возможности нет. Можно вывести, но без фильтров. Но если у этих категорий есть одна общая на верхнем уровне, то не вижу проблемы. Её и надо указывать.

    1. Почему в фильтре не отображаются количество найденных товаров по каждому фильтру?

    Не хватает информации. Например, какие у вас параметры в наборе параметров и какие в параметрах шаблона. Где хранятся товары (ресурсы MODX или отдельная таблица).

  • @andchir

    1. Общая категория есть.
      Кухни (2)
      Кухни из массива (160)
      Кухни из пластика (161)
      и т.д.
      Собственно вот здесь и туплю куда какой id писать? Что в tmFilters, что tmCatalog, а что name="page_id" value="???"

    2. Товары - ресурсы Modx.
      В параметрах шаблона с id=2 параметры из примера prodPropertySetName - catalog_filters_2

  • сам набор параметров catalog_filters_2 - стандартный шаблонный

    Т.е. все делалось по документации, своего ничего не добавлялось

  • Вот немного подробнее
    Системные настройки
    2_1528833104289_Захват-1.jpg !

    Настройки шаблона
    0_1528833233940_Захват-2.jpg
    Параметры getPage
    0_1528833243077_Захват-3.jpg

  • Собственно вот здесь и туплю куда какой id писать? Что в tmFilters, что tmCatalog, а что name="page_id" value="???"

    Я уже писал, что нужно указывать ID категории верхнего уровня.

  • @andchir
    ID категории верхнего уровня - 2, так нужно?

    <div class="row main-furniture text-center">                
            [[tmFilters?
                &filterOuterTpl=`tm2_filterOuterTpl`
                &filterTpl=`tm2_filterTpl`
                &filterNumericOuterTpl=`tm2_filterOuterTpl`
                &filterNumericTpl=`tm2_filterNumericTpl`
                &jsMap=`1`
                &toPlaceholder=`filters`
                &categoryId=`2`
                &dept=`2`
            ]]
            
            <div id="filters" class="mt-4">
                <p class="pt-3"><b>Подбор по параметрам</b></p>
                <form action="[[~[[*id]]]]" method="get">
                    <input type="hidden" name="page_id" value="2" disabled="disabled" />
                    [[+filters]]
                    <button type="button" class="btn btn-sm btn-outline-secondary" onclick="tmFilters.resetFilters(); return false;">Сбросить</button>
                </form>
            </div>
    <div id="products" class="row">
                [[!tmCatalog?
                    &parents=`2`
                    &tpl=`seo_Product_tpl`
                    &dept=`2`
                ]]
            </div>
    

    Но так ничего не выводятся только фильтры, товаров нет .

  • &dept

    Во-первых тут ошибка. Во-вторых это нужно указывать в наборе параметров. Вы можете создать отдельный набор параметров именно для одной страницы.

  • @andchir , а можете мне написать, как нужно, что и куда подробнее, как "для особо тупых". Я уже совсем запутался. Могу дать доступ к сайту.

  • Читайте документацию

    depth - Глубина поиска родителей. По умолчанию 1.

    http://wiki.modx-shopkeeper.ru/doku.php?id=getproducts

    Число зависит от того сколько какая у вас максимальная вложенность в каталоге. Этот параметр нужно указать в наборе параметров, название которого вы указали в параметрах шаблона. Там же указать - parents - ID категории верхнего уровня.

  • Вам нужно понять смысл всех этих действий. Параметры сниппета "tmFilters" не важны при аякс-запросе, поэтому не обязательно создавать для него набор параметров. А параметры сниппета "tmCatalog" нужно знать на стороне сервера при аякс-запросе. Вытаскивать ваши параметры из шаблона при каждом запросе, где вы их указали, это было бы очень не рационально. Поэтому параметры, которые касаются вывода товаров из каталога, нужно указывать в наборе параметров. Название этого набора параметров нужно указать в парамерах шаблона, как написано в документации.

  • Участник @andchir написал в Вывод фильтров на другую страницу.:

    parents

    Спасибо, заработало. А "для особо тупых" я бы написал так:
    В сниппете getPage создать новый набор параметров, например catalog_filters_new, в котором в дополнение к стандартным полям набора catalog_filters параметров указать:
    имя depth, значение -х (х - вложенность в каталоге)
    имя parents, значени y (y - ID категории верхнего уровня).

    В параметрах шаблона (категории верхнего уровня) указать имя нового набора параметров catalog_filters_new

    Как-то так.

 

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

  • 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/рекомендации-по-оформлению-темы-с-вопросом

    Читать далее