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)

เวลาเริ่มต้นของช่วงเวลาที่สะดวกสำหรับนัดหมาย

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

duration

string (Duration format)

ระยะเวลาของช่วงเวลาที่สะดวกสำหรับนัดหมาย

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

spotsTotal

string (int64 format)

จำนวนตำแหน่งทั้งหมดและตำแหน่งที่ว่างของความพร้อมจำหน่ายนี้ ตัวอย่าง

  • คลาสโยคะ 10 ที่นั่ง จองแล้ว 3 ที่นั่ง: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • เซสชันการนวดบนเก้าอี้ที่จองเต็มแล้ว: availability {spotsTotal: 1, spotsOpen: 0 ...}

หมายเหตุ: หากส่งคำขอโดยใช้รูปแบบการบีบอัดความพร้อมที่กำหนดไว้ด้านล่าง ระบบจะอนุมานฟิลด์ทั้ง 2 นี้

  • การเกิดซ้ำหมายถึง spotsTotal=1 และ spotsOpen=1
  • ScheduleException หมายถึง spotsTotal=1 และ spotsOpen=0
spotsOpen

string (int64 format)

จำนวนตำแหน่งที่ว่าง

availabilityTag

string

สตริงทึบแสงที่ไม่บังคับเพื่อระบุช่วงเวลาที่ว่างนี้ หากตั้งค่าไว้ ระบบจะรวมไว้ในคำขอที่จอง/อัปเดต/ยกเลิกการนัดหมาย

resources

object (Resources)

ทรัพยากรที่ไม่บังคับซึ่งใช้เพื่อแยกความแตกต่างของช่วงเวลาที่ว่างนี้จากช่วงเวลาอื่นๆ เมื่อมีเจ้าหน้าที่หรือห้องที่แตกต่างกันเป็นส่วนหนึ่งของบริการ

เช่น ชั้นเรียนโยคะเดียวกันที่มีผู้สอน 2 คน

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

string

รายการรหัสที่อ้างอิงตัวเลือกการชำระเงินซึ่งใช้ชำระเงินสำหรับช่องนี้ได้ ตัวเลือกการชำระเงินจริงจะกำหนดไว้ที่ระดับผู้ขาย และยังใช้ร่วมกันในผู้ขายหลายรายได้ด้วย

ฟิลด์นี้จะลบล้าง payment_option_ids ที่ระบุไว้ในข้อความบริการ ในทำนองเดียวกัน payment_option_ids ที่ระบุไว้ที่นี่ไม่จำเป็นต้องอยู่ในข้อความบริการ แต่ต้องกำหนดไว้ที่ระดับผู้ขาย

recurrence

object (Recurrence)

ข้อมูลการเกิดซ้ำของความพร้อมให้บริการ ซึ่งแสดงเวลาเริ่มต้นมากกว่า 1 รายการ การเกิดซ้ำควรมีการนัดหมายสำหรับวันทำการ 1 วัน

scheduleException[]

object (ScheduleException)

เวลาที่ไม่สามารถกำหนดเวลานัดหมายสำหรับบริการนี้ได้ หากต้องการจำกัดจำนวนข้อความ scheduleException ให้พิจารณารวมข้อยกเว้นที่อยู่ติดกัน

deposit

object (Deposit)

เงินฝากที่ไม่บังคับสำหรับความพร้อมนี้ ลบล้างเงินฝากของบริการหากมีการระบุไว้

noShowFee

object (NoShowFee)

ค่าธรรมเนียมการไม่เข้าพักที่ไม่บังคับสำหรับความพร้อมนี้ ลบล้างค่าธรรมเนียมการไม่แสดงตัวของบริการหากมีการระบุไว้

prepayment

object (Prepayment)

ไม่บังคับ ข้อมูลการชำระเงินล่วงหน้าสำหรับความพร้อมนี้ (ไม่บังคับ)

requireCreditCard

enum (RequireCreditCard)

ระบุว่าผู้ใช้ต้องระบุบัตรเครดิตเพื่อจองช่วงเวลาที่ว่างนี้หรือไม่ หากไม่ได้ตั้งค่าไว้ ระบบจะรับค่าจากระดับบริการหากมีการตั้งค่าไว้ (ไม่บังคับ)

ticketTypeId[]

string

ระบุรายการประเภทตั๋วที่รองรับสำหรับช่วงเวลาที่ว่างนี้ หากไม่ได้ตั้งค่าไว้ ตั๋วทุกประเภทในบริการหลักจะพร้อมใช้งานสำหรับช่วงเวลานี้ โปรดทราบว่าต้องกำหนดค่าของฟิลด์นี้ในบริการหลัก ตัวอย่าง

  • บริการที่มีตั๋ว 4 ประเภท ได้แก่ TicketType {ticketTypeId: "adult_1" shortDescription: "Adult weekdays"} TicketType {ticketTypeId: "adult_2" shortDescription: "Adult weekends"} TicketType {ticketTypeId: "youth_1" shortDescription: "Youth weekdays"} TicketType {ticketTypeId: "youth_2" shortDescription: "Youth weekends"}

หากต้องการแสดงพื้นที่โฆษณาในช่วงวันธรรมดา ให้ทำดังนี้ availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...} หากต้องการแสดงพื้นที่โฆษณาในช่วงวันหยุด ให้ทำดังนี้ availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}

  • บริการที่มีตั๋ว 3 ประเภท ได้แก่ TicketType {ticketTypeId: "adult" shortDescription: "Adult"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Senior"}

หากต้องการระบุว่าตั๋วทั้ง 3 ประเภทพร้อมจำหน่ายสำหรับช่วงเวลานี้ ให้ใช้ availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} หรือ `availability {...}' (อย่าตั้งค่า 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

รหัสที่ไม่บังคับสำหรับพนักงานที่ให้บริการ ฟิลด์นี้ระบุพนักงานในผู้ขาย บริการ และบันทึกความพร้อมทั้งหมด นอกจากนี้ ยังต้องมีความเสถียรเมื่อเวลาผ่านไปเพื่อให้เชื่อมโยงกับการจองที่ผ่านมาได้ ต้องระบุช่องนี้หากมี staffName

staffName

string

ชื่อของพนักงานที่ให้บริการ (ไม่บังคับ) ฟิลด์นี้จะแสดงต่อผู้ใช้ที่ทำการจอง และควรเป็นข้อความที่มนุษย์อ่านได้ ไม่ใช่ตัวระบุที่ทึบแสง ต้องระบุช่องนี้หากมี staffId

roomId

string

รหัสที่ไม่บังคับสำหรับห้องพักที่มีบริการ ฟิลด์นี้จะระบุห้องพักในผู้ขาย บริการ และบันทึกห้องว่างทั้งหมด นอกจากนี้ ยังต้องมีความเสถียรเมื่อเวลาผ่านไปเพื่อให้เชื่อมโยงกับการจองที่ผ่านมาได้ ต้องระบุช่องนี้หากมี roomName

roomName

string

ชื่อของห้องที่ตั้งของบริการ (ไม่บังคับ) ฟิลด์นี้จะแสดงต่อผู้ใช้ที่ทำการจอง และควรเป็นข้อความที่มนุษย์อ่านได้ ไม่ใช่ตัวระบุที่ทึบแสง (ไม่บังคับ แต่ต้องระบุหากมี roomId) ในการรับประทานอาหาร ควรใช้ชื่อห้องสำหรับพื้นที่นั่งเท่านั้น เช่น บาร์หรือลาน และไม่ควรใช้สำหรับเมนูราคาคงที่ กิจกรรมพิเศษ หรือค่าอื่นๆ ที่ไม่ใช่ห้อง (เช่น การจองหรืออาหารค่ำ) เราขอแนะนำอย่างยิ่งว่าพื้นที่นั่งเริ่มต้นไม่ควรมีห้องที่เชื่อมโยงอยู่

partySize

integer

ใช้ได้กับการจองร้านอาหารเท่านั้น: จำนวนแขกที่รองรับได้ในช่วงเวลาที่เลือก ร้านอาหารสามารถเชื่อมโยงกับช่วงเวลาหลายช่วงเวลาสำหรับเวลาเดียวกันได้ โดยแต่ละช่วงเวลาจะระบุขนาดปาร์ตี้ที่แตกต่างกัน เช่น หากรองรับผู้ที่จองได้ 2, 3 หรือ 4 คน

roomDescription

object (Text)

ไม่บังคับ คำอธิบายห้องพักที่แปลแล้ว หากตั้งค่าไว้ ต้องระบุค่าเริ่มต้น นอกจากนี้ เราขอแนะนำให้ระบุภาษาที่ใช้กันทั่วไปสำหรับภาษาของร้านค้าด้วย (ไม่บังคับ)

การเกิดซ้ำ

ข้อความการเกิดซ้ำเป็นตัวเลือก แต่ช่วยให้แสดงช่วงเวลาที่พร้อมให้บริการซึ่งเกิดซ้ำอย่างสม่ำเสมอได้กระชับยิ่งขึ้น โดยปกติแล้วจะแสดงตารางการทำงานของวัน จากนั้นจะใช้ข้อความ ScheduleException เพื่อแสดงช่วงเวลาที่จองแล้ว/ไม่พร้อมให้บริการภายในวันทำการ

ข้อกำหนด

  1. การขยายช่วงเวลาที่ว่างหรือการเกิดซ้ำต้องไม่สร้างช่วงเวลาที่ว่างที่เหมือนกัน หากรหัส, startTime, ระยะเวลา และทรัพยากรตรงกัน ระบบจะถือว่าสล็อตเหมือนกัน
  2. อย่านำรูปแบบความพร้อมมาตรฐานและการเกิดซ้ำมาใช้ร่วมกันในช่องของบริการเดียว การเกิดซ้ำเป็นประโยชน์ต่อผู้ขาย/บริการที่เสนอการนัดหมาย รูปแบบมาตรฐานนี้เหมาะสำหรับผู้ขาย/บริการที่มีคลาสที่กำหนดเวลาไว้เป็นประจำ
  3. การเกิดซ้ำไม่ควรนานเกิน 24 ชั่วโมง
การแสดง JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
ช่อง
repeatUntil

string (Timestamp format)

การประทับเวลา UTC สูงสุดแบบรวมที่ความพร้อมจะทำซ้ำจนถึง

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

repeatEvery

string (Duration format)

กำหนดเวลาระหว่างช่วงเวลาที่ว่างต่อเนื่องกัน

ตัวอย่าง: ความพร้อมที่มีระยะเวลา 20 นาที, repeatEvery เป็น 30 นาที, startTime เป็น 09:00 น. และ repeatUntil เป็น 11:00 น. จะทำให้เกิดช่วงเวลาที่ 09:00-09:20 น., 09:30-09:50 น., 10:00-10:20 น., 10:30-10:50 น. และ 11:00-11:20 น. (ต้องระบุ)

ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย 's' เช่น "3.5s"

ScheduleException

ข้อความ ScheduleException แสดงช่วงเวลาที่จองแล้ว/ไม่พร้อมให้บริการภายในวันทำงาน ซึ่งเป็นข้อยกเว้นของการเกิดซ้ำที่อธิบายไว้ข้างต้น เมื่อมีการจองช่วงเวลา คุณควรอัปเดตรายการข้อยกเว้นเพื่อให้แสดงช่วงเวลาใหม่ที่ไม่พร้อมให้บริการ ไม่ควรแก้ไขการเกิดซ้ำ

การแสดง JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
ช่อง
timeRange

object (TimeRange)

ช่วงเวลาของข้อยกเว้น ช่วงเวลาที่อธิบายโดยการเกิดซ้ำซึ่งทับซ้อนกับช่วงเวลาที่ปิด-เปิดนี้จะถือว่าไม่พร้อมให้บริการ

ตัวอย่างเช่น หากการเกิดซ้ำระบุระยะเวลา 20 นาที, repeatEvery 30 นาที, startTime 9:00 น. และ repeatUntil 11:00 น. แล้ว ScheduleException ที่มี timeRange 9:45 น. - 11:00 น. จะทำให้ช่วงเวลา 9:30-9:50 น., 10-10:20 น. และ 10:30-10:50 น. ไม่พร้อมให้บริการ

โปรดทราบว่าเนื่องจากช่วงเวลาเป็นแบบปิด-เปิด จึงไม่มีผลต่อช่วงเวลาที่เริ่มเวลา 11:00 น.

การชำระเงินล่วงหน้า

การชำระเงินที่ระบบอาจเรียกเก็บจากผู้ใช้เมื่อจอง

การแสดง 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)

กำหนดวิธีใช้ราคาหรือช่วงราคา (ต่อคนหรือคงที่)

ฟิลด์ Union price_options ตัวเลือกราคาคือการระบุราคาที่แน่นอนหรือช่วงราคา price_options ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
price

object (Price)

ราคาของบริการหรือค่าธรรมเนียม

priceRange

object (PriceRange)

ขอบเขตบนและ/หรือขอบเขตล่างของบริการหรือค่าธรรมเนียม

PriceRange

Wrapper สำหรับช่วงของจำนวนเงินที่ถือว่าไม่มีขอบเขต เว้นแต่จะตั้งค่าทั้ง 2 ค่า ต้องระบุ minAmount และ maxAmount อย่างน้อย 1 รายการ

การแสดง JSON
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
ช่อง
minPrice

object (Price)

จำนวนเงินขั้นต่ำ

maxPrice

object (Price)

จำนวนเงินสูงสุด ควรมากกว่า minPrice เสมอ

DurationRequirement

การแจงนับนี้ระบุข้อกำหนดที่ผู้ใช้ต้องรับทราบหรือดูระยะเวลา/เวลาสิ้นสุดของช่วงเวลาที่ขอ

Enum
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)

หากตั้งค่าไว้ เวลาล่าสุด (เป็นวินาทีตั้งแต่ Unix Epoch) ที่จะยกเลิกช่วงเวลาที่สะดวกสำหรับนัดหมายที่เฉพาะเจาะจงนี้ผ่านฟีเจอร์จองกับ Google ได้ ฟิลด์นี้จะลบล้างกฎการยกเลิกที่ระดับบริการ (ไม่บังคับ)

ConfirmationMode

โหมดการยืนยันที่ใช้เมื่อจองความพร้อม

Enum
CONFIRMATION_MODE_UNSPECIFIED ไม่ได้ระบุโหมดการยืนยัน ระบบจะถือว่าเป็นการยืนยันแบบซิงโครนัส
CONFIRMATION_MODE_SYNCHRONOUS ระบบจะยืนยันการจองสำหรับห้องว่างนี้แบบพร้อมกัน
CONFIRMATION_MODE_ASYNCHRONOUS ระบบจะยืนยันการจองสำหรับห้องว่างนี้แบบไม่พร้อมกัน

LinkoutRequiredReason

เหตุผลที่ช่องมีประสบการณ์การลิงก์ออก

Enum
LINKOUT_REQUIRED_REASON_UNSPECIFIED ค่าเริ่มต้น: ไม่ใช้ เทียบเท่ากับไม่ทราบ
PAYMENT_REQUIRED ต้องชำระเงินในแพลตฟอร์มพาร์ทเนอร์เพื่อจองช่วงเวลา

เมธอด

replace

แทนที่ Availability ของ Service ที่มีอยู่ของผู้ขายซึ่งได้รับการจัดการโดยผู้รวบรวมข้อมูลที่ระบุ แล้วส่งคืน