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


Сложная сортировка 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"}

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

 

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

  • A

    @Andchir у меня не переходит к оплате после переделки. Я заявку в Яндекс сделал как у них в инструкции написано, что мне работа по старому протоколу нужна. В течении суток уже изменение произойдет, буду в итоге paykeeper2 использовать.

    Читать далее
  • Тут человек написал как переделать модуль оплаты от Яндекса на Shopkeeper 3
    http://forum.modx-shopkeeper.ru/topic/1261/paykeeper2-и-новый-api-яндекс-кассы/4

    Читать далее
  • Будет ли переписан модуль paykeeper2 для работы с Яндекс Кассой по новому API?

    Бесплатно нет. Я уже говорил, что Shopkeeper 3 (и всё что с ним связано) не будет развиваться. Компонент оплаты уже не продается. Но можете попробовать организовать сбор средств на эту работу. Нужно 5000 руб.

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

    Участник @Andchir написал в Подключение через Paykeeper2:

    В это компоненте нет поддержки кассовых аппаратов для Яндекс.Кассы. Поэтому он уже убран с продажи.

    А так же Яндекс Касса теперь стала работать по новому API по умолчанию, модуль для Omnipay новый API не поддерживает я так понял. @Andchir Будет ли переписан модуль paykeeper2 для работы с Яндекс Кассой по новому API?

    Читать далее