Расхождение с кассой
Раздел про заказы на точках, где меню и акции ведёт касса — iiko или R-keeper. Здесь описано, откуда берётся расхождение сумм, что видит гость, что видишь ты и что делать администратору, если гость позвонил.
Главное правило#
Что гость увидел на чекауте — то он и получает. Цена, скидка, промокод, списание баллов, подарок. Нямбот никогда не оформит заказ по сумме, отличной от той, с которой гость согласился.
Поэтому заказ сначала заводится в кассе — и только потом дело доходит до денег. Способ оплаты значения не имеет: наличные, карта при получении или онлайн — порядок один. В кассу уходит ровно та сумма, которую гость оплатил: за то, чего нет в чеке кассы, Нямбот денег не берёт (поэтому на точке с кассой приборы для гостя бесплатные, а платная доставка требует позиции «Доставка» в подключении кассы → Торговые точки).
Как оформляется заказ на кассовой точке#
- Гость собирает корзину и видит сумму со всеми скидками;
- нажимает «Оформить» — Нямбот заводит заказ в твоей кассе. Заказ приходит неподтверждённым: кухня его пока не готовит;
- касса считает заказ по своим программам и отвечает своей суммой;
- дальше три варианта.
Так работают iiko и R-keeper (White Server). У R-keeper есть два исключения, где касса узнаёт о заказе только после оплаты: курьерский заказ через r_k Delivery и онлайн-оплата на точке без «Валюты онлайн-оплаты» в подключении кассы. Что бывает, если касса откажет уже после денег, — ниже, в разделе «Касса отказала после оплаты».
Сумма сошлась#
Обычный случай. Гость идёт к оплате, заказ подтверждается и уходит на кухню. Ничего дополнительно делать не нужно.
Касса посчитала иначе#
Гость видит окно с обеими цифрами и разницей:
Заведение посчитало заказ иначе
У заведения — 890 ₽ Мы показывали — 888 ₽ Разница — +2 ₽
Мы ничего не списали. Оформляем по цене заведения?
[Да, 890 ₽] [Отменить заказ]
Гость соглашается — сумма заказа становится равной кассовой, по ней он и платит. Отказывается — заказ в кассе снимается, кухня его не видела, деньги не списаны.
Окно спрашивает о любой разнице — в обе стороны и хоть на копейку. Оплатить мимо окна нельзя: пока гость не ответил, оплата не начнётся, а повторное «Оформить» покажет то же окно.
Касса не ответила или отказала#
Если касса не ответила вовремя, Нямбот снимает недоехавший заказ, а гость видит: «Не получилось подтвердить заказ у заведения. Деньги мы не списали — попробуй ещё раз». Если касса ответила отказом (например, у R-keeper цена блюда не совпала с прейскурантом кассы): «Заведение не приняло заказ. Деньги мы не списали — повтор не поможет: собери корзину заново или позвони в заведение». Деньги не списываются ни в каком случае.
Заказ в кассе появился, а оплаты нет#
Это не сбой, а тот самый порядок: касса принимает заказ до денег. Пока гость платит, заказ лежит у тебя неподтверждённым.
Что видит кассир iiko на экране кассы:
- жёлтый, «Подтвердить» / «Неподтв.» — заказ ещё не оплачен. Готовить его не нужно, кухня его и не видит;
- синий, «Пора готовить» — заказ оформлен и оплачен, можно работать.
Отдельно ничего снимать не надо. Неоплаченный заказ уходит сам:
- гость нажал «назад» на форме оплаты ЮKassa;
- гость закрыл приложение и оформил новый заказ в той же точке — чтобы у тебя не висело два одинаковых;
- гость просто исчез — через 15 минут.
Пятнадцать минут — не запас на всякий случай: столько живёт сама ссылка на оплату. Раньше снимать нельзя, иначе мы уберём заказ, который гость вот-вот дожмёт в приложении банка.
⚠️ Во всех трёх случаях Нямбот сначала спрашивает эквайринг (ЮKassa или Яндекс.Пэй), что с платежом:
- оплачен — заказ не снимается, а оформляется как оплаченный;
- ждёт оплаты (гость как раз подтверждает платёж в банке) или эквайринг не ответил — заказ не трогается;
- отменён, не прошёл или платежа не было вовсе — заказ снимается: сначала в кассе, потом у Нямбота. Если касса снять не дала, заказ остаётся и у Нямбота — чтобы у тебя с кассой не разошлось.
Баллы и промокод, которые гость потратил на снятый заказ, возвращаются ему. Денег не было — задачи на возврат нет.
Если жёлтый заказ висит дольше 15 минут#
Значит эквайринг ещё не ответил «отменён» — платёж ждёт гостя или ответа нет вовсе, — и заказ намеренно не тронут: снять заказ, за который гость как раз платит, хуже, чем оставить лишнюю строку. Такой заказ снимется на одной из следующих проверок. Если он висит часами — напиши нам, это уже про связь с эквайрингом.
Касса отказала после оплаты#
Бывает у R-keeper в двух случаях из раздела выше, где касса узнаёт о заказе только после оплаты, и когда касса снимает заказ, пока гость платил. Нямбот такой отказ не проглатывает:
- заказ отменяется у Нямбота, в истории — причина;
- баллы и промокод возвращаются гостю;
- при онлайн-оплате заводится задача на возврат с причиной «Касса не приняла заказ»: плитка «Ждут возврата», тревога команде, письмо тебе. Деньги возвращаешь ты кнопкой в СРМ → Возвраты;
- гость сразу получает сообщение в бот: «Заказ отменён: заведение не смогло его принять», при онлайн-оплате — «Оплату — N ₽ — вернём на ту же карту, с которой прошла оплата». На экране заказа в мини-приложении — «Заведение не смогло принять заказ».
Подробнее — R-keeper: заказы и оплата.
История заказа: кто что сделал#
Каждый шаг заказа виден в его карточке — и через месяц тоже. Логи серверов живут недолго, а спор о деньгах приходит когда угодно, поэтому важное пишется в саму историю заказа:
- заказ создан, подтверждён, готовится, выдан;
- гость согласился с ценой кассы — и обе суммы, которые он видел;
- сумма приведена к цене кассы — если наш расчёт разошёлся с кассой, а гость видел ровно сумму кассы (см. «Поправка кассы» ниже);
- заказ снят — с причиной: гость отказался от оплаты, оформил новый заказ, оплата не поступила или касса не приняла заказ.
Если снял не человек, а сам Нямбот — в истории так и написано, вместе с причиной. По этой ленте разбирается любой спор: видно, что именно видел гость, на что он согласился и почему заказ изменился.
«Поправка кассы» в деталях заказа#
В разборе суммы заказа (Заказы → Из чего сложилась сумма) может быть строка «Поправка кассы: +N ₽» или «−N ₽». Подсказка к ней: «Касса посчитала заказ иначе, чем Нямбот. Гость видел и оплатил сумму кассы».
Откуда она берётся. Касса назвала свою сумму, и заказ приведён к ней — гость согласился в окне или видел ровно сумму кассы. Строки разбора (позиции, скидки, доставка, приборы) показывают расчёт Нямбота, а разница с итогом — это и есть поправка. Поэтому разбор всегда сходится с суммой, которую гость заплатил.
- Это не скидка: за что именно касса посчитала иначе, строка не говорит. Смотри на акции кассы — раздел «Почему суммы вообще расходятся» ниже.
- Строка есть только у заказов, приведённых к кассе. У обычного заказа разбор сходится без неё.
- Гость видит ту же строку как «Поправка заведения» — в мини-приложении и в сообщениях бота. Сотрудники в «Команде» и в уведомлениях видят «Поправка кассы».
Почему суммы вообще расходятся#
Расхождение — это не поломка Нямбота и не ошибка гостя. Оно означает, что настройки в кассе разошлись с тем, что видит гость на витрине. Частые причины:
- акция закончилась или началась между тем, как гость собрал корзину, и тем, как нажал «Оформить»;
- скидка в кассе изменена — процент, условия или список блюд. Витрина догоняет такие правки в течение часа: Нямбот раз в час проверяет, не менялись ли программы кассы, и обновляет скидки на блюдах, если менялись;
- баллы гостя изменились — он потратил их в другом заказе;
- подарочная программа перестала выполняться из-за изменения состава.
⚠️ А вот цены прейскуранта расхождения не дают. iiko считает заказ по тем ценам, которые прислал Нямбот, и своих не подставляет: если цену изменили в кассе, а меню в Нямботе не синхронизировали, заказ уйдёт по старой цене — суммы сойдутся, но заведение недополучит разницу. R-keeper такой заказ отбивает целиком — гость видит «Заведение не приняло заказ». В обоих случаях это лечится синхронизацией меню, а не этим механизмом.
Единичное расхождение — обычное дело. Систематические расхождения означают, что настройки кассы и витрины разъехались, и это стоит разобрать.
Что видно тебе в СРМ#
В таблице заказов#
Появляются два столбца:
- Цена кассы — сумма, которую назвала касса;
- Разница — на сколько она отличается от показанной гостю. Плюс означает, что касса посчитала дороже.
Оба пустые, если расхождения не было.
В фильтре статусов есть пункт «Сумма изменилась» — он оставляет в списке заказы, где гость согласился на изменившийся итог. Тот же фильтр ставит щелчок по плитке «Сумма изменилась» в полоске метрик над таблицей: там же видно, сколько таких заказов за выбранный период.
В карточке заказа#
Карточка «Расхождение с кассой»: обе суммы («Показали гостю» и «Касса посчитала»), разница, что именно разошлось — скидка, баллы, подарок или состав, — а также что гость выбрал и в какое время.
Точка без кассы. Итог может измениться и там — например, акция закончилась, пока гость оформлял заказ. Тогда карточка называется «Сумма заказа изменилась», суммы подписаны «Показали гостю» и «Итог заказа», пропавшие подарки — строкой «Подарки, которых не стало: …», а внизу — «Гость увидел обе суммы и согласился на итог заказа». Слова «касса» в ней нет.
Неоформленные заказы#
Вкладка рядом с таблицей заказов. Сюда попадают попытки, которые не стали заказами: гость отказался от цены кассы, закрыл мини-апп, не ответив, или касса не подтвердила заказ.
Вкладка важнее, чем кажется. В обычной таблице заказов видны только те расхождения, с которыми гость согласился. Случаи, из-за которых гость ушёл, там не появятся никогда — а именно они и стоят тебе выручки.
Сколько их за выбранный период, видно сразу: плитка «Неоформленные» в полоске метрик над таблицей. Щелчок по ней открывает эту вкладку.
Внутри — поиск по телефону и фильтр по исходу: отказался от цены, ушёл не ответив, касса не подтвердила, касса не ответила вовремя. Телефон работает всегда, даже когда номера заказа у гостя нет — заказа ведь не случилось.
Плитка считается по торговой точке и периоду и не подчиняется фильтру статусов над таблицей: у неоформленного заказа нет ни статуса, ни способа оплаты.
Что видит администратор в «Команде»#
Администратор видит обе суммы и разницу — этого хватает, чтобы ответить гостю по делу и передать владельцу. Разбор причин остаётся за владельцем: у него полная картина по всем точкам.
Ему же доступны сегодняшние попытки по своей точке с поиском по телефону и по номеру заказа. Номер у гостя обычно есть: он приходит уведомлением бота и виден в «Моих заказах». Но бывает и наоборот — гость закрыл мини-апп и номера не запомнил, — поэтому телефон работает всегда.
Если гость позвонил#
Разбираться в причинах расхождения — не задача администратора. Его задача — принять звонок и не оставить гостя без ответа.
Как отвечать:
- найти попытку по номеру заказа, если гость его называет, или по телефону;
- подтвердить, что видит её: «Да, вижу вашу попытку заказа в 20:15»;
- сказать, что разберётся: «Уточню по кассе и свяжемся с вами сегодня или завтра, объясним причину»;
- если гость готов заказать сейчас — принять заказ голосом обычным порядком.
Чего делать не нужно: объяснять причину расхождения на месте и называть технические подробности. Причину разбирает владелец — у него есть полная картина.
Что делать владельцу с расхождениями#
- открой карточку заказа или экран неоформленных и посмотри, что именно разошлось — скидка, баллы, подарок или состав;
- сверь настройку в кассе с тем, что показывает витрина: чаще всего дело в акции, которую изменили в кассе. Условие зеркала Нямбот подтягивает из кассы сам на ближайшей сверке, а у акции появляется метка «Кампания изменилась»;
- если расхождения повторяются на одной и той же акции — открой её в разделе «Маркетинг»: у зеркала, заведённого вручную, условие поправь сам, у зеркала из кампании кассы проверь саму кампанию в iikoCard;
- если расхождения пошли сразу по всем заказам точки — проверь связь с кассой в разделе «Интеграции».