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

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

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.