url = BaseUrl + 'rests?corpid=19999'
JSON

здесь,

  • corpid - идентификатор корпорации

Пример ответа:

{
  "data": {
    "rests": [
      {
        "id": 199999999,
        "name": "Шоурум UCS",
        "address": "Б. Почтовая 18/20 стр. 6",
        "country": "Russia",
        "city_name": "Moscow",
        "status": "Active",
        "min_check_amount": 300,
        "delivery_period": {
          "begin": "8:00",
          "end": "22:00"
        },
        "delivery_price": 300,
        "currencies": [
          {
            "id": "ASSIST",
            "currency_code": "RUB",
            "url": "https://payments.demo.paysecure.ru/",
            "merchant_id": "115981"
          }
        ]
      }
    ]
  },
  "ver": "1.1.7.4",
  "timestamp": "2017-03-29T15:23:10",
  "status": "Ok"
}
JSON

здесь:

  • id - идентификатор ресторана

  • name - наименование ресторана

  • address - адрес ресторана

  • country - страна

  • city_name - город

  • status - статус ресторана. Значение берется с сервера лицензирования

  • min_check_amount - сумма минимального чека (устанавливается в админ части дилера)

  • delivery_period - время доставки с часа (begin) по час (end). (Устанавливается в админ части дилера)

  • delivery_price - стоимость доставки (устанавливается в админ части дилера)

  • currencies - система внешней оплаты ASSIST (все указывается в админ части дилера)

    • id - текстовый идентификатор внешнего платежного сервиса (ASSIST)

    • currency_code - код валюты в ASSIST

    • url - URL для перехода на страницу платежного сервиса

    • merchant_id - идентификатор предприятия («Номер магазина») в системе ASSIST

url = BaseUrl + 'rests'
JSON

В теле запроса JSON:

{
  "address": "Russia, Moscow, Б. Почтовая 18/20 стр. 6",
  "lat": "55.776877",
  "lon": "37.696391",
  "corpid": 19999,
  "default_object": 199994335
}
JSON

здесь,

  • address - строка адреса доставки (обязательно)

  • lat и lon - широта и долгота адреса доставки (не обязательно)

  • corpid - идентификатор корпорации (обязательно)

  • default_object - объект по умолчанию, на случай если по указанному адресу нет зоны доставки (обязательно)

Если указаны lat и lon - определение ресторана, обслуживающего зону доставки по адресу определяется по ним. Строка адреса, если она указана, игнорируется.

Пример ответа (если зоны не пересекаются - в ответе должны вернуться параметры по одному ресторану):

{
  "data": {
    "rests": [
      {
        "id": 199994335,
        "name": "Ресторан 313 крабов и креветка-",
        "address": "Б. Почтовая 18/20 стр. 6 ",
        "country": "Russia",
        "city_name": "Moscow",
        "status": "Active",
        "min_check_amount": 300,
        "delivery_period": {
          "begin": "8:20",
          "end": "22:00"
        },
        "delivery_price": 300,
        "currencies": [
          {
            "id": "ASSIST",
            "currency_code": "RUB",
            "url": "https://payments.demo.paysecure.ru/",
            "merchant_id": "115981"
          }
        ]
      }
    ]
  },
  "ver": "1.1.7.4",
  "timestamp": "2017-03-29T15:41:08",
  "status": "Ok"
}
JSON

Результаты выполнения данного запроса кэшируются на сервере webdelivery. Время обновления кэша- 15 минут.

url = BaseUrl + 'menutree?objectid=199994335&lang=ru'
JSON

здесь,

  • objectid - идентификатор объекта/ресторана (обязательно)

  • lang - язык наименований меню, ru или en (не обязательно). Если не задать вернется список локализованных ресурсов для всех языков. Если задать, то локализованные ресурсы вернуться для указанного языка

 "locres": {
  "name": "Первые блюда"
}
JSON

Пример ответа без указания  lang  (url = BaseUrl + 'menutree?objectid=199994335&lang=ru'):

{
  "data": {
    "selectors": [
      {
        "pid": 0,
        "type": "SELECTORS",
        "level": 0,
        "items": [
          {
            "pid": 0,
            "type": "SELECTORS",
            "level": 1,
            "items": [
              {
                "pid": 1000248,
                "type": "SELECTORS",
                "level": 2,
                "items": [],
                "dishes": [
                  1000039,
                  1000040
                ],
                "id": 1000258,
                "guid": "{BC31E51B-5248-4230-9924-4B0A80900BFE}",
                "code": 42,
                "name": "Первые блюда",
                "locres": {
                  "name": "Первые блюда"
                }
              },
              {
                "pid": 1000248,
                "type": "SELECTORS",
                "level": 2,
                "items": [],
                "dishes": [
                  1000016,
                  1000018
                ],
                "id": 1000255,
                "guid": "{B0A1E19F-0C8E-4F9E-9F82-F715992A5014}",
                "code": 41,
                "name": "Вторые блюда",
                "locres": {
                  "name": "Вторые блюда"
                }
              },
              {
                "pid": 1000248,
                "type": "SELECTORS",
                "level": 2,
                "items": [],
                "dishes": [
                  1000042,
                  1000043,
                  1000072
                ],
                "id": 1000267,
                "guid": "{931CB22C-4E52-4125-BD2A-F4D94C5812DA}",
                "code": 43,
                "name": "Напитки",
                "locres": {
                  "name": "Напитки"
                }
              },
              {
                "pid": 1000248,
                "type": "SELECTORS",
                "level": 2,
                "items": [],
                "dishes": [],
                "id": 1000401,
                "guid": "{9E644F23-AC74-433F-A742-00C7C8771824}",
                "code": 44,
                "name": "Комбо",
                "locres": {
                  "name": "Комбо"
                }
              }
            ],
            "dishes": [],
            "id": 1000248,
            "guid": "{CDE469EC-7600-44EA-847E-161ABA71D835}",
            "code": 40,
            "name": "Интернет-меню",
            "locres": {
              "name": "Интернет-меню"
            }
          }
        ],
        "dishes": [],
        "id": 11048,
        "guid": "{70DC9856-7791-42BC-8D89-57C8CE51EB31}",
        "code": 11048,
        "name": "Начальный выбор",
        "altname": "Initial Choice",
        "locres": {}
      }
    ]
  },
  "ver": "1.1.7.4",
  "timestamp": "2017-03-30T14:56:27",
  "status": "Ok"
}
JSON

