اختيار تنسيق مدى التوفّر
هناك طريقتان لتحديد بيانات مدى التوفّر: (1) المواضع المتوفّرة أو (2) تكرار. اختَر طريقة واحدة فقط لاستخدامها في جميع التجّار والخدمات. بعد اختيار طريقة، عليك الالتزام بها في عملية الدمج بأكملها (الخلاصات وخادم الحجز والتعديلات في الوقت الفعلي).
اتّبِع الدليل التالي لمساعدتك في تحديد تنسيق مدى التوفّر الأنسب:
- في نظامك، هل تخزِّن مدى التوفّر على شكل خانات صريحة، على سبيل المثال،
8:00 صباحًا - 8:30 صباحًا؟
- استخدِم الأماكن المتوفّرة
- في نظامك، هل تخزِّن معلومات التوفّر بتنسيق متكرّر،
أي أنّ التجّار يوفّرون خدمات بمعدل تكرار ثابت مع
بعض الانحرافات؟ على سبيل المثال، تتكرّر الفترات كل 15 دقيقة من
9:00 صباحًا إلى 5:00 مساءً، ويتوفّر مقعد واحد فقط في كل 15
دقيقة.
- استخدِم تكرار
- بالنسبة إلى خدمات التجّار، هل يمكن أن يكون هناك أكثر من مكان مفتوح في
الوقت نفسه؟ على سبيل المثال، 30 مكانًا شاغرًا في صف
- استخدِم الأماكن المتوفّرة
- هل لا ينطبق أي مما سبق؟
- استخدِم الأماكن المتوفّرة
- ملاحظة: على الرغم من أنّ استخدام التكرار أكثر فعالية ويمكن أن يؤدي إلى أحجام ملف وقائي أصغر، إذا كان نموذج البيانات لا يتيح التكرار بشكلٍ أساسي، فإنه لا يُنصح باستخدام التكرار، لأنّك ستحتاج إلى إعادة احتساب الفترات المتكرّرة لليوم بأكمله لكل تعديل في الوقت الفعلي.
المساحة الإعلانية متاحة
تعريفات المَعلمات:
- عدد_المقاعد_المتاحة: عدد المقاعد المتاحة حاليًا لتسجيل مدى التوفّر هذا
- عدد_المواضع: إجمالي عدد المواضع التي يمتلكها التاجر لهذه الإعدادات، بما في ذلك المواضع غير المتوفّرة
تشير طريقة "المواضع الإعلانية متاحة" صراحةً إلى مدى توفّر كلّ موضع إعلاني، و تتيح استخدام نموذج توفير مواضع إعلانية متعددة للخدمة نفسها. تعمل المَعلمتان معًا لإنشاء تمثيل رقمي ل سعة الخدمة.
عند إجراء حجز، يجب أن ينخفض عدد المواقف المفتوحة بمقدار 1 من خلال تعديل في الوقت الفعلي (يجب أن يظل عدد المواقف الكلية كما هو). بعد أن يصبح عدد المساحة المتوفّرة للإعلانات = 0، من المفترض ألا تظهر خانة الإعلان بعد ذلك.
أمثلة على الخدمات
تتضمّن صفوف اليوغا أو صالونات التجميل المخططات الأرضية التالية ولا تتضمّن أي حجوزات فعالة
الشكل 1: مخطّط أرضي بدون حجوزات نشطة ستظهر خلاصة مدى التوفّر لفترتين لدى هذين التجّار على النحو التالي:
{ "availability": [ { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
مثال على الخدمات التي تتضمّن حجزًا
الشكل 2: مخطّط أرضية يتضمّن ملف حجز نشط واحدًا يحجز أحد المستخدمين الآن إحدى المواقف. عند إجراء حجز، يتم إصدار تحديث في الوقت الفعلي لتعديل مدى التوفّر. من المفترض أن يظهر هذا الحجز في خلاصة معلومات التوفّر اليومية التالية. ستنخفض قيمة سمة عدد_المواضع_المتاحة في خلاصة مدى التوفّر الخاصة بالتجّار هؤلاء بمقدار 1 في خانة 1 أيلول (سبتمبر) 2018، الساعة 4:00:00 مساءً بتوقيت غرينيتش. لم يطرأ أي تغيير على خانة 1 أيلول (سبتمبر) 2018، الساعة 8:00:00 مساءً بالتوقيت العالمي المنسَّق.
مقتطف الخلاصة الذي يتضمّن حجزًا
{ "availability": [ { "spots_total": 6, "spots_open": 5, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT "merchant_id": "1001" }, { "spots_total": 6, "spots_open": 6, "duration_sec": 3600, "service_id": "1001", "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT "merchant_id": "1001", } ] }
التكرار
تعريفات المَعلمات
- التكرار: يشير إلى مواعيد بدء وانتهاء متكررة باستمرار.
- repeat_until_sec: الطابع الزمني بالتوقيت العالمي المنسق لوقت انتهاء آخر خانة يتم تكرار مدى التوفّر فيها إلى أن يصل إليها.
- repeat_every_sec: عدد الثواني بين خانات التوفّر المتعاقبة
على سبيل المثال، إذا كانت قيمة repeat_every_sec = 1800 (30 دقيقة)، وبدأ
start_sec في الساعة 9:00 صباحًا، ستتكرر الفترات كل 30 دقيقة في
9:00 صباحًا و9:30 صباحًا و10:00 صباحًا وما إلى ذلك.
- ملاحظة: ما مِن حاجة إلى تحديد عدد_المواضع_المتاحة وعدد_المواضع_الإجمالي، لأنّه يُفترض أنّ كلاهما يساوي 1 ما لم يكن هناك schedule_exception
تشير طريقة التكرار إلى مدى التوفّر يوميًا للخدمات التي تحدث على فترات منتظمة، على سبيل المثال، خدمة تحدث كل 30 دقيقة من الساعة 9:00 صباحًا حتى الساعة 5:00 مساءً كل يوم. من خلال الإعدادات المتكرّرة، يمكنك تحديد مدة المساحة الزمنية، وأول مرة تحدث فيها المساحة الزمنية في اليوم، وعدد المرات التي يجب أن تتكرر فيها المساحة الزمنية، ووقت التوقف عن تكرارها في اليوم نفسه. ملاحظة: يجب تحديد مجموعة جديدة من الفترات المتكرّرة لكل يوم بشكل منفصل. إذا سبق أن تم حجز خانة ضمن النطاق الزمني، عليك تحديد استثناء في الجدول الزمني. على سبيل المثال، تكرار كل نصف ساعة من الساعة 9 صباحًا إلى الساعة 9 مساءً باستثناء الفترة من الساعة 11:00 صباحًا إلى الساعة 11:30 صباحًا. سيكون لكل خدمة فردية تكرار واستثناءات جدولة خاصة بها.
أمثلة على الخدمات
صالون تجميل يتضمّن مخطّط الأرضية التالي ولا يتضمّن أي حجوزات نشطة
الشكل 3: مخطّطات أرضية بدون حجوزات نشطة يفترض أنّ هناك مكان واحد فقط متاح لكل خدمة (على سبيل المثال، تقدّم "سلمى" خدمات تضاعف مدة حلاقة الشعر كل 30 دقيقة، ولكن يمكنها التعامل مع عميل واحد فقط في المرة الواحدة). ستظهر خلاصة مدى التوفّر لمحطة واحدة لدى هؤلاء التجّار على النحو التالي:
مقتطف الخلاصة:
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", # haircut "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT } } ] }
مثال على الخدمات التي تتضمّن حجزًا
الشكل 4: مخطّطات أرضية تتضمّن حجزًا فعالًا واحدًا يفترض أنّ هناك مكان واحد فقط متاح لكل خدمة (على سبيل المثال، تقدّم "سلمى" خدمات تضاعف مدة حلاقة الشعر كل 30 دقيقة، ولكن يمكنها التعامل مع عميل واحد فقط في المرة الواحدة). لنفترض الآن أنّ أحد المستخدمين يحجز موعدًا لقصّ شعره مع "سلمى" في الساعة 12:30 بعد الظهر. عند إجراء حجز، يتم إصدار تحديث في الوقت الفعلي لتعديل مدى التوفّر. في خلاصة مدى التوفّر اليومية التالية، من المفترض أن يظهر هذا الحجز. ستتضمّن خلاصة مدى التوفّر الخاصة بهؤلاء التجّار استثناءً في تحديد المواعيد خلال الفترة من الساعة 12:30 مساءً إلى الساعة 1:00 مساءً لخدمة تبلغ مدتها 30 دقيقة.
مقتطف الخلاصة الذي يتضمّن حجزًا:
{ "availability": [ { "merchant_id": "1001", "service_id": "1001", "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT "duration_sec": 1800, "recurrence": { "repeat_every_sec": 1800, "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT }, "schedule_exception": [ { "time_range": { "begin_sec": 1493901000, # May 4, 2017 12:30:00 PM GMT "end_sec": 1493902800 # May 4, 2017 1:00:00 PM GMT } } ], } ] }