REST Resource: inventory.partners.merchants.services.availability

المرجع: مدى التوفّر

خانة تشير إلى مدى توفّر خدمة التاجر، وتشير إلى الوقت وعدد المواضع

تمثيل JSON
{
  "startTime": string,
  "duration": string,
  "spotsTotal": string,
  "spotsOpen": string,
  "availabilityTag": string,
  "resources": {
    object (Resources)
  },
  "paymentOptionId": [
    string
  ],
  "recurrence": {
    object (Recurrence)
  },
  "scheduleException": [
    {
      object (ScheduleException)
    }
  ],
  "deposit": {
    object (Deposit)
  },
  "noShowFee": {
    object (NoShowFee)
  },
  "prepayment": {
    object (Prepayment)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode),
  "linkoutRequiredReason": enum (LinkoutRequiredReason)
}
الحقول
startTime

string (Timestamp format)

وقت بدء خانة المواعيد

يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu"‎ وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

مدة خانة الموعد

المدة بالثواني مع ما يصل إلى تسعة أرقام كسور، وتنتهي بـ "s". مثال: "3.5s".

spotsTotal

string (int64 format)

عدد الأماكن المتاحة والأماكن المفتوحة في هذا المكان أمثلة:

  • صف يوغا من 10 أماكن مع 3 محجوزة: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • جلسة تدليك على كرسي تم حجزها بالكامل: availability {spotsTotal: 1, spotsOpen: 0 ...}

ملاحظة: في حال إرسال الطلبات باستخدام تنسيق ضغط مدى التوفّر المحدّد أدناه، سيتم استنتاج هذين الحقلَين.

  • يشير تكرار الحدث إلى spotsTotal=1 وspotsOpen=1.
  • يشير الخطأ ScheduleException إلى spotsTotal=1 وspotsOpen=0.
spotsOpen

string (int64 format)

عدد الأماكن المفتوحة.

availabilityTag

string

سلسلة اختيارية غير شفافة لتحديد خانة مدى التوفّر هذه. وفي حال ضبطها، سيتم تضمينها في الطلبات التي تحجز المواعيد أو تعدِّلها أو تلغيها.

resources

object (Resources)

موارد اختيارية تُستخدَم لإزالة الغموض عن خانة مدى التوفّر هذه عن غيرها عندما يكون موظفون أو غرف مختلفة جزءًا من الخدمة.

مثلاً: نفس فصل اليوجا مع اثنين من مدربين:

availability { resources { staffId: "1" staffName: "Amy" }
               spotsTotal: 10 spotsOpen: 7 }
availability { resources { staffId: "2" staffName: "John" }
               spotsTotal: 5 spotsOpen: 2 }
paymentOptionId[]

string

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

يتجاهل هذا الحقل أيّ ids لـ payment_option تم تحديدها في رسالة الخدمة. وبالمثل، لا يجب أن تكون معرّفات payment_option_ids المحدّدة هنا متوفّرة في رسالة الخدمة، ولكن يجب تحديدها على مستوى التاجر.

recurrence

object (Recurrence)

معلومات التكرار لمدى التوفّر، والتي تمثل أكثر من وقت بدء واحد. يجب أن تحتوي التكرارات على مواعيد ليوم عمل واحد.

scheduleException[]

object (ScheduleException)

الأوقات التي لا يمكن فيها جدولة هذه الخدمة للحد من عدد رسائل ScheduleException، يمكنك ضم الاستثناءات المجاورة.

deposit

object (Deposit)

يمكنك أيضًا إيداع مبلغ اختياري في مدى التوفّر هذا. تلغي هذه السمة مبلغ التأمين في حال تحديده.

noShowFee

object (NoShowFee)

هذه السمة اختيارية عدم عرض أي رسوم لمدى التوفّر. تلغي رسوم عدم الحضور في حال تحديد رسوم.

prepayment

object (Prepayment)

اختياريّ. معلومات اختيارية عن الدفع المُسبَق لهذا مدى التوفّر

requireCreditCard

enum (RequireCreditCard)

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

ticketTypeId[]

string

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

  • خدمة بأربعة أنواع تذاكر: TicketType {ticketTypeId: "adult_1" ShortDescription: "الأشخاص البالغون أيام الأسبوع"} TicketType {ticketTypeId: "adult_2" ShortDescription: "Adult weeks"} TicketType {ticketTypeId: "youth_1" ShortDescription: "أيام الأسبوع للشباب" تذكرة TicketType {ticketTypeId: "youth_2" ShortDescription: "عطلات نهاية الأسبوع للشباب"}

لتمثيل المستودع خلال أيام الأسبوع: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. لتمثيل المستودع خلال الأعياد: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}.

  • خدمة تشمل ثلاثة أنواع من التذاكر: TicketType {ticketTypeId: "adult" ShortDescription: "Adult"} TicketType {ticketTypeId: "youth" ShortDescription: "Youth"} TicketType {ticketTypeId: "senior" ShortDescription: "كبار السن"}

للإشارة إلى أنّ أنواع التذاكر الثلاثة متوفّرة في هذه الفترة الزمنية، استخدِم availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} أو "مدى التوفّر {...}" (لا تضبط ticketTypeId في هذه الفترة).

(اختياري)

durationRequirement

enum (DurationRequirement)

شرط عرض مدة الفترات و/أو وقت الانتهاء سيتم تجاهل هذا الحقل إذا كانت الفتحة غير متاحة. لا تُستخدم في مجال النشاطات المقترَحة. (اختياري)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

قواعد تحديد مدى التوفّر في حال تعبئة الحقول، سيتم إلغاء أي قواعد جدولة مقابلة في SchedulingRules على مستوى الخدمة.

confirmationMode

enum (ConfirmationMode)

وضع التأكيد الذي سيتم استخدامه عند حجز مدى التوفّر هذا يجب تأكيد أو رفض محاولات إنشاء حجوزات لجداول التوفّر من خلال وضع التأكيد CONFIRMATION_mode_SYNCHRONOUS أو الرفض على الفور. يجب رفض محاولات إنشاء حجوزات لبيانات التوفّر التي تستخدم وضع التأكيد CONFIRMATION_MODE_ASYNCHRONOUS على الفور أو إنشاؤها بالحالة PENDING.

linkoutRequiredReason

enum (LinkoutRequiredReason)

اختياريّ. سبب ضرورة توفّر رابط لفتح صفحة إلكترونية في هذه المساحة وفي حال ضبطها، يجب أن يحتوي مورد التاجر لهذه الخانة على نموذج LinkoutTemplate صالح. (اختياري)

الموارد

يتم استخدام المورد لتمييز خانات التوفّر عن بعضها البعض عندما يكون أعضاء طاقم العمل أو الغرف المختلفة جزءًا من الخدمة. ويمكن أن توجد خانات متعددة للخدمة والفاصل الزمني نفسيهما عندما يكون لهما موارد مختلفة.

تمثيل JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer,
  "roomDescription": {
    object (Text)
  }
}
الحقول
staffId

string

معرّف اختياري لموظف يقدّم الخدمة. يحدِّد هذا الحقل موظف الدعم في جميع سجلات التجّار والخدمات ومدى التوفّر. يجب أيضًا أن تكون مستقرة بمرور الوقت للسماح بالارتباط مع الحجوزات السابقة. يجب أن يكون هذا الحقل متوفّرًا في حال توفّر employeeName.

staffName

string

اسم اختياري لموظف يقدّم الخدمة. سيتم عرض هذا الحقل للمستخدمين الذين يجرون حجزًا، ويجب أن يكون سهل القراءة للمستخدم، وليس معرّفًا مبهمًا. يجب أن يكون هذا الحقل متوفّرًا إذا كان staffId متوفّرًا.

roomId

string

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

roomName

string

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

partySize

integer

ينطبق على تناول الطعام فقط: حجم الحفل الذي يمكن استيعابه خلال هذه الفترة الزمنية. يمكن ربط مطعم بالعديد من الفترات الزمنية في الوقت نفسه، يحدّد كلّ منها عددًا مختلفًا من الأشخاص، على سبيل المثال، إذا كان يمكن أن يستوعب المطعم حجزًا لشخصَين أو 3 أو 4 أشخاص.

roomDescription

object (Text)

اختياريّ. وصف مترجم للغرفة. يجب تقديم قيمة تلقائية في حال ضبطها. ويُفضَّل أيضًا توفير لغات شائعة للغة التاجر. (اختياري)

التكرار

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

المتطلبات:

  1. يجب ألّا تؤدّي زيادة خانات مدى التوفّر أو تكرار المواعيد إلى إنشاء خانات متطابقة. إذا تطابقت الأرقام التعريفية وstartTime وDuration والموارد، تُعتبر الفتحات متطابقة.
  2. لا تُدمج تنسيق مدى التوفّر العادي مع تكرار العروض في خانات خدمة واحدة. يفيد تكرار دوام التجّار/الخدمات التي توفّر مواعيد. يستهدف التنسيق العادي التجّار أو الخدمات التي تقدّم صفوفًا مجدولة بانتظام.
  3. يجب ألا تستمر التكرارات لأكثر من 24 ساعة.
تمثيل JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
الحقول
repeatUntil

string (Timestamp format)

الحد الأقصى الشامل للطابع الزمني بالتوقيت العالمي المنسق الذي تتكرر فيه معلومات التوفّر.

يجب أن يكون طابعًا زمنيًا بالتنسيق RFC3339 UTC "Zulu"‎ وبدقة تصل إلى نانوثانية وما يصل إلى تسعة أرقام كسور. أمثلة: "2014-10-02T15:01:23Z" و"2014-10-02T15:01:23.045123456Z".

repeatEvery

string (Duration format)

تحدِّد هذه السياسة الوقت بين خانات التوفّر المتتالية.

مثال: إذا كانت مدة التوفّر 20 دقيقة، وتكرارًا كل 30 دقيقة ووقت البدء من 9:00 صباحًا، والتكرار حتى الساعة 11:00 صباحًا، سيؤدي ذلك إلى ظهور خانات من 9:9 إلى 9:20 صباحًا ومن 9:30 إلى 9:50 صباحًا ومن 10:20 صباحًا ومن 10:30 إلى 10:50 صباحًا و10:30 و10:51 صباحًا: (معلومات مطلوبة)

المدة بالثواني مع ما يصل إلى تسعة أرقام كسور، وتنتهي بـ "s". مثال: "3.5s".

ScheduleException

تمثل رسائل ScheduleException نطاقات زمنية محجوزة/غير متاحة خلال يوم العمل، وهي استثناءات للتكرار الموضح أعلاه. عند حجز خانات زمنية، يجب تعديل قائمة الاستثناءات لتعكس النطاقات الزمنية غير المتوفّرة حديثًا. يجب عدم تعديل التكرار نفسه.

تمثيل JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
الحقول
timeRange

object (TimeRange)

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

مثال: إذا كان التكرار يحدد مدة 20 دقيقة، وتكرار كل من 30 دقيقة، ووقت البدء من 9:00 صباحًا، وتكرارًا حتى الساعة 11:00 صباحًا، فإن الجدول الزمني للاستثناء ذو النطاق الزمني من 9:45 صباحًا إلى 11:00 صباحًا سيجعل الخانات غير متاحة في الساعة 9:30-9:50 صباحًا و10:00 صباحًا و10:00 صباحًا:

يُرجى العلم أنّه بما أنّ النطاق الزمني مغلق-مفتوح، لن تتأثر الفترة التي تبدأ في الساعة 11 صباحًا.

دفع مقدم

دفعة قد يتم تحصيلها من المستخدم كجزء من حجزه

تمثيل JSON
{
  "priceInfo": {
    object (PriceInfo)
  }
}
الحقول
priceInfo

object (PriceInfo)

حاوية تعرض تفاصيل السعر

PriceInfo

حاوية لتفاصيل السعر

تمثيل JSON
{
  "priceType": enum (PriceType),

  // Union field price_options can be only one of the following:
  "price": {
    object (Price)
  },
  "priceRange": {
    object (PriceRange)
  }
  // End of list of possible types for union field price_options.
}
الحقول
priceType