Пример ответа без указания  lang  (url = BaseUrl + 'menutree?objectid=199994335&lang=')

{
  "data": {
    "selectors": [
      {
        "pid": 0,
        "type": "SELECTORS",
        "level": 0,
        "items": [
          {
            "pid": 0,
            "type": "SELECTORS",
            "level": 1,
            "items": [
              {
                "pid": 1000248,
                "type": "SELECTORS",
                "level": 2,
                "items": [],
                "dishes": [
                  1000039,
                  1000040
                ],
                "active": 1,
                "id": 1000258,
                "guid": "{BC31E51B-5248-4230-9924-4B0A80900BFE}",
                "code": 42,
                "name": "Первые блюда",
                "locres": {
                  "ru": {
                    "name": "Первые блюда"
                  },
                  "en": {
                    "name": "First meal"
                  }
                }
              },
              {
                "pid": 1000248,
                "type": "SELECTORS",
                "level": 2,
                "items": [],
                "dishes": [
                  1000016,
                  1000018
                ],
                "active": 1,
                "id": 1000255,
                "guid": "{B0A1E19F-0C8E-4F9E-9F82-F715992A5014}",
                "code": 41,
                "name": "Вторые блюда",
                "locres": {
                  "ru": {
                    "name": "Вторые блюда"
                  },
                  "en": {
                    "name": "Second courses"
                  }
                }
              },
              {
                "pid": 1000248,
                "type": "SELECTORS",
                "level": 2,
                "items": [],
                "dishes": [
                  1000042,
                  1000043,
                  1000072
                ],
                "active": 1,
                "id": 1000267,
                "guid": "{931CB22C-4E52-4125-BD2A-F4D94C5812DA}",
                "code": 43,
                "name": "Напитки",
                "locres": {
                  "ru": {
                    "name": "Напитки"
                  },
                  "en": {
                    "name": "Beverages"
                  }
                }
              },
              {
                "pid": 1000248,
                "type": "SELECTORS",
                "level": 2,
                "items": [],
                "dishes": [],
                "active": 1,
                "id": 1000401,
                "guid": "{9E644F23-AC74-433F-A742-00C7C8771824}",
                "code": 44,
                "name": "Комбо",
                "locres": {
                  "ru": {
                    "name": "Комбо"
                  },
                  "en": {
                    "name": "Combo"
                  }
                }
              }
            ],
            "dishes": [],
            "active": 1,
            "id": 1000248,
            "guid": "{CDE469EC-7600-44EA-847E-161ABA71D835}",
            "code": 40,
            "name": "Интернет-меню",
            "locres": {
              "ru": {
                "name": "Интернет-меню"
              },
              "en": {
                "name": "Internet-menu"
              }
            }
          }
        ],
        "dishes": [],
        "active": 1,
        "id": 11048,
        "guid": "{70DC9856-7791-42BC-8D89-57C8CE51EB31}",
        "code": 11048,
        "name": "Начальный выбор",
        "altname": "Initial Choice"
      }
    ]
  },
  "ver": "1.1.7.4",
  "timestamp": "2017-03-30T14:56:52",
  "status": "Ok"
}
JSON

Поля id, guid, code, name, altname соответствуют параметрам кассового сервера «Идентификатор», «GUID», «Код», «Название», «Альт. название» соответственно.

Поле type для одинаковых структур данных позволяет различать их по типу и принимает значения «SELECTORS» или «MENUITEM». В текущей реализации используется только значение «SELECTORS».

Результаты выполнения данного запроса кэшируются на сервере webdelivery. Время обновления кэша- 15 минут.

url = BaseUrl + 'dishes?objectid=199994335&lang=ru'
JSON

здесь,

  • objectid - идентификатор объекта/ресторана (обязательно)

  • lang - язык наименований меню (не обязательно). На запрос без lang вернутся все локализованные ресурсы блюд

Пример ответа (язык меню не указан):

{
  "data": {
    "dishes": [
      {
        "price": 5000,
        "modischeme": 0,
        "recomended": [],
        "active": 1,
        "id": 1000039,
        "guid": "{9E3F46BF-D89D-49F8-A1AE-182479B3AF46}",
        "code": 24,
        "name": "Борщ",
		"altname": "Borscht",
        "images": [
          "img24.png"
        ],
        "locres": {
          "ru": {
            "name": "Борщ"
          },
          "en": {
            "name": "Borscht"
          }
        }
      },
      {
        "price": 9500,
        "modischeme": 0,
        "recomended": [],
        "active": 1,
        "id": 1000040,
        "guid": "{634EA5E0-CF00-4316-A639-5BF1809D3D08}",
        "code": 25,
        "name": "Солянка",
        "images": [
          "img25.png",
          "img25_1.png"
        ],
        "locres": {
          "ru": {
            "name": "Солянка"
          },
          "en": {
            "name": "Saltwort"
          }
        }
      },
      {
        "price": 5000,
        "modischeme": 1000384,
        "recomended": [],
        "active": 1,
        "id": 1000016,
        "guid": "{532EB43B-6661-4063-97BA-B5BBBDC1577F}",
        "code": 4,
        "name": "Пельмени",
        "images": [
          "img4.png",
          "img4_1.png"
        ],
        "locres": {
          "ru": {
            "name": "Пельмени сибирские",
            "comment": "Пельмени сибирские",
            "long_comment": "Домашние пельмени приготовленные вручную со свининой и говядиной, со сметаной"
          },
          "en": {
            "name": "Pelmeni Sibirskie",
            "comment": "Pelmeni Sibirskie",
            "long_comment": "Russian home made pelmeni Sibirskie with pork and beef with sour cream"
          }
        }
      },
      {
        "price": 3000,
        "modischeme": 0,
        "recomended": [],
        "active": 1,
        "id": 1000018,
        "guid": "{465FCA56-5C19-4479-89A2-F715DE111ACC}",
        "code": 6,
        "name": "Спагетти",
        "images": [
          "img6.png",
          "img6_1.png"
        ],
        "locres": {
          "ru": {
            "name": "Спагетти \"Филата\"",
            "comment": "Спагетти \"Филата\"",
            "long_comment": "Спагетти, сливочное и растительное масло, твердый сыр Пармезан, сыр Дор Блю, сыр Ольтермани, чеснок"
          },
          "en": {
            "name": "Spaghetti \"Filata\"",
            "comment": "Spaghetti \"Filata\"",
            "long_comment": "Spaghetti, butter and vegetable oil, hard Parmesan cheese, Dor Blue cheese, Oltermani cheese, garlic"
          }
        }
      },
      {
        "price": 8000,
        "modischeme": 1000331,
        "recomended": [],
        "active": 1,
        "id": 1000042,
        "guid": "{ABB96A2B-A704-475C-A6F1-795BF550197D}",
        "code": 27,
        "name": "Яблочный сок",
        "images": [
          "img27.png"
        ],
        "locres": {
          "ru": {
            "name": "Яблочный сок"
          },
          "en": {
            "name": "Apple juice"
          }
        }
      },
      {
        "price": 10000,
        "modischeme": 1000331,
        "recomended": [],
        "active": 1,
        "id": 1000043,
        "guid": "{4275F46E-AE20-461C-99BA-E95D6D1AE4AA}",
        "code": 28,
        "name": "Апельсиновый сок",
        "images": [
          "img28.png"
        ],
        "locres": {
          "ru": {
            "name": "Апельсиновый сок"
          },
          "en": {
            "name": "Orange juice"
          }
        }
      },
      {
        "price": 10000,
        "modischeme": 1000331,
        "recomended": [],
        "active": 1,
        "id": 1000072,
        "guid": "{1336C583-C799-47C2-9730-190228AE9DBE}",
        "code": 17,
        "name": "Грейпфрутовый сок",
        "images": [
          "img17.png",
          "img17_1.png"
        ],
        "locres": {
          "ru": {
            "name": "Грейпфрутовый сок"
          },
          "en": {
            "name": "Grapefruit juice"
          }
        }
      }
    ],
    "modifiers": [
      {
        "pid": 0,
        "group": [
          {
            "useDownLimit": 1,
            "downLimit": 1,
            "defaultModifier": 0,
            "modi": [
              {
                "dishid": 0,
                "maxOneDish": 1,
                "price": 0,
                "active": 1,
                "id": 2003,
                "name": "ЕГАИС EAN13",
                "images": [ "" ]
              }
            ],
            "replaceDefModifier": 0,
            "useUpLimit": 1,
            "upLimit": 1,
            "active": 1,
            "id": 2001,
            "name": "ЕГАИС EAN13"
          },
          {
            "useDownLimit": 1,
            "downLimit": 1,
            "defaultModifier": 0,
            "modi": [
              {
                "dishid": 0,
                "maxOneDish": 1,
                "price": 0,
                "active": 1,
                "id": 2004,
                "name": "PDF417",
                "images": [ "" ]
              }
            ],
            "replaceDefModifier": 0,
            "useUpLimit": 1,
            "upLimit": 1,
            "active": 1,
            "id": 2002,
            "name": "PDF417"
          }
        ],
        "item": [],
        "active": 1,
        "id": 2007,
        "code": 2007,
        "name": null
      },
      {
        "pid": 0,
        "group": [],
        "item": [],
        "active": 1,
        "id": 1000194,
        "code": 1,
        "name": null
      },
      {
        "pid": 0,
        "group": [
          {
            "useDownLimit": 0,
            "downLimit": 0,
            "defaultModifier": 0,
            "modi": [
              {
                "dishid": 0,
                "maxOneDish": 1,
                "price": 0,
                "active": 1,
                "id": 1000324,
                "name": "Корица",
                "images": [ "" ]
              },
              {
                "dishid": 0,
                "maxOneDish": 1,
                "price": 0,
                "active": 1,
                "id": 1000325,
                "name": "Сахар",
                "images": [ "" ]
              },
              {
                "dishid": 0,
                "maxOneDish": 1,
                "price": 0,
                "active": 1,
                "id": 1000327,
                "name": "Безе",
                "images": [ "" ]
              },
              {
                "dishid": 0,
                "maxOneDish": 1,
                "price": 0,
                "active": 1,
                "id": 1000329,
                "name": "Молоко",
                "images": [ "" ]
              }
            ],
            "replaceDefModifier": 0,
            "useUpLimit": 0,
            "upLimit": 0,
            "active": 1,
            "id": 1000323,
            "name": "123"
          }
        ],
        "item": [],
        "active": 1,
        "id": 1000331,
        "code": 2,
        "name": null
      },
      {
        "pid": 0,
        "group": [
          {
            "useDownLimit": 0,
            "downLimit": 0,
            "defaultModifier": 0,
            "modi": [
              {
                "dishid": 0,
                "maxOneDish": 1,
                "price": 0,
                "active": 1,
                "id": 1000392,
                "name": "п",
                "images": [ "" ]
              },
              {
                "dishid": 0,
                "maxOneDish": 1,
                "price": 500,
                "active": 1,
                "id": 1000393,
                "name": "в",
                "images": [ "" ]
              },
              {
                "dishid": 0,
                "maxOneDish": 10,
                "price": 6320,
                "active": 1,
                "id": 1000394,
                "name": "ноор",
                "images": [ "" ]
              }
            ],
            "replaceDefModifier": 0,
            "useUpLimit": 0,
            "upLimit": 0,
            "active": 1,
            "id": 1000391,
            "name": "апапа"
          }
        ],
        "item": [],
        "active": 1,
        "id": 1000384,
        "code": 3,
        "name": null
      },
      {
        "pid": 0,
        "group": [],
        "item": [],
        "active": 1,
        "id": 1000399,
        "code": 4,
        "name": null
      }
    ],
    "commonModifiers": [
      {
        "pid": 0,
        "group": [
          {
            "useDownLimit": 0,
            "downLimit": 0,
            "defaultModifier": 0,
            "modi": [
              {
                "dishid": 0,
                "maxOneDish": 7,
                "price": 0,
                "active": 1,
                "id": 1000386,
                "name": "Первый",
                "images": [ "" ]
              },
              {
                "dishid": 0,
                "maxOneDish": 3,
                "price": -139,
                "active": 0,
                "id": 1000387,
                "name": "Второй",
                "images": [ "" ]
              },
              {
                "dishid": 0,
                "maxOneDish": 2,
                "price": 1263,
                "active": 1,
                "id": 1000388,
                "name": "Третий",
                "images": [ "" ]
              },
              {
                "dishid": 0,
                "maxOneDish": 0,
                "price": 0,
                "active": 1,
                "id": 1000389,
                "name": "неограниченный",
                "images": [ "" ]
              }
            ],
            "replaceDefModifier": 0,
            "useUpLimit": 0,
            "upLimit": 0,
            "active": 1,
            "id": 1000385,
            "name": "Общий_"
          },
          {
            "useDownLimit": 0,
            "downLimit": 0,
            "defaultModifier": 0,
            "modi": [
              {
                "dishid": 0,
                "maxOneDish": 7,
                "price": 1,
                "active": 1,
                "id": 1000397,
                "name": "раз",
                "images": [ "" ]
              },
              {
                "dishid": 0,
                "maxOneDish": 1,
                "price": 0,
                "active": 1,
                "id": 1000398,
                "name": "два",
                "images": [ "" ]
              }
            ],
            "replaceDefModifier": 0,
            "useUpLimit": 0,
            "upLimit": 0,
            "active": 1,
            "id": 1000396,
            "name": "Новая"
          }
        ],
        "item": [],
        "active": 1,
        "id": 1000384,
        "code": 3,
        "name": null
      }
    ]
  },
  "ver": "1.1.7.4",
  "timestamp": "2017-03-30T11:21:17",
  "status": "Ok"
}
JSON

