Към съдържанието

Задачи за Hype Custom ​

Всяка задача за вашата платформа се добавя в опашка. Извличайте задачите редовно чрез съответните API адреси.

Поддържаните типове обекти са items, categories, supplements, saloons, tables, orderRequests, orderDeliveryChannels, orderPaymentTypes и orderRequestStatus.

След обработка на задача изпратете статуса и резултата ѝ с отделна заявка към адреса за съответния тип обект.

Извличане на задачи ​

Извлечете задачите, обработете ги и върнете резултата на същия адрес. HES маркира успешно обработените задачи като завършени.

Отговорът е масив от задачи със следната структура:

json
{
  "id": "...",
  "request": {
    ...
  },
  "status": 0,
  "meta": {
    "source_account": { ... }
  },
  "type": "..."
}

id е идентификаторът на задачата, необходим при отчитане на статуса и резултата ѝ.

request съдържа данните за обработка и съответства на тялото на заявка в REST API. При GET задачи съдържа настройките на интеграцията за вашия акаунт или [], ако няма такива; не е нужно да ги обработвате.

meta.source_account описва акаунта в Hype Server, от който идва промяната: id, name, platform_id, platform_name и platform_key.

type определя исканата операция.

  • GET: върнете всички записи от искания тип.
  • POST: създайте запис.
  • PUT: променете запис.

В момента HES не изпраща DELETE задачи. Когато съпоставен запис бъде изтрит в Hype, получавате PUT задача за него с нулирани полета (празни низове или нули, например "name": ""). Проверявайте за този случай, преди да приложите PUT.

status винаги е 0 при извличане и означава нова, необработена задача.

Артикули ​

GET /tasks/hype-custom/items

Горната заявка връща задачи като следните:

json
[
  {
    "id": "9a101f76-f1c8-47c2-a19f-259150bb62e0",
    "request": {
      "name": "Маргарита 20",
      "categoryId": 31,
      "price": 4.33,
      "preparationTime": 20,
      "barCode": "812345679",
      "modifiers": [],
      "quantity": 1,
      "active": true
    },
    "status": 0,
    "meta": {
      "source_account": {
        "id": "a0fa1fe5-feda-4753-9f23-691343e3828c",
        "name": "Local",
        "platform_id": "4d410b0e-ee37-497e-8362-478a383d68ee",
        "platform_name": "Hype Server",
        "platform_key": "hype-server"
      }
    },
    "type": "POST"
  },
  {
    "id": "9a101f76-f1c8-47c2-a19f-439150bb58ab",
    "request": {
      "id": "87001",
      "name": "Coca Cola",
      "categoryId": 31,
      "price": 2.5,
      "preparationTime": 0,
      "barCode": "712345689",
      "modifiers": [],
      "supplements": [],
      "quantity": 1,
      "active": true
    },
    "status": 0,
    "meta": {
      "source_account": {
        "id": "a0fa1fe5-feda-4753-9f23-691343e3828c",
        "name": "Local",
        "platform_id": "4d410b0e-ee37-497e-8362-478a383d68ee",
        "platform_name": "Hype Server",
        "platform_key": "hype-server"
      }
    },
    "type": "PUT"
  }
]

Първата задача с идентификатор 9a101f76-f1c8-47c2-a19f-259150bb62e0 изисква създаване на нов артикул. POST задачите никога не съдържат id; вие го задавате и го връщате в резултата. Полето quantity на артикула винаги е 1 и не означава наличност.

Втората задача променя артикул 87001. Това е идентификаторът на артикула във вашата платформа, която се интегрира с HES.

Категории ​

GET /tasks/hype-custom/categories

json
[
  {
    "id": "9a101f76-f1c8-47c2-a19f-259150bb62e0",
    "request": {
      "name": "Сандвичи",
      "order": 1
    },
    "status": 0,
    "meta": {
      "source_account": {
        "id": "a0fa1fe5-feda-4753-9f23-691343e3828c",
        "name": "Local",
        "platform_id": "4d410b0e-ee37-497e-8362-478a383d68ee",
        "platform_name": "Hype Server",
        "platform_key": "hype-server"
      }
    },
    "type": "POST"
  },
  {
    "id": "9a101f76-f1c8-47c2-a19f-439150bb58ab",
    "request": {
      "name": "Пици",
      "order": 2
    },
    "status": 0,
    "meta": {
      "source_account": {
        "id": "a0fa1fe5-feda-4753-9f23-691343e3828c",
        "name": "Local",
        "platform_id": "4d410b0e-ee37-497e-8362-478a383d68ee",
        "platform_name": "Hype Server",
        "platform_key": "hype-server"
      }
    },
    "type": "POST"
  },
  {
    "id": "9a101f76-f1c8-47c2-a19f-489150bb62b1",
    "request": {
      "id": 234,
      "name": "Бира",
      "order": 3
    },
    "status": 0,
    "meta": {
      "source_account": {
        "id": "a0fa1fe5-feda-4753-9f23-691343e3828c",
        "name": "Local",
        "platform_id": "4d410b0e-ee37-497e-8362-478a383d68ee",
        "platform_name": "Hype Server",
        "platform_key": "hype-server"
      }
    },
    "type": "PUT"
  }
]

