До интеграции менеджер переносил заказы с сайта в 1С руками, остатки на сайте отставали на сутки, а заявки терялись в почте. Настроили обмен сайта на «1С-Битрикс» с 1С:Управление торговлей 11 по CommerceML и передачу заказов и обращений в Битрикс24 по REST API. Ниже схема, что синхронизируется, расписание и журнал с разбором ошибок.
Главный источник правды по товарам, ценам и остаткам — 1С. Сайт хранит витрину и заказы, Битрикс24 — покупателей и сделки. Каждая стрелка подписана: что передаётся, как и как часто.
Направление, способ и частота для каждой сущности. Связь записей — по GUID 1С и внешнему коду, а не по названию: переименование товара в 1С не создаёт дубль на сайте.
| Данные | Откуда → куда | Как | Когда | Ключ связи |
|---|---|---|---|---|
| Разделы и товары (4 900), свойства, картинки | 1С → Сайт | CommerceML import.xml, частичная выгрузка изменений | каждые 15 мин; полная — ночью в 03:00 | GUID номенклатуры |
| Цены: розничная, оптовая, акционная | 1С → Сайт | offers.xml, типы цен сопоставлены с группами покупателей | каждые 15 мин | GUID типа цен |
| Остатки по 2 складам | 1С → Сайт | offers.xml, склады сайта = склады 1С | каждые 15 мин | GUID склада |
| Заказы с составом, доставкой, оплатой | Сайт → 1С | orders.xml, документ «Заказ клиента» | каждые 15 мин | номер заказа сайта |
| Статусы заказов (собран, отгружен, закрыт) | 1С → Сайт | обратный обмен заказами | каждые 15 мин | номер заказа сайта |
| Покупатель и сделка | Сайт → Битрикс24 | REST: поиск контакта по телефону и e-mail, затем crm.deal.add с UTM | сразу после заказа | телефон, e-mail |
| Стадия сделки «Отказ», «Оплачен счёт» | Битрикс24 → Сайт | исходящий вебхук onCrmDealUpdate | сразу | ID заказа в поле сделки |
| Оплата и чек | ЮKassa → Сайт | уведомление payment.succeeded, проверка статуса запросом | сразу | ID платежа |
Тяжёлая полная выгрузка идёт ночью, днём — только изменения. Заказы и сделки не ждут расписания: уходят по событию.
Агенты Битрикса переведены на cron, чтобы обмен не зависел от посещаемости; блокировка не даёт двум обменам идти одновременно.
Каждый запуск пишется в журнал. Ошибка не теряется: запись уходит в очередь повтора, ответственному — уведомление в Telegram. Под каждой ошибкой — причина и что сделали.
| Время | Поток | Результат | Что произошло |
|---|---|---|---|
| 14:15 | 1С → Сайт, изменения | успешно | 312 товаров обновлено (цены 198, остатки 114), 21 с |
| 14:15 | Сайт → 1С, заказы | успешно | 7 заказов выгружено, 7 документов «Заказ клиента» созданы |
| 13:52 | Сайт → Битрикс24 | повтор | Заказ №10482: портал ответил QUERY_LIMIT_EXCEEDED, повтор через 60 с — сделка создана в 13:53
Причина и решениеУ портала лимит 2 запроса в секунду. В пике заказов запросы шли пачкой. Добавили очередь с паузой и повтор с нарастающей задержкой; данные заказа не теряются. |
| 11:30 | 1С → Сайт, изменения | ошибка | Товар «Профнастил С8 RAL 3005» без раздела в 1С: пропущен, остальные 87 загружены
Причина и решениеВ 1С создали карточку без группы номенклатуры. Обмен не падает целиком: проблемная позиция пропускается, менеджеру уходит список. Карточку поправили в 1С, на следующем обмене товар появился. |
| 09:00 | Сверка заказов и сделок | успешно | Расхождений нет: 64 заказа за сутки = 64 сделки |
| 03:00 | 1С → Сайт, полная | успешно | 4 900 товаров, 6 мин 40 с; 14 товаров без остатка скрыты из каталога |
| вчера 18:45 | ЮKassa → Сайт | успешно | Оплата заказа №10461 пришла после закрытия вкладки покупателем — статус обновлён по уведомлению |