Меню

Сгенерировать скидочные купоны, при заказе и отправить на почту

RSS
Сгенерировать скидочные купоны, при заказе и отправить на почту
 
Сгенерировать скидочные купоны, при заказе и отправить на почту

Задача: после того как пользователь сделал заказ, нужно сгенерировать одноразовые купоны для скидки (правила корзины) и отправить, эти купоны, на почту указанную при оформлении заказа. Купоны генерируются и отправляются, только после полного завершения заказа, который оплачен и переведен в статус "Выполнен".
 
Что бы купоны не копились в базе, если они больше не нужны.
Можно запускать периодический скрипт с методом
\Bitrix\Sale\Internals\DiscountCouponTable::onDelete
который будет подчищать использованные купоны.
 
Спасибо за материал! Очень полезно.
Но, для ленивых, подскажите, как поправить под генерацию одного купона?
 
Цитата
Alexey написал:
Сгенерировать скидочные купоны, при заказе и отправить на почту

Как-то так. Не проверял, но вроде бы все правильно.
То есть даже не получаем список товаров заказа. Достатоно знать что он стал в статусе F
Код
if ($arFields == 'F') {
   // Генерируем купон
                $generateCoupon = \Bitrix\Sale\Internals\DiscountCouponTable::generateCoupon(true);
                $fields = array(
                    "DISCOUNT_ID" => "7",
                    "ACTIVE" => "Y",
                    "TYPE" => \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_ONE_ORDER,
                    "COUPON" => $generateCoupon,
                    "DATE_APPLY" => false
                );
                $result = \Bitrix\Sale\Internals\DiscountCouponTable::add($fields);
                $cupon = $generateCoupon;
   // end Генерируем купон

        // Получаем email для отправки купона
        $dbRes = \Bitrix\Sale\PropertyValueCollection::getList([
            'select' => ['CODE', 'VALUE'],
            'filter' => ['=ORDER_ID' => $orderID, '=CODE' => 'EMAIL']
        ]);
        while ($item = $dbRes->fetch()) {
            $userOrderEmail = $item['VALUE'];
        }
        // end Получаем email для отправки купона
        
        // Отправляем письмо
        $EVEN_TYPE = 'SEND_CUPONS';
        $SITE_ID = 's1';
        $arFeedForm = array(
            "EMAIL_TO" => $userOrderEmail,
            "CUPON_LIST" => $cupon
        );
        CEvent::Send($EVEN_TYPE, $SITE_ID, $arFeedForm );
    }
Изменено: Михаил Базаров - 01.09.2022 12:30:22
 
Благодарю, Михаил :) Буду пробовать
 
Подскажите, как создать большое кол-во купонов с заранее заданным форматом кода купона ?
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Привязка к разделам в компоненте "Добавления элементов пользователем"

В системе управления 1С Битрикс есть компонент "Форма добавления / редактирования" - который позволяет пользователям доб...

Добавление своих полей в почтовые шаблоны Битрикс

Иногда нужно внести свои поля в почтовые шаблоны битрикс. Например: добавить имя и номер телефона заказчика в почтовый ш...

Почтовое событие на создание нового элемента инфоблока, через API

Иногда при разработке сайта требуется реализовать функционал добавления элементов инфоблока простыми пользователям.Будет...

Если товар в корзине, поменять кнопку на "В корзине" в новом шаблоне 1С-Битрикс

Ранее я уже делал заметку на эту тему. Тогда, мы меняли значение input-а при добавлении товара в корзину в старых шаблон...

Сгенерировать скидочные купоны, при заказе и отправить на почту

Задача: после того как пользователь сделал заказ, нужно сгенерировать одноразовые купоны для скидки (правила корзины) и ...

FTP доступ на Виртуальной машине Битрикс

Бывает что нужно открыть FTP доступ к заранее известной папке на сайте под управлением 1С Битрикс, который работает на в...

Создание PWA для сайта на 1С-Битрикс

Технология PWA позволяет создать приложение для любого сайта. Не обязательно работающего на 1С-Битрикс, данная заметка ...

Добавление не существующего товара в корзину и заказ, 1С-Битрикс

Задача: нужно добавить в корзину товар, которого не существует в каталоге, с возможностью задать ему произвольные назван...

Старые шаблоны битрикс для простой верстки

Новые версии типового интернет-магазина, который идет в комплекте с Битрикс (от 12 версии и выше), достаточно технологич...