Ограничить из выборки товары, у которых есть модификации, оставив их модификации

#
Ограничить из выборки товары, у которых есть модификации, оставив их модификации
Добрый день, появилась нестандартная задача, меняем логику отображения товаров в категории, мб кто - то сталкивался с подобной задачей.
Необходимо исключить из показа контроллером товары, у которых есть модификации, при этом оставить их модификации в показе.
Понимаю как это сделать в XSl, но не понимаю как ограничить на бэкенде.
Поддержка обьяснила что нужно использовать хук onBeforeSelectShopItems
Использовать проверку modification_id != 0 нельзя, так как в выборке есть товары без модификации.
Поддержка указала на использование конструкции If в запросе, буду рад если кто то подскажет хотя бы синтаксис, пример как это можно использовать
Логически понимаю как решить задачу, не хватает скиллов это исполнить
Модератор
#
Re: Ограничить из выборки товары, у которых есть модификации, оставив их модификации
PakoGonsalezZ,
поддержка в первую очередь дала рекомендацию сделать объединение с псевдонимом, как это делать описано здесь.

$Shop_Controller_Show->modificationsList(TRUE);

$fieldName = count($Shop_Controller_Show->getFilterProperties()) || count($Shop_Controller_Show->getFilterPrices()) || $Shop_Controller_Show->producer
    ? $Shop_Controller_Show->getFilterTableName() . '.shop_item_id'
    : 'shop_items.id';

$Shop_Controller_Show->shopItems()
   ->queryBuilder()
   // Объединяем с таблицей и присваиваем алиас
   ->leftJoin(array('shop_items', 'tmp'), 'tmp.modification_id', '=', $fieldName)
   // Где в объединенной таблице нет модификаций, это или уже модификация, или товар БЕЗ модификаций
   ->where('tmp.modification_id', 'IS', NULL);
#
Re: Ограничить из выборки товары, у которых есть модификации, оставив их модификации
PakoGonsalezZ,
Для информации, у нас в модуле Умные фильтры в версии 4.5 реализован такой функционал
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Re: Ограничить из выборки товары, у которых есть модификации, оставив их модификации
Добрый день, Вы как всегда вовремя, пользуемся Вашими решениями и многим советую!!!
#
Re: Re: Ограничить из выборки товары, у которых есть модификации, оставив их модификации
alexpimnev писал(а):

Хотел попробовать функционал, установил обновление, в итоге ошибка

Exception: The argument for method 'onlyModification' does not exist in the 'ASMP_Shop_Controller_Show'. Available methods: group, subgroups, groupsProperties, groupsPropertiesList, propertiesForGroups, groupsMode, groupsForbiddenTags, item, itemsProperties, itemsPropertiesList, sortPropertiesValues, commentsProperties, commentsPropertiesList, itemsPropertiesListJustAvailable, groupsMedia, itemsMedia, itemsForbiddenTags, warehouseMode, parentItem, modifications, modificationsList, modificationsGroup, filterShortcuts, parseFilterInUrl, filterCounts, filterStrictMode, specialprices, seoFilters, associatedItems, comments, commentsRating, tabs, votes, tags, calculateCounts, siteuser, siteuserProperties, sets, bonuses, barcodes, comparing, comparingLimit, favorite, favoriteLimit, favoriteOrder, viewed, viewedLimit, viewedOrder, cart, warehousesItems, taxes, offset, limit, page, total, pattern, patternExpressions, patternParams, patternAffiliate, patternTag, patternProducer, filterSeo, tag, producer, cache, itemsActivity, groupsActivity, commentsActivity, calculateTotal, showPanel, url, getItemDataCallback, getGroupDataCallback, filterseo, nestingLevel, itemsPropertiesListFilter, filterModificationsChild, onlyModification, sortShortcut, prefixTmpTable, glimit, gtotal, groupsUnderFilter.
modules/core/servant/properties.php:187 Core_Exception->__construct
hostcmsfiles/lib/lib_181/lib_181.php:249 Core_Servant_Properties->__call
modules/lib/model.php:376 include
modules/core/page.php:178 Lib_Model->execute
templates/template25/template.htm:101 Core_Page->execute
modules/template/model.php:107 include
modules/core/page.php:178 Template_Model->execute
templates/template13/template.htm:837 Core_Page->execute
modules/template/model.php:107 include
modules/core/page.php:178 Template_Model->execute
modules/core/command/controller/default.php:622 Core_Page->execute
modules/core/router/route.php:195 Core_Command_Controller_Default->showAction
index.php:379 Core_Router_Route->execute
#
Re: Ограничить из выборки товары, у которых есть модификации, оставив их модификации
PakoGonsalezZ писал(а):

ошибка решилась
Авторизация