В компонентах bitrix:catalog.section и bitrix:news.list есть параметр FILTER_NAME, который указывает имя глобальной переменной (массива), содержащей условия фильтрации элементов или новостей.
|
Валерий Макеев: 02.09.2025 11:08:38
Фильтрация в каталоге 1С-Битрикс
В компонентах bitrix:catalog.section и bitrix:news.list есть параметр FILTER_NAME, который указывает имя глобальной переменной (массива), содержащей условия фильтрации элементов или новостей.
Изменено: - 29.09.2025 13:57:53
|
|
Валерий Макеев: 09.09.2025 16:42:24
Фильтруем активные товары из раздела с символьным кодом "electronics", имеющие положительный остаток, брендуемые как Samsung или Apple, с датой активации не ранее текущей даты.
|
|
Валерий Макеев: 09.09.2025 16:43:38
Фильтруем активные товары бренда Apple из раздела "sale" со скидкой от 15% и наличием на складе.
|
|
Ринат: 29.10.2025 14:55:36
Народ, привет. Подскажите, пожалуйста. Как я понимаю, во все случаях
"ACTIVE" => "Y",это условие. А как сделать действие?. То есть нужно деактивировать товары с ценой ниже 10000 рублей во всех разделах имеющих url /catalog/konditsionery/ Кроме раздела, имеющий url /konditsionery/dopolnitelnoe_oborudovanie_dlya_konditsionero Заранее спасибо! |
|
Валерий Макеев: 29.10.2025 15:51:20
'FILTER_NAME' — это только «условие для выборки». Чтобы сделать действие (деактивировать элементы), нужно пройтись по подходящим товарам и обновить им поле 'ACTIVE' → 'N'. Ниже — рабочий скрипт (CLI/однократный запуск), который: - находит раздел konditsionery и все его подпункты, - исключает из них подраздел dopolnitelnoe_oborudovanie_dlya_konditsionerov (вместе с его потомками), - выбирает активные товары с ценой '< 10000' по базовому типу цены (ID=1), - деактивирует их. > ПОДСТАВЬТЕ свои '$iblockId' и при необходимости '$basePriceId'.
Важные нюансы - Тип цены: в фильтре используется 'CATALOG_PRICE_<ID_типа_цены>'. Если сравнивать нужно не по базовой, замените '$basePriceId'. - SKU (оферы): если цены лежат на оферах, а выключать нужно родительские товары, то простой фильтр по 'CATALOG_PRICE_*' вернёт оферы, а не родителя. В таком случае: 1) получите оферы с ценой '< 10000' и их 'PRODUCT_ID' (ID родителя), 2) деактивируйте родителей по списку 'PRODUCT_ID' (или сами оферы — как нужно по задаче). - Тестовый прогон: прежде чем обновлять, сделайте «dry-run»: вместо '$el->Update(...)' просто выводите ID и проверьте, что выборка корректна. - Производительность: при большом каталоге запускайте в CLI (php -d short_open_tag=On -f script.php) и по возможности батчами. |
||||
* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.
Возможно участие в проекте на ежедневной основе, как разработчика. Занятость - до 20 часов в неделю
Минимальный срок - одна неделя.
* сумма фиксированная
* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.