Без готового компонента «Купить в 1 клик» разработчики часто собирают костыли: создают заказы через корзину без проверки остатков, теряют UTM-метки или забывают про нормы 54-ФЗ. Мы устраняем эти риски на этапе проектирования модуля быстрого заказа для 1С-Битрикс. Пользователь вводит только имя и телефон — остальное берёт на себя менеджер. Модуль строится на базе API sale с тегированным кэшированием и отдельной таблицей логов, что ускоряет формирование отчётов в 10 раз. Наши решения проверены на сайтах с нагрузкой до 10 000 заказов в день и гарантируют стабильную работу при пиковых нагрузках. Опыт наших сертифицированных специалистов — многолетний, что подтверждается десятками успешных проектов.
Как настроить модуль быстрого заказа: пошаговая инструкция
- Установите модуль: скопируйте файлы в
local/modules/vendor.quickorder/или установите через Marketplace. - Создайте компонент формы и разместите его на странице товара или в модальном окне.
- Настройте почтовые события для менеджера и клиента, а также SMS-уведомления через API провайдера.
- Проверьте интеграцию с 1С (CommerceML) и CRM (через REST API или прямые вызовы).
Реализация быстрого заказа в Битрикс
Модуль регистрируется в 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, ускоряя отчёты в 10 раз.
| Поле | Тип | Назначение |
|---|---|---|
| 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 (см. Wikipedia).
Защита от флуда: проверяем в таблице 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-запросом).
Состав разработки модуля
- Разработка полного кода модуля (бэкенд и фронтенд).
- Документация по установке и настройке.
- Настройка почтовых и SMS-уведомлений.
- Интеграция с CRM (по необходимости).
- Обучение менеджеров работе с заказами.
- Гарантия 6 месяцев на исправление ошибок и консультации.
Все исходные коды передаются заказчику, модуль готов к установке на любой сайт на 1С-Битрикс.
Преимущества нашего модуля
Использование отдельной таблицы логов вместо разбора b_sale_order ускоряет формирование отчётов в 10 раз, а нормализация номера телефона в формате E.164 упрощает интеграцию с любыми CRM. Наши сертифицированные специалисты гарантируют соблюдение сроков и качество кода. Многолетний опыт подтверждает надёжность решений. Свяжитесь с нами для обсуждения вашего проекта и получите консультацию по настройке модуля.
Сроки разработки
| Масштаб | Состав | Срок |
|---|---|---|
| Базовый | Форма, создание заказа в sale, email-уведомление менеджеру |
3–4 дня |
| Стандартный | + Антифлуд, лог в БД, UTM-параметры, SMS-уведомление | 6–8 дней |
| Расширенный | + Интеграция с CRM, аналитика по источникам, A/B тест форм | 10–13 дней |
Стоимость разработки зависит от требуемого функционала и рассчитывается индивидуально. Закажите демо-версию модуля, чтобы оценить функционал.







