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

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

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

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)
}
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 theo múi giờ "Zulu" RFC3339 (giờ UTC) với độ phân giải nano giây và lên đến 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 với 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ố chỗ và chỗ trống trong thời gian trống này. Ví dụ:

  • Lớp Yoga gồm 10 chỗ, có 3 chỗ được đặt trước: availability {spotsTotal: 10, spotsOpen: 7 ...}
  • Buổi mát xa trên ghế đã được đặt kín: availability {spotsTotal: 1, spotsOpen: 0 ...}

Lưu ý: Nếu gửi yêu cầu sử dụng định dạng nén tính sẵn có được xác định bên dưới, hai trường này sẽ được suy ra.

  • Sự kiện Lặp lại ngụ ý spotsTotal=1spotsOpen=1.
  • ScheduleException ngụ ý spotsTotal=1spotsOpen=0.
spotsOpen

string (int64 format)

Số lượng chỗ trống.

availabilityTag

string

Một chuỗi mờ tuỳ chọn để xác định vùng tình trạng rảnh/bận này. Nếu được đặt, lịch hẹn này sẽ được đưa vào yêu cầu đặt lịch/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 khung giờ trống này với những phòng khác khi dịch vụ có nhiều nhân viên hoặc phòng.

Ví dụ: cùng một lớp 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 lựa chọn thanh toán có thể được dùng để thanh toán cho vùng này. Các lựa chọn 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 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 nhất thiết phải xuất hiện 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 lặp lại về tình trạng rảnh/bận, cho biết nhiều thời gian bắt đầu. Một sự kiện lặp lại phải chứa 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. Để hạn chế số lượng thông báo scheduleException, hãy cân nhắc việc kết hợp các trường hợp ngoại lệ liền kề.

deposit

object (Deposit)

Khoản tiền gửi không bắt buộc cho tính sẵn có này. Ghi đè khoản tiền gửi dịch vụ nếu đã được chỉ định.

noShowFee

object (NoShowFee)

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

requireCreditCard

enum (RequireCreditCard)

Cho biết liệu người dùng có phải cung cấp thẻ tín dụng để đặt khung giờ trố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 được đặt tại đó). (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ờ còn trống này. Nếu không đặt, tất cả các loại vé trong dịch vụ mẹ đều dùng được cho vùng 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: "Người lớn trong tuần"} TicketType {ticketTypeId: "adult_2" shortDescription: "Ngày cuối tuần người lớn"} TicketType {ticketTypeId: "youth_1" shortDescription: "Các ngày trong tuần của giới trẻ"} TicketType {ticketTypeId: "youth_2" shortDescription: "Ngày cuối tuần của giới trẻ"}

Để thể hiện khoảng không quảng cáo 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: "Người lớn"} TicketType {ticketTypeId: "youth" shortDescription: "Youth"} TicketType {ticketTypeId: "senior" shortDescription: "Người cao tuổi"}

Để 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 "tình trạng còn hàng {...}" (không đặt TicketTypeId trong vị trí này).

(không bắt buộc)

durationRequirement

enum (DurationRequirement)

Yêu cầu về việc hiển thị thời lượng và/hoặc thời gian kết thúc của vùng quảng cáo. Trường này sẽ bị bỏ qua nếu vùng đó không có sẵn. Không được 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 rảnh/bận. Nếu các trường được điền sẵn, chúng sẽ ghi đè mọi quy tắc lập lịch tương ứng trên SchedulingRules 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. Những nỗ lực tạo yêu cầu đặt trước cho tình trạng còn hàng bằng phương thức xác nhận là CONFIRMATION_MODE_SYNCHRONOUS phải được xác nhận hoặc bị từ chối ngay lập tức. Đối với những yêu cầu đặt lịch phát sóng cho lịch phát sóng có phương thức xác nhận là CONFIRMATION_MODE_ASYNCHRONOUS, hệ thống phải từ chối ngay lập tức hoặc được tạo với trạng thái PENDING.

Tài nguyên

Tài nguyên được dùng để phân biệt tình trạng rảnh/bận của nhau khi các nhân viên hoặc phòng khác nhau là một phần của 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
}
Trường
staffId

string

Mã nhận dạng 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 của tất cả người bán, dịch vụ và hồ sơ về tình trạng còn hàng. Số liệu này cũng cần phải ổn định theo thời gian để cho phép mối tương quan với các lượt đặt phòng trước đây. Bạn phải có trường này nếu có StaffName.

staffName

string

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

roomId

string

Mã nhận dạng không bắt buộc cho phòng chứa 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 phòng. Số liệu này cũng cần phải ổn định theo thời gian để cho phép mối tương quan với các lượt đặt phòng trước đây. Bạn phải có trường này nếu có RoomName.

roomName

string

