Документация для разработчиков
Темная тема

DiscountCouponTable

Описание и методы

DiscountCouponTable – класс для работы с таблицей купонов правил корзины.


Цепочка наследования

Является наследником класса Bitrix\Main\ORM\Data\DataManager (до версии 18.0.2 модуля Main – класса Bitrix\Main\Entity\DataManager).


Методы класса

МетодОписание С версии
addPacketМетод создает один или несколько купонов для правила корзины. 14.11.0
checkCouponМетод проверяет купон на уникальность и существование. 14.11.0
checkDiscountIdМетод проверяет поле с идентификатором правила. 14.11.0
checkPacketМетод проверяет данные для создания одного или нескольких купонов. 14.11.0
checkTypeМетод проверяет поле TYPE (тип купона). 14.11.0
clearDiscountCheckListМетод очищает список правил, чтобы обновить флаг Имеет купоны. 14.11.0
deleteByDiscountМетод удаляет все купоны для правила с кодом $discount. 14.11.0
disableCheckCouponsUseМетод запрещает пересчет флага Имеет купоны для правил после вызова методов add/update/delete. 14.11.0
enableCheckCouponsUseМетод разрешает пересчет флага Имеет купоны для правил после вызова методов add/update/delete. 14.11.0
generateCouponМетод генерирует код купона. 14.11.0
getCouponTypesМетод возвращает список типов купонов. 14.11.0
getMapМетод возвращает список полей для таблицы купонов правил корзины. 14.11.0
getTableNameМетод возвращает название таблицы купонов правил корзины в базе данных. 14.11.0
isCheckedCouponsUseМетод определяет пересчитывать ли у правил корзины, относящихся к обработанным купонам, флаг Имеет купоны. 14.11.0
isValidCouponTypeМетод проверяет валиден ли тип купона. 14.11.0
onAfterAddЯвляется обработчиком по умолчанию события onAfterAdd. 14.11.0
onAfterDeleteЯвляется обработчиком по умолчанию события onAfterDelete. 14.11.0
onAfterUpdateЯвляется обработчиком по умолчанию события onAfterUpdate. 14.11.0
onBeforeAddЯвляется обработчиком по умолчанию события onBeforeAdd. 14.11.0
onBeforeUpdateЯвляется обработчиком по умолчанию события onBeforeUpdate. 14.11.0
onDeleteЯвляется обработчиком по умолчанию события onDelete. 14.11.0
onUpdateЯвляется обработчиком по умолчанию события onUpdate. 14.11.0
prepareCouponDataМетод подготавливает данные по купону. 14.11.0
saveAppliedМетод сохраняет информацию о применённых купонах. 14.11.0
setDiscountCheckListМетод заполняет список правил, чтобы обновить флаг Имеет купоны. 14.11.0
updateUseCouponsМетод обновляет флаг Имеет купоны для списка правил корзины. 14.11.0
validateCouponМетод возвращает валидатор для поля COUPON (код купона). 14.11.0
validateDiscountIdМетод возвращает валидатор для поля DISCOUNT_ID (идентификатор правила). 14.11.0
validateTypeМетод возвращает валидатор для поля TYPE (тип купона). 14.11.0

Поля купонов правил работы с корзиной

Поле Описание Тип Обяз.
ID Идентификатор купона.Int Да
DISCOUNT_ID Идентификатор правила.Int Да
ACTIVE Флаг активности (Y/N). Char(1) Да
ACTIVE_FROM Дата начала активности. Datetime Нет
ACTIVE_TO Дата окончания активности. Datetime Нет
COUPON Код купона.Varchar(32) Да
TYPE Тип купона.Int Да
MAX_USE Максимально возможное количество использований купона.Int Да
USE_COUNT Количество раз использований купона.Int Да
USER_ID Код пользователя – владельца купона.Int Да
DATE_APPLY Дата и время последнего применения купона.Datetime Нет
TIMESTAMP_X Дата и время последнего изменения купона. Datetime Нет
MODIFY_BY Код последнего изменившего купон. Int Нет
DATE_CREATE Дата и время создания купона.Datetime Нет
CREATED_BY Код пользователя, создавшего купон.Int Нет
DESCRIPTION Комментарий к купону. Text Нет


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Алексей Казаков
Сообщение не промодерировано, возможны ошибки и неточности.
ACTIVE_FROMДата начала активности.DatetimeНет
ACTIVE_TOДата окончания активности.DatetimeНет
Момент в том, что тип данных не PHP Datetime, а Bitrix Datetime. Так что если пытаетесь передать объект времени PHP - Вы получите ошибку "Неверно указана дата начала активности". При это в админке вообще передается строка. Соответственно переведите объект датывремени
Код
use    Bitrix\Main\Type\DateTime as BXDateTime;
$now = new DateTime(); //объект PHP

$dateFrom = clone $now;
$dateFromCoupon = clone $now;
$dateFromCoupon = BXDateTime::createFromPhp($dateFromCoupon); //объект Bitrix

Только после этого сможете добавить купон через API =)
1
Андрей Чурсин
\Bitrix\Sale\Internals\DiscountCouponTable::

TYPE_BASKET_ROW - на одну позицию
TYPE_ONE_ORDER - на один заказ
TYPE_MULTI_ORDER - многоразовый
0
Алексей Попович
Пример добавления одного купона к  скидкам корзины:
Код
if(Main\Loader::includeModule('sale')){
   $COUPON = Internals\DiscountCouponTable::generateCoupon(true);;
   $fields = array(
      "DISCOUNT_ID" => "1", // ИД скидки
      "ACTIVE" => "Y",
      "TYPE" => Internals\DiscountCouponTable::TYPE_ONE_ORDER,
      "COUPON" => $COUPON,
      "DATE_APPLY" => false
   );

   $result = Internals\DiscountCouponTable::add($fields);
   if (!$result->isSuccess())
   {
      $res =  $result->getErrorMessages();
   } else {
      $res = $result->getId();
   }

var_dump($COUPON);
var_dump($res);
}
0
Андрей Воробьев
Код
CModule::IncludeModule('sale');
   $coupon = \Bitrix\Sale\Internals\DiscountCouponTable::generateCoupon(true);
   $couponsResult = \Bitrix\Sale\Internals\DiscountCouponTable::add(
         array(
         'COUPON' => $coupon,
         'DISCOUNT_ID' => 11,
         'USER_ID' => $arFields['ID'],
         'ACTIVE_FROM' => null,
         'ACTIVE_TO' => null,
         'TYPE' => \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_ONE_ORDER,
         'MAX_USE' => 1
         )
   );
0
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх