Інтеграція GoPos
Привіт, робив хтось інтеграцію GoPos з кастомним сайтом для ресторану в Польщі?
Потрібна допомога, у них дуже скудна документація, є тільки swagger і той без описів
https://app.gopos.io/doc/swagger-ui/index.html
Суть така, використовували від них сайт для онлайн замовлень, якщо там робили замовлення, то у офіціантів на планшетах виходило повідомлення, підтвердити замовлення
Зробив кастомний сайт на ларке, при оформленні замовлення по апі він просто відправляється в пос систему, без підтвердження
Стикалися хтось з таким і як це виправити? Тех підтримка у них тижнями відповідає
Прошу відгукнутися тільки тих, хто саме робив інтеграцію таку з
-
Привіт!
Готовий взяти Ваш проект, виконаю у терміновому порядку.
Досвід роботи з подібними завданнями величезний, труднощів не виникне.
Якщо я Вас зацікавив, пишiть, радий співпрацювати!
-
552 3 0 Проблема зрозуміла: ваш сайт створює замовлення через POST /orders, і вони приходять у статусі OPENED — безпосередньо в систему, без етапу підтвердження. Сповіщення на планшеті спрацьовує лише для замовлень у статусі EXTERNAL, а в нього потрапляють лише замовлення від зареєстрованих партнерів GoPos (GoOrder, Wolt, Glovo). Звичайне API-замовлення туди не потрапляє — звідси і тиша на планшеті.
Є два шляхи вирішення:
1. Реєстрація як партнер GoPos — через офіційну форму на сайті gopos.pl просіть статус app integration partner. Тоді ваші замовлення потраплять у EXTERNAL, планшет отримає звук і попап, офіціант натискає «прийняти». Правильний шлях, але терміни відповіді від GoPos непередбачувані.
2. Webhook + власний notification layer — паралельно або як запасний варіант: реєструєте webhook на подію ORDER_CREATED, отримуєте сповіщення на сервер, отримуєте повне замовлення через GET, показуєте чергу на окремому планшетному інтерфейсі зі сповіщенням. Офіціант підтверджує там, статус оновлюється через API. Працює без партнерства.
З GoPos API розібрався по Swagger-специфікації — там є робочі endpoints для accept/reject, preparation statuses, webhooks. Документація бідна, але структура зрозуміла.
…
Готовий взятися: 3–5 днів, 6000–9000 грн в залежності від обраного шляху. Уточніть — GoOrder у вас вже підключений чи сайт повністю кастомний на окремому домені?
-
584 1 0 Привіт! Чесно: саме з GoPos раніше не працював — але заглянув в їх API (Swagger з вашого завдання) і причину бачу конкретно.
У GoPos для зовнішніх/онлайн-замовлень є окремий статус EXTERNAL і крок підтвердження — ендпоінти PUT /orders/{id}/accept і /reject. Рідний сайт онлайн-замовлень створює замовлення як EXTERNAL → воно потрапляє в чергу, і офіціанту на планшет приходить «підтвердити» (він натискає accept).
Ваша інтеграція на Laravel, судячи з симптому, створює замовлення одразу прийнятим (OPENED) або сама викликає accept/send при POST /orders — тому крок підтвердження пропускається.
Фікс: при створенні (POST /orders) формувати замовлення як зовнішнє (EXTERNAL) і не викликати accept/send автоматично — тоді воно знову піде офіціанту на підтвердження. Перевірю на вашому коді і тестовому замовленні, щоб поведінка співпала з рідним сайтом.
Документація у них і справді тільки Swagger без описів — але я в ньому вже розібрався, по замовленням все зрозуміло.
…
Вартість: 1500 грн, термін 1-2 дні (після доступу до коду інтеграції та API-ключу).
-
232 Добрий день! GoPos саме не робив, але робив такі ж інтеграції POS-систем (Syrve/iiko) — і ця проблема з підтвердженням знайома один в один. Майже напевно їхній сайт онлайн-замовлень створює замовлення в статусі «очікує підтвердження», який і тригерить сповіщення офіціанту на планшеті, а ваш прямий запит по API кладе замовлення вже прийнятим (або без поля, яке відправляє його в чергу підтвердження). Гляну їхній swagger по статусах і джерелу замовлення — і скажу точно, де у вас розходиться. Підкажіть: замовлення взагалі доїжджає до планшета, просто без кнопки підтвердження, чи його там не видно зовсім?
-
738 4 0 Доброго дня. Знаю, в чому причина в запиті. Пишіть...
-
650 2 0 Доброго дня!
Відразу чесно: саме з GoPos не працював — але, здається, я вже розумію, в чому ваша проблема, і це вирішується через їх API.
Звучить так, що справа в тому, яким статусом створюється замовлення. Рідний сайт онлайн-замовлень GoPos створює замовлення як «непідтверджене» → тому офіціанту на планшет падає сповіщення «підтвердити». А ваш кастомний сайт на Laravel, судячи з опису, шле замовлення так, що воно відразу приймається (auto-accept), минаючи цей крок.
Виправляється зазвичай в одному з трьох місць:
— інший ендпоінт (у них часто окремий метод під online-замовлення vs касові);
— параметр status при створенні (створювати як new/unconfirmed, а не accepted);
… — прапорець source/type замовлення (онлайн vs каса) — саме він і тригерить сповіщення на планшет.
Спосіб знайти точну причину простий: порівнюю payload, який шле їх рідний сайт, з тим, що шле ваш Laravel, по їх Swagger — і знаходжу, яке поле/ендпоінт включає підтвердження. Недокументовані API (тільки Swagger без описів) — якраз те, з чим постійно працюю, так що відсутність нормальної документації і повільна їх техпідтримка тут не проблема, розберуся по самому API.
Дасте доступ до коду інтеграції (де формується запит замовлення) і тестовий доступ до GoPos — і я знайду, чому замовлення йде без підтвердження, і виправлю.
З чого зручніше почати — скинете поточний код відправки замовлення, або спершу гляну, які методи створення замовлення є у них в Swagger?
-
Поставте ваше запитання замовнику