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

Tài nguyên: Phạm vi cung cấp

Một khung giờ trống của dịch vụ của người bán, cho biết thời gian và số lượng chỗ.

Biểu diễn dưới dạng 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)
}
Trường
startTime

string (Timestamp format)

Thời gian bắt đầu của khung giờ nhận đặt hẹn.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

duration

string (Duration format)

Thời lượng của khung giờ nhận đặt hẹn

Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".

spotsTotal

string (int64 format)

Tổng số chỗ và số chỗ còn trống của lịch phát sóng này. Ví dụ:

  • Lớp học yoga có 10 chỗ, đã có 3 người đặt chỗ: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Phiên mát xa trên ghế đã kín chỗ: availability {spotsTotal: 1, spotsOpen: 0 ...}

Lưu ý: Nếu gửi yêu cầu bằng định dạng nén tình trạng còn hàng được xác định bên dưới, thì hai trường này sẽ được suy luận.

  • Lặp lại ngụ ý spotsTotal=1spotsOpen=1.
  • ScheduleException ngụ ý spotsTotal=1spotsOpen=0.
spotsOpen

string (int64 format)

Số chỗ trống.

availabilityTag

string

Một chuỗi mờ không bắt buộc để xác định khung giờ trống này. Nếu được đặt, thông tin này sẽ được đưa vào các yêu cầu đặt/cập nhật/huỷ cuộc hẹn.

resources

object (Resources)

Tài nguyên không bắt buộc dùng để phân biệt khung giờ trống này với các khung giờ trống khác khi có nhiều nhân viên hoặc phòng tham gia cung cấp dịch vụ.

Ví dụ: cùng một lớp học Yoga với 2 người hướng dẫn:

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

string

Danh sách mã nhận dạng tham chiếu đến các phương thức thanh toán có thể dùng để thanh toán cho khung giờ này. Các phương thức thanh toán thực tế được xác định ở cấp Người bán và cũng có thể được chia sẻ giữa nhiều Người bán.

Trường này ghi đè mọi payment_option_ids được chỉ định trong thông báo dịch vụ. Tương tự, payment_option_ids được chỉ định ở đây KHÔNG bắt buộc phải có trong thông báo dịch vụ, mặc dù phải được xác định ở cấp Người bán.

recurrence

object (Recurrence)

Thông tin về lịch biểu lặp lại cho lịch phát sóng, thể hiện nhiều thời điểm bắt đầu. Một lịch biểu định kỳ phải chứa các cuộc hẹn trong một ngày làm việc.

scheduleException[]

object (ScheduleException)

Thời điểm không thể lên lịch dịch vụ này. Để giới hạn số lượng thông báo scheduleException, hãy cân nhắc việc kết hợp các ngoại lệ liền kề.

deposit

object (Deposit)

Khoản đặt cọc không bắt buộc cho tình trạng phòng này. Ghi đè khoản tiền đặt cọc dịch vụ nếu có.

noShowFee

object (NoShowFee)

Không bắt buộc phải trả phí nếu không đến nhận phòng cho tình trạng phòng này. Ghi đè phí dịch vụ không đến nếu bạn đã chỉ định phí này.

prepayment

object (Prepayment)

Không bắt buộc. Thông tin về khoản thanh toán trước (không bắt buộc) cho tình trạng phòng này.

requireCreditCard

enum (RequireCreditCard)

Cho biết liệu người dùng có phải cung cấp thẻ tín dụng để đặt chỗ khung giờ trống này hay không. Nếu bạn không đặt giá trị này, giá trị này sẽ được kế thừa từ cấp dịch vụ nếu được đặt ở đó. (không bắt buộc)

ticketTypeId[]

string

Cho biết danh sách các loại vé được hỗ trợ cho khung giờ trống này. Nếu bạn không đặt giá trị, tất cả các loại vé trong dịch vụ mẹ đều có sẵn cho khung giờ này. Xin lưu ý rằng bạn phải xác định các giá trị của trường này trong dịch vụ mẹ. Ví dụ:

  • Dịch vụ có 4 loại vé: 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"}

Để thể hiện khoảng không quảng cáo trong các ngày trong tuần: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. Để thể hiện khoảng không quảng cáo trong mùa lễ: availability {ticketTypeId: "adult_2" ticketTypeId: "youth_2"...}.

  • Dịch vụ có 3 loại vé: TicketType {ticketTypeId: "adult" shortDescription: "Adult"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Senior"}

Để cho biết cả 3 loại vé đều có sẵn cho khung giờ này, hãy sử dụng availability {ticketTypeId: "adult" ticketTypeId: "youth" ticketTypeId: "senior" ...} hoặc "availability {...}" (không đặt ticketTypeId trong khung giờ này).

(không bắt buộc)

durationRequirement

enum (DurationRequirement)

Yêu cầu hiển thị thời lượng và/hoặc thời gian kết thúc của khung giờ. Trường này sẽ bị bỏ qua nếu không có khung giờ. Không dùng trong ngành dọc Điểm tham quan. (không bắt buộc)

schedulingRuleOverrides

object (SchedulingRuleOverrides)

Quy tắc lên lịch về tình trạng còn hàng. Nếu được điền sẵn, các trường này sẽ ghi đè mọi quy tắc lên lịch tương ứng trên SchedulingRules cấp dịch vụ.

confirmationMode

enum (ConfirmationMode)

Chế độ xác nhận sẽ được sử dụng khi đặt phòng tình trạng phòng này. Các lượt đặt trước cho tình trạng còn chỗ có chế độ xác nhận là CONFIRMATION_MODE_SYNCHRONOUS phải được xác nhận hoặc từ chối ngay lập tức. Các yêu cầu tạo lượt đặt phòng cho tình trạng còn phòng có chế độ xác nhận là CONFIRMATION_MODE_ASYNCHRONOUS phải bị từ chối ngay lập tức hoặc được tạo với trạng thái ĐANG CHỜ.

linkoutRequiredReason

enum (LinkoutRequiredReason)

Không bắt buộc. Lý do yêu cầu phải có đường liên kết cho vị trí này. Nếu được đặt, tài nguyên Người bán cho vị trí này phải có LinkoutTemplate hợp lệ. (không bắt buộc)

Tài nguyên

Tài nguyên được dùng để phân biệt các khung giờ trống với nhau khi có nhiều nhân viên hoặc phòng tham gia dịch vụ. Nhiều khung giờ cho cùng một dịch vụ và khoảng thời gian có thể cùng tồn tại khi các khung giờ đó có tài nguyên khác nhau.

Biểu diễn dưới dạng JSON
{
  "staffId": string,
  "staffName": string,
  "roomId": string,
  "roomName": string,
  "partySize": integer,
  "roomDescription": {
    object (Text)
  }
}
Trường
staffId

string

Giấy tờ tuỳ thân không bắt buộc của nhân viên cung cấp dịch vụ. Trường này xác định nhân viên trên tất cả người bán, dịch vụ và bản ghi về tình trạng còn chỗ. Giá phòng cũng cần phải ổn định theo thời gian để có thể tương quan với các lượt đặt phòng trước đây. Trường này phải có nếu có staffName.

staffName

string

Tên của nhân viên cung cấp dịch vụ (không bắt buộc). Trường này sẽ hiển thị cho người dùng đặt phòng và phải là trường mà con người có thể đọc được, thay vì mã nhận dạng không rõ ràng. Trường này phải có nếu có staffId.

roomId

string

Mã nhận dạng không bắt buộc của phòng có dịch vụ. Trường này xác định phòng trên tất cả người bán, dịch vụ và bản ghi tình trạng phòng. Giá phòng cũng cần phải ổn định theo thời gian để có thể tương quan với các lượt đặt phòng trước đây. Trường này phải có nếu có roomName.

roomName

string

Tên không bắt buộc cho phòng chứa dịch vụ. Trường này sẽ hiển thị cho người dùng đặt phòng và phải là trường mà con người có thể đọc được, thay vì mã nhận dạng không rõ ràng. (không bắt buộc nhưng bắt buộc nếu có roomId) Trong phần ăn uống, tên phòng chỉ được dùng cho khu vực chỗ ngồi như quầy bar hoặc hiên nhà và không được dùng cho thực đơn giá cố định, hoạt động đặc biệt hoặc bất kỳ giá trị nào khác không phải phòng (chẳng hạn như đặt trước hoặc bữa tối). Bạn không nên liên kết khu vực chỗ ngồi mặc định với phòng.

partySize

integer

Chỉ áp dụng cho nhà hàng ăn uống: Quy mô bữa tiệc có thể được phục vụ trong khung giờ này. Một nhà hàng có thể được liên kết với nhiều Khung giờ trong cùng một thời điểm, mỗi khung giờ chỉ định một partySize khác nhau, ví dụ: 2, 3 hoặc 4 người có thể ngồi khi đặt chỗ.

roomDescription

object (Text)

Không bắt buộc. Nội dung mô tả phòng đã bản địa hoá. Nếu được đặt, bạn phải cung cấp giá trị mặc định. Bạn cũng nên cung cấp các ngôn ngữ phổ biến cho ngôn ngữ của người bán. (không bắt buộc)

Tần suất

Thông báo định kỳ là không bắt buộc, nhưng cho phép trình bày các khung giờ có sẵn lặp lại một cách ngắn gọn hơn. Các mốc thời gian này thường đại diện cho lịch làm việc trong ngày. Sau đó, thông báo ScheduleException được dùng để biểu thị các phạm vi thời gian đã đặt trước/không có sẵn trong ngày làm việc.

Yêu cầu:

  1. Việc mở rộng khung giờ hoạt động hoặc lịch biểu lặp lại KHÔNG được tạo ra các khung giờ giống hệt nhau. Nếu mã nhận dạng, startTime, thời lượng và tài nguyên khớp nhau, thì các khung giờ được coi là giống nhau.
  2. ĐỪNG kết hợp định dạng lịch phát sóng chuẩn và lịch phát sóng định kỳ trong các khung giờ của một dịch vụ. Lịch hẹn định kỳ mang lại lợi ích cho những người bán/dịch vụ cung cấp lịch hẹn. Định dạng tiêu chuẩn dành cho những người bán/dịch vụ có các lớp học được lên lịch thường xuyên.
  3. Lần lặp lại không được kéo dài quá 24 giờ.
Biểu diễn dưới dạng JSON
{
  "repeatUntil": string,
  "repeatEvery": string
}
Trường
repeatUntil

string (Timestamp format)

Dấu thời gian UTC tối đa bao gồm cả thời điểm mà tình trạng còn hàng lặp lại.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

repeatEvery

string (Duration format)

Xác định thời gian giữa các khung giờ liên tiếp có sẵn.

Ví dụ: Lịch phát sóng có thời lượng 20 phút, repeatEvery là 30 phút, startTime là 9:00 và repeatUntil là 11:00 sẽ tạo ra các khung giờ phát sóng từ 9:00 đến 9:20, 9:30 đến 9:50, 10:00 đến 10:20, 10:30 đến 10:50, 11:00 đến 11:20. (bắt buộc)

Thời lượng tính bằng giây, có tối đa 9 chữ số thập phân, kết thúc bằng "s". Ví dụ: "3.5s".

ScheduleException

Thông báo ScheduleException thể hiện các phạm vi thời gian đã đặt trước/không có sẵn trong ngày làm việc, đây là các trường hợp ngoại lệ đối với lịch biểu định kỳ được mô tả ở trên. Khi người dùng đặt khung giờ, danh sách các trường hợp ngoại lệ phải được cập nhật để phản ánh các khoảng thời gian mới không có sẵn. Bạn không được sửa đổi chính lịch biểu định kỳ.

Biểu diễn dưới dạng JSON
{
  "timeRange": {
    object (TimeRange)
  }
}
Trường
timeRange

object (TimeRange)

Khoảng thời gian của ngoại lệ. Mọi khung giờ mà lịch biểu định kỳ mô tả trùng với phạm vi thời gian đóng-mở này sẽ được coi là không có sẵn.

Ví dụ: Nếu lịch biểu định kỳ chỉ định thời lượng là 20 phút, repeatEvery là 30 phút, startTime là 9:00 và repeatUntil là 11:00, thì ScheduleException có timeRange là 9:45-11:00 sẽ không cung cấp các khung giờ từ 9:30 đến 9:50, 10 đến 10:20 và 10:30 đến 10:50.

Xin lưu ý rằng vì phạm vi thời gian là đóng-mở, nên khung giờ bắt đầu lúc 11 giờ sáng sẽ không bị ảnh hưởng.

Trả Tiền Trước

Khoản thanh toán mà người dùng có thể phải trả trong quá trình đặt phòng.

Biểu diễn dưới dạng JSON
{
  "priceInfo": {
    object (PriceInfo)
  }
}
Trường
priceInfo

object (PriceInfo)

Vùng chứa thông tin chi tiết về giá.

PriceInfo

Vùng chứa thông tin chi tiết về giá.

Biểu diễn dưới dạng 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.
}
Trường
priceType

