Заказы и оплата (r_keeper)

Как заказы из Нямбота попадают на кассу r_keeper, как выглядят разные способы оплаты и что происходит с деньгами при отмене. Проверено на боевом стенде.

Как заказ приходит на кассу#

Когда гость оформляет заказ в мини-приложении, Нямбот отправляет его на кассу r_keeper (через White Server). Заказ появляется в списке «Выбор заказа для редактирования» с составом, модификаторами и комментарием — кассир и кухня его видят сразу.

В комментарии к заказу Нямбот пишет служебные строки, чтобы персоналу было понятно, как принимать оплату и что важно по заказу: адрес, приборы, пожелания гостя.

Касса называет сумму до оплаты#

Порядок тот же, что у iiko: сначала заказ заводится в кассе, потом гость платит.

  1. Гость нажимает «Оформить» — Нямбот заводит заказ в r_keeper, пока без оплаты, и читает сумму, которую посчитала касса.
  2. Сумма совпала с той, что видел гость, — гость идёт к оплате.
  3. Касса посчитала иначе — гость видит окно «Заведение посчитало заказ иначе» с обеими суммами и соглашается или отказывается. Оплатить мимо окна нельзя. Отказался — заказ в кассе снимается, деньги не списаны → Расхождение с кассой.
  4. Касса отбила заказ (например, цена блюда не совпала с прейскурантом кассы) — гость видит «Заведение не приняло заказ. Деньги мы не списали…» и до оплаты не доходит.

Так оформляются заказы с любой оплатой, кроме двух случаев, где касса узнаёт о заказе только после оплаты:

  • курьерский заказ через r_k Delivery, если доставку ведёт модуль кассы → Доставка;
  • онлайн-оплата на точке без «Валюты онлайн-оплаты» в подключении кассы (см. ниже).

Если касса отказала после оплаты#

В этих двух случаях — и когда касса снимает заказ, пока гость платил, — отказ приходит уже после денег. Нямбот его не проглатывает:

  • заказ отменяется, в истории — причина;
  • баллы и промокод возвращаются гостю;
  • при онлайн-оплате заводится задача на возврат с причиной «Касса не приняла заказ» — деньги возвращаешь ты кнопкой в СРМ (почему так);
  • гость сразу получает сообщение в бот: «Заказ отменён: заведение не смогло его принять», при онлайн-оплате — «Оплату — N ₽ — вернём на ту же карту, с которой прошла оплата». На экране заказа — «Заведение не смогло принять заказ».

Курьерский заказ r_k Delivery Нямбот после отправки ждёт в кассе несколько минут. Если Delivery явно отменил заказ — это отказ кассы, всё как выше. Если заказ за это время в кассу не пришёл, заказ не отменяется: администраторы получают уведомление, что заказ не попал в кассу и его нужно пробить вручную. Если заказ пришёл, но касса завела его на другую сумму, заказ тоже не отменяется — приходит уведомление «Деньги заказа мимо кассы»: «🟠 …: заказ №… попал в кассу на … ₽, а гость оплатил … ₽. Сверь заказ в кассе: цены меню Нямбота и кассы разошлись — обнови меню и синхронизируй меню «Касса» в админке r_k Delivery» (уведомления).

Повтор после обрыва связи#

Если связь оборвалась, пока касса заводила заказ, и Нямбот отправил его повторно, второго заказа в кассе не будет: Нямбот найдёт уже заведённый.

Приём заказа кассиром: автоматически или руками#

За это отвечает одна настройка White Server: кабинет WsAdmin → твой ресторан → вкладка «Параметры создания заказа» → «Время подтверждения заказа в секундах».

ЗначениеЧто происходит
0 (обычная настройка)заказ принимается автоматически, сразу уходит на кухню — кассиру ничего нажимать не нужно
больше нуля (напр. 120)на экране кассы всплывает окно «ПРИНЯТЬ / ОТКЛОНИТЬ» с таймером на это число секунд

🔴 Оставь 0. Касса заводит заказ, пока гость ждёт на экране оформления, а столько, сколько длится таймер кассира, гость ждать не будет. Если кассир не успел ответить, гость видит «Не получилось подтвердить заказ у заведения. Деньги мы не списали — попробуй ещё раз», а заказ, который касса заведёт позже, Нямбот снимет. Если кассир нажал «Отклонить», заказа в кассе не будет, и гость узнает об отказе на оформлении — до оплаты, деньги не списаны.

Способы оплаты#

Наличные / картой курьеру (оплата при получении)#

Деньги берёт курьер при доставке (или кассир при самовывозе) — касса ресторана в этот момент ничего не инкассирует, поэтому заказ висит с «Оплачено: 0.00».

Важно: на кассе r_keeper нал и карта при доставке выглядят одинаково. Чтобы было понятно, как принимать оплату, Нямбот пишет это прямо в комментарий заказа:

  • Оплата: наличными курьеру
  • Оплата: картой курьеру
  • (для самовывоза — … при получении)

Оплату курьера в кассу вносит и заказ закрывает кассир, когда курьер сдал деньги, — Нямбот этого не делает: касса и деньги в ней — ответственность кассира на смене. Если доставку ведёт Нямбот, на «Доставлен» он дописывает в комментарий заказа подсказку: Нямбот: доставлен курьером Иван в 14:32 — получить 1 435 руб. наличными → Доставка, вариант 1. Самовывоз оплачивает и закрывает кассир, как раньше.

Онлайн (Яндекс.Пэй / ЮKassa)#

