На B2B-сайтах цены часто не публикуются открыто: они зависят от объёма, региона, условий договора. Вместо кнопки «Купить» нужна кнопка «Запросить цену» — RFQ (Request for Quotation). Стандартный модуль sale не поддерживает эту логику: он требует публичную цену и мгновенную оплату. Мы на практике разработали кастомный RFQ-модуль, который уже обрабатывает до 200 заявок в день у дистрибьютора промышленного оборудования. В этом кейсе время ответа сократилось с 3 дней до 4 часов, а потеря заявок — с 25% до 0%. Получите консультацию инженера: как внедрить RFQ на вашем проекте.
Какую боль решает RFQ-модуль?
Без RFQ менеджеры теряют запросы в почте, время ответа затягивается до 2–3 дней, а клиенты уходят к конкурентам. В проекте дистрибьютора промышленного оборудования мы увидели это наглядно: 4000 SKU без публичных цен, ручной обмен email приводил к потере 25% запросов. RFQ-модуль автоматизирует весь процесс: заявка → обработка → КП → заказ.
Архитектура RFQ: таблицы и статусная машина
RFQ-запрос проходит несколько статусов: new → processing → quoted → accepted → rejected → ordered. После accepted клиент может оформить заказ по согласованной цене через стандартный модуль sale.
Таблица заявок bl_rfq:
CREATE TABLE bl_rfq ( id SERIAL PRIMARY KEY, user_id INT REFERENCES b_user(ID), status VARCHAR(30) DEFAULT 'new', manager_id INT, comment TEXT, manager_note TEXT, created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP DEFAULT NOW(), expires_at TIMESTAMP, order_id INT ); Позиции заявки bl_rfq_items:
CREATE TABLE bl_rfq_items ( id SERIAL PRIMARY KEY, rfq_id INT REFERENCES bl_rfq(id) ON DELETE CASCADE, product_id INT NOT NULL, sku_id INT, quantity NUMERIC(10,3), unit VARCHAR(20), price_requested NUMERIC(12,2), price_quoted NUMERIC(12,2), comment TEXT ); Статусная машина реализована через конечный автомат: каждый статус имеет правила перехода и права доступа. Например, переход из new в processing доступен только менеджеру, а в quoted — только после заполнения всех price_quoted. Для статусов accepted и rejected отправляются уведомления клиенту.
Как работает RFQ-процесс?
- Клиент добавляет товары в RFQ-корзину и отправляет заявку.
- Менеджер получает уведомление и обрабатывает заявку в админ-панели.
- Менеджер выставляет цены на каждую позицию и переводит заявку в статус
quoted. - Клиент получает уведомление, заходит в личный кабинет и принимает или отклоняет предложение.
- При принятии создаётся заказ по согласованным ценам.
Кнопка «Запросить цену» заменяет «В корзину» на карточках товаров — либо сосуществует, если часть товаров имеет публичную цену. Логика определяется в result_modifier.php компонента catalog.element:
$showRFQ = ($arResult['ITEM_PRICES'][0]['PRICE'] ?? 0) === 0 || $arResult['ITEM']['PROPERTIES']['PRICE_ON_REQUEST']['VALUE'] === 'Y'; $arResult['SHOW_RFQ'] = $showRFQ; Данные RFQ-корзины хранятся в сессии или в таблице bl_rfq со статусом draft. При отправке статус меняется на new, менеджер получает уведомление.
Интеграция с CRM и уведомления
При переходе заявки в статус new создаётся сделка в CRM через REST API crm.deal.add. Товарные позиции передаются через crm.deal.productrows.set. Уведомление менеджеру — через \Bitrix\Im\Notify::send() и email с шаблоном RFQ_NEW_REQUEST.
Менеджер в административном интерфейсе заполняет price_quoted, ставит статус quoted. Клиент получает email со ссылкой на личный кабинет. При принятии статус accepted, затем создаётся заказ в b_sale_order с фиксированными ценами.
Почему RFQ выгоднее ручной обработки?
| Критерий | Ручной email-обмен | Наш RFQ-модуль |
|---|---|---|
| Время ответа | 2–3 дня | 4 часа |
| Потеря заявок | 25% | <1% |
| Интеграция с CRM | Вручную | Автоматически |
| Статусная машина | Отсутствует | 6 статусов |
Кейс из нашей практики: дистрибьютор промышленного оборудования
Ситуация: 4000 SKU без публичных цен, менеджеры обрабатывали запросы через email вручную — время ответа 2–3 дня, 25% запросов терялось.
Реализация:
- RFQ-корзина с возможностью добавить несколько товаров
- Автоматическое создание сделки в Битрикс24 CRM при отправке заявки
- Личный кабинет покупателя с историей заявок и статусами
- Email-уведомления менеджеру (немедленно) и клиенту (при смене статуса)
- Конвертация принятого КП в заказ одной кнопкой
Результат: время обработки заявки сократилось до 4 часов (в 12 раз быстрее), потеря запросов — 0%. Система обрабатывает до 200 заявок в день без сбоев.
Процесс разработки и сроки
| Этап | Срок |
|---|---|
| Проектирование схемы и статусной машины | от 2 дней |
| Бэкенд: таблицы, контроллеры, агенты | от 4 дней |
| Фронтенд: кнопка, RFQ-корзина, ЛК | от 4 дней |
| Интеграция с CRM | от 2 дней |
| Email-уведомления и тестирование | от 2 дней |
Что входит в разработку
- Проектирование статусной машины RFQ и модели данных
- Замена/дополнение кнопки «В корзину» для товаров без публичной цены
- RFQ-корзина с AJAX-управлением позициями
- Административный интерфейс обработки заявок с выставлением цен
- Интеграция с CRM-модулем Битрикс24 (сделки, товарные позиции)
- Раздел истории заявок в личном кабинете покупателя
Гарантируем стабильность решения на основе многолетнего опыта разработки на Битрикс. Закажите разработку RFQ-модуля — это сэкономит вашим менеджерам часы ручной работы. Оценим ваш проект и предложим сроки под ключ. Свяжитесь с нами, чтобы обсудить детали.