Tên không bắt buộc của phòng cung cấp dịch vụ. Trường này sẽ hiển thị cho người dùng đặt phòng và phải có thể đọc được, chứ không phải giá trị 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 bữa ăn, tên phòng chỉ nên được sử dụng cho khu vực ghế ngồi như quầy bar hoặc sân hiên và không được sử dụng cho thực đơn giá cố định, hoạt động đặc biệt hay bất kỳ giá trị nào khác không phải là phòng (như đặt chỗ hoặc ăn tối). Khu vực ghế ngồi mặc định không được 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ể chứa được trong khung giờ này. Một nhà hàng có thể được liên kết với nhiều chỗ trống cùng một lúc, mỗi vị trí chỉ định một bên khác nhau, nếu ví dụ: 2, 3 hoặc 4 người có thể ngồi trước khi đặt chỗ.

Tần suất

Không bắt buộc phải gửi thông báo định kỳ, nhưng cho phép trình bày ngắn gọn hơn các khung giờ trống lặp lại liên tục. Chúng thường thể hiện lịch biểu làm việc trong một ngày. Sau đó, các thông báo ScheduleException được dùng để biểu thị 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ờ phát sóng hoặc tần suất lặp lại KHÔNG được tạo ra các khung giờ giống nhau. Nếu id, thời gian bắt đầu, thời lượng và tài nguyên khớp với nhau, vị trí được coi là giống hệt nhau.
  2. KHÔNG kết hợp định dạng tình trạng rảnh/bận chuẩn và tần suất lặp lại trong các vị trí của một dịch vụ. Việc định kỳ mang lại lợi ích cho người bán/dịch vụ cung cấp cuộc 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. Sự kiệ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 tối đa (theo giờ UTC) mà thời gian phát hành sẽ lặp lại cho đến.

Dấu thời gian theo múi giờ "Zulu" RFC3339 (giờ UTC) với độ phân giải nano giây và lên đến 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 khung giờ trống liên tiếp.

Ví dụ: Một sự kiện có thời lượng 20 phút, thời gian lặp lại là 30 phút, thời gian bắt đầu là 9 giờ sáng và thời gian lặp lại là 11 giờ sáng sẽ tạo ra các khung giờ 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:50 sáng. (bắt buộc)

Thời lượng tính bằng giây với 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 thể hiện phạm vi thời gian đã đặt trước/không có sẵn trong ngày làm việc, 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 đã đặt trước các khung giờ, bạn phải cập nhật danh sách các trường hợp ngoại lệ để phản ánh các khoảng thời gian mới không hoạt động. Bạn không nên sửa đổi chính sự lặp lại này.

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

object (TimeRange)

Phạm vi thời gian của ngoại lệ. Mọi khung giờ được mô tả theo sự kiện lặp lại và chồng chéo với phạm vi thời gian đóng cửa này sẽ được coi là không sử dụng được.

Ví dụ: Nếu sự kiện lặp lại chỉ định thời lượng là 20 phút, thì thời gian lặp lại là 30 phút, thời gian bắt đầu là 9:00 sáng và thời gian lặp lại là 11:00 sáng, thì ScheduleException với phạm vi thời gian là 9:45 sáng – 11:00 sáng sẽ vô hiệu hoá các khung giờ từ 9:30 – 9:50 sáng và 10:00:10 sáng

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

DurationRequirement

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

Enum
DURATION_REQUIREMENT_UNSPECIFIED Chưa chỉ định thời gian 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 không nhìn thấy thời gian kết thúc.
MUST_SHOW_DURATION Người dùng phải nhìn thấy thời gian kết thúc thì mới có thể đặt cuộc hẹn.

SchedulingRuleOverrides

Quy tắc lên lịch cấp tình trạng rảnh/bận.

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 đây nhất (tính bằng giây) mà khung giờ này có thể đặt trước. Dấu thời gian này phải ở trước thời điểm startsec của khung giờ để được áp dụng (nếu người dùng có thể đặt vé sau thời gian bắt đầu, hãy sử dụng scheduleRules.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 thuộc scheduleRules của Dịch vụ tương ứng.

firstBookableSec

string (int64 format)

Lần đầu tiên (tính bằng giây) mà khung giờ này có thể được đặt trước. 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 cuối cùng (tính bằng giây kể từ thời gian Unix) mà thời gian rảnh cụ thể này có thể bị hủy thông qua Đặt chỗ với 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

Các chế độ xác nhận được sử dụng khi đặt lịch hẹn.

Enum
CONFIRMATION_MODE_UNSPECIFIED Chưa chỉ định chế độ xác nhận. Trạng thái xác nhận đồng bộ sẽ được giả định.
CONFIRMATION_MODE_SYNCHRONOUS Các yêu cầu đặt trước cho tình trạng còn hàng này sẽ được xác nhận một cách đồng bộ.
CONFIRMATION_MODE_ASYNCHRONOUS Yêu cầu đặ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 Service hiện có của người bán do đơn vị tập hợp đã chỉ định quản lý và trả lại hàng đó.