بخش های صندلی غذاخوری را اضافه کنید

معمول است که رستوران‌ها دارای قسمت‌های نشیمن مجزا مانند بار یا پاسیو و همچنین تجربیات مختلف مانند منوی چشیدن پنج نوع غذا یا چشیدن شراب باشند. مرکز عملیات از این تمایز پشتیبانی می‌کند و به کاربر اجازه می‌دهد تا قسمت رزرو میز را مشخص کند.

اسلات‌های موجود با نام اتاق‌ها

شکل ۱: نمونه‌ای از انتخاب جایگاه برای یک رستوران با بخش‌های صندلی

این جداسازی موجودی می‌تواند با تنظیم فیلدهای room_id ، room_name و در پیام resources یک بازه زمانی Availability انجام شود. برای گنجاندن توضیحات اتاق، از فیلد room_description در پیام منابع استفاده کنید.

// A resource is used to disambiguate availability slots from one another when
// different staff, room or party_size values are part of the service.
// Multiple slots for the same service and time interval can co-exist when they
// have different resources.
message Resources {
  // One of staff_id, room_id, or party_size must be set.

  // Optional ID for a staff member providing the service. This field identifies
  // the staff member across all merchants, services, and availability records.
  // It also needs to be stable over time to allow correlation with past
  // bookings. (optional but required if staff_name is present)
  string staff_id = 1;

  // Optional name of a staff member providing the service. This field will be
  // displayed to users making a booking, and should be human-readable, as
  // opposed to an opaque identifier. (optional but required if staff_id is
  // present)
  string staff_name = 2;

  // An optional ID for the room the service is located in. This field
  // identifies the room across all merchants, services, and availability
  // records. It also needs to be stable over time to allow correlation with
  // past bookings. (optional but required if room_name is present)
  string room_id = 3;

  // An optional name for the room the service is located in or experience of
  // of the service. This field will be displayed to users making a booking,
  // and should be human readable, as opposed to an opaque identifier.
  // A room name should only be used for seating areas or prepaid experiences.
  // Examples of room names include "Bar", "Patio", "Dining Room". Examples of
  // dining experiences using room names include "Five-Course Tasting Menu",
  // "Chef Omakase". It is strongly recommended that the default seating area
  // does not have a room associated with it.
  string room_name = 4;

  // Applicable only for Dining: The party size that can be accommodated
  // during this time slot. A restaurant can be associated with multiple Slots
  // for the same time, each specifying a different party_size, if for instance
  // 2, 3, or 4 people can be seated with a reservation. (optional)
  int32 party_size = 5;

  // Localized room description with a limit of 500 characters. If set,
  // a default value must be provided, it is preferred to use the common
  // languages for the merchant's locale.
  Text room_description = 7;
}

این اطلاعات بخش جدایی‌ناپذیر تعریف اسلات‌ها است و باید در فیدها و همچنین تمام عملیات رزرو و به‌روزرسانی بلادرنگ گنجانده شود. می‌توانید نمونه‌هایی از room_id و room_name را که در مثال Dining, Vertical-Specific Feed مشخص شده‌اند، مشاهده کنید.

اسلات‌های موجود با استفاده از نام اتاق برای تجربیات

اگر Reservations Payments Redirect را پیاده‌سازی کرده‌اید یا در حال پیاده‌سازی آن هستید، می‌توانید room_name و room_descriptions برای بهبود تجربه‌های غذاخوری پیش‌پرداخت استفاده کنید. تصویر زیر نحوه نمایش این تجربه در وب را شرح می‌دهد.

شکل ۱: نمونه‌ای از انتخاب جایگاه برای یک رستوران با بخش‌های صندلی شامل توضیحات اتاق

نمونه اتاق

{
  "availability": [{
    "merchant_id": "dining-A",
    "service_id": "reservation",
    "start_sec": 1535853600,
    "duration_sec": 2700,
    "spots_total": 2,
    "spots_open": 2,
    "resources": {
      "room_id": "A-dining-room",
      "room_name": "Bar",
      "party_size": 2,
      }
  }]
}

نمونه تجربیات

{
  "availability": [{
    "merchant_id": "dining-A",
    "service_id": "reservation",
    "start_sec": 1535853600,
    "duration_sec": 2700,
    "spots_total": 2,
    "spots_open": 2,
    "resources": {
      "room_id": "experience-1",
      "room_name": "Wine Tasting Menu Pair",
      "description": "This Wine Tasting Menu Pair showcases American cuisine rooted in the nostalgic flavors of the 20th century American experience. Each experience is hand-crafted, with a progression from small bites to more substantial plates.",
      "party_size": 2,
      }
    }]
}

مطمئن شوید که اندازه خوراک شما کوچک باقی می‌ماند

اگر تعداد زیادی بخش صندلی دارید که هر کدام توضیحات اتاق دارند، می‌توانید با گنجاندن توضیحات اتاق فقط در یکی از اسلات‌ها، اندازه فید خود را کاهش دهید. ما از room_name و room_id در تمام اسلات‌ها استفاده می‌کنیم و room_description را از یکی از اسلات‌ها اضافه می‌کنیم.

هنگام مدیریت اندازه فید خود، بهترین شیوه‌های ذکر شده در Compress Feed Files و Shard Feed Files را در نظر بگیرید.

نمونه توضیحات اتاق

{
  "availability": [
    {
    "merchant_id": "dining-A",
    "service_id": "reservation",
    "start_sec": 1535853600,
    "duration_sec": 2700,
    "spots_total": 2,
    "spots_open": 2,
    "resources": {
      "room_id": "experience-1",
      "room_name": "Wine Tasting Menu Pair",
      "description": "This Wine Tasting Menu Pair showcases American cuisine rooted in the nostalgic flavors of the 20th century American experience. Each experience is hand-crafted, with a progression from small bites to more substantial plates.",
      "party_size": 2
      }
  },
  {
    "merchant_id": "dining-A",
    "service_id": "reservation",
    "start_sec": 1535854600,
    "duration_sec": 2700,
    "spots_total": 4,
    "spots_open": 4,
    "resources": {
      "room_id": "experience-1",
      "room_name": "Wine Tasting Menu Pair",
      "party_size": 6
      }
  }]
}