enum (PriceType)

Xác định cách áp dụng giá hoặc khoảng giá (theo người hoặc cố định)

Trường hợp hợp nhất price_options. Lựa chọn giá là chỉ định một mức giá chính xác hoặc một khoảng giá. price_options chỉ có thể là một trong những giá trị sau:
price

object (Price)

Giá của một dịch vụ hoặc phí.

priceRange

object (PriceRange)

Giới hạn trên và/hoặc giới hạn dưới của một dịch vụ hoặc phí.

PriceRange

Trình bao bọc cho một dải số tiền được coi là không ràng buộc trừ phi bạn đặt cả hai giá trị. Bạn phải cung cấp ít nhất một trong hai giá trị minAmount và maxAmount.

Biểu diễn dưới dạng JSON
{
  "minPrice": {
    object (Price)
  },
  "maxPrice": {
    object (Price)
  }
}
Trường
minPrice

object (Price)

Số tiền tối thiểu.

maxPrice

object (Price)

Số tiền tối đa. Phải luôn > minPrice.

DurationRequirement

Enum này cho biết những yêu cầu mà người dùng phải đáp ứng để xác nhận hoặc xem thời lượng/thời gian kết thúc của khung giờ đã yêu cầu.

Enum
DURATION_REQUIREMENT_UNSPECIFIED Bạn chưa chỉ định cách xử lý thời gian kết thúc. Đây là tuỳ chọn mặc định.
DO_NOT_SHOW_DURATION Người dùng sẽ không thấy thời gian kết thúc.
MUST_SHOW_DURATION Người dùng phải thấy thời gian kết thúc trước khi có thể đặt lịch hẹn.

SchedulingRuleOverrides

Quy tắc lên lịch ở cấp độ tình trạng còn hàng.

Biểu diễn dưới dạng JSON
{
  "lastBookableSec": string,
  "firstBookableSec": string,
  "lastOnlineCancellableSec": string
}
Trường
lastBookableSec

string (int64 format)

Thời gian gần nhất (tính bằng giây) mà bạn có thể đặt chỗ khung giờ này. Dấu thời gian này phải trước startSec của khung giờ để được tuân thủ (nếu người dùng có thể đặt trước sau thời gian bắt đầu, hãy sử dụng SchedulingRules.min_booking_before_end_time ở cấp dịch vụ). Nếu có, sẽ ghi đè mọi nội dung được chỉ định trong min_booking_buffer của SchedulingRules của Dịch vụ tương ứng.

firstBookableSec

string (int64 format)

Thời gian đầu tiên (tính bằng giây) mà bạn có thể đặt trước khung giờ này. Dấu thời gian này phải trước startSec của khung giờ hoặc lastBookableSec nếu được chỉ định.

lastOnlineCancellableSec

string (int64 format)

Nếu được đặt, thời gian gần nhất (tính bằng giây kể từ thời gian bắt đầu của hệ thống Unix) mà bạn có thể huỷ khung giờ nhận đặt hẹn cụ thể này thông qua tính năng Đặt chỗ bằng Google. Trường này sẽ ghi đè mọi quy tắc huỷ ở cấp dịch vụ. (không bắt buộc)

ConfirmationMode

Các chế độ xác nhận được dùng khi đặt phòng tình trạng phòng trống.

Enum
CONFIRMATION_MODE_UNSPECIFIED Chưa chỉ định chế độ xác nhận. Xác nhận đồng bộ sẽ được giả định.
CONFIRMATION_MODE_SYNCHRONOUS Các lượt đặt phòng cho tình trạng phòng này sẽ được xác nhận đồng bộ.
CONFIRMATION_MODE_ASYNCHRONOUS Các yêu cầu đặt phòng cho tình trạng còn phòng này sẽ được xác nhận không đồng bộ.

LinkoutRequiredReason

Lý do khiến một khung có trải nghiệm liên kết.

Enum
LINKOUT_REQUIRED_REASON_UNSPECIFIED Giá trị mặc định: Không sử dụng, tương đương với không xác định.
PAYMENT_REQUIRED Bạn phải thanh toán trong nền tảng của đối tác để đặt chỗ.

Phương thức

replace

Thay thế Availability của Service hiện có của người bán do trình tổng hợp được chỉ định quản lý và trả về Availability đó.