Skip to content
المميزاتالأسعارالشراكةالمدونةالمساعدةمن نحنتواصل معنا
ابدأ الآنتسجيل الدخول
العودة إلى المدونة
guides2026-07-276 دقيقة قراءة

مزامنة ثنائية الاتجاه بين Square POS وthMenu: Webhook مع REST Polling

دراسة حالة لمقهى في بروكلين: webhook catalog.version.updated من Square مع نسخة احتياطية polling كل 30 دقيقة وتعيين الضرائب.

th

thMenu Team

thmenu.com

إذا كنت تدير مقهى متخصصاً يضم 32 مقعداً في بروكلين باستخدام Square Terminal وقائمة thMenu QR، فإن الحفاظ على تزامن الأسعار يصبح كابوساً تشغيلياً. الباريستا يغيّر اللاتيه من 5.50 إلى 5.75 USD، لكن قائمة QR لا تزال تعرض السعر القديم. هذه المقالة تشرح بنية هجينة: webhook أولاً، polling كشبكة أمان.

Webhook كقناة رئيسية

حدث Square catalog.version.updated يُطلق عند أي تعديل لـ item أو variation أو modifier. وجّهه إلى Worker thMenu على /api/integrations/square/webhook: تحقق من توقيع HMAC-SHA256، استخرج object_id، ثم استدعِ /v2/catalog/object/{id}.

يحوّل Worker الرد إلى D1_MENU: variations[0].price_money.amount بالسنتات (575) يصبح products.price = 5.75 USD. عمود square_object_id يضمن upsert. SLA يضمن 99.2% خلال 15 دقيقة.

Polling وحد المعدل

عند انقطاع الشبكة أو تأخيرات نادرة من Square (5+ دقائق)، يقوم cron كل 30 دقيقة باستعلام /v2/catalog/search مع فلتر آخر 35 دقيقة.

حد Square هو 10 طلبات/ثانية. لـ 500 منتج: 100 لكل batch_retrieve ثم توقف ثانية واحدة.

تعيين الضرائب: US مقابل SA

بروكلين يفرض 8.875% ضريبة مبيعات؛ فرع في الرياض يفرض 15% ضريبة قيمة مضافة. أضف tax_us_pct وtax_sa_pct في products.

الأسئلة الشائعة

ماذا لو فشل webhook؟ Polling يغطي الفجوة خلال 30 دقيقة.

هل يزامن المخزون؟ لا، فقط الكتالوج.

أي خطة؟ Pro وPlatinum.

هل وجدت هذا مفيداً؟ شاركه.