Розробка модуля швидкого замовлення 1С-Бітрікс

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

Розробка модуля швидкого замовлення для 1С-Бітрікс

Швидке замовлення — це шлях до покупки в один крок: користувач вводить лише ім'я і телефон, решту бере на себе менеджер. Конверсія у такої схеми вища, ніж у повному оформленні замовлення, особливо на мобільних пристроях. У Бітрікс немає готового компонента швидкого замовлення — його роблять поверх стандартного модуля sale.

Де розташовується модуль

Модуль реєструється в local/modules/vendor.quickorder/. Ключові файли:

  • lib/QuickOrderHandler.php — бізнес-логіка створення замовлення
  • lib/Notification.php — відправка сповіщень
  • components/vendor/quickorder.form/ — компонент форми
  • install/db/install.sql — створення таблиці логів

Створення замовлення через Sale API

Швидке замовлення в Бітрікс реалізується через API модуля sale. Товар додається в корзину програмно, потім створюється замовлення:

use Bitrix\Sale\Order;
use Bitrix\Sale\Basket;
use Bitrix\Sale\BasketItem;

$order = Order::create(SITE_ID, null); // null = гостьове замовлення
$order->setPersonTypeId(1);

$basket = Basket::create(SITE_ID);
$item = $basket->createItem('catalog', $productId);
$item->setFields([
    'QUANTITY'         => 1,
    'CURRENCY'         => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
    'LID'              => SITE_ID,
    'PRODUCT_PROVIDER_CLASS' => \CCatalogProductProvider::class,
]);

$order->setBasket($basket);

$propertyCollection = $order->getPropertyCollection();
$propPhone = $propertyCollection->getPhone();
if ($propPhone) {
    $propPhone->setValue($phone);
}

$order->setField('USER_DESCRIPTION', $comment);
$order->save();

Статус нового замовлення встановлюється в «Новий» (зазвичай N) або в спеціальний статус «Швидке замовлення», який створюється окремо в довіднику статусів модуля sale.

Таблиця логів швидких замовлень

Крім створення замовлення в системі, пишемо лог у окрему таблицю b_quickorder_log — це дозволяє будувати статистику без розбору всієї таблиці b_sale_order:

Поле Тип Назначення
ID int auto_increment
ORDER_ID int ID створеного замовлення в b_sale_order
PRODUCT_ID int ID товара
PHONE varchar(20) Телефон
NAME varchar(255) Ім'я
SOURCE_URL varchar(2048) Сторінка, з якої оформлено замовлення
UTM_SOURCE varchar(100) UTM-мітки
CREATED_AT datetime
PROCESSED_AT datetime Коли менеджер взяв в роботу

Валідація на сервері

Форма швидкого замовлення мінімальна — ім'я і телефон. Валідація телефону на сервері через регулярний вираз з урахуванням форматів: +7 (999) 123-45-67, 89991234567, +375 29 123-45-67. Після нормалізації зберігаємо у форматі E.164.

Захист від флуда: перевіряємо в таблиці b_quickorder_log, скільки замовлень з цієї IP за останню годину. При перевищенні порогу (наприклад, 5 замовлень) повертаємо помилку без створення замовлення.

Сповіщення

Після успішного створення замовлення спрацьовують два сповіщення:

Для менеджера — поштова подія QUICKORDER_NEW з шаблоном, що включає ім'я клієнта, телефон, назву та фото товара, посилання на замовлення в адміністративній частині. Додатково можна налаштувати SMS через API інтегрованого SMS-провайдера.

Для клієнта — необов'язкове SMS-підтвердження: «Ваше замовлення прийнято, менеджер зв'яжеться з вами протягом 15 хвилин».

Інтеграція з CRM

Якщо на проекті підключений модуль CRM (власний або Bitrix24), при створенні швидкого замовлення автоматично створюється лід. Дані передаються через \Bitrix\Crm\LeadTable::add() або через REST API Bitrix24 (crm.lead.add). Поле SOURCE_ID ліда встановлюється в значення «Швидке замовлення з сайту».

Кнопка на карточці товара

Кнопка «Купити в 1 клік» розташовується в шаблоні компонента bitrix:catalog.element. При кліку відкривається модальне вікно з формою — або через bitrix:sale.order.ajax з кастомним шаблоном, або через власний AJAX-компонент. Модальне вікно не повинно перезавантажувати сторінку і обов'язково мати коректно при включеному кешуванні компонента карточки товара (форма підгружається окремим некешованим AJAX-запитом).

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

Масштаб Склад Тривалість
Базовий Форма, створення замовлення в sale, email-сповіщення менеджеру 3–4 дні
Стандартний + Антифлуд, лог в БД, UTM-параметри, SMS-сповіщення 6–8 днів
Розширений + Інтеграція з CRM, аналітика за джерелами, A/B тест форм 10–13 днів