Корзина становится проверяемой сделкой
  1. Снимок

    Состав и цена при отправке

  2. Очередь

    Независимая доставка

  3. Сделка

    Контакт, товары и источник

  4. Повтор

    Тот же ключ без новой записи

Заявка из корзины должна передавать в Битрикс24 состав заказа, количество, цену, валюту, контакт и источник обращения. Для надёжной интеграции сайт сначала сохраняет снимок корзины, затем создаёт или находит связанную сделку и записывает товарные строки. Повтор доставки не должен создавать новую сделку или менять уже согласованный заказ без понятного правила.

Согласуйте, что считается заявкой

Отправка корзины на расчёт и оплаченный заказ — разные события. В первом случае сумма может быть предварительной, во втором она связана с платёжной операцией. Менеджеру нужно видеть статус, а не угадывать его по названию сделки. В техническом задании укажите, какие действия создают обращение и какие только обновляют уже существующее.

Корзина меняется до подтверждения: посетитель добавляет товар, выбирает вариант, применяет скидку. В CRM передают состояние на момент принятия заявки сервером. Если обработчик заново читает текущий каталог через минуту, цена или остаток уже могут отличаться. Поэтому сохраняют исходный снимок с идентификатором заказа и временем, а не только список ссылок на товары.

Какие данные нужны менеджеру

У каждой позиции должен быть устойчивый идентификатор, понятное название, выбранная модификация, количество, цена и единица продажи. Артикул полезен, но не всегда уникален между поставщиками. Код товара в каталоге сайта и ID товара в CRM — разные значения, даже если случайно совпали числа. Их связывают отдельной таблицей соответствия.

Сопоставление данных корзины и CRM
Источник на сайтеЧто хранить в CRM
ID заявкиВнешний ключ для поиска и защиты от дублей
Выбранное предложениеТоварная строка с конкретным вариантом
Количество и ценаЧисловые значения с согласованной валютой
Доставка и скидкиОтдельные суммы или согласованная модель расчёта
Страница и UTMПоля источника, доступные в отчётах

Телефон и email передавайте строками. Преобразование контакта в число обрезает ведущие символы и может создать запись в научной нотации. Перед поиском контакта нормализуйте формат по согласованным правилам, но сохраняйте исходный ввод для разбора ошибок. Если номер неполный, попросите посетителя исправить его, а не добавляйте недостающую цифру автоматически.

Как записать товарные строки

В REST API Битрикс24 есть отдельный метод установки товарных строк сделки. Его нельзя считать простым добавлением одной позиции: передавайте полный согласованный состав и учитывайте поведение замены набора. Если обработчик повторно отправит только последний товар, ранее записанные позиции могут исчезнуть. Это особенно заметно при попытке доставлять каждую строку независимо.

Учебный пример: клиент запросил два фильтра по 1 500 рублей и один комплект крепежа за 800 рублей. Сумма товаров — 3 800 рублей до доставки. В сделке должны остаться две строки, а не три отдельных товара с количеством один и не одна строка «корзина». Менеджер видит состав, может проверить комплектацию и подготовить предложение без повторного звонка ради расшифровки.

Скидки и налоги требуют отдельного соглашения о расчётах. Уточните, включает ли цена налог, где применяется скидка и кто пересчитывает итог. Нельзя одновременно передать уже сниженную цену и повторно применить ту же скидку в CRM. Приёмочный тест сравнивает сумму по позициям, дополнительные расходы и общий итог, а не только значение одного поля сделки.

Разделите сохранение и доставку

Посетитель получает подтверждение после надёжного сохранения обращения на сайте. Внешний API может ответить позже или временно отказать. Очередь доставки хранит состояние каждой операции: создание сделки, установка строк, передача дополнительных данных. Сбой на втором шаге не должен заставлять первый шаг создавать ещё одну сделку при каждом повторе.

Используйте устойчивый внешний ключ, например внутренний ID принятого обращения. После успешного создания сделки сохраните её ID. При неизвестном результате, когда соединение оборвалось после запроса, сначала проверьте наличие связанной сущности. Повтор без проверки способен создать дубль даже при корректном коде формы. Эту задачу решает идемпотентность интеграции, а не отключение кнопки в браузере.

Для временных ошибок предусмотрите ограниченные повторы с увеличением паузы. Ошибка авторизации требует восстановления доступа, а некорректное поле — исправления данных. Бесконечно отправлять одинаковый неподходящий запрос бессмысленно. После исчерпания попыток обращение остаётся доступным сотруднику с причиной и возможностью управляемой повторной отправки.

Не теряйте источник заказа

Согласуйте, какой источник сохраняется: первый известный переход, последний переход перед заявкой или оба. Затем проследите значения от входной ссылки до сохранённого обращения и полей CRM. Страница корзины сама по себе не объясняет, откуда пришёл клиент. Реферер может отсутствовать, а UTM — потеряться на перенаправлении или при переходе между доменами.

Сохраняйте только нужные параметры, ограничивайте их длину и не позволяйте содержимому URL менять служебные настройки сделки. В комментарий удобно добавлять ссылку на карточку, но отчётные данные лучше передавать в отдельные поля. Тогда фильтр по источнику не зависит от того, как менеджер отредактировал текст описания.

Что проверить перед запуском

  1. Один товар, несколько товаров и два варианта одной модели.
  2. Количество больше единицы, дробная единица там, где она разрешена, скидка и доставка.
  3. Новый контакт и существующий контакт с другим оформлением телефона.
  4. Двойная отправка, временный отказ API и обрыв после создания сделки.
  5. Сохранение UTM, страницы входа и внешнего ID обращения.
  6. Независимая доставка уведомления на почту при сбое CRM.

Проверки проводят в согласованной тестовой воронке или с явной маркировкой. Не запускайте реальную оплату без разрешения и не отправляйте уведомления клиентам. Для каждого сценария запишите ID заявки, ID сделки, число строк, итог и результат повтора. После теста обработайте служебные записи по правилам команды, чтобы они не искажали продажи.

Дальше нужен операционный контроль: число сохранённых обращений сравнивают с числом доставленных, а ошибки очереди передают ответственному. Письмо менеджеру остаётся отдельным каналом, если так устроен процесс компании. Состав работ, карту полей и приёмку можно зафиксировать по шаблону ТЗ на интеграцию, а внедрение обсудить на странице связи сайта с CRM.

Документация