здесь:

  • dishes - список блюд

  • modifiers - список модификаторов

  • commonModifiers - список общих модификаторов (описание аналогично modifiers)

dishes - список блюд:

{
  "price": 5000,
  "modischeme": 1000384,
  "recomended": [],
  "active": 1,
  "id": 1000016,
  "guid": "{532EB43B-6661-4063-97BA-B5BBBDC1577F}",
  "code": 4,
  "name": "Пельмени",
  "images": [
    "img4.png",
    "img4_1.png"
  ],
  "locres": {
    "ru": {
      "name": "Пельмени сибирские",
      "comment": "Пельмени сибирские",
      "long_comment": "Домашние пельмени приготовленные вручную со свининой и говядиной, со сметаной"
    },
    "en": {
      "name": "Pelmeni Sibirskie",
      "comment": "Pelmeni Sibirskie",
      "long_comment": "Russian home made pelmeni Sibirskie with pork and beef with sour cream"
    }
  }
}
JSON

здесь:

  • price - цена в копейках

  • modischeme - идентификатор схемы модификаторов

  • recomended - список рекомендованных блюд

  • active - блюдо активно (1), не активно (0)

  • id - идентификатор блюда

  • guid - GUID блюда

  • code - код блюда (берется из настроек справочников RK7)

  • name - наименование блюда

  • images - список наименований файлов изображений

  • locres - локализованные ресурсы

  • здесь:

    • name - локализованное наименование блюда

    • comment - короткий комментарий

    • long_comment - длинный комментарий

    • item - зарезервировано, сейчас не используется

