Skip to content
FunkcjeCennikPartnerzyBlogPomocO nasKontakt
Zacznij terazZaloguj się
Powrót do Bloga
guides2026-07-276 min czytania

Dwukierunkowa synchronizacja Square POS z thMenu: Webhook + REST Polling

Case study kawiarni z Brooklynu: webhook catalog.version.updated Square z 30-minutowym fallbackiem polling i mapowaniem podatków US/PL.

th

thMenu Team

thmenu.com

Prowadząc 32-osobową kawiarnię specialty na Brooklynie z Square Terminal i menu QR thMenu, synchronizacja cen może stać się operacyjnym koszmarem. Barista zmienia latte z 5,50 na 5,75 USD, ale QR menu nadal pokazuje starą cenę. Ten artykuł opisuje architekturę hybrydową: webhook na pierwszym planie, polling jako siatka bezpieczeństwa.

Webhook jako kanał główny

Zdarzenie Square catalog.version.updated uruchamia się przy każdej zmianie item, variation lub modifier. Skieruj je do endpointu Worker thMenu /api/integrations/square/webhook: zweryfikuj podpis HMAC-SHA256, wyciągnij object_id, następnie pobierz /v2/catalog/object/{id}.

Worker mapuje odpowiedź do D1_MENU: variations[0].price_money.amount w centach (575) staje się products.price = 5,75 USD. Kolumna square_object_id umożliwia upsert. SLA Square dostarcza 99,2% webhooków w 15 minut.

Polling i limity

Przy awariach sieci lub rzadkich opóźnieniach Square ponad 5 minut, cron 30-minutowy pyta /v2/catalog/search z filtrem ostatnich 35 minut.

Limit Square to 10 żądań/sek. Dla 500 pozycji: 100 na batch_retrieve, potem 1 sekunda pauzy.

Mapowanie podatków: US vs PL

Brooklyn nalicza 8,875% NY sales tax; lokal w Warszawie 8% VAT na gastronomię. Dodaj tax_us_pct i tax_pl_pct do products.

FAQ

Co gdy webhooki zawiodą?Polling naprawia w 30 minut.

Czy synchronizuje stany?Nie, tylko katalog.

Który plan?Pro i Platinum.

Czy to było pomocne? Udostępnij.