Импорт исторических заказов
Возможности
Что переносится
- Пачка прошлых заказов принимается одним запросом и создаётся в базе заведения
как обычные заказы: состав, суммы, скидка и использованные бонусы, адрес с
подъездом и этажом, точка, зона доставки, способ оплаты, статус, курьер,
комментарий, метки рекламных кампаний.
- Даты доставки, публикации, начала готовки и забора берутся из переданных, так
что заказ ложится в историю своим временем, а не временем загрузки.
- Состав переносится с разбивкой по участникам совместного заказа: у каждого
участника свои позиции.
- Позиции связываются с блюдами меню по коду блюда — внутреннему или внешнему.
Позиция, которой в меню соответствия не нашлось, всё равно сохраняется:
названием, количеством и ценой из переданных данных.
- Если в заказе отмечена успешная оплата картой, к нему заводится запись об
оплате — но только когда у заказа ещё нет успешного платежа: повторная
загрузка того же заказа второй платёж не заводит.
Что происходит с гостем
- Гость узнаётся по внешнему коду клиента или по номеру телефона. Если такого
гостя в базе ещё нет, карточка заводится по контактам заказа и заказ
привязывается к ней.
- После загрузки карточка гостя пересчитывает число заказов и средний чек, а
сами заказы попадают в историю гостя на витрине и в приложении — с повтором в
одно действие.
Как ведёт себя загрузка
- Каждый заказ несёт внешний код и по нему опознаётся. Повторный прогон по тем
же кодам либо пропускает такие заказы, либо перезаписывает их — режим
задаётся в запросе.
- Результат возвращается по каждому заказу отдельно: загружен, пропущен как уже
существующий, либо отклонён с причиной. Ошибка на одном заказе не
останавливает обработку остальных.
Как настроить
- Отдельного включения у загрузки нет — она доступна любому заведению.
- Вызывается по ключу доступа сотрудника заведения с ролью администратора или
менеджера.
- До загрузки в заведении должны быть заведены точки и зоны доставки, а меню —
опубликовано: иначе заказу не к чему привязаться, а позициям не с чем
сопоставиться. Курьеры нужны, только если в заказах передаются они.
- Разумный порядок переезда: сначала меню, затем клиенты, затем заказы. Тогда
позиции находят блюда, а заказы — уже заведённых гостей с их метками и
бонусами.
- В запросе указывается, что делать с заказами, чьи внешние коды в базе уже
есть: пропустить или перезаписать.
- Заказы удобнее подавать пачками по несколько сотен: обработка синхронная, и
одна большая пачка упирается в время ожидания ответа.
Что должно быть настроено и ограничения
Что должно быть в самом заказе
- Внешний код обязателен. Заказ без него отклоняется — по коду заказ потом
опознаётся при повторном прогоне.
- У заказа должна определиться точка: либо она указана прямо, либо выводится из
зоны доставки, подобранной по координатам. Не определилась — заказ отклонён.
- Должно определиться время доставки: либо оно передано, либо заказ помечен как
«ближайшее время». Иначе заказ отклонён с объяснением, какое расписание у
зоны и сколько времени на доставку в ней отведено.
Как подбираются зона и время
- Если зона доставки не указана прямо, она подбирается по координатам и
проверяется по расписанию на дату заказа.
- Когда зона по историческому времени не работала, время доставки заказа
переставляется на ближайшее рабочее — историческая дата теряется. Чтобы этого
не случилось, зону указывают в заказе явно.
Побочные действия загрузки
- Загруженный заказ проходит ту же обработку, что и живой: пересчитывается
сумма, начисляются бонусы за заказ и списываются использованные, гасится
промокод, при подключённой кассе заказ уходит на кассу, при включённом учёте
остатков — списывается остаток.
- Уведомление гостю при загрузке не уходит, но уйдёт, если у загруженного
заказа потом сменить статус.
- Загрузка неопубликованных заказов побочных действий не вызывает, но такие
заказы не попадают ни в историю гостя, ни в статистику его карточки.
- Номер заказа, если он не передан, берётся из счётчика точки: нумерация живых
заказов сдвигается на число загруженных заказов без номера. Переданный номер
счётчик не расходует. При перезаписи заказ, у которого номер уже есть, его
сохраняет: новый номер выдаётся только заказу с пустым номером.
Что видно после загрузки
- В отчёте по продажам загруженные заказы встают на дату загрузки, а не на дату
заказа: отчёт строится по моменту появления записи.
- Позиция, которой не нашлось блюда в меню, в истории видна, но при повторе
заказа она пропускается — гость получит корзину без неё.
- Перезапись заменяет состав заказа целиком: позиции и участники, которых нет в
новом запросе, из заказа исчезают. Повторный прогон по тем же кодам от этого
безопасен только в режиме пропуска.
Чего нет
- Нет экрана: загрузка выполняется только запросом, кнопки для неё в кабинете
не существует.
- Не принимает таблицу или выгрузку прежней системы как есть — данные
передаются структурой запроса в оговорённом формате.
- Не сообщает о ходе работы: ответ приходит целиком и только после обработки
всей пачки.
- Не проставляет заказу историческую дату создания. Историческими остаются даты
доставки, публикации, начала готовки и забора; момент появления записи —
всегда момент загрузки.
- Не переносит отметки времени по статусам: когда заказ подтвердили,
приготовили и вручили, проставляется моментом загрузки — и только для того
статуса, в котором заказ загружен.
- Не переносит оценку заказа и отзыв, чеки, историю действий оператора и
переписку с гостем.
- Не заменяет загрузку клиентов: карточка гостя заводится по контактам заказа,
без бонусного баланса, меток, сохранённых адресов и даты рождения.
- Не пересчитывает сегмент возвращаемости гостя — загруженные заказы его не
двигают.
- Не откатывает сделанное: лишние заказы придётся убирать поштучно.
Примеры
Переезд с другой платформы
- Выгрузить прошлые заказы из прежней системы вместе с кодами блюд и кодами
клиентов.
- Загрузить в заведение меню, точки и зоны доставки, затем клиентов.
- Сопоставить позиции выгрузки с блюдами меню по внешним кодам.
- Подать заказы пачками, указывая в каждом точку и зону доставки явно, а режим
выбрать «пропускать существующие».
- Разобрать ответ: заказы с отклонением исправить и подать повторно —
загруженные при этом будут пропущены.
- Открыть карточку гостя и убедиться, что число заказов и средний чек
посчитались, а гость видит историю на витрине.
Догрузка пропущенного периода
- Выгрузить из прежней системы недостающий отрезок истории.
- Подать его тем же способом в режиме «пропускать существующие»: заказы,
загруженные раньше, останутся нетронутыми.
Исправление уже загруженной пачки
- Собрать заказы заново — полностью, вместе со всеми позициями и участниками.
- Подать их с теми же внешними кодами в режиме перезаписи.
- Проверить состав нескольких заказов: то, чего не было в новом запросе, из
них пропало.
Связанные статьи