Товар закончился вчера. Сайт продаёт его до сих пор.
Клиент заказывает ролл с лососем. Платит. Ждёт.
А лосось закончился ещё вчера вечером. На кухне это знают. В СБИС товар в стоп-листе. А на сайте висит как ни в чём не бывало.
Менеджер звонит, извиняется, предлагает замену. Клиент злится. Иногда отменяет заказ.
Это была реальная ситуация у нашего клиента, того же, для которого мы делали автоматизацию заказов между Tilda и СБИС. Заказы из Tilda теперь сразу падали в СБИС. Но сайт и кухня всё ещё жили в разных реальностях.
Как это было устроено
В СБИС у клиента ведётся стоп-лист. Это позиции, которые временно нельзя продавать: закончились продукты, сняли с продажи, на сегодня всё.
Каждое утро сотрудник открывал СБИС, смотрел стоп-лист, открывал Tilda и руками переносил остатки. Что в стопе, то скрывал на сайте. Чего нет в стопе, возвращал.
Час времени. Каждый день. Без выходных.
И всё равно не спасало. Стоп-лист обновлялся в течение дня: что-то закончилось в обед, что-то после ужина. Сотрудник физически не мог следить за этим в реальном времени. Заказы на отсутствующие позиции продолжали приходить.
Что мы сделали
Написали сервис, который каждые 30 секунд сам забирает стоп-лист из СБИС и обновляет остатки в Tilda.
Сотрудник на кухне нажимает «в стоп» в СБИС, через полминуты позиция гаснет на сайте. Вернули из стопа, снова появилась. Никто никуда не заходит, никто ничего не переносит.
Где было нестандартно
Обычно остатки синхронизируют наоборот: смотрят весь каталог, и если товар закончился, скрывают. Клиент попросил сделать по-другому, и это оказалось удобнее.
Мы смотрим только на стоп-лист. То есть на короткий список из нескольких десятков позиций, а не на весь каталог.
Дальше так:
- Товар в стоп-листе → в Tilda уезжает его реальный остаток из СБИС. Если осталось 5 порций, будет 5. Когда продадут, станет 0, кнопка погаснет.
- Товара нет в стоп-листе → в Tilda уезжает 999999. Это «всегда доступен», еда готовится по заказу, складских остатков у общепита нет.
Так клиент видит честную картину: и что закончилось совсем, и что заканчивается прямо сейчас. А мы не гоняем по сети тысячи позиций ради нескольких изменений.
Сама отправка идёт через CommerceML, это родной для Tilda способ обмена данными. Никаких сторонних плагинов и обходных решений: клиент получает интеграцию, которую завтра не сломает обновление платформы.
Что изменилось после запуска
Час работы по утрам ушёл. Сотрудник больше не переносит остатки.
Заказов на отсутствующие позиции почти нет. Между моментом, когда товар попал в стоп, и моментом, когда он исчез с сайта, проходит полминуты.
Звонки с извинениями закончились. Стоп-лист и сайт всегда показывают одно и то же.
Кому это актуально
Если у вас Tilda и СБИС, и кто-то у вас в команде каждое утро (или в течение дня) переносит остатки руками, вы тратите на это часы. И всё равно часть заказов прилетает на то, чего нет.
Это решается. Один раз, и дальше работает само.
Автор — Никита, fullstack-разработчик, Hive Studio.