Массово устанавливаем фиксированную цену 999 рублей для всех активных товаров с свойством "CLEARANCE_SALE" равным "Y" в указанном инфоблоке. Решение работает для простых товаров.
| Код |
|---|
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock");
CModule::IncludeModule("catalog");
$iblockId = 5; // ID инфоблока
$propertyCode = "CLEARANCE_SALE"; // Код свойства
$propertyValue = "Y"; // Значение свойства
// Находим товары с нужным свойством
$rsProducts = CIBlockElement::GetList(
[],
[
"IBLOCK_ID" => $iblockId,
"ACTIVE" => "Y",
"PROPERTY_".$propertyCode => $propertyValue
],
false,
false,
["ID", "IBLOCK_ID"]
);
while ($arProduct = $rsProducts->Fetch()) {
$productId = $arProduct["ID"];
// Получаем текущую цену
$dbPrice = CPrice::GetList(
[],
[
"PRODUCT_ID" => $productId,
"CATALOG_GROUP_ID" => 1
]
);
// Устанавливаем новую цену
$arFields = [
"PRODUCT_ID" => $productId,
"CATALOG_GROUP_ID" => 1,
"PRICE" => 999,
"CURRENCY" => "RUB"
];
if ($arPrice = $dbPrice->Fetch()) {
CPrice::Update($arPrice["ID"], $arFields);
} else {
CPrice::Add($arFields);
}
echo "Обновлена цена для товара #{$productId}<br>";
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?> |