Интеграция сайта(ресторана) с API сервиса Quick Resto

Author Автор: Роман Чернышов    Опубликовано: 23 декабря 2024

quick resto Доброго времени друзья! Сегодня хочу поделиться опытом интеграции сайта ресторана с сервисом Quick Resto по API, для автоматизации всех бизнес-процессов, от склада до работы с клиентами. Система Quick Resto позволяет работать с: заказами, чеками, скидками, бонусами, клиентами, номенклатурой, складом, финансами, персоналом, терминалами, а также различными справочниками предустановленными в системе. Простой кейс интеграции сайта с API, это выгрузка на сайт актуального меню с ценами. Далее обо всем подробнее.

Общие сведения

API системы Quick Resto представляет собой сервер, клиенты которого передают на сервер запросы в формате JSON по протоколу HTTPS, используя методы GET и POST.

Базовый URL сервера: https://{layer_name}.quickresto.ru/platform/online/api/read

Тип авторизации: Базовая аутентификация — это простая схема аутентификации, встроенная в протокол HTTP. Клиент отправляет HTTP-запросы с заголовком Authorization, который содержит слово Basic, за которым следует пробел и строка в кодировке base64 username:password. Например, для авторизации как demo / p@55w0rd клиент должен отправить:

Authorization: Basic ZGVtbzpwQDU1dzByZA==

Получение номенклатуры

Тип запроса: GET.

URL запроса: https://{layer_name}.quickresto.ru/platform/online/api/list?moduleName=warehouse.nomenclature.dish&className=ru.edgex.quickresto.modules.warehouse.nomenclature.dish.Dish

Пример запроса на PHP:

$host = 'https://{layer_name}.quickresto.ru/platform/online/api/list?moduleName=warehouse.nomenclature.dish&className=ru.edgex.quickresto.modules.warehouse.nomenclature.dish.Dish';
$ch = curl_init($host);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: ' . base64_ecnode($username . ":" . $password)));
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($ch);
curl_close($ch);

Ответ:

