Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
Позволю себе привести несколько прилизанный вариант скрипта Михаила Гущина. Добавил вывод сообщений об ошибках и пересчёт цен (CPrice::Update(..., true), CPrice:: Add (..., true)).
Настроечные переменные $newExtraId, $newPriceId и $catalogIblockType задаются в начале скрипта.
mbbo, этот скрипт можно выполнить, например, из командной строки PHP в админке (Рабочий стол > Настройки > Инструменты > Командная PHP-строка)
Назад в раздел
Код |
---|
if(CModule::IncludeModule("iblock") && CModule::IncludeModule("catalog")) { echo "Скрипт запущен...<br />"; $newExtraId = 1; // ID нашей наценки $newPriceId = 2; // ID типа цены, для которого задаём эту наценку $catalogIblockType = "products"; // код типа инфоблока, для которого проводим обработку $count = 0; $rsProducts = CCatalogProduct::GetList( array("ID" => "ASC"), array("IBLOCK_TYPE" => $catalogIblockType), false, false ); while (($arProduct = $rsProducts->Fetch())/* && $count < 10*/) { $arPriceFields = Array( "PRODUCT_ID" => $arProduct["ID"], "CATALOG_GROUP_ID" => $newPriceId, "EXTRA_ID" => $newExtraId, "CURRENCY" => "RUR", ); $rsProductPrices = CPrice::GetList( array(), array( "PRODUCT_ID" => $arProduct["ID"], "CATALOG_GROUP_ID" => $newPriceId ) ); if ($arProductPrice = $rsProductPrices->Fetch()) { if (CPrice::Update($arProductPrice['ID'], $arPriceFields, true) !== false) { print "Обновлена цена ".$arProductPrice['ID']." для товара ".$arProduct["ID"]."<br />"; } else { print "Ошибка при обновлении цены ".$arProductPrice['ID']." для товара ".$arProduct["ID"].": "; if ($ex = $APPLICATION->GetException()) echo $ex->GetS tring(); echo "<br />"; } } else { $priceId = CPrice::Add($arPriceFields, true); if ($priceId !== false) { print "Добавлена новая цена для товара ".$arProduct["ID"]." ".$priceId."<br />"; } else { print "Ошибка при добавлении цены для товара ".$arProduct["ID"].": "; if ($ex = $APPLICATION->GetException()) echo $ex->GetS tring(); echo "<br />"; } } $count++; } echo "Скрипт завершён. Обработано ".$count." товаров."; } |
mbbo, этот скрипт можно выполнить, например, из командной строки PHP в админке (Рабочий стол > Настройки > Инструменты > Командная PHP-строка)
Назад в раздел
Подписаться на новые материалы раздела: