محرر القائمة
المحرر هو المكان الذي تعيش فيه قائمتك فعليًا قبل أن يراها أحد. كل شيء هنا يعدّل مسودة — لا يتغير شيء في الصفحة العامة حتى تنشر.
الأقسام والأصناف
Section titled “الأقسام والأصناف”تعرض /app/menu قائمتك كأقسام، يحمل كل قسم أصنافه بترتيبها. أضف قسمًا، وأعد تسميته مباشرة، واسحب لإعادة ترتيب الأقسام أو الأصناف داخل أحدها. حذف قسم لا يعمل إلا حين يكون فارغًا — انقل أصنافه أو احذفها أولاً. حذف صنف هو حذف مؤقت: يختفي من المسودة فورًا، والتراجع عن التغيير من سجل النشاط يعيده.
الإضافة السريعة
Section titled “الإضافة السريعة”في آخر كل قسم جدول للإضافة السريعة فيه الاسم (EN) والاسم (AR) والسعر والسعرات والوصف (EN) والوصف (AR). اكتب صنفًا واحدًا في كل صف: يظهر صف فارغ جديد أثناء الكتابة، وزر Enter ينقلك إلى اسم الصف التالي. زر حفظ N يحفظ كل الصفوف المعبأة دفعة واحدة، بعد أصناف القسم الحالية وبترتيب كتابتك، كتغيير واحد يمكنك التراجع عنه من سجل النشاط؛ وتُتجاهل الصفوف الفارغة. يحتاج كل صنف إلى اسم بلغة واحدة على الأقل. إذا كان في أي صف خطأ فلا يُحفظ شيء، ويوضح الصف ما يلزم تصحيحه، ويبقى كل ما كتبته. يقبل السعر الأرقام العربية والفاصلة العشرية (١٢٫٥ أو 12,5). ويسري حد الأصناف في باقتك على الحفظ كله.
مسببات الحساسية والوسوم الغذائية والشارات والصور ليست في الصف — أضفها من درج كل صنف، أو راجع مسببات الحساسية للقائمة كلها مرة واحدة.
زر لصق صفوف يقبل صفوفًا منسوخة من Excel أو Google Sheets أو ملف CSV. إن كان فيها صف عناوين طابقت الأعمدةُ أسماءَها (بالعربية أو الإنجليزية، وهي الأسماء نفسها التي تفهمها صفحة الاستيراد)؛ وإلا ملأت الاسم (EN) والاسم (AR) والسعر والسعرات والوصف (EN) والوصف (AR) بهذا الترتيب. تُذكر الأعمدة التي لا مكان لها في الجدول على أنها متجاهلة. ويمكنك أيضًا لصق عدة صفوف مباشرة في أي خانة. لا تُحفظ الصفوف الملصقة حتى تضغط حفظ N، فراجعها أولًا. يتسع الجدول لـ 200 صف في المرة؛ ولقائمة كاملة بأقسامها استخدم الاستيراد.
درج الصنف
Section titled “درج الصنف”فتح صنف يجمع كل ما يخصه في مكان واحد: الاسم بالإنجليزية والعربية، والوصف باللغتين، والسعر والسعر السابق (“كان”) — كلاهما بالريال السعودي — والسعرات الحرارية، ومسببات الحساسية والآثار المحتملة والوسوم الغذائية، والسياقات (داخل المطعم، الاستلام، التوصيل، مع إمكانية تخصيص سعر مختلف للاستلام)، وحتى شارتين، والصور. تعرض شرائح مسببات الحساسية ثمانية في المرة مع رابط لعرض الباقي. تقبل الصور صيغ JPEG وPNG وWebP بحجم يصل إلى 10 ميغابايت لكل صورة، بحد أقصى 10 صور في الدفعة الواحدة. قيمة السعرات الحرارية التي يقدّرها وكيلك تحمل وسم “تقديري” ورابط تأكيد — تأكيدها، أو كتابة قيمة بنفسك، يزيل العلامة. تغيير قسم الصنف من هنا ينقله إلى آخر ذلك القسم، بعد أصنافه الحالية.
زر تكرار (في قائمة ⋯ للصنف أو في الدرج) يفتح نسخة جديدة غير محفوظة بكل شيء عدا الصور: ينتهي الاسمان بـ«(نسخة)» لتغيّرهما، ويُلغى تأكيد مسببات الحساسية لأن النسخة طبق مختلف. تبدأ النسخة متوفرة وتُضاف في آخر قسمها عند الحفظ. يكرر زر تكرار الصنف كما حُفظ آخر مرة، لا التعديلات غير المحفوظة في الدرج المفتوح. وزر حفظ وإضافة آخر يحفظ ويُبقي الدرج مفتوحًا على صنف جديد في القسم نفسه بمسببات الحساسية نفسها (غير مؤكدة) والآثار المحتملة والوسوم الغذائية والشارات؛ ويبدأ الاسم والوصف والأسعار والسعرات والعرض فارغة.
مراجعة مسببات الحساسية
Section titled “مراجعة مسببات الحساسية”زر مراجعة مسببات الحساسية (في شريط أدوات المحرر، وبجوار عدد الأصناف الناقصة الحساسية في الفحص) يفتح صفحة واحدة تعرض كل الأصناف حسب أقسامها مع شرائح مسببات الحساسية والآثار المحتملة وعلامة تأكيد. خيار غير المراجَعة فقط يكون مفعّلًا ما دام هناك صنف غير مؤكد. غيّر الشرائح في مكانها — تغيير مسببات الحساسية لصنف يزيل علامته حتى تعيد وضعها — ثم يحفظ زر حفظ الأصناف التي غيّرتها فقط كتغيير واحد في سجل النشاط. وزر تأكيد كل المعروض يعيد أولًا جملة التأكيد نفسها من درج الصنف مع عدد الأصناف، ثم يؤكد كل صنف معروض (حسب التصفية). يحتفظ كل صنف بتأكيده الخاص، ولا يعدّ مساعدو الزبائن صنفًا آمنًا لحساسية ما إلا بعد تأكيدك له.
تعديل عدة أصناف دفعة واحدة
Section titled “تعديل عدة أصناف دفعة واحدة”حدّد أصنافًا (أو مربع القسم لتحديد كل أصنافه المعروضة) فيظهر شريط: N محدد · نقل إلى قسم · تغيير السعر · الوسوم الغذائية · إلغاء التحديد. نقل إلى قسم يضع الأصناف في آخر القسم الذي تختاره بترتيبها الحالي. تغيير السعر يرفع كل سعر محدد أو يخفضه بنسبة مئوية (مثل 10 أو −5، بين −90 و+300) مقرّبًا إلى أقرب ريال؛ ويعرض السعر القديم والجديد لكل صنف أولًا، ويتخطى الأصناف بلا سعر، ولا يمس السعر السابق ولا سعر الاستلام، وينبّه حين يبلغ السعر الجديد السعر السابق للصنف (فيتوقف ظهور عرضه). الوسوم الغذائية تضيف وسومًا أو تزيلها من كل الأصناف المحددة وتترك البقية كما هي. كل إجراء تغيير واحد يمكنك التراجع عنه من سجل النشاط كاملًا. تُطبَّق إجراءات الدفعة فقط على الأصناف المحددة التي يُظهرها البحث أو التصفية الحالية؛ أي صنف محدد تُخفيه التصفية يُستثنى منها حتى تُلغيها.
المسودة مقابل المنشور
Section titled “المسودة مقابل المنشور”كل تعديل أعلاه يذهب إلى المسودة. النشر يرفع القائمة إلى نسخة جديدة، ويأخذ لها لقطة، ويدفع تلك اللقطة إلى الصفحة العامة والمخزن السريع الذي تقرأه نقطة نهاية التوفر — كل ذلك خلال لحظات، لا عبر إعادة بناء. إلغاء النشر يأخذ القائمة المباشرة إلى وضع عدم الاتصال، دون المساس بالمسودة تحتها. يعرض المحرر أيضًا عدد تغييرات المسودة المنتظرة منذ آخر نشر، فيتضح متى يوجد شيء لنشره.
زر نشر يسأل أولًا: يعرض عدد الأصناف التي ستُضاف وتُعدَّل وتُحذف (تغييرات النفاد مباشرة أصلًا، فلا تدخل في أي نشر)، وإذا كانت معظم الأصناف بلا صور وكان قالب آخر يناسب القائمة أكثر، يضع رابطًا إلى محرر المظهر. انشر الآن ينشر القائمة ويعطيك رابطًا إلى القائمة المباشرة.
تشغيل الفحص يبحث في المسودة عن السعرات ومسببات الحساسية والصور والترجمات الناقصة، والأسعار الشاذة، والتكرارات المحتملة، والعروض المنتهية. اضغط أي عدد لعرض تلك الأصناف وحدها، وعرض كل الأصناف يلغي التصفية. يُعدّ الصنف مكتمل الحساسية بمجرد تأكيدك في نافذة الصنف، ولو لم تختر أي مسبب — هكذا تسجّل أنه «لا يحتوي شيئًا».
زر + صنف يبدأ في القسم الذي حفظت فيه آخر صنف أو أنشأته للتو.
مع وكيلك
Section titled “مع وكيلك”يعدّل وكيلك المسودة نفسها عبر الأدوات نفسها التي يستدعيها المحرر. اطلب شيئًا مثل:
أضف قسم “مشويات” بثلاثة أصناف من هذه الصورة، ثم أخبرني بما ينقصه من قيمة السعرات الحرارية
فيستخدم upsert_sections وupsert_items لإنشائها، ويعيد تحذيرات لأي شيء ناقص. تقبل كل من الأداتين dry_run: true لمعاينة التغيير قبل حفظه؛ وحين ترتاح للنتيجة، اطلب من الوكيل تنفيذ publish_menu لجعلها مباشرة.