Se você opera um café de especialidade de 32 lugares em Brooklyn com Square Terminal e cardápio QR thMenu, manter preços sincronizados pode virar pesadelo operacional. O barista muda o latte de 5,50 para 5,75 USD, mas o QR ainda exibe o preço antigo. Este artigo descreve uma arquitetura híbrida: webhook em primeiro lugar, polling como rede de segurança.
Webhook como canal primário
O evento catalog.version.updated do Square dispara a cada mudança de item, variation ou modifier. Direcione-o para o Worker thMenu em /api/integrations/square/webhook: valide a assinatura HMAC-SHA256, leia object_id, depois consulte /v2/catalog/object/{id}.
O Worker mapeia a resposta para D1_MENU: variations[0].price_money.amount em centavos (575) vira products.price = 5,75 USD. A coluna square_object_id permite upsert. SLA Square entrega 99,2% dos webhooks em 15 minutos.
Polling e limite de taxa
Para quedas de rede ou atrasos raros do Square (5+ minutos), um cron de 30 minutos consulta /v2/catalog/search filtrado pelos últimos 35 minutos.
O limite Square é 10 requisições/segundo. Para 500 itens, 100 por batch_retrieve e 1 segundo de pausa evita todos os 429.
Mapeamento fiscal: US vs PT
Brooklyn cobra 8,875% de NY sales tax; uma loja em Lisboa cobra 23% de IVA restauração (ou 13% reduzido). Adicione tax_us_pct e tax_pt_pct em products; restaurant.country decide.
FAQ
Se os webhooks falharem? O polling resolve em 30 minutos.
Sincroniza estoque? Não, só catálogo.
Qual plano? Pro e Platinum.
Achou útil? Compartilhe.
Artigos relacionados
O que é um menu QR? O guia completo para restaurantes
Um menu QR permite que os clientes acedam à sua ementa instantaneamente pelo sma…
Mudar do cardápio em papel para o menu QR digital: guia passo a passo
Quer adotar menus QR mas não sabe por onde começar? Este guia cobre fotografia, …
Menus QR com geolocalização: servir idiomas distintos pelo IP do visitante
Como um resort de 180 lugares em Antalya roteia o mesmo QR para menus turcos, al…