Bitrix и правила работы с корзиной — добавляем новое действие 1

Решение протестировано на Bitrix 18.1.8 и позволяет создать новое действие в Правилах работы с корзиной.

У текущей версии сайта есть стандартный набор действий:

  • Изменить стоимость товаров в корзине
  • Изменить стоимость доставки
  • Предоставить подарок

Мы же добавим новое действие в рамках API Bitrix и назовём его Изменить бонусный баланс

Данное действие будет начислять дополнительные бонусны баллы на личный счёт покупателя Битрикс.

1. Создадим отдельный класс по образу и подобию Bitrix но где нибудь в отдельном месте

За образец класса взят исходный код Bitrix действия для изменения стоимости доставки, но изменены лишь некоторые методы, которые прокомментированы.

Суть основной функции Generate этого класса в том что формируется PHP код, который затем будет обёрнут в callable функцию и сохранён в таблицу b_sale_discount в столбец APPLICATION. По этому в этой функции мы добавляем подключение файла с классом обработчиком и затем вызов этого обработчика который уже должен выполнить какие либо действия. В обработчик по ссылке передаётся массив заказа и параметры сохранённого действия.

2. Об созданном классе должен узать модуль Bitrix — Sale, по этому в файл init.php нужно добавить строчку

 

В обработчике вы уже вольны сделать любые манипуляции с массивом заказа, в нашем случае мы просто дописываем туда некоторый ключ массива что бы его потом обработать в компоненте заказа.

Если вы так же хотите отловить применённое действие в компоненте заказа, то достаточно обратится к объекту заказа следующим образом:

В результате получите список применёных правил корзины к заказу до момента его сохранения.

 

One Comment

  1. Как создать действие запрета на заказ для отдельный группы пользователей, если доступное количество торгового предложения равно 1

    Александр

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *