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

События, связанные с изменением записей в корзине

Примечание: перечисленные ниже события устарели с версии 15.5.0, но в продукте сохранена обратная совместимость. Поэтому их можно использовать, если в настройках модуля Интернет-магазин отмечена опция Включить обработку устаревших событий. Либо вы можете использовать события нового ядра.

Событие Описание и параметры МетодС версииДо версии
OnBeforeBasketAdd Вызывается перед добавлением записи в корзину, может быть использовано для отмены или модификации данных.
Параметры
&arFields Массив полей записи корзины

Если добавление товара в корзину выполняется методом Add2BasketByProductID, то через него нельзя изменить название товара. Для этого добавляйте товар в корзину через CSaleBasket::Add.

CSaleBasket::Add8.0.3 15.5.0
OnBasketAdd Вызывается после добавления записи в корзину.
Параметры
ID Идентификатор добавленной записи
arFields Массив полей записи корзины
CSaleBasket::Add8.0.3 15.5.0
OnBeforeBasketUpdate Вызывается перед изменением записи в корзине, может быть использовано для отмены или модификации данных.
Параметры
ID Идентификатор записи в корзине
&arFields Массив полей записи корзины
CSaleBasket::Update8.0.3 15.5.0
OnBasketUpdate Вызывается после изменения записи в корзине.
Параметры
ID Идентификатор записи в корзине
arFields Массив полей записи корзины
CSaleBasket::Update 8.0.315.5.0
OnBeforeBasketUpdateAfterCheck Вызывается перед изменением корзины после проверки массива $arFields.
Параметры
ID Код записи товара в корзине
arFields Массив новых параметров элемента корзины
CSaleBasket::Update 11.5.015.5.0
OnBeforeBasketDelete Вызывается перед удалением записи из корзины, может быть использовано для отмены.
Параметры
ID Идентификатор записи в корзине
CSaleBasket::Delete8.0.315.5.0
OnBasketDelete Вызывается после удаления записи из корзины
Параметры
ID Идентификатор записи в корзине
CSaleBasket::Delete 8.0.315.5.0
OnSetCouponList Добавляет переданные купоны. Событие является системным.

Параметры
intUserID Идентификатор пользователя, для которого передаются купоны.
arCoupons Один купон или массив передаваемых купонов.
arModules Массив идентификаторов модулей, которые должны принять список купонов. Если массив пустой, то обработчик события должен обработать все модули, которые имеют обработчик этого события.
CSaleBasket::DoSaveOrderBasket11.5.015.5.0
OnClearCouponList Удаляет из списка переданные купоны. Событие является системным.

Параметры
intUserID Идентификатор пользователя, для которого передаются купоны.
arCoupons Один купон или массив передаваемых купонов.
arModules Массив идентификаторов модулей, которые должны удалить из списка переданные купоны. Если массив пустой, то обработчик события должен обработать все модули, которые имеют обработчик этого события.
CSaleBasket::DoSaveOrderBasket 11.5.015.5.0
OnDeleteCouponList Полностью удаляет список купонов. Событие является системным.

Параметры
intUserID Идентификатор пользователя, для которого удаляются купоны.
arModules Массив идентификаторов модулей, из которых удаляется список купонов. Если массив пустой, то обработчик события должен обработать все модули, которые имеют обработчик этого события.
CSaleBasket::DoSaveOrderBasket11.5.0 15.5.0


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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Петр Перстнев
Сообщение не промодерировано, возможны ошибки и неточности.
Очень не хватает пояснений к каждому из устаревших (10 версий назад) событий с аналогом из новой версии ядра.
Что, например, является аналогом для каждого из следующих событий?
  1. OnBeforeBasketAdd
  2. OnBasketAdd
  3. OnBeforeBasketUpdate
  4. OnBasketUpdate
1
Роберт Басыров

Автор: Александр Жирков

OnBeforeBasketDelete не работает даже при установленной галочке Включить обработку устаревших событий, т.к. для работы с корзиной вообще другой класс используется (сейчас речь о стандартном компоненте sale.basket.basket).

Аналогичное событие в d7 OnBeforeSaleBasketItemEntityDeleted, пример использования:

Код
Main\EventManager::getInstance()->addEventHandler(
    'sale',
    'OnBeforeSaleBasketItemEntityDeleted',
    'OnBeforeSaleBasketItemEntityDeletedHandler'
);
function OnBeforeSaleBasketItemEntityDeletedHandler(Main\Event $event) {
    return new Main\EventResult(
        Main\EventResult::ERROR,
        new \Bitrix\Sale\ResultError('Нельзя удалить этот товар', 'ANY_ERROR_CODE'),
        'sale'    );}

© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх