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


Сложная сортировка getProducts

  • Здравствуйте, на сайте реализована фильтрация товаров через tagManager, который в свою очередь использует getPage и getProducts.
    В моем случае сортировка в категориях стоит sortby = menuindex.
    На сайте есть функция для наличия и отсутствия товара, для этих целей у товара используются разные шаблоны(товар в наличии - шаблон 3, товар отсутствует - шаблон -21), не стал делать через tv условия вроде:

    [[*instock:is=`В наличии`
    :then=`
    <span class="shk-price"><span itemprop="price">[[*price]]</span> грн.</span>
    `:else=`
    `]]
    
    [[*instock:is=`Отсутствует`:then=``:else=`<span class="shk-price"><span itemprop="price">[[*price]]</span> грн.</span>`]]
    

    Потому что условий будет много - не выводить цену, не выводить кнопку, не выводить перечеркнутую цену, выводить блок с надписью об отсутствии товара, предлагать альтернативные товары - условий получается много, по этому решил сделать просто отдельный шаблон для товаров которых нет в наличии.
    Но хотелось бы теперь в категории сортировать товар по sortby = menuindex но при этом, товары которых нет(шаблон 21) должны идти в самом конце, можно ли задать как-то такое сложное условие? То есть:
    Выводим карточки товаров с шаблоном 3 сортируя их по menuindex, а затем выводим карточки товаров с шаблоном 21

  • Не согласен на счёт того что в tv неудобно, как раз таки и удобно просто не надо отдельно что-то там проверять и выводить (имею ввиду кнопку и т.д.), представьте, можно один раз проверить и большой кусок кода менять 🙂 т.е.:

    [[*instock:gt=`1`:then=`[[$чанк где всё в порядке с кнопками, там и лейбл с текстом О боже - этот товар есть у нас в наличии]]`:else=`[[$чанк где говориться что этого товара нет и скорее всего не будет, да и кнопка тут уже не работает ]]`]]
    

    При чём это как раз таки было бы удобнее сортировать, ведь в tv число и по нему бы очень хорошо сортировалось.

    Ну да черт с ним, ваше решение.... А по поводу вопроса, ну сделайте сортировку по шаблону, кто мешает?! Ведь шаблоны хранятся в таблице у ресурса по id, а это тоже числа

  • Участник @jagger написал в Сложная сортировка getProducts:

    А по поводу вопроса, ну сделайте сортировку по шаблону, кто мешает?! Ведь шаблоны хранятся в таблице у ресурса по id, а это тоже числа

    Сортировка должна быть по menuindex, в категориях выставлен определенный порядок по важности товаров, допустим:

    Товар 3
    Товар 4
    Товар 1 
    Товар 2
    ....
    ....
    ....
    

    Допустим, на какое-то время "Товар 4" заканчивается, у него меняется шаблон и он должен выйти из очереди выборки, получается:

    -------Товары в наличии
    Товар 3
    Товар 1 
    Товар 2
    ....
    ....
    ....
    ---------Товары не в наличии(Тут порядок вообще не важен)
    Товар 4
    ....
    ....
    ....
    
    

    Теперь "Товар 4" опять появился, у него меняется шаблон и он становиться на свое место первоначальное, по menuindex:

    -------Товары в наличии
    Товар 3
    Товар 4
    Товар 1 
    Товар 2
    ....
    ....
    ....
    ---------Товары не в наличии(Тут порядок вообще не важен)
    
    ....
    ....
    ....
    
    

    То есть как бы сортировка получается двойная, основная - по menuindex, а те товары что не отвечают условию, допустим templete == 3 просто в выборке оказываются в самом конце. Возможно я вас не понял просто, если не сложно, подскажите как реализовать=)

    На счет шаблона или тв, на самом деле это не камень преткновения, я просто пока-что планирую как это будет работать. У меня сейчас это дело и реализовано через тв. Но вот на сайте есть блоки с выводом карточек "горячие товары", "Топ продаж", пару слайдеров с предложениями, в них просто указывается шаблона 3 и они выводят только те товары, которые есть, пропуская товары, которых нет (шаблон 21), можно добавить это в условие, как исключение, то етсь если ТВ == нет в наличии, то пропускать, а можно сделать через шаблон.
    И вот еще одна мысль, я не дошел еще до этого но мне подумалось так - у tagManager указывается в настройках, какой шаблон у карточки товаров, если ему указать шаблон 3(товар в наличии) и не указывать шаблон 21(товара нет в наличии) то товары которых нет так же не будут фильтроваться, что и нужно, то есть мне не нужно получать в выборке по фильтру, по условию, те товары которых нет - но я до этого еще не дошел, возможно на деле все окажется не так, хотелось бы пока-что организовать изначальную сортировку

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

    orderby - JSON строка сортировки. Пример: &orderby=`{"parent":"ASC","pagetitle":"ASC"}

    В вашем случае будут поля "template" + "menuindex".

  • Участник @andchir написал в Сложная сортировка getProducts:

    &orderby=`{"parent":"ASC","pagetitle":"ASC"}

    В очередной раз спасибо!

 

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

  • M

    @Andchir , спасибо. Проблема и правда была в одном из плагинов, который на другом сайте нормально работает

    Читать далее
  • Что нового в 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 (красным выделено, то что приходится постоянно удалять

    Читать далее