Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Приклади простих операцій в Постмані
Для початку візьмемо найрозповсюдженіший запит: Не прийшла доставка в SyrvePOS.
В такому випадку треба попросити в інтеграторів тіло запиту і відповідь, які отримав інтегратор. Якщо ми говоримо про адекватних інтеграторів, то у них є система логування запитів і надати нам таку інформацію не буде проблемою, найголовніше тут - розуміти яку інформацію шукати в тій купі тексту.

Для прикладу, розглянемо наступні запит і відповідь:
Запит
{"organizationId":"da416856-73ae-4765-ba81-53aa804e424e","terminalGroupId":"40eb08bc-c095-468f-0163-4003f69800c3","order":{"id":"ee33a0bc-99de-22de-5b3a-8fbaa432fa78","items":[{"type":"Product","productId":"ad703b0f-f686-4b5e-895a-67b69dfecf5e","modifiers":[],"amount":1},{"type":"Product","productId":"edffd662-8781-4d25-9c18-3dab4a4fb559","modifiers":[],"amount":1}],"phone":"+380939399901","orderTypeId":"5b1508f9-fe5b-d6af-cb8d-043af587d5c2","comment":"Не телефонуйте мені | LiqPay ID платежу: 2430538474 | | Адреса самовивозу - Пулюя, буд. № 12 | | Переніс на термінал 40eb08bc-c095-468f-0163-4003f69800c3, бо термінал f75c70b0-896a-4c5e-849f-d8f438a8aeea не відповідає","customer":{"id":"0ba20000-29b3-b8cb-0847-08db1360cddb","name":"Олександр ","email":"lotophagi108@gmail.com"},"completeBefore":"2024-02-26T16:01:00","payments":[{"paymentTypeKind":"IikoCard","sum":"45","paymentTypeId":"f0c90c55-2f57-4f01-aa62-8d847872ec9c","isProcessedExternally":false,"paymentAdditionalData":{"credential":"+380939399901","searchScope":"Phone"}},{"paymentTypeKind":"Card","sum":"410","paymentTypeId":"c20ae52f-5160-4da4-b4c1-8eff7d204e67","isProcessedExternally":true}]}}
Відповідь
{"correlationId":"ba31c415-64d1-4fad-a0d4-8f6bfe35350b","orders":[{"id":"ee33a0bc-99de-22de-5b3a-8fbaa432fa78","posId":"e7b6449a-5a10-4e14-99ea-62e648034e54","externalNumber":null,"organizationId":"da416856-73ae-4765-ba81-53aa804e424e","timestamp":1708954363305,"creationStatus":"InProgress","errorInfo":null,"order":null}]}
Перше на що звертаємо увагу - текст відповіді.
Якщо маємо "creationStatus":"InProgress" - це значить що запит синтаксично з точки зору JSON виконаний правльно і потрапив на сервер Транспорту, проте це нам ще нічого не каже про його долю, а от що нам справді допоможе - це спеціальний апі запит, який поверне нам актуальний статус замовлення. Це запит - https://api-eu.syrve.live/api/1/deliveries/by_id
В документації нам першочергово треба подивитись, що необхідно для його виконання:
Як бачимо, для виконання нам необхідно 2 поля:
1) Айді організації, на яку відправлялась доставка
2) Або айді замовлення з АПІ (orderIds) або його аналог з фронту (posOrderIds)
В документації сказано, що ID орагнізації можна отримати через відповідний запит, але ми ж не просто так просили тіло запиту і відповідь у інтеграторів ;)
Вся ця інформація уже є у нас на руках, шукаємо її у відповіді, яку надав нам інтегратор:
{"correlationId":"ba31c415-64d1-4fad-a0d4-8f6bfe35350b","orders":[{"id":"ee33a0bc-99de-22de-5b3a-8fbaa432fa78","posId":"e7b6449a-5a10-4e14-99ea-62e648034e54","externalNumber":null,"organizationId":"da416856-73ae-4765-ba81-53aa804e424e","timestamp":1708954363305,"creationStatus":"InProgress","errorInfo":null,"order":null}]}
Тепер, маючи цю інформацію, ми можемо перевірити поточний статус доставки:
1. Спочатку, йдемо у веб офіс для того, щоб дістати апі ключ клієнта. Де саме шукати необхідну нам інофрмацію ми знаємо з першої статті.
2. Далі отримуємо токен по цьому ключу, який надалі будемо використовувати для авторизації запитів. Токен, як ми пам’ятаємо, валідний всього 10 хвилин, тому якщо в процесі отримаємо повідомлення про те що час токену вичерпаний - просто створюємо новий і продовжуємо роботу
3. Тепер будуємо наступний запит по скріншоту. Якщо ви користуєтесь моїми напрацюваннями, то дані, які ми отирмали в попередніх кроках треба занести в змінні в Environments в папці Global в стовпчик Current value і обов’язково зберегти перед виконаням запиту. Якщо пишете запит самостійно - то в такому форматі {{змінна}} просто підставляєте потрібні значення.
Заповнили, відправляємо і отримуємо в результаті відповідь, в якій нас цікавить тільки одне поле: creationStatus.
Тут буде три варіанти:
  1. InProgress - це значить що ми зробили перевірку зарано і замовлення все ще валідується. Необхідно почекати
  2. Success - це значить що замовлення пройшло валідацію і є на форнті. У відповіді ми будемо мати всю інформацію про нього
  3. Error - це значить що замовлення не пройшло валідацію і в полі message буде описана причина на англійській, чому саме це сталось.