Заявки за поръчки ​

GET /tasks/hype-custom/orderRequests

Когато Hype промени статуса на поръчка, HES създава задача със съпоставения идентификатор и статус. Други полета може да са запазени от по-рано съхранени данни за поръчката. Приложете промяната на статуса; не приемайте допълнителните полета за актуално състояние на цялата поръчка. Примерът показва само полетата, нужни на обработчика на статуси. Вижте API справочника.

json
[
  {
    "id": "9a101f76-f1c8-47c2-a19f-259150bb62e0",
    "request": {
      "id": 1,
      "status": {
        "id": 2,
        "name": "Приета"
      }
    },
    "status": 0,
    "meta": {
      "source_account": {
        "id": "a0fa1fe5-feda-4753-9f23-691343e3828c",
        "name": "Local",
        "platform_id": "4d410b0e-ee37-497e-8362-478a383d68ee",
        "platform_name": "Hype Server",
        "platform_key": "hype-server"
      }
    },
    "type": "PUT"
  }
]

Канали за доставка ​

GET /tasks/hype-custom/orderDeliveryChannels

Този ресурс обикновено получава GET задачи, които изискват всички канали за доставка от вашата платформа.

json
[
  {
    "id": "9a101f76-f1c8-47c2-a19f-259150bb62e0",
    "request": [],
    "status": 0,
    "meta": {
      "source_account": {
        "id": "a0fa1fe5-feda-4753-9f23-691343e3828c",
        "name": "Local",
        "platform_id": "4d410b0e-ee37-497e-8362-478a383d68ee",
        "platform_name": "Hype Server",
        "platform_key": "hype-server"
      }
    },
    "type": "GET"
  }
]

Върнете каналите за доставка като масив в response на задачата. Webhook за създаване на канал също може да предоставя стойности на HES. Съпоставете ги ръчно в Hype Server след активиране; вижте процеса на интеграция.

Видове плащане ​

GET /tasks/hype-custom/orderPaymentTypes

Видовете плащане използват GET задачи по същия начин като каналите за доставка.

json
[
  {
    "id": "9a101f76-f1c8-47c2-a19f-259150bb62e0",
    "request": [],
    "status": 0,
    "meta": {
      "source_account": {
        "id": "a0fa1fe5-feda-4753-9f23-691343e3828c",
        "name": "Local",
        "platform_id": "4d410b0e-ee37-497e-8362-478a383d68ee",
        "platform_name": "Hype Server",
        "platform_key": "hype-server"
      }
    },
    "type": "GET"
  }
]

Върнете видовете плащане като масив в response. Webhook за създаване на вид плащане също може да предоставя тези стойности за последващо ръчно съпоставяне.

Статуси на заявки за поръчки ​

GET /tasks/hype-custom/orderRequestStatus

Статусите на поръчки използват GET задачи по същия начин като каналите за доставка и видовете плащане.

json
[
  {
    "id": "9a101f76-f1c8-47c2-a19f-259150bb62e0",
    "request": [],
    "status": 0,
    "meta": {
      "source_account": {
        "id": "a0fa1fe5-feda-4753-9f23-691343e3828c",
        "name": "Local",
        "platform_id": "4d410b0e-ee37-497e-8362-478a383d68ee",
        "platform_name": "Hype Server",
        "platform_key": "hype-server"
      }
    },
    "type": "GET"
  }
]

Върнете статусите на поръчки като масив в response. Webhook за създаване на статус също може да предоставя тези стойности за последващо ръчно съпоставяне.

Отчитане на резултати от задачи ​

След извличане и обработка на задача уведомете HES за резултата. Изпратете PUT заявка към адреса за съответния обект с данни като следните:

json
[
  {
    "entity_task_id":"9a101f76-f1c8-47c2-a19f-259150bb62e0",
    "response":{ ... },
    "status": 200
  }
]

entity_task_id е идентификаторът на задачата, получена от HES.

response е резултатът от обработката. При GET задача върнете масив от записи; HES го използва при синхронизацията. При успешна POST/PUT задача върнете получения обект с неговия id.

status е кодът за резултата от обработката на задачата със значението на стандартните HTTP кодове.

API на Hype Exchange Service