Задачи за Hype Custom
Всяка задача за вашата платформа се добавя в опашка. Извличайте задачите редовно чрез съответните API адреси.
Поддържаните типове обекти са items, categories, supplements, saloons, tables, orderRequests, orderDeliveryChannels, orderPaymentTypes и orderRequestStatus.
След обработка на задача изпратете статуса и резултата ѝ с отделна заявка към адреса за съответния тип обект.
Извличане на задачи
Извлечете задачите, обработете ги и върнете резултата на същия адрес. HES маркира успешно обработените задачи като завършени.
Отговорът е масив от задачи със следната структура:
{
"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
Горната заявка връща задачи като следните:
[
{
"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
[
{
"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 справочника.
[
{
"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 задачи, които изискват всички канали за доставка от вашата платформа.
[
{
"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 задачи по същия начин като каналите за доставка.
[
{
"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 задачи по същия начин като каналите за доставка и видовете плащане.
[
{
"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 заявка към адреса за съответния обект с данни като следните:
[
{
"entity_task_id":"9a101f76-f1c8-47c2-a19f-259150bb62e0",
"response":{ ... },
"status": 200
}
]entity_task_id е идентификаторът на задачата, получена от HES.
response е резултатът от обработката. При GET задача върнете масив от записи; HES го използва при синхронизацията. При успешна POST/PUT задача върнете получения обект с неговия id.
status е кодът за резултата от обработката на задачата със значението на стандартните HTTP кодове.