В нашому випадку - замовлення валідацію не пройшло і причина - таймаут. Тобто можна зробити висновок що в момент відправки замовлення на касу, фронт там не був запущений або не було зв’язку з Транспортом. Знаючи причину проблеми - набагато легше знайти шлях її вирішення ;)

Наступний кейс який ми розглянемо: “У нас чогось не вивантажується позиція в АПІ” і “На позицію неправильна ціна”
У обох варіацій цього кейсу як правило ноги ростуть з одного й того ж місця, тому будемо розглядати обидві ситуації одночасно. Отже, як ми зрозуміли, мова йде про номенклатуру і так, є спеціальний запит, який дозволить нам витягти список позицій, які вивантажені в апі по конкретній організації.
Цей запит - https://api-eu.syrve.live/api/1/nomenclature
Як бачимо в документації, ключовий параметр, який необхідно передати, в нас всього один - це ID організації. Тепер, як же нам дізнатись, по якій саме організації дивитись вивантаження? Якщо у нас є тільки 1 Stand-alone РМС - то питань немає, але що якщо Чейн? В такому випадку можна уточнити усно у клієнта або інтегратора, по якій точці проблема. Отримавши точку, запитом https://api-eu.syrve.live/api/1/organizations витягуємо список організацій, до яких має доступ апі логін.
По атрибуту name шукаємо необхідну нам точку і записуємо її id. Те що записано в цьому атрибуті = назві торгового підприємства в Чейн (або якщо простіше - це те що написно в стовпчиту Сервер при авторизації в бекофісі)
Далі витягуємо запитом номенклатуру і в нижній частині інтерфейсу програми натискаємо Ctrl + F. Це відкриє нам рядок пошуку і в гьому ми зможемо вбити якусь інформацію для перевірки. Я як правило використовую Артикул, бо цей атрибут для товара є унікальним і його легше всього уточнити у клієнта.
Якщо при пошуку інформація в АПІ збігається зінформацією від клієнта - то питання на стороні інтеграторів і треба розбиратись разом з ними
Якщо ж позиції з артикулом немає в АПІ, або у нех неправильна ціна - це вже питання до нас і необхідно перевірити з нашої сторони що не так( наказ, джерело вивантаження меню, зовнішнє меню, тощо)

Сподіваюсь після цієї статті трошки більше зрозуміла логіка роботи з діагностикою проблем в АПІ ;)