modifiers - схемы модификаторов:

{
  "pid": 0
  "active": 1,
  "id": 2007,
  "code": 2007,
  "name": null,
  "group": [
    {
      "useDownLimit": 1,
      "downLimit": 1,
      "defaultModifier": 0,
      "modi": [
        {
          "dishid": 0,
          "maxOneDish": 1,
          "price": 0,
          "active": 1,
          "id": 2003,
          "name": "ЕГАИС EAN13",
          "images": [ "" ]
        }
      ],
      "replaceDefModifier": 0,
      "useUpLimit": 1,
      "upLimit": 1,
      "active": 1,
      "id": 2001,
      "name": "ЕГАИС EAN13"
    },
    {
      "useDownLimit": 1,
      "downLimit": 1,
      "defaultModifier": 0,
      "modi": [
        {
          "dishid": 0,
          "maxOneDish": 1,
          "price": 0,
          "active": 1,
          "id": 2004,
          "name": "PDF417",
          "images": [ "" ]
        }
      ],
      "replaceDefModifier": 0,
      "useUpLimit": 1,
      "upLimit": 1,
      "active": 1,
      "id": 2002,
      "name": "PDF417"
    }
  ]  
}
JSON

здесь:

  • pid - идентификатор корневого узла (parent id). Используется для формирования древовидной структуры заказа, ссылается на идентификатор узла, к которому принадлежит данное блюдо или модификатор.

  • active - активная (1) /не активная схема (0)

  • id - идентификатор схемы

  • code - код схемы (берется из настроек справочников RK7)

  • name - наименование схемы

  • group - список групп модификаторов

    • id - идентификатор

    • name - наименование

    •  useDownLimit - признак применения ограничения снизу (по количеству)

    • downLimit - минимальное количество модификатора для блюда

    • defaultModifier - идентификатор модификатора по умолчанию (поле dishid у модификаторов)

    • replaceDefModifier - замена модификатора по умолчанию (1 - да, 0 - нет). Задает поведение для интерфейса пользователя: если replaceDefModifier = 1, то надо установленный модификатор по умолчанию заменить на выбранный пользователем; если replaceDefModifier = 0, то выбранный пользователем модификатор надо добавить к заказу, не заменяя им модификатор по умолчанию.

    • useUpLimit - признак применения ограничения сверху (по количеству)

    • upLimit - максимальное количество модификатора для блюда

    • active - активная/не активная группа модификаторов

    • modi - список модификаторов в группе

      • dishid - если модификатор является комбокомпонентом - идентификатор блюда, иначе 0,

      • maxOneDish - максимальное количество на одно блюдо

      • price - цена модификатора

      • active - активный/не активный модификатор

      • id - идентификатор модификатора

      • name - наименование модификатора

      • images - список наименований файлов изображений

Нового клиента можно создать с помощью  API CRM. Другой способ- это указать данные о клиенте непосредственно в запросе на сохранение заказа. Во этом случае сервис Интернет-заказов автоматически сначала создаст запись о новом клиенте в CRM, а потом сохранит заказ для этого клиента. Оба способа сохранения заказов приведены ниже.

url = BaseUrl + 'savedeliveryorder'
JSON

В теле запроса JSON:

заказ на самовывоз

{
  "objectid": 199994335,
  "delivery_time": "2017-03-29T23:52:00",
  "comment": " Оплата онлайн. Оплата через ASSIST",
  "order_type": 0,
  "pay_type": 2,
  "client": {
    "phone": "79996661010",
    "email": "e.korsunov@ucs.ru",
    "ln": "тестов",
    "fn": "тест"
  },  
  "order": [
    {
      "id": "1000039",
      "type": "d",
      "qnt": 1000,
      "items": [
        {
          "id": 1000388,
          "type": "m",
          "qnt": 3000,
          "items": []
        },
        {
          "id": "100143",
          "type": "dc",
          "crm": true
        }
      ]
    },
    {
          "id": "101706",
          "type": "dc",
          "crm": true
    }    
  ]
}
JSON

заказ на доставку

{
  "objectid": 199994335,
  "delivery_time": "2016-10-14T13:43:00",
  "comment": "Примечание к заказу Сдача с 500",
  "order_type": 1,
  "pay_type": 0,
  "client": {
    "phone": "79131112233",
    "email": "ivan_ivanov@mail.com",
    "ln": "Иванов Иван Иванович"
  },
  "address": {
    "country": "Россия",
    "city": "Воронеж",
    "street": "Лизюкова",
    "house": "20",
    "building": "",
    "entry": "",
    "floor": "",
    "apartments": "",
    "lat": "55.776877",
    "lon": "37.696391"
  },
  "order": [
    {
      "id": 1000418,
      "type": "d",
      "qnt": 1000,
      "items": [
        {
          "id": 1000162,
          "type": "m",
          "qnt": 1000,
          "items": []
        },
        {
          "id": "100143",
          "type": "dc",
          "crm": true
        }        
      ]
    },
    {
          "id": "101706",
          "type": "dc",
          "crm": true
    }    
  ]
}
JSON