enum (PriceType)

لتحديد كيفية تطبيق السعر أو النطاق السعري (للشخص الواحد أو ثابت)

حقل الاتحاد price_options. يمكنك تحديد سعر محدد أو نطاق سعر في خيارات السعر. يمكن أن يكون price_options واحدًا فقط مما يلي:
price

object (Price)

سعر خدمة أو رسوم

priceRange

object (PriceRange)

الحد الأعلى و/أو الأدنى للخدمة أو الرسوم.

PriceRange

ملفوف لنطاق من مبلغ مالي يتم التعامل معه على أنّه غير محدود ما لم يتم ضبط كلتا القيمتين. يجب إدخال قيمة واحدة على الأقل من minAmount وmaxAmount.

تمثيل JSON
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
الحقول
minPrice

object (Price)

الحد الأدنى للمبلغ

maxPrice

object (Price)

الحد الأقصى للمبلغ يجب أن تكون دائمًا > minPrice.

DurationRequirement

يشير هذا التعداد إلى المتطلبات التي يجب أن يستوفيها المستخدم للإقرار بمدة الفترات الزمنية المطلوبة أو وقت انتهائها أو عرضها.

عمليات التعداد
DURATION_REQUIREMENT_UNSPECIFIED لم يتم تحديد طريقة معالجة وقت الانتهاء. هذا هو الخيار التلقائي.
DO_NOT_SHOW_DURATION لا يظهر وقت الانتهاء للمستخدم.
MUST_SHOW_DURATION يجب أن يرى المستخدم وقت الانتهاء قبل أن يتسنّى تحديد موعد.

SchedulingRuleOverrides

قواعد الجدولة على مستوى مدى التوفّر

تمثيل JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
الحقول
lastBookableSec

string (int64 format)

آخر مرة (بالثواني) يمكن فيها حجز هذه الفتحة يجب أن يكون الطابع الزمني هذا قبل startSec للفتحة التي يجب الالتزام بها (إذا كان من المفترض أن يتمكّن المستخدمون من الحجز بعد وقت البدء، استخدِم SchedulingRules.min_booking_before_end_time على مستوى الخدمة). في حال توفّر هذه القيمة، ستلغي أي قيمة محدّدة في min_booking_buffer ضمن SchedulingRules للخدمة المعنيّة.

firstBookableSec

string (int64 format)

أول مرة (بالثواني) يمكن فيها حجز هذه الفتحة يجب أن يكون الطابع الزمني هذا قبل startSec للفتحة، أو lastBookableSec إذا تم تحديده.

lastOnlineCancellableSec

string (int64 format)

إذا تم ضبطها، آخر وقت (بالثواني منذ بداية حقبة يونكس) يمكن فيه إلغاء خانة الموعد المحدّدة هذه من خلال ميزة "الحجز عبر Google" سيُلغي هذا الحقل أي قواعد إلغاء على مستوى الخدمة. (اختياري)

ConfirmationMode

أوضاع التأكيد المستخدَمة عند حجز الغرف

عمليات التعداد
CONFIRMATION_MODE_UNSPECIFIED لم يتم تحديد وضع التأكيد. سيتم الافتراض أنّ التأكيد متزامن.
CONFIRMATION_MODE_SYNCHRONOUS وسيتم تأكيد الحجوزات في نطاق توفّره هذا بالتزامن.
CONFIRMATION_MODE_ASYNCHRONOUS سيتم تأكيد الحجوزات لهذا مدى التوفّر بشكل غير متزامن.

LinkoutRequiredReason

سبب توفُّر تجربة ربط في الخانة الواحدة

عمليات التعداد
LINKOUT_REQUIRED_REASON_UNSPECIFIED القيمة التلقائية: لا تستخدِمها، فهي تساوي "غير معروف".
PAYMENT_REQUIRED تتطلّب الخانة تسديد الدفعة في منصة الشريك لحجزها.

الطُرق

replace

تحلّ محلّ Availability لسمة Service حالية خاصة بتاجر يديره موقع التجميع المحدّد وتُرجعه.