Наваял чутка кода, вдруг кому пригодится.
Агент включения скидки:
Код |
---|
function Activate_night_discount(){
global $USER;
if (!is_object($USER)) $USER = new CUser;
CModule::IncludeModule('catalog');
$dbProductDiscounts = CCatalogDiscount::GetList(
array("SORT" => "ASC"),
array("%NAME" => "!время!"),
false,
false,
array("ID", "ACTIVE","NAME")
);
while ($arProductDiscounts = $dbProductDiscounts->Fetch())
{
$result=CCatalogDiscount::Update($arProductDiscounts["ID"], array("ACTIVE" => "Y"));
if (!$result) mail('pochta@gmail.com', 'Скидка id='.$arProductDiscounts["NAME"], 'Не удалось включить скидку');
}
return "Activate_night_discount();";
}
|
Агент выключения скидки:
Код |
---|
function DeActivate_night_discount(){
global $USER;
if (!is_object($USER)) $USER = new CUser;
CModule::IncludeModule('catalog');
$dbProductDiscounts = CCatalogDiscount::GetList(
array("SORT" => "ASC"),
array("%NAME" => "!время!"),
false,
false,
array("ID", "ACTIVE","NAME")
);
while ($arProductDiscounts = $dbProductDiscounts->Fetch())
{
$result=CCatalogDiscount::Update($arProductDiscounts["ID"], array("ACTIVE" => "N"));
if (!$result) mail('pochta@gmail.com', 'Скидка NAME='.$arProductDiscounts["NAME"], 'Не удалось выключить скидку');
}
return "DeActivate_night_discount();";
} |
Код добавляется в
bitrix/php_interface/init.php
В названии скидок в обязательном порядке использую "!время!", например:
"Скидка 10% на телевизоры Philips !время!"
Ну и, собственно, в
Настройки->Настройки продукта->Агенты добавляются сами агенты:
Ну и отправка "отчета" на указанный email в случае ошибки включения или отключения.