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

При навантаженні 500+ замовлень на день кустарна реалізація подарункових сертифікатів дає збої: дублі кодів, пропущені листи, злетілі купони. Ми переписували модулі для 15 проєктів — помилки повторювалися: неправильні коди, відсутність часткового погашення, проблеми з фіскалізацією. Продумана архіте
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування електронних сертифікатів у 1С-Бітрікс: код, купон, PDF
Простий
~1 день

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

Часті запитання

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

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

При навантаженні 500+ замовлень на день кустарна реалізація подарункових сертифікатів дає збої: дублі кодів, пропущені листи, злетілі купони. Ми переписували модулі для 15 проєктів — помилки повторювалися: неправильні коди, відсутність часткового погашення, проблеми з фіскалізацією. Продумана архітектура знижує витрати на підтримку на 20–30% і окупається за 2–3 місяці. У 95% випадків проблеми виникають через некоректне налаштування купонів: середній час виправлення одного інциденту — 4 години. Кастомний модуль працює в 2-3 рази швидше за готові рішення з Маркетплейсу, особливо при навантаженні понад 500 замовлень на день. Розберемо, як налаштувати електронні сертифікати на 1С-Бітрікс від товару до балансу, використовуючи штатні механізми та кастомні доробки. Середня вартість такого рішення — від 500$ до 2000$ залежно від обсягу.

Як генерується унікальний код?

Налаштування продажу електронних сертифікатів: від товару до балансу. Електронний сертифікат створюється як звичайний елемент інфоблоку, але з особливостями. Тип товару — простий товар без складського обліку (кількість не обмежена, знято галочку «Кількісний облік»). Торгові пропозиції створіть за номіналами: 1000, 2000, 5000 гривень. Кожна пропозиція має свою ціну, рівну номіналу. Властивість «Тип доставки» задайте значенням «Електронна доставка», щоб при оформленні замовлення не запитувалася адреса. У картці товару додайте властивість інфоблоку «Номінал сертифіката» (тип — число). Воно знадобиться обробнику при генерації купона.

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

  1. Перевірити, що в замовленні є товар з розділу «Сертифікати» (за ID розділу інфоблоку).
  2. Згенерувати код.
  3. Створити купон через 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. Лист надходить на email покупця із замовлення. Якщо в замовленні вказано окремий email отримувача (поле «Email отримувача подарунка») — лист дублюється туди.

Електронні сертифікати замість купонів

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

Параметр Штатна система купонів Кастомний модуль
Часткове погашення Ні Так
Історія використання Ні Так
Відображення балансу в ОК Ні Так
Інтеграція з 1С Складно, через API Готові обробники
Швидкодія при 500+ замовленнях Обмежена Висока (у 2-3 рази швидше)

Для часткового погашення знадобиться доробка:

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

Якщо сума замовлення більша або дорівнює номіналу — купон деактивується через DiscountCouponTable::update() з полем ACTIVE = N. Баланс купона відображається в особистому кабінеті покупця через кастомний компонент, який читає дані з b_certificate_usage і поточне правило кошика. В одному проєкті ми реалізували такий механізм для мережі магазинів електроніки — він обробляв 3000 операцій на день без жодного збою за 3 роки роботи.

Як налаштувати часткове погашення?

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

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

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

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

Готові модулі з Маркетплейсу часто не підтримують часткове погашення, інтеграцію з 1С і кастомізацію шаблону PDF. Вони працюють лише зі сценаріями 100% списання. Якщо ваш бізнес потребує гнучкості, краще написати власний обробник. Ми так зробили для мережі магазинів електроніки — рішення окупилося за 2 місяці.

Типові помилки при налаштуванні
  • Невірно задано тип купона: замість «На серію замовлень» вказано «На одне замовлення» — купон списується повністю.
  • Відсутність кешування запитів до таблиці купонів — при 500+ замовленнях навантаження на БД зростає в 10 разів.
  • Неправильний ID розділу інфоблоку в обробнику — генерація коду не спрацьовує.
  • Ігнорування обробника OnSaleCancelOrder — при скасуванні замовлення код не звільняється.

Що входить у послугу

  • Розробка модуля для генерації кодів, купонів та історії використання.
  • Інтеграція з платіжними системами та 1С через CommerceML.
  • Шаблон PDF-документа з QR-кодом.
  • Налаштування поштових подій та відправка листа з вкладенням.
  • Документація та передача вихідного коду.
  • Технічна підтримка протягом місяця після запуску.

Ми маємо 5-річний досвід розробки модулів для 1С-Бітрікс, гарантуємо якість та надаємо підтримку. Вартість розробки починається від 500$ і залежить від складності. Зверніться до нас для оцінки вашого проєкту — ми підготуємо комерційну пропозицію протягом одного робочого дня. Замовте розробку модуля — терміни від 20 годин. Наші сертифіковані інженери забезпечать коректну фіскалізацію та інтеграцію з будь-якими платіжними системами. Отримайте консультацію за вашим сценарієм.