الأدلة

كيف تبني تطبيق حجوزات: مواعيد وتوفر وتذكيرات وعربون

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

ابدأ بتحديد معنى «الحجز» بالنسبة لك

تطبيقات الحجز تبدو متشابهة على السطح لكنها تختلف كثيرًا من الداخل. أجب عن هذه الأسئلة أولًا:

  • ما الذي يُحجز؟ خدمة (قصة شعر)، أو شخص (مدرّس)، أو مورد (غرفة اجتماعات، ملعب، شاحنة)، أو مكان في جلسة (حصة يوغا بـ12 مقعدًا).
  • كم تستغرق؟ ثابتة لكل خدمة، أم يختارها العميل؟
  • من يقدمها؟ شخص واحد، أو عدة موظفين لكل منهم ساعات عمل، أو لا أحد (غرفة)؟
  • ماذا يحدث بعد الحجز؟ تأكيد فوري، أم طلب يوافق عليه المالك؟
  • هل للمال دور؟ مجاني، أم دفع يوم الموعد، أم عربون مقدمًا، أم دفع كامل مسبقًا؟

«اطلب موعدًا، والمالك يؤكد عبر البريد» أبسط بكثير في البناء من «حجز فوري مقابل تقاويم ثلاثة موظفين مع عرابين». كلاهما صحيح، فاختر ما تحتاجه فعلًا للنسخة الأولى.

ما يحتاجه التطبيق

البيانات

الجدولالحقول الأساسية
الخدماتالاسم، المدة، السعر، الفاصل بعدها، نشطة أم لا
الموظفون أو المواردالاسم، والخدمات التي يقدمونها
التوفرساعات العمل الأسبوعية لكل موظف، مع الاستثناءات (العطل، والإغلاقات لمرة واحدة)
الحجوزاتالخدمة، والموظف، وقت البداية، وقت النهاية، بيانات العميل، الحالة (معلّق، مؤكد، ملغى)، حالة الدفع
العملاءالاسم، والبريد، والهاتف، والملاحظات؛ اختياري في البداية، ويمكن أن يعيش داخل الحجز

تخزين وقت النهاية في كل حجز، لا وقت البداية فقط، يجعل فحوص التداخل أبسط بكثير.

الصفحات

  • عامة: قائمة الخدمات، ومنتقي الفترات، ونموذج الحجز، وصفحة التأكيد، ورابط للإلغاء أو إعادة الجدولة.
  • خاصة (المالك أو الموظف): جدول اليوم، والحجوزات القادمة، وطريقة لحجب وقت الإجازة، وإعدادات الخدمات والساعات.

الصلاحيات

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

الأجزاء الصعبة، وكيف تتعامل معها

الحجوزات المزدوجة

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

عند حفظ حجز، تحقق مجددًا على الخادم من أنه لا يوجد حجز مؤكد أو معلّق للموظف نفسه يتداخل مع الوقت المطلوب (بما في ذلك الفاصل). إذا وُجد، فارفض الحجز واعرض الرسالة «تم حجز هذا الوقت للتو، يرجى اختيار وقت آخر».

ثم اختبره بنافذتي متصفح.

المناطق الزمنية

خزّن كل الأوقات بتوقيت UTC وحوّلها عند العرض. قرر أي منطقة زمنية تعرضها صفحة الحجز، وعادةً ما تكون منطقة النشاط التجاري للخدمات الحضورية، ومنطقة العميل للمكالمات عبر الإنترنت، واكتب ذلك على الصفحة. اختبر حجزًا عبر تغيير التوقيت الصيفي.

الفواصل والإشعار المسبق والحدود

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

الإلغاء وعدم الحضور

امنح كل تأكيد رابط إلغاء برمز فريد حتى لا يحتاج العملاء إلى حساب. حدد نافذة الإلغاء، وهل العرابين قابلة للاسترداد، واعرض هذه السياسة قبل الدفع.

التذكيرات

تحتاج رسائل التذكير بالبريد أو الرسائل النصية إلى شيء يعمل وفق جدول زمني («كل 15 دقيقة، أرسل تذكيرات للحجوزات التي تبدأ خلال 24 ساعة»). تحقق من طريقة تعامل أداة البناء والاستضافة لديك مع المهام المجدولة. إذا لم تكن تدعمها، استخدم مجدوِلًا خارجيًا يستدعي نقطة نهاية في تطبيقك، أو أرسل بريد التأكيد مع دعوة تقويم مرفقة حتى يذكّر العميل تقويمُه الخاص. انظر كيف ترسل رسائل بريد من تطبيقك لجانب مزوّد الخدمة.

العرابين والمدفوعات

النمط المعتاد مع Stripe:

  1. يختار العميل فترة؛ فينشئ التطبيق حجزًا معلّقًا يحجز الفترة لوقت قصير (مثلًا 15 دقيقة).
  2. يوجّه التطبيق العميل إلى Stripe Checkout لدفع العربون.
  3. يُعلم Stripe تطبيقك عبر webhook عند نجاح الدفع؛ فيصبح الحجز مؤكدًا.
  4. إذا لم يتم الدفع في الوقت المحدد، ينتهي الحجز المعلّق وتتحرر الفترة.

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

مثال على أول طلب يعمل

