Add
int CSaleDiscount::Add( array arFields );
Метод добавляет новую скидку на сумму заказа с параметрами из массива arFields. Статический метод.
Параметры вызова
| Параметр | Описание |
|---|---|
| arFields |
Ассоциативный массив параметров скидки, ключами в котором являются названия параметров скидки, а значениями - значения параметров. Допустимые ключи:
Блок купонов: |
Возвращаемые значения
Возвращается код добавленной скидки или false в случае ошибки.
Примеры
Создание правила корзины, которое применяет скидку 10% при сумме товаров в корзине от 5000 рублей:
\Bitrix\Main\Loader::includeModule('sale');
global $APPLICATION;
$fields = [
'LID' => 's1',
'NAME' => 'Скидка 10% при заказе от 5000',
'ACTIVE' => 'Y',
'SORT' => 100,
'PRIORITY' => 1,
'LAST_DISCOUNT' => 'N',
'LAST_LEVEL_DISCOUNT' => 'N',
'USER_GROUPS' => [2],
'CURRENCY' => 'RUB',
'CONDITIONS' => [
'CLASS_ID' => 'CondGroup',
'DATA' => [
'All' => 'AND',
'True' => 'True',
],
'CHILDREN' => [
[
'CLASS_ID' => 'CondBsktAmtGroup',
'DATA' => [
'logic' => 'EqGr',
'Value' => 5000,
'All' => 'AND',
],
'CHILDREN' => [],
],
],
],
'ACTIONS' => [
'CLASS_ID' => 'CondGroup',
'DATA' => [
'All' => 'AND',
],
'CHILDREN' => [
[
'CLASS_ID' => 'ActSaleBsktGrp',
'DATA' => [
'Type' => 'Discount',
'Value' => 10,
'Unit' => 'Perc',
'Max' => 0,
'All' => 'AND',
'True' => 'True',
],
'CHILDREN' => [],
],
],
],
];
$discountId = CSaleDiscount::Add($fields);
if (!$discountId)
{
$exception = $APPLICATION->GetException();
echo $exception ? $exception->GetString() : 'Не удалось создать правило корзины';
}
В поле CONDITIONS передается дерево условий применения правила. В примере корневой узел CondGroup объединяет условия по AND, а дочерний узел CondBsktAmtGroup проверяет сумму товаров в корзине.
Значение logic => EqGr означает «больше или равно», Value => 5000 — минимальную сумму корзины.
В поле ACTIONS передается дерево действий правила. В примере корневой узел CondGroup содержит действие ActSaleBsktGrp, которое применяет скидку к корзине.
Значение Type => Discount задает действие скидки, Value => 10 — размер скидки, Unit => Perc — процентный тип значения.
Ключи CLASS_ID, DATA и CHILDREN обязательны для узлов дерева условий и действий. В CHILDREN передается массив дочерних условий или действий; если дочерних узлов нет, передается пустой массив.