Описание и параметры
bool
CCatalogDiscount::Add(
array arFields
);
Метод добавляет новую скидку в соответствии с данными из массива arFields. Нестатический метод.
Параметры вызова
Параметр | Описание |
arFields | Ассоциативный массив параметров новой скидки, ключами в котором являются названия параметров, а значениями - соответствующие значения. Допустимые ключи:
- SITE_ID - сайт, обязательное поле;
- ACTIVE - флаг активности;
- NAME - название скидки, обязательное поле;
- COUPON - код купона;
- SORT - индекс сортировки;
- MAX_DISCOUNT - максимальная величина скидки;
- LAST_DISCOUNT - если равно N, то отменяет опцию Прекратить дальнейшее применение скидок;
- VALUE_TYPE - тип скидки (P - в процентах, F - фиксированная величина, S - фиксированная цена);
- VALUE - величина скидки;
- CURRENCY - валюта, обязательное поле;
- RENEWAL - флаг "Скидка на продление";
- ACTIVE_FROM - дата начала действия скидки;
- ACTIVE_TO - дата окончания действия скидки;
- IBLOCK_IDS - массив кодов инфоблоков, на которые действует скидка (если скидка действует не на все инфоблоки). Ключ является устаревшим с версии 12.0.0;
- PRODUCT_IDS - массив кодов товаров, на которые действует скидка (если скидка действует не на все товары). Ключ является устаревшим с версии 12.0.0;
- SECTION_IDS - массив кодов групп товаров, на которые действует скидка (если скидка действует не на все группы товары). Ключ является устаревшим с версии 12.0.0;
- GROUP_IDS - массив кодов групп пользователей, на которые действует скидка (если скидка действует не на все группы пользователей);
- CATALOG_GROUP_IDS - массив кодов типов цен, на которые действует скидка (если скидка действует не на все типы цен).
- CATALOG_COUPONS - массив купонов скидки.
- USE_COUPONS - [Y/N] - есть купоны или нет, обновляется автоматически.
- PRIORITY - приоритет применимости;
- CONDITIONS - массив для создания условий использования скидки. Ключ доступен с версии 12.0.0.
Если он задан и не пуст, то массивы PRODUCT_IDS, SECTION_IDS и IBLOCK_IDS использоваться не будут. Чтобы задать параметры скидки через эти 3 ключа, то CONDITIONS в массиве arFields должен отсутствовать.
Каждое условие массива CONDITIONS описывается массивом следующей структуры:
- CLASS_ID - идентификатор (строка);
- DATA => array() - массив параметров условий;
- CHILDREN => array() - массив подусловий, каждое из которых является массивом аналогичной структуры, где ключами являются значения 0,1,2,3,..
Возможные логические условия:
- Equal - равно;
- Not - не равно;
- Great - больше;
- Less - меньше;
- EqGr - больше либо равно;
- EqLs - меньше либо равно.
Наименования условий:
- CondIBElement - товар;
- CondIBIBlock - инфоблок;
- CondIBSection - раздел;
- CondIBCode - символьный код;
- CondIBXmlID - внешний код;
- CondIBName - название;
- CondIBActive - активность;
- CondIBDateActiveFrom - начало активности;
- CondIBDateActiveTo - окончание активности;
- CondIBSort - сортировка;
- CondIBPreviewText - описание для анонса;
- CondIBDetailText - детальное описание;
- CondIBDateCreate - дата создания;
- CondIBCreatedBy - автор;
- CondIBTimestampX - дата изменения;
- CondIBModifiedBy - изменивший;
- CondIBTags - теги;
- CondCatQuantity - количество товара на складе;
- CondCatWeight - вес товара;
- CondCatVatID - НДС;
- CondCatVatIncluded - НДС включен в цену.
Кроме того, возможна привязка условий к свойствам товара.
Верхний элемент массива CONDITIONS всегда один и тот же (для скидок каталога может быть получен методом CCatalogCondTree::GetDefaultConditions()):
array(
'CLASS_ID' => 'CondGroup',
'DATA' => array('All' => 'AND', 'True' => 'True'),
'CHILDREN' => array()
);
|
Возвращаемые значения
Метод возвращает код вставленной записи или false в случае ошибки.
Примеры использования
Получить детальную информацию об ошибке при сохранении можно следующим образом:
$ID = CCatalogDiscount::Add($arFields);
$res = $ID>0;
if (!$res) {
$ex = $APPLICATION->GetException();
$ex->GetString();
}