Run je een 32-zits specialty café in Brooklyn met zowel Square Terminal als een thMenu QR-menu, dan kan prijssynchronisatie een operationele nachtmerrie worden. De barista verandert de latte van 5,50 naar 5,75 USD, maar het QR-menu toont nog de oude prijs. Dit artikel beschrijft een hybride architectuur: webhook eerst, polling als vangnet.
Webhook als hoofdkanaal
Square's catalog.version.updated event vuurt bij elke wijziging van item, variation of modifier. Stuur het naar het thMenu Worker endpoint /api/integrations/square/webhook: verifieer de HMAC-SHA256 handtekening, lees object_id en haal details op via /v2/catalog/object/{id}.
De Worker mapt het antwoord naar D1_MENU: variations[0].price_money.amount in centen (575) wordt products.price = 5,75 USD. De square_object_id kolom maakt upsert mogelijk. Square's SLA levert 99,2% van webhooks binnen 15 minuten.
Polling en rate limit
Bij netwerkstoringen of zeldzame Square-vertragingen van 5+ minuten dekt een 30-minuten cron alles af door /v2/catalog/search te bevragen op de laatste 35 minuten.
De Square rate limit is 10 verzoeken/sec. Voor 500 items: 100 per batch_retrieve en 1 seconde pauze — 429-fouten verdwijnen.
Belastingmapping: US vs NL
Brooklyn rekent 8,875% NY sales tax; een Amsterdamse locatie rekent 9% btw op horeca. Voeg tax_us_pct en tax_nl_pct toe aan products.
FAQ
Wat als webhooks falen?De polling lost het binnen 30 minuten op.
Synchroniseert het ook voorraad?Nee, alleen catalogus.
Welk plan?Pro en Platinum.
Was dit nuttig? Deel het.
Gerelateerde artikelen
Wat is een QR-menu? De complete gids voor restaurants
Een QR-menu geeft gasten direct toegang tot uw menukaart via hun smartphone — zo…
Van papieren menukaart naar digitaal QR-menu: stap voor stap
Wilt u overstappen op QR-menu's maar weet u niet waar te beginnen? Deze gids beh…
Geo-gerichte QR-menu's: verschillende talen serveren op basis van bezoeker-IP
Hoe een 180-stoelen all-inclusive resort in Antalya dezelfde QR routeert naar Tu…