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

Tài nguyên: Tình trạng còn hàng

Một vùng tình trạng còn hàng của dịch vụ của người bán, cho biết thời gian và số lượng vị trí.

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)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "ticketTypeId": [
    string
  ],
  "durationRequirement": enum (DurationRequirement),
  "schedulingRuleOverrides": {
    object (SchedulingRuleOverrides)
  },
  "confirmationMode": enum (ConfirmationMode)
}
Các 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, với độ phân giải nano giây và tối đa 9 chữ số phân số. 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ố phân số, kết thúc bằng 's'. Ví dụ: "3.5s".

spotsTotal

string (int64 format)

Tổng số vị trí còn trống và còn trống trong tình trạng còn phòng này. Ví dụ:

  • Lớp yoga gồm 10 chỗ với 3 chỗ đã đặt trước: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Phiên mát xa trên ghế đã hết 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 rảnh/bận được xác định bên dưới, thì hai trường này sẽ được suy luận.

  • Tần suất ngụ ý spotsTotal=1spotsOpen=1.
  • ScheduleException ngụ ý spotsTotal=1spotsOpen=0.
spotsOpen

string (int64 format)

Số lượng vị trí còn trống.

availabilityTag

string

Một chuỗi không rõ ràng (không bắt buộc) để xác định vị trí phát sóng này. Nếu được đặt thì thông tin này sẽ có trong các yêu cầu đặt lịch hẹn/cập nhật/huỷ cuộc hẹn.

resources

object (Resources)

Các tài nguyên không bắt buộc dùng để phân biệt khu vực dành cho tình trạng rảnh/bận này với các phòng khác khi các phòng hoặc nhân viên khác nhau sử dụng dịch vụ.

Ví dụ: cùng một lớp Yoga với 2 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 khảo những cách thanh toán có thể dùng để thanh toán cho vị trí này. Các tuỳ chọn thanh toán thực tế được xác định ở cấp Người bán và cũng có thể được dùng chung giữa nhiều Người bán.

Trường này sẽ 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 cần phải xuất hiện trong thông báo dịch vụ, nhưng phải được xác định ở cấp Người bán.

recurrence

object (Recurrence)

Thông tin lặp lại của tình trạng rảnh/bận, thể hiện nhiều thời gian bắt đầu. Sự lặp lại phải bao gồm các cuộc hẹn trong một ngày làm việc.

scheduleException[]

object (ScheduleException)

Thời gian 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 tham gia các ngoại lệ liền kề.

deposit

object (Deposit)

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

noShowFee

object (NoShowFee)

Phí vắng mặt (không bắt buộc) đối với tình trạng còn phòng này (không bắt buộc). Ghi đè phí dịch vụ không xuất hiện nếu bạn đã chỉ định phí xuất hiện.

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ỗ trong khung thời gian còn hàng này hay không. Nếu bạn không đặt giá trị này, thì giá trị đó sẽ được kế thừa từ cấp dịch vụ (nếu bạn đặt giá trị đó). (không bắt buộc)

ticketTypeId[]

string

Cho biết danh sách các loại vé được hỗ trợ cho khu vực còn hàng này. Nếu không được đặt, tất cả các loại vé trong dịch vụ chính đều có thể sử dụng cho vị trí này. 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 applications"} TicketType {ticketTypeId: "adult_2" shortDescription: " ngẫu nhiên cuối tuần"} TicketType {ticketTypeId: "youth_1" shortDescription: "Các ngày trong tuần dành cho thanh thiếu niên"} TicketType {ticketTypeId: "youth_2" shortDescription: "Các ngày cuối tuần dành cho thanh thiếu niên"}

Để đại diện cho kho hàng vào các ngày trong tuần: availability {ticketTypeId: "adult_1" ticketTypeId: "youth_1"...}. Để đại diện cho kho hàng trong dịp 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ó thể sử dụng cả ba loại vé 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 các khung giờ. Trường này sẽ bị bỏ qua nếu vị trí không có sẵn. Không được dùng trong danh mụ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 rảnh/bận. Nếu các trường được điền sẵn, thì chúng sẽ ghi đè mọi quy tắc lập lịch tương ứng trong Lập lịch quy tắc cấp dịch vụ.

confirmationMode

enum (ConfirmationMode)

Chế độ xác nhận sẽ được dùng khi đặt tình trạng phòng này. Việc cố gắng tạo lượt đặt trước cho các tình trạng còn phòng bằng chế độ xác nhận CONFIRMATION_MODE_SYNCHRONOUS phải được xác nhận hoặc bị từ chối ngay lập tức. Việc cố gắng tạo lượt đặt trước cho các tình trạng còn phòng bằng chế độ xác nhận 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Ờ XỬ LÝ.

Tài nguyên

Tài nguyên được dùng để phân biệt các khung giờ còn trống với nhau khi các phòng hoặc nhân viên khác nhau sử dụng dịch vụ. Nhiều vị trí cho cùng một dịch vụ và khoảng thời gian có thể cùng tồn tại khi chúng có cá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
}
Các trường
staffId

string

Mã nhận dạng không bắt buộc của một 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à hồ sơ về tình trạng còn hàng. Thông tin này cũng cần phải ổn định theo thời gian để có thể tạo mối tương quan với các lượt đặt phòng trước đây. Bạn phải sử dụng trường này nếu có StaffName.

