{
public const CACHE_DURATION = 300; // 5 минут для справочников фильтров
+ /** Категории, которые не участвуют в маппинге и скрыты везде */
+ private const EXCLUDED_CATEGORIES = ['Букет', 'Сборка', 'Сервис'];
+
/**
* Получить список товаров с маппингами и фильтрами.
*
->from('products_1c_nomenclature')
->where(['IS NOT', 'category', null])
->andWhere(['!=', 'category', ''])
+ ->andWhere(['not in', 'category', self::EXCLUDED_CATEGORIES])
->distinct()
->orderBy('category')
->column();
$query = Products1cNomenclature::find()
->alias('n')
- ->leftJoin(['pm_agg' => $mappingsSub], 'pm_agg.product_guid = n.id');
+ ->leftJoin(['pm_agg' => $mappingsSub], 'pm_agg.product_guid = n.id')
+ ->andWhere(['not in', 'n.category', self::EXCLUDED_CATEGORIES]);
// Whitelist: явные привязки, никаких пользовательских имён колонок
if ($filters->category !== null) {