Телеграм: @camouf_ru Почта: mihail@bazarow.ru

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

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
 
Благодарю, Михаил :) Буду пробовать
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Записная книжка разработчика

Примерно с 2013-го года пишу заметки по разработке сайтов на Битрикс.
Вы можете задавать уточняющие вопросы в комментариях- отвечаю или дополняю заметки по возможности.

Получение доступа к железу устройства из Битрикс мобильное приложение Просмотров: 5191 Документация к мобильному приложению 1С-Битрикс очень куцая. В основном описывает функцион... Спойлер в списке новостей Битрикс Просмотров: 10964 Иногда нужно сделать спойлеры в копонентах Битрикс, в основном конечно, имеет смысл при оч... Установка веб-сервера LAMP на ubuntu 20.04 LTS, оптимизированный под ... Просмотров: 10676 В последнее время, плотно пересел c macOS на ubuntu, и решил настроить себе полноценное ра... Хостинг панель BrainyCp: оптимизация под 1С-битрикс Просмотров: 7198 В этой видео-заметке расскажу как установить и оптимизировать панель управления сервером B... Ссылка и название раздела в списке новостей Битрикс Просмотров: 10063 Если нужно вывести название раздела инфоблока в котором находится конкретный элемент/новос... Умный фильтр только на последнем уровне разделов каталога. Просмотров: 9900 Если в разработаываемом магазине или в принципе в каталоге на Битрикс, вы выводите умный ф... Вывести разделы инфоблока в которых находится элемент Битрикс Просмотров: 15559 Если нужно в карточке товара или новости, вывести структуру разделов в котором находится э... Определить местоположение пользователя и показать магазины поблизости... Просмотров: 723 Задача: в мобильном приложении, которое открывает сайт на 1С-Битрикс внутри себя, нужно оп... Данные о текущем разделе каталога вывести в section.php Просмотров: 2446 Если нужно получить какие-то данные о текущем разделе, которых нет в изначальном массиве, ... Использование WebP изображений в 1С-Битрикс (на Битрикс: Веб окружени... Просмотров: 24759 WebP это современный формат сжатия изображений, который позволяет, при правильных настройк... Увидеть файл заказов который передаст Битрикс в 1С Просмотров: 22622 Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей,... Дать пользователю возможность быстро отредактировать материал Просмотров: 4078 На одном из разрабатываемых сайтов, пользователи формирую его контент. После регистрации, ... Отсортировать элементы в Битрикс по свойству привязка к разделам Просмотров: 27140 При создании достаточно сложных интернет-магазинов на Битрикс, иногда встает задача помимо... Показать только один тип цены в каталоге Битрикс Просмотров: 13115 Достаточно часто, при создании сайта на битрикс, можно столкнуться с такой проблемой: на с... Настройка выгрузки товаров в Яндекс Маркет с сайта Битрикс Просмотров: 35826 Настройка выгрузки в Яндекс маркет в формате yml, выполняется достаточно просто, кроме одн... Базовая защита "Битрикс виртуальная машина" от DDoS атак. Просмотров: 4915 Данный способ защиты не панацея, и скорее всего не спасет от профессиональной DDoS атаки, ... Заполнение габаритов товара, после обмена с 1С, из свойств элемента и... Просмотров: 9657 Если Ваш интернет-магазин интегрирован с 1С, скорее всего столкнулись с такой проблемой: 1... Индивидуальные цены в 1С-Битрикс: в каталоге и при оформлении заказа Просмотров: 4235 В этой заметке постараюсь описать процесс реализации индивидуальных цен, для пользователей... Как вывести картинки к разделам на базе _ext меню Просмотров: 6730 Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. ... Показать пользователю накопительную скидку за все сделанные заказы, и... Просмотров: 1463 Задача: показать, текущему авторизованному, пользователю сумму всех выполненных заказов и ...