заказ на доставку с комбоблюдом и модификаторами

{
    "version_app": "0.4.7",
    "objectid": 199994545,
    "delivery_time": "2018-05-08T13:08:00",
    "comment": "Опл: налич ",
    "order_type": 1,
    "pay_type": 0,
    "client": {
        "phone": "71111111111",
        "email": "qw@com.com",
        "ln": "иванов",
        "fn": "иван"
    },
    "address": {
        "country": "Россия",
        "city": "москва",
        "street": "большая почтовая",
        "house": "18",
        "building": "20",
        "lat": "55.776031",
        "lon": "37.6926"
    },
    "order": [
        {
            "id": "100720",
            "type": "c",
            "qnt": 2000,
            "items": [
                {
                    "id": 101763,
                    "type": "cc",
                    "qnt": 1000,
                    "items": [
                        {
                            "id": 102705,
                            "type": "m",
                            "qnt": 1000,
                            "items": []
                        }
                    ]
                },
                {
                    "id": 101757,
                    "type": "cc",
                    "qnt": 1000,
                    "items": []
                },
                {
                    "id": 101769,
                    "type": "cc",
                    "qnt": 1000,
                    "items": [
                        {
                            "id": 100173,
                            "type": "m",
                            "qnt": 1000,
                            "items": []
                        }                        
                    ]
                },
                {
                    "id": 101771,
                    "type": "cc",
                    "qnt": 1000,
                    "items": []
                },
                {
                    "id": 101779,
                    "type": "cc",
                    "qnt": 1000,
                    "items": []
                }
            ]
        }
    ]
}
JSON

здесь,

  • objectid - идентификатор объекта (обязательно)

  • delivery_time - дата и время доставки, в формате 'YYYY-MM-DDTHH:mm:ss' (обязательно)

  • comment - комментарий к заказу (не обязательно)

  • order_type - тип заказа: 0 - заказ на самовывоз, 1 - заказ на доставку (обязательно)

  • pay_type - тип оплаты: 0 - наличные курьеру, 1 - банковской картой курьеру, на заказ будет установлена блокировка (обязательно).

  • client - данные клиента

    • phone - номер телефона (обязательно)

    • email - электронная почта (не обязательно)

    • ln - фамилия (обязательно)

    • fn - имя (не обязательно)

    • mn - отчество (не обязательно)

  • address - адрес доставки (обязательно если заказ на доставку)

    • country - страна

    • city - город

    • street - улица

    • house - дом

    • building - строение

    • entry - подъезд

    • floor - этаж

    • apartments - квартира

  • order - состав заказа (список)

    • id - идентификатор блюда

    • type - тип. 'd' - блюдо, 'c' - комбоблюдо, 'cc' - компонент комбоблюда, 'm' - модификатор, dc- скидка на заказ

    • qnt - количество в тысячах (если 1 штука, то значение будет 1000)

    • crm - если поле есть и равно true, то кассовому серверу необходимо будет получить значение скидки из CRM (параметр применим только для type=«dc»).

    • items - список составляющих (модификаторов)

      • id - идентификатор

      • type - тип. «m» - модификатор, «d» - блюдо (если основное блюдо - это комбоблюдо), dc- скидка на блюдо

      • qnt - количество

      • items - список модификаторов/комбокомпонентов

      • crm - если поле есть и равно true, то кассовому серверу необходимо будет получить значение скидки из CRM (параметр применим только для type=«dc»).

Ответ

{
  "data": {
    "visit_id": "412747060",
    "visit_guid": "{F60F10FA-7F09-450C-84F6-CA03580442B9}",
    "table_name": "Дост",
    "order_sum": "8350",
    "unpaid_sum": "8350",
    "discount_sum": "-439",
    "seq_number": "5",
    "dishes": [
      {
        "modi": [
          {
            "id": 1000388,
            "guid": "{864866E8-013E-44D4-B55A-2B8D164D2459}",
            "code": 14,
            "name": "Третий",
            "price": 1263,
            "quantity": 3000
          }
        ],
        "id": "1000039",
        "guid": "{9E3F46BF-D89D-49F8-A1AE-182479B3AF46}",
        "code": "24",
        "name": "Борщ",
        "price": "5000",
        "amount": "8350",
        "quantity": "1000",
        // скидки на блюдо
        "discounts": [
           {
              "id": "100143",
              "name": "15Праздничная"
           }
        ]
      }
    ],
    // скидки на заказ
    "discounts": [
       {
         "id": "101706",
         "name": "20%"
       },
       {
         "id": "100154",
         "name": "1Дешевое мороженое"
       }
    ],    
    "Payments": [
            {
                "id": 1,
                "code": 1,
                "name": "Рубли",
                "guid": "{16D72549-14D8-4F31-9E2A-0A833D4F5EED}",
                "amount": 19000
            },
            {
                "id": 2,
                "code": 22,
                "name": "Евро",
                "guid": "{2A426EA7-CA4A-482C-B74C-45347F18759F}",
                "amount": 543
            },
            {
                "id": 3,
                "code": 3,
                "name": "Доллар США",
                "guid": "{D2DB2A5B-CB57-4626-AFB3-0851DCCA4724}",
                "amount": 600
            }
    ]
    
  },
  "ver": "1.1.7.4",
  "timestamp": "2017-03-30T15:27:42",
  "status": "Ok"
}
JSON