Гость оплачивает картой в мини-приложении — деньги уже у вас ещё до того, как заказ пойдёт на кухню. Когда оплата прошла, Нямбот вносит её в заказ кассы предоплатой:

  • касса печатает нефискальный слип «Приём предоплаты»;
  • «Оплачено» = сумма, «Оплатить: 0.00»;
  • в комментарии — Оплата онлайн · Яндекс.Пэй (или · ЮKassa).

При этом заказ остаётся открытым (не закрывается) — кухня его готовит, кассир видит, курьер везёт. Ничего вручную «пробивать» или закрывать по оплате не нужно — предоплата уже зафиксирована. Закрывает заказ кассир; если доставку ведёт Нямбот, на «Доставлен» в комментарии появится Нямбот: доставлен курьером Иван в 14:32 — оплачен онлайн.

Кассиру НЕ нужно повторно проводить оплату онлайн-заказа — она уже принята («Автоматическая авторизация»).

Валюта онлайн-оплаты

Предоплату касса принимает валютой, которая выбрана в подключении кассы в СРМ, в поле «Валюта онлайн-оплаты» (валюта «Оплата через WS» — где взять её GUID, описано в Доставке, шаг 4).

  • При сохранении подключения Нямбот сверяет валюту с кассой: она должна быть активной, с разрешённой предоплатой и без фискального чека. Иначе сохранение откажет: «Эта валюта не подходит для онлайн-оплаты: у неё фискальный чек, нет предоплаты или её нет в кассе. Укажи валюту «Оплата через WS» — без фискального чека и с разрешённой предоплатой». Фискальный чек по онлайн-оплате уже пробил эквайринг — второй был бы лишним.
  • Валюта не выбрана — онлайн-оплата на точке всё равно работает, но касса узнаёт о таком заказе только после оплаты, и её отказ приходит уже после денег (см. выше). Об этом СРМ предупреждает жёлтой плашкой — в карточке точки (над зонами доставки, если у точки есть онлайн-оплата) и в подключении кассы под полем валюты, пока оно пустое: «Не задана валюта онлайн-оплаты — касса узнаёт о заказе только после оплаты и может отклонить его уже оплаченным. Укажи валюту «Оплата через WS» в подключении R-keeper».

Отмена заказа и возврат денег#

Заказ, который касса приняла, снимает только кассир — на стороне r_keeper. Если доставку ведёт Нямбот, курьерский заказ можно отменить и в «Команде»: гость сразу получает «Отменён», а в заказ кассы уходит просьба Нямбот: отменён в 14:32 — сними заказ в кассе — снимает его кассир. Сам Нямбот снимает только то, что касса ещё не приняла: резерв, за который гость не заплатил, или заказ, который касса отбила или не подтвердила на оформлении. 🔴 Отмена деньги гостю не возвращает: при онлайн-оплате она заводит задачу на возврат, а деньги возвращает владелец кнопкой в СРМ (почему так).

Как именно отменить — зависит от того, как настроен r_keeper у ресторана:

  • на кассовой станции — штатное аннулирование чека;
  • в окне редактирования заказа (WSA) отдельной кнопки «Отменить заказ» нет — заказ отменяется, если убрать из него все позиции и снять предоплату, затем сохранить.

Как только заказ отменён/аннулирован в r_keeper, Нямбот в течение ~1 минуты замечает это и сам:

  • переводит заказ в статус «Отменён»;
  • заводит задачу на возврат (при онлайн-оплате): деньги остаются на счету ресторана, пока владелец не нажмёт «Вернуть деньги гостю» в СРМ;
  • присылает гостю уведомление «Заказ отменён».

Отдельно нажимать что-то в Нямботе не нужно — отмена на стороне r_keeper зеркалится автоматически.

Отмена в «Команде» и СРМ#

В приложении «Команда» отменить можно только курьерский заказ и только если доставку ведёт Нямбот: в кассу уходит пометка «сними заказ в кассе», а администратору смены и в СРМ — уведомление «Пометка кассиру в заказе кассы», чтобы кассир её не пропустил. Самовывоз и заказы модуля доставки кассы в «Команде» только видны — их отменяют на кассе r_keeper. В СРМ кнопки отмены нет: карточка заказа там только для чтения.

Пока кассир держит заказ открытым на станции, касса не даёт его менять, и пометка ждёт. Нямбот повторяет сам, пока заказ не освободится.

Не удаляйте позиции вручную «в обход»#

Отменяйте заказ целиком одним из способов выше. Ручное удаление отдельных блюд на кассе «в обход» не заведёт задачу на возврат и рассинхронит заказ между кассой и Нямботом.

Статусы доставки: кто их ведёт#

  • Доставку ведёт Нямбот — «Готов» отмечает администратор смены в «Команде» прямо из «Принят» (если касса не присылает статусы сама), «В пути» и «Доставлен» — администратор и курьер. В кассу уходят только сведения для кассира: курьер, «доставлен — получить … руб.», просьба снять отменённый заказ. Закрывает и снимает заказ кассир.
  • Доставку ведёт модуль кассы — статусы «В пути» и «Доставлен» ставит курьер в CourierApp, а Нямбот зеркалит их гостю как есть. Подробнее — Доставка.
  • Самовывоз ведёт касса точно так же — статусы зеркалятся гостю как есть.

⏱️ Насколько быстро обновляется статус. Смену статуса на кассе r_keeper Нямбот замечает в течение ~1 минуты (регулярно опрашивает кассу — это штатно и не требует настройки). Если тебе нужны мгновенные обновления статусов, напиши нам — такой режим можно включить дополнительно на стороне интеграции.