Настройка продажи электронных сертификатов на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка продажи электронных сертификатов на 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка продажи электронных сертификатов на 1С-Битрикс

Подарочные сертификаты в интернет-магазине на 1С-Битрикс — это не просто товар с красивой картинкой. За ним стоит генерация уникального кода, формирование PDF, автоматическая отправка покупателю и механизм активации через купонную систему модуля sale. Разберём реализацию от создания товара до частичного погашения баланса.

Сертификат как товар каталога

Электронный сертификат создаётся как обычный элемент инфоблока каталога, но с особенностями:

  • Тип товара — простой товар без складского учёта (количество не ограничено, галочка «Количественный учёт» снята)
  • Торговые предложения — создайте SKU по номиналам: 1000, 2000, 5000 рублей. Каждое предложение имеет свою цену, равную номиналу
  • Свойство «Тип доставки» — задайте значение «Электронная доставка», чтобы при оформлении заказа не запрашивался адрес

В карточке товара добавьте свойство инфоблока «Номинал сертификата» (тип — число). Оно понадобится обработчику при генерации купона.

Генерация уникального кода

При успешной оплате заказа обработчик события OnSalePayOrder генерирует уникальный код сертификата. Код формируется через Bitrix\Main\Security\Random::getString(12) — 12 символов из набора A-Z, 0-9.

Логика обработчика:

  1. Проверить, что в заказе есть товар из раздела «Сертификаты» (по ID раздела инфоблока)
  2. Сгенерировать код
  3. Создать купон через API Bitrix\Sale\Internals\DiscountCouponTable::add() с привязкой к правилу корзины
  4. Сохранить код и номинал в свойствах заказа (пользовательские поля UF_CERTIFICATE_CODE, UF_CERTIFICATE_AMOUNT)

Купон создаётся с типом «На серию заказов» и максимальным количеством применений — это обеспечит частичное использование.

Формирование PDF

Для генерации PDF-сертификата используется библиотека mPDF или Dompdf, подключаемая через Composer. Шаблон сертификата — HTML-файл с подстановкой переменных:

  • Код сертификата
  • Номинал
  • Дата выпуска и срок действия
  • QR-код для быстрой активации (генерируется через chillerlan/php-qrcode или аналог)

HTML-шаблон хранится в /local/templates/certificate/ и содержит инлайн-стили (mPDF не поддерживает внешние CSS полноценно). Фоновое изображение задаётся через CSS background-image с абсолютным путём к файлу на сервере.

Результат сохраняется в /upload/certificates/ с именем по коду сертификата. Доступ к директории закрывается через .htaccess — файл отдаётся только через PHP-скрипт с проверкой авторизации.

Отправка по email

Почтовое событие CERTIFICATE_CREATED создаётся в разделе Настройки → Почтовые события. Шаблон письма содержит:

Макрос Значение
#CODE# Код сертификата
#AMOUNT# Номинал
#VALID_UNTIL# Срок действия
#PDF_LINK# Ссылка на скачивание PDF

Отправка инициируется из того же обработчика OnSalePayOrder после генерации PDF. Письмо уходит на email покупателя из заказа. Если в заказе указан отдельный email получателя (поле «Email получателя сертификата») — письмо дублируется туда.

Активация и правила корзины

Механизм погашения сертификата работает через модуль sale.discount. При генерации купона создаётся правило корзины:

  • Тип скидки — фиксированная сумма, равная номиналу сертификата
  • Привязка — купон, код которого совпадает с кодом сертификата
  • Область применения — весь заказ (или конкретные разделы каталога, если сертификат категорийный)

Покупатель вводит код сертификата в поле «Купон» при оформлении заказа. Система применяет скидку на сумму номинала.

Частичное использование и баланс

Штатная купонная система Битрикс не поддерживает баланс купона из коробки. Для частичного погашения потребуется доработка:

  • Обработчик OnSaleOrderPaid проверяет, использован ли купон сертификата в оплаченном заказе
  • Если сумма заказа меньше номинала — вычисляет остаток
  • Обновляет правило корзины: новая сумма скидки = остаток
  • Записывает историю использования в отдельную таблицу (custom-таблица b_certificate_usage)

Если сумма заказа больше или равна номиналу — купон деактивируется через DiscountCouponTable::update() с полем ACTIVE = N.

Баланс сертификата отображается в личном кабинете покупателя через кастомный компонент, который читает данные из b_certificate_usage и текущее правило корзины.

Срок действия

Срок задаётся в правиле корзины через поля ACTIVE_FROM и ACTIVE_TO. Стандартный срок — 12 месяцев с момента покупки. По истечении срока купон автоматически перестаёт применяться, а в личном кабинете сертификат отображается как «Истёк».

Рабочая реализация сертификатов потребует создания модуля или хотя бы набора обработчиков в init.php, кастомной таблицы для истории и шаблона PDF. Объём работы — 20–30 часов в зависимости от требований к дизайну и бизнес-логике.