[
  {
    "displayOnTerminal": true,
    "dishSales": [
      {
        "id": 0,
        "salePlace": {
          "title": "string",
          "prechecksTargetDevice": {
            "id": 0,
            "deviceId": "string",
            "manufacturer": "string",
            "model": "string",
            "serialNumber": "string",
            "connected": true,
            "name": "string",
            "deleted": true,
            "code1C": "string",
            "localIp": "string",
            "macAddress": "string"
          },
          "reportTargetDevice": {
            "id": 0,
            "deviceId": "string",
            "manufacturer": "string",
            "model": "string",
            "serialNumber": "string",
            "connected": true,
            "name": "string",
            "deleted": true,
            "code1C": "string",
            "localIp": "string",
            "macAddress": "string"
          },
          "backupPrechecksTargetDevice": {
            "id": 0,
            "deviceId": "string",
            "manufacturer": "string",
            "model": "string",
            "serialNumber": "string",
            "connected": true,
            "name": "string",
            "deleted": true,
            "code1C": "string",
            "localIp": "string",
            "macAddress": "string"
          },
          "tableScheme": {
            "id": 0,
            "version": 0,
            "name": "string",
            "tables": [
              {
                "shape": "rect",
                "title": "string",
                "x": 0,
                "y": 0,
                "width": 0,
                "height": 0,
                "angle": 0,
                "id": 0,
                "version": 0,
                "serverRegisterTime": "2019-08-24T14:15:22.456Z"
              }
            ],
            "webHalls": [
              {
                "deleted": true,
                "tables": [
                  {}
                ],
                "width": 0,
                "height": 0,
                "title": "string"
              }
            ],
            "width": 0,
            "height": 0,
            "itemTitle": "string",
            "address": {
              "fullAddress": "string",
              "office": "string",
              "floor": "string",
              "doorcode": "string",
              "entrance": "string",
              "comment": "string",
              "geocoding": {}
            }
          },
          "openCashBoxOnPrechecks": true,
          "openCashBoxOnReports": true,
          "openCashBoxOnGuestTickets": true,
          "maxTableOrderNumberEnable": true,
          "maxTableOrderNumber": 0,
          "defaultCookingPlace": {
            "title": "string",
            "store": {
              "id": 0,
              "title": "string",
              "storeCode": "string",
              "description": "string",
              "liteBusiness": {
                "name": "string",
                "shortName": "string",
                "address": "string",
                "deliveryAddress": "string",
                "innCode": "string",
                "kppCode": "string",
                "okpoCode": "string",
                "bankId": "string",
                "bankName": "string",
                "account": "string",
                "correspondentAccount": "string"
              }
            },
            "targetDevice": {
              "id": 0,
              "deviceId": "string",
              "manufacturer": "string",
              "model": "string",
              "serialNumber": "string",
              "connected": true,
              "name": "string",
              "deleted": true,
              "code1C": "string",
              "localIp": "string",
              "macAddress": "string"
            },
            "backupTargetDevice": {
              "id": 0,
              "deviceId": "string",
              "manufacturer": "string",
              "model": "string",
              "serialNumber": "string",
              "connected": true,
              "name": "string",
              "deleted": true,
              "code1C": "string",
              "localIp": "string",
              "macAddress": "string"
            },
            "doublicatingTargetDevice": {
              "id": 0,
              "deviceId": "string",
              "manufacturer": "string",
              "model": "string",
              "serialNumber": "string",
              "connected": true,
              "name": "string",
              "deleted": true,
              "code1C": "string",
              "localIp": "string",
              "macAddress": "string"
            },
            "sendSignal": true,
            "id": 0,
            "version": 0,
            "serverRegisterTime": "2019-08-24T14:15:22.456Z"
          },
          "id": 0,
          "version": 0,
          "serverRegisterTime": "2019-08-24T14:15:22.456Z"
        },
        "cookingPlace": {
          "title": "string",
          "store": {
            "id": 0,
            "title": "string",
            "storeCode": "string",
            "description": "string",
            "liteBusiness": {
              "name": "string",
              "shortName": "string",
              "address": "string",
              "deliveryAddress": "string",
              "innCode": "string",
              "kppCode": "string",
              "okpoCode": "string",
              "bankId": "string",
              "bankName": "string",
              "account": "string",
              "correspondentAccount": "string"
            }
          },
          "targetDevice": {
            "id": 0,
            "deviceId": "string",
            "manufacturer": "string",
            "model": "string",
            "serialNumber": "string",
            "connected": true,
            "name": "string",
            "deleted": true,
            "code1C": "string",
            "localIp": "string",
            "macAddress": "string"
          },
          "backupTargetDevice": {
            "id": 0,
            "deviceId": "string",
            "manufacturer": "string",
            "model": "string",
            "serialNumber": "string",
            "connected": true,
            "name": "string",
            "deleted": true,
            "code1C": "string",
            "localIp": "string",
            "macAddress": "string"
          },
          "doublicatingTargetDevice": {
            "id": 0,
            "deviceId": "string",
            "manufacturer": "string",
            "model": "string",
            "serialNumber": "string",
            "connected": true,
            "name": "string",
            "deleted": true,
            "code1C": "string",
            "localIp": "string",
            "macAddress": "string"
          },
          "sendSignal": true,
          "id": 0,
          "version": 0,
          "serverRegisterTime": "2019-08-24T14:15:22.456Z"
        }
      }
    ],
    "modifierLinks": [
      {
        "id": 0,
        "version": 0,
        "modifier": null,
        "minValue": 0,
        "maxValue": 0,
        "defaultValue": 0,
        "group": true
      }
    ],
    "excludeDeal": true,
    "basePriceInList": 0,
    "ratio": 0,
    "vat": {
      "id": 0,
      "value": 0,
      "taxType": "PRICE_INCLUDES_VAT"
    },
    "minimalPrice": 0,
    "excludeDiscount": true,
    "doNotAccumulateBonuses": true,
    "doNotWithdrawBonuses": true,
    "excludeMarkup": true,
    "barCode": "string",
    "code1C": "string",
    "currentPrimeCost": 0,
    "storeQuantityKg": 0,
    "limit": 0,
    "itemTitle": "string",
    "parentId": 0,
    "serverRegisterTime": "2019-08-24T14:15:22.456Z"
  }
]

Если вам требуется услуга интеграции вашего сайта с API Quick Resto, обращайтесь, буду рад вам помочь!

Оставить комментарий

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Купить за 359₽
Популярные записи
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка