Налаштування продажу електронних сертифікатів на 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування продажу електронних сертифікатів на 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування продажу електронних сертифікатів у 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-скрипт із перевіркою авторизації.

Відправлення по електронній пошті

Поштова подія CERTIFICATE_CREATED створюється у розділі Налаштування → Поштові події. Шаблон листа містить:

Макрос Значення
#CODE# Код сертифікату
#AMOUNT# Номінал
#VALID_UNTIL# Термін дії
#PDF_LINK# Посилання на завантаження PDF

Відправлення ініціюється з того самого обробника OnSalePayOrder після генерації PDF. Лист відправляється на електронну пошту покупця із замовлення. Якщо в замовленні вказана окрема адреса електронної пошти отримувача (поле «Електронна пошта отримувача сертифікату») — лист дублюється туди.

Активація та правила кошика

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

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

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

Часткове використання та залишок

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

  • Обробник OnSaleOrderPaid перевіряє, чи використано купон сертифікату в оплаченому замовленні
  • Якщо сума замовлення менше номіналу — обчислює залишок
  • Оновлює правило кошика: нова сума знижки = залишок
  • Записує історію використання в окрему таблицю (користувацька таблиця b_certificate_usage)

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

Залишок сертифікату відображається в особистому кабінеті покупця через користувацький компонент, який читає дані з b_certificate_usage та поточного правила кошика.

Термін дії

Термін встановлюється в правилі кошика через поля ACTIVE_FROM та ACTIVE_TO. Стандартний термін — 12 місяців з моменту покупки. По закінченню терміну купон автоматично перестає застосовуватися, а в особистому кабінеті сертифікат відображається як «Істік».

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