ТЗ: Интеграция калькулятора October CMS с CRM Битрикс24
1. Глобальная задача
Настроить двусторонний обмен данными между существующим сайтом на October CMS и облачной/коробочной CRM Битрикс24 по REST API без изменения текущей SEO-структуры сайта.
2. Передача заказов из калькулятора (Сайт ➔ CRM Битрикс24)
При клике на кнопку «Заказать» в калькуляторе, JavaScript-скрипт должен валидировать форму, собирать все выбранные параметры и отправлять AJAX-запрос на бэкенд October CMS. Бэкенд должен сформировать и отправить запрос в Битрикс24 через метод crm.deal.add (создание сделки) и crm.lead.add (если требуется лид).
Менеджер в CRM должен увидеть:
Контактные данные: Имя, Телефон, Email. Детали заказа в Комментарии или Кастомных полях: Форма пластинки (Классическая, Звезда, Сердце и т.д.). Размер (7", 10", 12" Дюймов). Цвет пластинки (Прозрачный, Черный и т.д.). Скорость (33 или 45 оборотов). Дополнительное время (Сторона А: Х мин, Сторона B: Y мин). Работа дизайнера (Тип услуги). Печать конверта/лейблов (Тип услуги). Магнитная лента (Да/Нет). Товарные позиции сделки (Метод crm.deal.productrows.set): В сделку должны прикрепиться товары из каталога Битрикса (или создаться текстовые позиции), формирующие финальную стоимость: Пластинка [Размер + Форма + Цвет] — 1 шт. = Базовая цена. Дополнительные минуты — Х шт. = Х * 100 руб. Услуга дизайна/печати — 1 шт. = Цена услуги. 3. Синхронизация каталога и цен (Битрикс24 ➔ Сайт October CMS)
Чтобы управлять ценами и доступностью заготовок напрямую из CRM, необходимо реализовать обновление данных на сайте при изменении товаров в Битрикс24.
Вариант реализации (через Webhooks):
В Битрикс24 настраивается исходящий вебхук на событие «Изменение товара в каталоге» (ONCRMPRODUCTUPDATE). На стороне October CMS создается URL-обработчик (API-endpoint), который принимает JSON от Битрикса. При изменении цены товара в CRM, Битрикс шлет вебхук ➔ сайт ловит его ➔ обновляет цену соответствующей позиции в базе данных сайта. Если товар в CRM деактивирован (или остаток равен 0), сайт временно скрывает этот цвет/форму из выпадающего списка калькулятора