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

Общие концепции

Заказ состоит из 1 или нескольких позиций. Каждая позиция - это блюдо(+вариант порции и выбранные добавки) или товар.

Цены в заказе можно указывать свои, следовать ценам, заданным в программе не обязательно. Таким образом на вашем интернет-магазине могут быть отличные цены от тех, что указаны в кассовой программе.

/order/save

POST https://api.ytimes.ru/ex/order/save

Создание заказа с выбранными позициями. Данный метод можно вызывать не чаще 60 раз в час. Структура данных заказа (она используется в запросе и она же возвращается в ответ):

//Данные заказа OrderRecord { guid: string, (при заказа оставляем пустым, используется в ответе, чтобы идентифицировать созданный заказ и отслеживать его статус по данному guid) status: string, (при заказе оставляем пустым, в ответе показывает, в каком статусе создался заказ: CREATED или ACCEPTED) shopGuid: string, (идентификатор торговой точки, на которой создаем заказ) type: string, (тип заказа, возможны варианты: TOGO (на вынос), IN (заказ в зале), DELIVERY (заказ на доставку)) client: OrderClient, (контактные данные клиента, могут отсутствовать) itemList: OrderItem[], (позиции заказа, должна быть хотя бы 1 позиция, максимум 40 позиций в одном заказе) comment: string, (комментарий к заказу, например адрес доставки) paidValue: double, (оплаченная сумма, если клиент уже оплатил заказ. Или 0, если оплата в кафе) usedPoints: integer, (сколько бонусов списать с этим заказом. При этом цены за позиции в заказе должны быть без учета списания бонусов) printFiscalCheck: boolean, (требуется или нет автоматически распечатать фискальный чек на кассе кафе при подтверждении заказа) printFiscalCheckEmail: string (если требуется распечатать фискальный чек, то в данном поле можно указать email покупателя для отправки электронного фискального чека) } //Данные клиента. Обязательно указание или телефона или номера существующей карты клиента OrderClient { name: string, (имя клиента, без фамилии) cardNumber: int, (номер существующей карты гостя из CRM, если гостю выдавали скидочную карту) phoneCode: string, (международный код номера телефона страны, только цифры. Для РФ это "7") phone: string, (номер телефона без международного кода, только цифры. Для РФ это 10 цифр, например "9001235533") email: string (электронная почта клиента) } //Данные позиции. Для заказа блюда указать идентификатор блюда и порции menuItemGuid и menuTypeGuid. Для заказа товара указать идентификатор товара: goodsItemGuid. OrderItem { guid: string, (идентификатор позиции. Задать пустое значение, используется в ответе) menuItemGuid: string, (идентификатор блюда) menuTypeGuid: string, (идентификатор порции) supplementList: Map<string, int> (список идентификаторов выбранных добавок и их количество) goodsItemGuid: string, (идентификатор товара) priceWithDiscount: double, (цена 1 позиции с учетом скидки) quantity: int (количество одинаковых позиций, например 2 капучино) }

Path Parameters

Headers

Request Body

{
  "guid": "9c2adf72-b573-437f-b2d5-f6d016a1f130",
  "shopGuid" : "773feebe-747d-40b8-8480-cac2bb3f25da",
  "type" : "DELIVERY",
  "client" : {
    "name" : "Федор",
    "cardNumber" : null,
    "phoneCode" : "+7",
    "phone" : "9001112233",
    "email" : "example@ytimes.ru"
  },
  "itemList" : [ {
    "guid" : "39734e1d-5353-4f22-941f-e2d7e7d4ea55",
    "menuItemGuid" : "f7595624-e026-4720-9bde-22a3daf51a1b",
    "menuTypeGuid" : "48022c7e-8aab-4151-a219-7cf7f024820f",
    "supplementList" : {
      "58da5f2a-8730-417d-9bfb-546aecf01df4" : 1,
      "574f342a-83ab-4344-8aee-d2beffde1eb2" : 2
    },
    "goodsItemGuid" : null,
    "priceWIthDiscount" : 105.0,
    "quantity" : 2
  }, {
    "guid" : "1584ff15-7b89-458e-99e8-f9dc7dfa83b5",
    "menuItemGuid" : null,
    "menuTypeGuid" : null,
    "supplementList" : null,
    "goodsItemGuid" : "14e760be-5b16-48b0-936e-ea3d33449bd2",
    "priceWIthDiscount" : 110.0,
    "quantity" : 1
  } ],
  "comment" : "Комментарий к заказу",
  "paidValue" : 320.0,
  "printFiscalCheck" : false,
  "printFiscalCheckEmail" : null
}

Last updated