Битрикс — скрипт деактивирования товаров, которых нет в наличии
27.01.2021 10:54
Возникла задача: деактивировать товары, которых нет в наличии. Зачем я так и не понял, потому-что в настройках комплексного компонента каталога и так можно указать отображать недоступные товары или не отображать. Похожий скрипт: деактивирования товаров по свойству.
Скрипт недоступным товарам ставит флаг активности N, а доступным наоборот — флаг Y:
$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; if(empty($DOCUMENT_ROOT)){ $DOCUMENT_ROOT = '/home/public_html'; } require($DOCUMENT_ROOT."/bitrix/modules/main/include/prolog_before.php"); define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS", true); ini_set('max_execution_time', '36000'); set_time_limit(0); ini_set('memory_limit', '512M'); $IBLOCK_ID = 15; $c = 0; CModule::IncludeModule("iblock"); CModule::IncludeModule("catalog"); CModule::IncludeModule("sale"); $arFilter = Array( "IBLOCK_ID"=>$IBLOCK_ID, // "ID"=>123,//для отладки // "QUANTITY"=>"0", // "SECTION_ID"=>87, // "INCLUDE_SUBSECTIONS"=>"Y", ); $res = CIBlockElement::GetList(Array("ID"=>"ASC"), $arFilter, false, false, Array("ID","NAME","IBLOCK_ID","CODE","QUANTITY","CATALOG_AVAILABLE","ACTIVE")); while ($ar_fields = $res->GetNext()){ $ID_ITEM = $ar_fields["ID"]; // echo $ar_fields["ID"]." - ".$ar_fields["CATALOG_AVAILABLE"]." - ".$ar_fields["ACTIVE"].'
'; if($ar_fields["CATALOG_AVAILABLE"] == "N"){ $arFields = array( 'ID' => $ID_ITEM, 'ACTIVE' => "N", ); } else{ $arFields = array( 'ID' => $ID_ITEM, 'ACTIVE' => "Y", ); } $obE = new CIBlockElement(); if ($obE->Update($ID_ITEM, $arFields)){ $c++; } } echo 'fin: '.$c;
При необходимости в конец можно добавить очистку кеша:
BXClearCache(true, "/");

Здравствуйте! Я — Андрей Панёвин и занимаюсь профессиональной разработкой сайтов на платформе 1С-Битрикс (исключительно программирование).
Есть вопросы по статье? Могу подсказать и помочь по скайпу (andrey.panevin.ru), WhatsApp (+7-911-091-0670), Telegram (@panevin_ru) или перепиской в ВК.
1000 р./час. Часовой пояс — московский.
Помогла статья? На поездку на море (Охотское):
1000 р./час. Часовой пояс — московский.

Помогла статья? На поездку на море (Охотское):
перейти в Блог
Ударим лайками по бездорожью, разгильдяйству и бюрократизму!
Ключевые слова (тэги): 1С-Битрикс 69 PHP 82 web-программирование 107
Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю-:
последние записи в блоге
- 1С-Битрикс — сохранение корзины после авторизации
- 1С-Битрикс — скрипт заполнения рейтинга товаров по свойствам
- 1С-Битрикс — настройка с нуля. Часть 2
- Битрикс — скрипт деактивирования товаров, которых нет в наличии
- Перенос записей из WordPress в 1С-Битрикс