Заказ

После авторизации и открытия смены сотрудник может приступать к оформлению заказов. Основная часть операций выполняется с помощью API POST /api/order. Дополнительные API могут быть использованы для редактирования заказов, оплаты и перемещения из статуса в статус.

Простая форма создания заказа

Список полей в заказе

Поле

Обязательное

Тип

Описание

client

Нет

ObjectId

ID клиента

sales

Нет

List[Sale]

Список продаж в заказе

payments

Нет

List[Payment]

Список оплат в заказе

current_stage

Нет

Stage

Этап заказа

Список полей в продаже (продажа услуги)

Поле

Обязательное

Тип

Описание

_cls

Да

str

Тип продажи

menu

Да

ObjectId

ID меню

prototype

Да

ObjectId

ID услуги

option

Да

UUID

ID опции

count

Нет

int

Количество продаж (1 по-умолчанию)

Для продажи услуги в поле _cls всегда записывается значение ServiceSale.

Список полей в оплате

Поле

Обязательное

Тип

Описание

type

Да

str

Тип оплаты

amount

Да

number

Сумма оплаты

Поле type имеет два возможных значения - cash и cashless, для наличной и безналичной оплаты соответсвенно.

Список полей в этапе

Поле

Обязательное

Тип

Описание

status

Да

str

Статус этапа

substatus

Да

str

Подстатус этапа

Создание заказа

Для создания полностью проведенного заказа, без сохранения его в открытом статусе и частичного проведения оплаты достаточно выполнить один POST-запрос на /api/order.

Для примера возьмем данные меню из раздела Меню. В заказ войдет услуга «Гурме 250 гр» из меню «Кофе на продажу». У неё одна опция с ценой 550. Для полноты примера продадим её в двух экземплярах. Общая сумма заказа составит 1100, клиент оплатит 1000 наличными и 100 с банковской карты.

Оплаченый и закрытый заказ находится в этапе со status: final и substatus: completed.

В sales необходимо отправить следующие данные:

  • _cls: ServiceSale

  • menu: 58b4879960e8d9000ff4887e

  • prototype: 58b4895660e8d9001a8a8662

  • option: ff5e4b90-4036-4d63-ae8e-9c2674c3b5dd

  • count: 2

Данные запроса создания заказа

{
  "sales": [
    {
      "_cls": "ServiceSale",
      "menu": "58b4879960e8d9000ff4887e",
      "prototype": "58b4895660e8d9001a8a8662",
      "option": "ff5e4b90-4036-4d63-ae8e-9c2674c3b5dd",
      "count": 2
    }
  ],
  "payments": [
    {"type": "cash", "amount": 1000},
    {"type": "cashless", "amount": 100},
  ],
  "current_stage": {
    "status": "final",
    "substatus": "completed"
  }
}