Integracja GoPos
Witaj, czy ktoś robił integrację GoPos z niestandardową stroną dla restauracji w Polsce?
Potrzebuję pomocy, mają bardzo ubogą dokumentację, jest tylko swagger i to bez opisów
https://app.gopos.io/doc/swagger-ui/index.html
Sytuacja jest taka, używaliśmy od nich strony do zamówień online, jeśli tam składano zamówienie, to u kelnerów na tabletach pojawiało się powiadomienie, aby potwierdzić zamówienie
Zrobiłem niestandardową stronę na laravelu, przy składaniu zamówienia przez api po prostu wysyła się do systemu POS, bez potwierdzenia
Czy ktoś się z tym spotkał i jak to naprawić? Wsparcie techniczne odpowiada im tygodniami
Proszę o kontakt tylko tych, którzy rzeczywiście robili taką integrację z
-
Cześć!\nJestem gotów zająć się Twoim projektem, wykonam go w trybie pilnym.\nMam ogromne doświadczenie w pracy z podobnymi zadaniami, nie będzie żadnych trudności.\nJeśli Cię zainteresowałem, pisz, chętnie nawiążę współpracę!
-
552 3 0 Problem jest zrozumiały: wasza strona tworzy zamówienia przez POST /orders, a one przychodzą w statusie OPENED — bezpośrednio do systemu, bez etapu potwierdzenia. Powiadomienie na tablecie działa tylko dla zamówień w statusie EXTERNAL, a trafiają tam tylko zamówienia od zarejestrowanych partnerów GoPos (GoOrder, Wolt, Glovo). Zwykłe zamówienie API tam nie trafia — stąd cisza na tablecie.
Są dwa sposoby rozwiązania:
1. Rejestracja jako partner GoPos — przez oficjalny formularz na stronie gopos.pl prosicie o status app integration partner. Wtedy wasze zamówienia trafią do EXTERNAL, tablet dostanie dźwięk i popup, kelner naciska „zaakceptuj”. To właściwa droga, ale czas odpowiedzi od GoPos jest nieprzewidywalny.
2. Webhook + własna warstwa powiadomień — równolegle lub jako opcja zapasowa: rejestrujecie webhook na zdarzenie ORDER_CREATED, otrzymujecie powiadomienie na serwer, pobieracie pełne zamówienie przez GET, pokazujecie kolejkę na osobnym interfejsie tabletowym z powiadomieniem. Kelner potwierdza tam, status aktualizuje się przez API. Działa bez partnerstwa.
Z GoPos API zapoznałem się przez specyfikację Swagger — są tam działające punkty końcowe dla accept/reject, statusów przygotowania, webhooków. Dokumentacja jest skromna, ale struktura zrozumiała.
…
Jestem gotów się tym zająć: 3–5 dni, 6000–9000 zł w zależności od wybranej drogi. Proszę o wyjaśnienie — czy GoOrder jest już podłączony, czy strona jest całkowicie niestandardowa na osobnej domenie?
-
584 1 0 Cześć! Szczerze: wcześniej nie pracowałem z GoPos — ale zajrzałem do ich API (Swagger z twojego zadania) i widzę konkretną przyczynę.
W GoPos dla zewnętrznych/online zamówień jest osobny status EXTERNAL i krok potwierdzenia — endpointy PUT /orders/{id}/accept i /reject. Rodzinna strona zamówień online tworzy zamówienie jako EXTERNAL → trafia ono do kolejki, a kelner na tablecie dostaje „potwierdź” (klika accept).
Twoja integracja na Laravel, sądząc po objawach, tworzy zamówienie od razu jako przyjęte (OPENED) lub sama wywołuje accept/send przy POST /orders — dlatego krok potwierdzenia jest pomijany.
Poprawka: przy tworzeniu (POST /orders) formować zamówienie jako zewnętrzne (EXTERNAL) i nie wywoływać accept/send automatycznie — wtedy znowu trafi do kelnera na potwierdzenie. Sprawdzę na twoim kodzie i testowym zamówieniu, aby zachowanie zgadzało się z rodzinną stroną.
Dokumentacja rzeczywiście tylko Swagger bez opisów — ale już się w nim zorientowałem, w kwestii zamówień wszystko jasne.
…
Koszt: 1500 UAH, termin 1-2 dni (po uzyskaniu dostępu do kodu integracji i klucza API).
-
232 Dzień dobry! GoPos dokładnie nie robiłem, ale robiłem podobne integracje systemów POS (Syrve/iiko) — i ten problem z potwierdzeniem jest mi znany jeden do jednego. Prawie na pewno ich strona zamówień online tworzy zamówienie w statusie „oczekuje na potwierdzenie”, co wyzwala powiadomienie dla kelnera na tablecie, a wasze bezpośrednie zapytanie przez API umieszcza zamówienie już jako przyjęte (lub bez pola, które wysyła je do kolejki potwierdzenia). Sprawdzę ich swagger pod kątem statusów i źródła zamówienia — i powiem dokładnie, gdzie macie rozbieżności. Proszę powiedzieć: zamówienie w ogóle dociera do tabletu, po prostu bez przycisku potwierdzenia, czy w ogóle go tam nie widać?
-
738 4 0 Dzień dobry. Wiem, w czym tkwi problem w zapytaniu. Proszę pisać...
-
650 2 0 Cześć!
Od razu szczerze: nie pracowałem z GoPos — ale wygląda na to, że już rozumiem, w czym tkwi wasz problem, i da się to rozwiązać przez ich API.
Brzmi tak, że chodzi o to, jakim statusem tworzony jest zamówienie. Rodzinna strona internetowa zamówień online GoPos tworzy zamówienie jako „niepotwierdzone” → dlatego kelner na tablecie dostaje powiadomienie „potwierdź”. A wasza niestandardowa strona na Laravel, sądząc po opisie, wysyła zamówienie tak, że jest ono od razu akceptowane (auto-accept), pomijając ten krok.
Zwykle naprawia się to w jednym z trzech miejsc:
— inny endpoint (często mają osobną metodę dla zamówień online vs kasowych);
— parametr status przy tworzeniu (tworzyć jako new/unconfirmed, a nie accepted);
… — flaga source/type zamówienia (online vs kasa) — to właśnie ona wyzwala powiadomienie na tablecie.
Sposób na znalezienie dokładnej przyczyny jest prosty: porównuję payload, który wysyła ich rodzinna strona, z tym, co wysyła wasz Laravel, według ich Swagger — i znajduję, które pole/endpoint zawiera potwierdzenie. Niedokumentowane API (tylko Swagger bez opisów) — to właśnie to, z czym ciągle pracuję, więc brak normalnej dokumentacji i wolna ich pomoc techniczna nie stanowią problemu, poradzę sobie z samym API.
Dacie dostęp do kodu integracji (gdzie formułowane jest zapytanie zamówienia) i testowy dostęp do GoPos — a ja znajdę, dlaczego zamówienie idzie bez potwierdzenia, i poprawię.
Z czego wygodniej zacząć — prześlecie aktualny kod wysyłania zamówienia, czy najpierw spojrzę, jakie metody tworzenia zamówienia mają w ich Swagger?
-
Zadaj swoje pytanie zleceniodawcy