Skip to content
OminaisuudetHinnoitteluKumppanitBlogiOhjeMeistäYhteystiedot
AloitaKirjaudu sisään
Takaisin blogiin
guides2026-07-276 min lukemista

Kaksisuuntainen Square POS -synkronointi thMenun kanssa: Webhook + REST Polling

Brooklynin kahvilan case: Square catalog.version.updated webhook ja 30 minuutin polling-varmistus sekä US/FI-verojen mappaus.

th

thMenu Team

thmenu.com

Jos pyörität 32-paikkaista specialty-kahvilaa Brooklynissa Square Terminalin ja thMenu QR-menun yhdistelmällä, hintojen synkronointi voi muuttua operatiiviseksi painajaiseksi. Barista vaihtaa latten 5,50 → 5,75 USD, mutta QR-menu näyttää yhä vanhaa hintaa. Tämä artikkeli kuvaa hybridiarkkitehtuurin: webhook ensin, polling turvaverkkona.

Webhook ensisijaisena kanavana

Squaren catalog.version.updated -tapahtuma laukeaa joka kerta kun item, variation tai modifier muuttuu. Ohjaa se thMenu Workerin endpointtiin /api/integrations/square/webhook: vahvista HMAC-SHA256-allekirjoitus, lue object_id, sitten hae tiedot kutsulla /v2/catalog/object/{id}.

Worker mappaa vastauksen D1_MENUun: variations[0].price_money.amount sentteinä (575) muuntuu products.price = 5,75 USD. Sarake square_object_id mahdollistaa upsertin. SLA toimittaa 99,2 % webhookista 15 minuutissa.

Polling ja rate limit

Verkkohäiriöiden tai harvinaisten yli 5 min Square-viiveiden varalta 30 min cron kysyy /v2/catalog/search -reittiä viimeisten 35 minuutin suodattimella.

Squaren rajoitus on 10 pyyntöä/sek. 500 tuotteelle: 100 per batch_retrieve ja 1 sekunnin tauko.

Verojen mappaus: US vs FI

Brooklyn perii 8,875 % NY sales taxia; Helsingin kahvila 14 % ALV ravintolapalveluista. Lisää tax_us_pct ja tax_fi_pct tauluun products.

UKK

Mitä jos webhookit epäonnistuvat?Polling korjaa erot 30 minuutissa.

Synkronoidaanko varasto?Ei, vain katalogi.

Mikä paketti?Pro ja Platinum.

Oliko tästä hyötyä? Jaa se.