Разработка модуля быстрого заказа 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка модуля быстрого заказа 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • 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С-Битрикс

Быстрый заказ — это путь к покупке в один шаг: пользователь вводит только имя и телефон, остальное берёт на себя менеджер. Конверсия у такой схемы выше, чем у полноценного оформления заказа, особенно на мобильных устройствах. В Битрикс нет готового компонента быстрого заказа — его делают поверх стандартного модуля 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 (собственный или Битрикс24), при создании быстрого заказа автоматически создаётся лид. Данные передаются через \Bitrix\Crm\LeadTable::add() или через REST API Битрикс24 (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 дней