ابنِ تطبيق حجوزات لصالون Northside Barbers. الخدمات: قص شعر (30 دقيقة، 25 دولارًا)، تهذيب لحية (15 دقيقة، 12 دولارًا)، قص شعر + لحية (45 دقيقة، 32 دولارًا). حلاقان، Sam وAli، يعملان من الثلاثاء إلى السبت من 9:00 إلى 18:00. يختار العميل خدمة، ثم حلاقًا أو «أي حلاق»، ثم يرى فقط أوقات البدء الحرة مدة 15 دقيقة للأيام الـ14 القادمة، ويدخل الاسم والهاتف والبريد. احفظ الحجوزات في قاعدة بيانات، مع فاصل 10 دقائق بعد كل موعد، وأعد التحقق من التوفر عند الحفظ لمنع الحجز المزدوج. اعرض صفحة تأكيد مع رابط إلغاء. لدى المالك صفحة خاصة تعرض حجوزات اليوم والقادمة، ويستطيع إلغاء حجز وحجب وقت. الأوقات بالمنطقة الزمنية المحلية للمحل. تصميم نظيف يبدأ من الهاتف.

هذا الطلب يسمّي الخدمات والموظفين والساعات والقواعد وعرض المالك، أي كل ما كان الذكاء الاصطناعي سيخمّنه لولا ذلك.

خطوات البناء

  1. التدفق الأساسي للحجز أولًا. خدمات ← فترة ← نموذج ← حجز محفوظ ← تأكيد. لا شيء آخر قبل أن يعمل هذا على الهاتف.
  2. واجهة المالك. قائمة اليوم، والقائمة القادمة، والإلغاء، وحجب الوقت.
  3. حماية صفحات المالك. أضف تسجيل الدخول قبل إدخال بيانات حقيقية.
  4. القواعد. الفواصل، ومدة الإشعار، ومدى الحجز المسبق، والعطل.
  5. البريد. تأكيد مع دعوة تقويم ورابط إلغاء.
  6. العرابين إذا احتجت إليها، في وضع اختبار Stripe أولًا.
  7. اختبر الحالات الحدّية. نافذتان تحجزان الفترة نفسها، وحجز يمتد عبر منتصف الليل، وتاريخ تغيير التوقيت الصيفي، وحجز ملغى يحرر فترته.
  8. انشر، ثم اعمل حجزًا حقيقيًا بنفسك قبل مشاركة الرابط.

الأخطاء الشائعة

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

متى يكون Calendly (أو شبيهه) الخيار الأفضل

إذا كنت شخصًا واحدًا تشارك توفره للمكالمات، فأداة جدولة يصعب التفوق عليها. اعتبارًا من سبتمبر 2026، تغطي الخطة المجانية لـ Calendly نوع حدث واحدًا، وربط تقويم واحدًا، والجدولة الفردية مع صفحة حجز قابلة للتخصيص، وتضيف الخطط المدفوعة أنواع أحداث أكثر وميزات للفرق. تتصل هذه الأدوات بتقويمك الحالي مباشرة، وهو ما يجب أن يُبنى في التطبيق المخصص.

ابنِ تطبيقك الخاص عندما تحتاج إلى قواعد لا تدعمها تلك الأدوات، أو عدة موارد قابلة للحجز، أو علامتك التجارية في كل مكان، أو حجوزات مرتبطة ببيانات أخرى (عملاء، طلبات، عضويات)، أو عندما تبني منتج حجوزات تبيعه للآخرين.

البناء مع Mythex

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

أمر /test يجعل الوكيل ينقر عبر تدفق الحجز في المعاينة ويبلغ عما يتعطل. لطلب بداية، جرّب قالب موقع حجز صالون الحلاقة أو قالب حاجز الاجتماعات، أو تصفح كل قوالب التطبيقات.

الأسئلة

ما الميزات التي يحتاجها تطبيق الحجوزات؟

كحد أدنى: قائمة بالخدمات مع مدتها، وطريقة لعرض الفترات الزمنية المتاحة فقط، ونموذج حجز، وتأكيد، وصفحة خاصة يرى فيها النشاط التجاري الحجوزات ويديرها. تأتي التذكيرات والعرابين وتقويمات الموظفين لاحقًا.

كيف أمنع الحجز المزدوج؟

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

هل يستطيع تطبيق حجز مخصص أن يأخذ عربونًا؟

نعم. الأسلوب المعتاد هو توجيه العميل إلى صفحة Stripe Checkout لدفع العربون، وعدم تأكيد الحجز إلا بعد نجاح الدفع. تحتاج إلى حساب Stripe خاص بك ومفاتيحه.

هل أبني تطبيق حجوزات خاصًا بي أم أستخدم Calendly؟

إذا كان شخص واحد يحتاج إلى مشاركة توفره ولم يكن في التدفق أي شيء غير معتاد، فأداة جدولة مثل Calendly أسرع وأرخص في التشغيل. ابنِ تطبيقك الخاص عندما تحتاج إلى قواعدك الخاصة، أو عدة موارد، أو علامتك التجارية في كل مكان، أو حجوزات مرتبطة ببيانات أخرى تحتفظ بها.

Mythex · Pricing · ابنِ أي شيء بالذكاء الاصطناعي · قوالب المواقع والتطبيقات · مقارنات Mythex · مصطلحات بناء التطبيقات بالذكاء الاصطناعي · أدوات مجانية لبناء التطبيقات بالذكاء الاصطناعي · English

English አማርኛ Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)