Меню

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

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С-Битрикс

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

Настройка: Redis кеширование для 1С-Битрикс, под Ubuntu

Задача: имеем полностью настроенный и оптимально сконфигурированный веб-сервер под управлением Ubuntu 20.04 на котором з...

Обновление цен и остатков из текстового файла, в каталоге 1C-Битрикс.

Задача: прочитать txt-файл с ценами и остатками, который выгружает программа учета по FTP, и обновить эти данные в катал...

Ajax форма обратной связи, реализация в битрикс

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

Кастомизация компонента восстановления пароля bitrix:system.auth.forgotpasswd

Достаточно часто спрашивают как кастомизировать компонент восстановления пароля пользователя. Типовая задача, это измени...

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

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

Создание блога с комментариями, оценками и просмотрами на сайте с 1С-Битрикс

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

Следующая/предыдущая новость/статья при просмотре подробной в Битрикс

Странное дело, в Битрикс по умолчанию, отсутсвует функционал для навигации внутри новостей или статей типа: "Следующая/...

Работа с HTTP-запросами в Bitrix: Обзор возможностей класса \Bitrix\Main\HttpRequest

Класс \Bitrix\Main\HttpRequest, является наследником класса Request, представляет собой мощный инструмент для работы с д...