здесь

  • visit_id - идентификатор визита

  • visit_guid - GUID визита

  • table_name - номер / наименование стола (не используется)

  • order_sum - сумма заказа

  • unpaid_sum - сумма к оплате

  • discount_sum - сумма скидки

  • seq_number - порядковый номер заказа

  • dishes - содержимое заказ

    • id - идентификатор блюда

    • guid - GUID блюда

    • code - код блюда

    • name - наименование блюда (основное наименование из RK7, не локализованное)

    • price - цена (в копейках)

    • amount - сумма (в копейках)

    • quantity - количество (в тысячах)

    • modi - модификаторы

    • discounts - скидки на блюдо

  • discounts - скидки на заказ

    • id - идентификатор скидки

    • name - наименование скидки (основное наименование из RK7, не локализованное)

  • Payments - сумма к оплате с учетом всех скидок

    • id- идентификатор валюты

    • code - код валюты

    • name - наименование валюты

    • guid - GUID валюты

    • amount - сумма к оплате в данной валюте

Результат данного запроса зависит от настройки  "режим геокодирования" в панели администратора.

url = BaseUrl + 'savedeliveryorder?objectId=<номер объекта>'
JSON

В теле запроса JSON:

{
    "version_app": "0.4.7",
    "delivery_time": "2018-09-27T13:32:00",
    "comment": "Опл: налич ",
    "order_type": 0,
    "pay_type": 0,
    "pay_online_type": "",
    "client": {
			"id": "10000000009188",
			"phone": "+79998887766"
    },
    "address": {
			"id": "10000000003276"
	},
    "order": [
        {
            "id": "101757",
            "type": "d",
            "qnt": 4000,
            "items": []
        }
    ]
}
JSON

здесь,

  • delivery_time - дата и время доставки, в формате 'YYYY-MM-DDTHH:mm:ss' (обязательно)

  • comment - комментарий к заказу (не обязательно)

  • order_type - тип заказа: 0 - заказ на самовывоз, 1 - заказ на доставку (обязательно)

  • pay_type - тип оплаты: 0 - наличные курьеру, 1 - банковской картой курьеру, на заказ будет установлена блокировка (обязательно).

  • client - данные клиента

    • id - идентификатор клиента из CRM

    • phone- номер телефона, который будет прописан в заказе (например, если у клиента несколько номеров). Необязательный параметр

  • address - адрес доставки (обязательно если заказ на доставку)

    • id -идентификатор адреса доставки из CRM

  • order - состав заказа (список)

    • id - идентификатор блюда

    • type - тип. 'd' - блюдо, 'c' - комбоблюдо, 'cc' - компонент комбоблюда, 'm' - модификатор

    • qnt - количество в тысячах (если 1 штука, то значение будет 1000)

    • items - список составляющих (модификаторов)

      • id - идентификатор

      • type - тип. «m» - модификатор, «d» - блюдо (если основное блюдо - это комбоблюдо), «dc» - скидка на блюдо

      • qnt - количество

      • items - список модификаторов/комбокомпонентов

      • crm - флаг того, что эта скидка из CRM (применимо для type=«dc»)

  • discounts - скидка на заказ

    • id - идентификатор скидки

    • crm - флаг того, что эта скидка из CRM

Ответ

Ответ такой же, как в разделе «Сохранение заказа для нового клиента».

Примечание  Результат данного запроса зависит от настройки  "режим геокодирования" в панели администратора.

url = BaseUrl + 'CalcOrder'
JSON

В теле запроса передается точно такое содержимое, что и в запросе SaveDeliveryOrder.

Ответ:

{
    "data": {
        "Payments": [
            {
                "id": 1,
                "code": 1,
                "name": "Рубли",
                "guid": "{16D72549-14D8-4F31-9E2A-0A833D4F5EED}",
                "amount": 19000
            },
            {
                "id": 2,
                "code": 22,
                "name": "Евро",
                "guid": "{2A426EA7-CA4A-482C-B74C-45347F18759F}",
                "amount": 543
            },
            {
                "id": 3,
                "code": 3,
                "name": "Доллар США",
                "guid": "{D2DB2A5B-CB57-4626-AFB3-0851DCCA4724}",
                "amount": 600
            }

        ]
    },
    "ver": "1.1.15.15",
    "timestamp": "2018-10-03T15:26:02",
    "status": "Ok",
    "requestId": "4925c8c968834372a0cbaa7be99e4106"
} 
JSON

здесь

  • id- идентификатор валюты

  • code - код валюты

  • name - наименование валюты

  • guid - GUID валюты

  • amount - сумма к оплате в данной валюте

В списке валют возвращаются только те валюты, для которых задано расширенное свойство ForDelivery=1.

Результат данного запроса зависит от настройки  "режим геокодирования" в панели администратора.

url = BaseUrl + 'payment'
JSON

В теле запроса:

{
  "object_id": 199990001,
  "visit_id": 411765152,
  "payments": [
    {
      "currency_id": 1000379,
      "extpay_id": "ASSIST",
      "amount": 62718,
      "promised": true
    }
  ]
}
JSON

