Вывод товаров по модификациям

#
Вывод товаров по модификациям
Мне нужно сделать вывод товаров только, если есть у него модификации с не нулевой ценой и наличием на складе. Боюсь я такой сложный запрос не напишу.
С уважением, Команда Isv7! тел-1: +38098-5520233 Viber тел-2: +38050-5765376 skyp: newudx icq: 460923525 email: info@isv7.com http://www.isv7.com
#
Re: Вывод товаров по модификациям
Ну где же Вы, гуру. Или, получается,  никто с этим не сталкивался?
С уважением, Команда Isv7! тел-1: +38098-5520233 Viber тел-2: +38050-5765376 skyp: newudx icq: 460923525 email: info@isv7.com http://www.isv7.com
Модератор
#
Re: Вывод товаров по модификациям
Просто проверять остатки на складе:
$Shop_Controller_Show
->shopItems()
->queryBuilder()
->leftJoin('shop_warehouse_items', 'shop_warehouse_items.shop_item_id', '=', 'shop_items.id')
->having('SUM(shop_warehouse_items.count)', '>', 0)
->groupBy('shop_items.id');
#
Re: Вывод товаров по модификациям
Добавил это в код типовой динамической страницы. Теперь выводятся только товары, которые есть на складе.
А как теперь сделать, чтобы выводился товар даже если его нет в наличии, но у которого есть модификации и эти модификации есть на складе?
С уважением, Команда Isv7! тел-1: +38098-5520233 Viber тел-2: +38050-5765376 skyp: newudx icq: 460923525 email: info@isv7.com http://www.isv7.com
Модератор
#
Re: Вывод товаров по модификациям
Пожалуйста:
$Shop_Controller_Show
   ->shopItems()
   ->queryBuilder()
   // Модификации и остатки на складах модификаций
   ->leftJoin(array('shop_items', 'modifications'), 'modifications.modification_id', '=', 'shop_items.id')
   ->leftJoin(array('shop_warehouse_items', 'modifications_shop_warehouse_items'), 'modifications_shop_warehouse_items.shop_item_id', '=', 'modifications.id')
   // Остатки на складах основного отвара
   ->leftJoin('shop_warehouse_items', 'shop_warehouse_items.shop_item_id', '=', 'shop_items.id')
   // Есть остатки на основном складе
   ->having('SUM(shop_warehouse_items.count)', '>', 0)
   // Или
   ->setOr()
   // Есть остатки на складах у модификаций
   ->having('SUM(modifications_shop_warehouse_items.count)', '>', 0)
   ->groupBy('shop_items.id');
#
Re: Вывод товаров по модификациям
Здравствуйте, решение работает, но вот одна проблема.
На сайте необходимо выводить как и основные товары, так и архив товаров.
Вывожу их разными контроллерами, в списке товаров все нормально, но при переходе в товар, которого нет в наличии, карточка не отображается.
Можно ли как то в xsl ограничить выборку, если товар или его модификация есть на одном из складов, то выводить его, причем тут такая проблема - что если товара нет а модификация есть, она должна выводится, не увидел в XML у товаров информацию о наличии на разных складах, подскажите как это можно реализовать
Модератор
#
Re: Вывод товаров по модификациям
У контроллера Shop_Controller_Show есть опция
* - warehousesItems(TRUE|FALSE) выводить остаток на каждом складе для товара, по умолчанию FALSE
#
Re: Вывод товаров по модификациям
При включении этой опции, повторюсь карточка товаров пустая, в xml не попадают данные о товаре которого нет в наличии
Модератор
#
Re: Вывод товаров по модификациям
PakoGonsalezZ,
эта опция выводит доп. информацию по остаткам на складах, она не влияет на выборку товаров.
#
Re: Вывод товаров по модификациям
ДА, прочитал бегло, спутал опции, спасибо за помощь
Авторизация