staffName

string

Tên không bắt buộc của một nhân viên cung cấp dịch vụ. Trường này sẽ hiển thị cho những người dùng đang đặt chỗ và phải có thể đọc được chứ không phải là giá trị nhận dạng không rõ ràng. Trường này phải có nếu có nhân viên.

roomId

string

Mã 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à hồ sơ về tình trạng còn hàng. Thông tin này cũng cần phải ổn định theo thời gian để có thể tạo mối 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 có dịch vụ. Trường này sẽ hiển thị cho những người dùng đang đặt chỗ và phải có thể đọc được chứ không phải là giá trị nhận dạng không rõ ràng. (không bắt buộc nhưng phải có nếu có roomId) trong nhà hàng, tên phòng chỉ nên dùng cho khu vực ghế ngồi như quầy bar hoặc sân hiên và không được dùng cho thực đơn có giá cố định, hoạt động đặc biệt hoặc bất kỳ giá trị nào khác không phải là phòng (chẳng hạn như đặt chỗ hoặc ăn tối). Bạn không nên liên kết với khu vực ghế ngồi mặc định.

partySize

integer

Chỉ áp dụng cho bữa tối: 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 Slots cùng một lúc, mỗi khung giờ chỉ định một PartySize khác nhau, trong trường hợp 2, 3, hoặc 4 người có thể đặt chỗ.

Tần suất

Thông báo lặp lại là không bắt buộc nhưng cho phép trình bày ngắn gọn hơn các vị trí sẵn có lặp lại nhất quán. Chúng thường thể hiện lịch làm việc của một ngày. Sau đó, thông báo ScheduleException được dùng để thể hiện phạm vi thời gian đã đặt/không hoạt động trong ngày làm việc.

Yêu cầu:

  1. Việc mở rộng vùng hỗ trợ tình trạng rảnh/bận hoặc lặp lại KHÔNG được tạo các vùng giống nhau. Nếu mã, thời gian bắt đầu, thời lượng và tài nguyên khớp với nhau, thì các vị trí được coi là giống nhau.
  2. KHÔNG kết hợp định dạng sẵn có tiêu chuẩn và tần suất lặp lại trong các vị trí của dịch vụ. Việc lặp lại mang lại lợi ích cho những người bán/dịch vụ cung cấp cuộc hẹn. Định dạng chuẩn hướng đến người bán/dịch vụ có các lớp học được lên lịch thường xuyên.
  3. Việc 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
}
Các trường
repeatUntil

string (Timestamp format)

Dấu thời gian UTC tối đa kể cả tình trạng còn hàng sẽ lặp lại cho đến.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số phân số. 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 thời điểm tình trạng rảnh/bận liên tiếp.

Ví dụ: Tình trạng rảnh/bận với thời lượng 20 phút, repeatEvery là 30 phút, một thời gian bắt đầu là 9:00 sáng và repeat Cho đến 11:00 sáng sẽ tạo ra các vị trí vào lúc 9-9:20 sáng, 9:30-9:50 sáng, 10-10:20 sáng, 10:30-10:50 sáng, 10:30-10:51, 10 sáng (bắt buộc)

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

ScheduleException

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

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

object (TimeRange)

Phạm vi thời gian của ngoại lệ. Mọi khung giờ được mô tả theo tần suất trùng lặp trong phạm vi thời gian đóng này sẽ được coi là không có sẵn.

Ví dụ: Nếu tần suất lặp lại chỉ định khoảng thời gian 20 phút, repeatMỗi 30 phút, thời gian bắt đầu 9:00 sáng và repeat Cho đến 11:00 sáng, thì ScheduleException có phạm vi thời gian là 9:45 sáng-11:00 sáng sẽ không có sẵn các khung giờ từ 9:30-9:50 sáng, 10:00-10:20 sáng, 10:00 sáng và 10:20 sáng

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

DurationRequirement

Enum này cho biết những yêu cầu hiện có để người dùng xác nhận hoặc xem thời lượng/thời gian kết thúc được yêu cầu.

Enum
DURATION_REQUIREMENT_UNSPECIFIED Bạn chưa chỉ định thời gian kết thúc xử lý. Đây là lựa chọn mặc định.
DO_NOT_SHOW_DURATION Người dùng 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 thì mới có thể tạo cuộc hẹn.

SchedulingRuleOverrides

Quy tắc lên lịch ở cấp độ sẵn có.

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

string (int64 format)

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

firstBookableSec

string (int64 format)

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

lastOnlineCancellableSec

string (int64 format)

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

ConfirmationMode

Chế độ xác nhận dùng khi đặt trước tình trạng còn hàng.

Enum
CONFIRMATION_MODE_UNSPECIFIED Bạn chưa chỉ định chế độ xác nhận. Xác nhận đồng bộ sẽ được giả định.
CONFIRMATION_MODE_SYNCHRONOUS Lượt đặt chỗ cho tình trạng rảnh/bận này sẽ được xác nhận đồng bộ.
CONFIRMATION_MODE_ASYNCHRONOUS Các lượt đặt trước cho tình trạng còn hàng này sẽ được xác nhận không đồng bộ.

Phương thức

replace

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