здесь:

  • object_id - код объекта

  • visit_id - идентификатор визита

  • payments

    • currency_id - идентификатор валюты в rk7

    • extpay_id - информация о внешней транзакции, сохраняется в RK7 в поле ExtTransactionInfo

    • amount - сумма оплаты в копейках (базовые единицы измерения)

    • promised - тип платежа (значение true- обещанный платеж; false- предоплата)

Результат данного запроса зависит от настройки "режим геокодирования" в панели администратора.

url = BaseUrl + courier?objectId=<objectId>&visitId=<visitId>
JSON

здесь:

  • objectId - номер объекта (ресторана) в котором оформлен заказ

  • visitId - номер заказа

Ответ без координат курьера:

{
    "data": {
        "object_id": <objectId>,
        "visit_id": <visitId>,
        "courier_location": null,
        "dlvStateID": 0,
        "DlvStateName": "не подтвержден"
    },
    "ver": "1.1.14.12",
    "timestamp": "2018-10-09T12:10:00",
    "status": "Ok",
    "requestId": "a6ecbf6a35a54ccd984bd9a05999868f"
}
JSON

здесь:

  • object_id - номер объекта (ресторана) в котором оформлен заказ

  • visit_id - номер заказа

  • courier_location - текущее местоположение курьера

  • dlvStateID - статус заказа. Может принимать значение:

    • 0: неподтверждённый

    • 1: новый подтверждённый заказ

    • 2: в готовке

    • 3: отправлен

    • 4: доставлен

    • 5: выполнен (архив)

    • 6: заказ редактируется

    • 7: готов (приготовлен на кухне, готов к отправке)

    • 8: подтверждён (используется, если включено подтверждение заказов)

  • DlvStateName - наименование статуса заказа. Может принимать значение

    • «не подтвержден»,

    • «принят в работу»,

    • «готовится»,

    • «отправлен с экспедитором»,

    • «доставлен»,

    • «в архиве»,

    • «редактируется»,

    • «готов к отправке»,

    • «подтвержден исполняющим рестораном»

Ответ с координатами курьера:

{
    "data": {
        "object_id": <objectId>,
        "visit_id": <visiId>,
        "courier_location": {
            "lon": <longitude>,
            "lat": <latitude>,
        },
        "dlvStateID": 0,
        "DlvStateName": "не подтвержден"
    },
    "ver": "1.1.14.12",
    "timestamp": "2018-10-09T12:10:00",
    "status": "Ok",
    "requestId": "a6ecbf6a35a54ccd984bd9a05999868f"
}
JSON
url = BaseUrl + 'Order?objectId=<идентификатор объекта>&visitId=<номер заказа>'
JSON

Ответ:

{
    "data": {
        "visit_id": 449382195,
        "visit_guid": "{13EC8EDF-F1B8-4C6D-830E-C94CC165F40E}",
        "table_name": "D44",
        "order_sum": 19000,
        "unpaid_sum": 19000,
        "prepay_sum": 0,
        "promised_sum": 0,
        "discount_sum": -1000,
        "seq_number": "72",
        "dishes": [
            {
                "modi": [],
                "id": "101757",
                "guid": "{6A57F1BB-2EAD-4432-A21C-D51B841E479B}",
                "code": "31",
                "name": "Голубцы",
                "price": "5000",
                "amount": "19000",
                "quantity": "4000",
                "discounts": [
                    {
                        "id": "100143",
                        "name": "15Праздничная"
                    }
                ]                
            }
        ],
       "discounts": [
            {
                "id": "101706",
                "name": "20%"
            },
            {
                "id": "100154",
                "name": "1Дешевое мороженое"
            }
        ],        
        "travel_time": 60,
        "DeliveryBlock": {
            "DeliveryState": "4",
            "StartTime": "2018-10-10T17:42:26",
            "MinCookTime": "1899-12-30T00:30:00"
        }
    },
    "ver": "1.1.15.16",
    "timestamp": "2018-10-10T17:44:37",
    "status": "Ok",
    "requestId": "152c1c190de446e5b37ef9e6f073d393"
}
JSON

Формат запроса соответствует тому, что возвращает запрос SaveDeliveryOrder за исключением информации о суммах к оплате (секция Payments).

url = BaseUrl + 'Currency?objectId=<идентификатор объекта>'
JSON

Ответ:

{
    "data": [
        {
            "curid": 1,
            "name": "Рубли",
            "promised": ""
        },
        {
            "curid": 2,
            "name": "Евро",
            "promised": ""
        },
        {
            "curid": 3,
            "name": "Доллар США",
            "promised": ""
        },
        {
            "curid": 1000033,
            "name": "Купон на бар",
            "promised": ""
        },
        {
            "curid": 1000221,
            "name": "Бесплатно",
            "promised": ""
        }
    ],
    "ver": "1.3.0.32",
    "timestamp": "2019-12-27T16:32:22",
    "status": "Ok",
    "requestId": "d2dc73ea861d43de82abde031aa67477"
}
JSON

Здесь

  • curid - идентификатор валюты;

  • name - наименование валюты;

  • promised - значение расширенного свойства genPromised;

Список валют для интернет-заказов фильтруется с помощью расширенного свойства genForDelivery, установленного для каждой валюты. Если genForDelivery=1, то валюта попадет в результирующий список.

Данный запрос является кэшируемым. Время обновления кэша- 5 минут.