Розробка калькулятора з відправкою результату на email 1С-Бітрікс

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

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

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

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

  • 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

Розробка калькулятора з відправкою результату на email 1С-Бітрікс

Калькулятор з відправкою результату — це форма, яка обчислює вартість послуги або підбирає конфігурацію, а потім надсилає підсумок користувачу на пошту та менеджеру для обробки. Ключовий момент: відправка «користувачу на email» технічно тривіальна, але на практиці там приховані проблеми — листи потрапляють до спаму, шаблон листа виглядає як plain text із 90-х, і немає механізму повторного відправлення при недоставці.

Архітектура калькулятора

Калькулятор на Бітрікс складається з трьох частин:

Клієнтська логіка (JavaScript). Реактивний перерахунок значень при зміні параметрів користувачем. Жодної залежності від сервера для самого розрахунку — все працює у браузері. Це критично для UX: користувач не повинен чекати мережевого запиту при перетягуванні слайдера.

Серверний обробник (PHP/Бітрікс). Приймає параметри розрахунку, валідує їх, за потреби підтягує актуальні дані з каталогу (ціни, наявність) і формує підсумкові дані для листа. Саме на цьому рівні фіксуються реальні ціни — те, що прийшло з клієнта, можна підробити.

Система відправки email. У Бітрікс для цього використовується модуль main з класом CEvent та шаблонами поштових подій.

Поштові події у Бітрікс

Правильний спосіб відправки email у Бітрікс — через механізм поштових подій, а не через mail() або CEmail::Send() напряму. Це надає можливість редагувати шаблони через адміністративний інтерфейс, вести лог відправок та використовувати чергу.

Створення події та шаблону:

// Реєстрація типу події (один раз при встановленні)
CEventType::Add([
    'LID'          => 'ru',
    'EVENT_NAME'   => 'CALCULATOR_RESULT',
    'NAME'         => 'Результат калькулятора',
    'DESCRIPTION'  => '#RESULT_HTML# #CLIENT_EMAIL# #MANAGER_EMAIL#',
]);

// Створення шаблону листа в Бітрікс:
// Налаштування → Пошта → Поштові шаблони → Додати

// Відправка події
CEvent::Send('CALCULATOR_RESULT', 's1', [
    'CLIENT_EMAIL'  => $clientEmail,
    'MANAGER_EMAIL' => '[email protected]',
    'RESULT_HTML'   => $resultHtml,
    'CALC_PARAMS'   => $paramsText,
    'TOTAL_PRICE'   => number_format($totalPrice, 0, '.', ' ') . ' ₽',
]);

HTML-шаблон листа

Лист з результатом калькулятора має бути зручним для читання і на телефоні, і у веб-клієнті. Для цього:

  • Верстка лише на <table> — єдиний надійний спосіб для email-клієнтів
  • Всі стилі інлайн (Gmail ігнорує <style> у <head>)
  • Таблиця результату — список параметрів розрахунку з виділеною підсумковою сумою
  • Кнопка «Оформити замовлення» або «Зв'язатися з нами» з посиланням

Для генерації HTML-листа з даних розрахунку використовується шаблон у Бітрікс (редагується через Налаштування → Пошта → Поштові шаблони) зі змінними #RESULT_HTML#, які заповнюються перед викликом CEvent::Send.

Проблеми доставки та їх вирішення

Листи у спамі. Причини: відправка з домену без SPF/DKIM записів, використання mail() замість SMTP, вміст листа з тригерними словами. Рішення: налаштування SMTP через модуль main (Налаштування → Електронна пошта → SMTP) з використанням корпоративного поштового сервера або транзакційного сервісу (SendGrid, Mailgun, Unisender).

Дублювання відправки. При натисканні кнопки «Отримати результат» кілька разів або при повільному з'єднанні — форма відправляється кілька разів. Рішення: disabled на кнопці після першого кліку + дедуплікація на сервері за хешем параметрів розрахунку + окремий запис у b_event з перевіркою.

Немає історії відправок. Стандартний CEvent::Send логує в b_event_log. Для перегляду лога: Налаштування → Діагностика → Черга поштових повідомлень. Але через N днів лог очищується агентом. Для довгострокового зберігання — зберігаємо параметри розрахунку та email в окрему highload-таблицю або в b_hl_* таблицю користувацького HL-блока.

Кейс: калькулятор вартості ремонту квартири

Клієнт — будівельна компанія. Калькулятор: тип ремонту (косметичний/капітальний/дизайнерський), площа, кількість кімнат, додаткові роботи. Результат — діапазон вартості та термін.

Завдання: клієнт отримує PDF з деталізацією кошторису на email, менеджер — сповіщення у Telegram і запис у CRM.

Реалізація: сервер генерує PDF через бібліотеку mPDF з логотипом компанії та деталізацією за статтями робіт. PDF додається до листа через CEventMessage з вкладенням. Паралельно — POST-запит до Telegram Bot API і створення ліда в Бітрікс24 через crm.lead.add. Все це — в одному обробнику форми, з логуванням у HL-блок calculator_leads.

Терміни розробки

  • Базовий калькулятор + відправка email (клієнт + менеджер) — 3–5 днів
    • Генерація PDF — +1–2 дні
    • Інтеграція з CRM Бітрікс24 — +1 день
    • Telegram-сповіщення — +0,5 дня
    • Історія розрахунків в особистому кабінеті — +2–3 дні