تخطَّ إلى المحتوى

استوديو QR

رموز الطاولات والاستلام والتوصيل

Section titled “رموز الطاولات والاستلام والتوصيل”

في /app/qr، ولّد رموز الطاولات بالرقم — يمكن أن تحمل المنشأة 200 رمز طاولة فعّال كحد أقصى في الوقت نفسه، والرقم الذي يحمل رمزًا بالفعل يُتجاوز بدلاً من تكراره. يحصل كل من الاستلام والتوصيل على رمز واحد، يُنشأ تلقائيًا فور تفعيل ذلك السياق في الروابط والتوصيل ومتابعتنا.

لكل منشأة تصميم QR واحد تشترك فيه كل الرموز: نمط الإطار (بطاقة، أو بسيط، أو خيمة)، وألوان إما مأخوذة من مظهرك أو مضبوطة يدويًا، وإظهار الشعار من عدمه، وطباعة رقم الطاولة على البطاقة من عدمها، ونص الدعوة إلى الإجراء لرموز الطاولات والاستلام، بكلتا اللغتين. حين يستخدم التصميم ألوان المظهر، يعمل فحص تباين وقتامة تلقائيًا، ويعود إلى الأسود على الأبيض إن كانت ألوان مظهرك لا تُمسح بموثوقية.

نزّل أي رمز بصيغة PNG أو SVG، يُركَّب على جهازك نفسه مع تضمين الخطوط والشعار كي يُطبع بوضوح. تعرض صفحة الطباعة في /app/qr/print دفعة من الرموز لتستخدم خاصية “حفظ كملف PDF” في متصفحك — لا يوجد تصدير PDF منفصل من الخادم.

ما يرمّزه الرمز، ولماذا لا تعيد طباعته أبدًا

Section titled “ما يرمّزه الرمز، ولماذا لا تعيد طباعته أبدًا”

كل رمز مطبوع يرمّز {origin}/q/{code} — رابط قصير ودائم، وليس رابط القائمة نفسه. مسحه يحوّل إلى القائمة بمعامل ?t={n} لطاولة أو ?ctx=pickup / ?ctx=delivery، ويُحسَم من جديد في كل مسح. هذا يعني أن إعادة ترقيم طاولة، أو إعادة تسمية منشأتك، أو تغيير الـslug لا يُبطل أبدًا رمزًا مطبوعًا ولاصقًا بالفعل — يتغير فقط وجهة التحويل.

كل تحويل يسجّل عملية مسح، تظهر في الاستوديو كعدد على مدى آخر 30 يومًا بالإضافة إلى تاريخ آخر مسح على الإطلاق. لا تُحتسب المسحات إلا حين تكون تحليلات الزوار مفعّلة للمنشأة؛ وحين تكون معطّلة، يعرض كل رمز صفر مسحات، فقد يبدو الرمز المستخدم يوميًا فعليًا وكأنه غير مستخدم. حذف رمز جرى مسحه خلال آخر 30 يومًا يُرفض ما لم تفرضه، وأثناء تعطيل التحليلات يحذّر الاستوديو من أن عدد المسحات لا يمكن الوثوق به قبل أن يسمح لك بفرض الحذف.

اطبع رموزًا للطاولات من 1 إلى 12

يستدعي هذا generate_qr بـ kind: 'table' وtable_numbers: [1, 2, ..., 12] — حتى 200 رقم في الاستدعاء الواحد، وأي رقم يحمل رمزًا بالفعل يعود ضمن skipped. أضف dry_run: true لمعاينة ما سيُنشأ أولاً.