Выдано 109598 лицензий

How To: Сортировка товаров

Сортировка товаров задаются через метод shopItems() контроллера Shop_Controller_Show, метод возвращает объект Shop_Item_Model с настроенными ограничениями. Для удаления предыдущих установок сортировки используется clearOrderBy()

Сортировка по наличию и названию товара

Товары, отсутствующие на складе, выводятся в конце списка, это достигается использованием функции SIGN(X), которая для остатка на складе возвращает знак аргумента в виде -1, 0 или 1, в зависимости от того, является ли X отрицательным, нулем или положительным.

$Shop_Controller_Show
    ->shopItems()
    ->queryBuilder()
    ->leftJoin('shop_warehouse_items', 'shop_warehouse_items.shop_item_id', '=', 'shop_items.id')
    ->groupBy('shop_items.id')
    ->clearOrderBy()
    ->orderBy(Core_QueryBuilder::expression('SIGN(SUM(`shop_warehouse_items`.`count`))'), 'DESC')
    ->orderBy('shop_items.name', 'ASC');

$Shop_Controller_Show->show();