Автоматизация настройки товаров в Битрикс
После импорта каталога из 1С у товаров может отсутствовать важная настройка — "Уменьшать количество при заказе". Ручное редактирование тысяч позиций неэффективно, поэтому рассмотрим автоматические решения.
1. Быстрое исправление через SQL-запрос
Самый простой способ массового обновления — выполнить SQL-запрос:
-
Перейдите: Рабочий стол > Настройки > Инструменты > SQL запрос
Или откройте:ваш_сайт/bitrix/admin/sql.php -
Введите запрос:
UPDATE `b_catalog_product` SET QUANTITY_TRACE = 'Y'
Важно! Перед выполнением создайте резервную копию базы данных.
2. Обновление через PHP-скрипт
Для более контролируемого процесса создайте файл со следующим содержимым:
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
CModule::IncludeModule("catalog");
$upd = 0;
$prodSections = CIBlockElement::GetList(
array(),
array("IBLOCK_ID" => 1), // Укажите ID вашего инфоблока
false,
false,
array('ID')
);
echo 'Всего товаров: '.$prodSections->SelectedRowsCount();
while($arSection = $prodSections->GetNext()){
if (CCatalogProduct::Update($arSection['ID'], array('QUANTITY_TRACE' => 'Y'))){
$upd++;
}
}
echo '<br>Обновлено товаров: '.$upd;
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>Для регулярного обновления новых товаров можно настроить этот скрипт на выполнение через Cron.
3. Автоматическая обработка новых товаров
Чтобы новые товары сразу создавались с нужной настройкой, добавьте обработчик события в файл /bitrix/php_interface/init.php:
AddEventHandler("sale", "OnProductAdd", "OnProductAdd");
function OnProductAdd(&$ID, $Fields) {
$res = array("QUANTITY_TRACE" => "Y");
CCatalogProduct::Update($ID, $res);
}
Если файла init.php нет — создайте его.
Вывод
Эти методы помогут:
-
Быстро исправить настройки существующих товаров
-
Автоматизировать процесс для новых позиций
-
Избежать рутинной ручной работы
Выбирайте подходящий способ в зависимости от ваших задач и частоты добавления новых товаров.