Yêu cầu
Cú pháp
Thông báo OTA_HotelRateAmountNotifRQ
sử dụng cú pháp sau:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="message_ID"
TimeStamp="timestamp"
Version="3.0"
NotifType="[Overlay|Delta|Remove]"
NotifScopeType="[ProductRate]">
<POS>
<Source>
<RequestorID ID="partner_key"/>
</Source>
</POS>
<RateAmountMessages HotelCode="HotelID">
<RateAmountMessage>
<StatusApplicationControl Start="YYYY-MM-DD"
End="YYYY-MM-DD"
Mon="boolean_value"
Tue="boolean_value"
Weds="boolean_value"
Thur="boolean_value"
Fri="boolean_value"
Sat="boolean_value"
Sun="boolean_value"
InvTypeCode="RoomID"
RatePlanCode="PackageID"
RatePlanType="[26]" />
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="float"
AmountAfterTax="float"
CurrencyCode="currency"
NumberOfGuests="integer"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="float"
AgeQualifyingCode="[10|8]"
MaxAge="integer"/>
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Phần tử và thuộc tính
Thông báo OTA_HotelRateAmountNotifRQ
có các phần tử và thuộc tính sau:
Phần tử / @Thuộc tính | Số lần xuất hiện | Loại | Nội dung mô tả |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | Phần tử gốc của thông báo giá. |
OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | string (URI) | Không gian tên XML. |
OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | Giá trị nhận dạng duy nhất cho thông báo yêu cầu này. Giá trị này được trả về trong thông báo phản hồi. Các ký tự được phép là a-z , A-Z , 0-9 , _ (underscore) và - (dash) . |
OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | Ngày và giờ tạo thông báo này. |
OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | Phiên bản của thông báo trên OpenTravel. |
OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | Loại thông báo sẽ áp dụng cho mọi Các giá trị hợp lệ là: Để hiểu cách hoạt động của các thuộc tính này, hãy xem ví dụ.
|
OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | Phạm vi của Các giá trị hợp lệ là:
|
OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Vùng chứa để chỉ định tài khoản đối tác cho thông báo này (thường dùng nếu phần phụ trợ của bạn cung cấp nguồn cấp dữ liệu giá cho nhiều tài khoản đối tác). |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Bắt buộc nếu có <POS> . Vùng chứa <RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Bắt buộc nếu có <POS> . Xác định tài khoản đối tác. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | Tài khoản đối tác dùng cho thư này. Giá trị của chuỗi này là giá trị của "Khoá đối tác" được liệt kê trên
trang Cài đặt tài khoản trong Hotel Center.
Lưu ý: Nếu bạn có phần phụ trợ cung cấp nguồn cấp dữ liệu cho nhiều tài khoản, thì giá trị này phải khớp với giá trị thuộc tính |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Tập hợp các phần tử <RateAmountMessage> xác định đơn giá. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | Giá trị nhận dạng duy nhất của cơ sở lưu trú. Giá trị này phải khớp với Mã khách sạn được chỉ định bằng phần tử <id> trong phần tử <listing> của nguồn cấp dữ liệu danh sách khách sạn. Mã khách sạn cũng có trong Hotel Center. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Một vùng chứa để đặt giá cho giá phòng (một tổ hợp loại phòng và gói giá trong một phạm vi ngày). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | Xác định phạm vi ngày, cũng như các giá trị nhận dạng loại phòng (InvTypeCode ) và gói giá (RatePlanCode ). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | Ngày bắt đầu (dựa trên múi giờ của cơ sở lưu trú) trong phạm vi ngày. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | Ngày kết thúc (dựa trên múi giờ của cơ sở lưu trú) trong phạm vi ngày. Phải bằng hoặc lớn hơn giá trị start .
Nếu start và end bằng nhau, nội dung cập nhật sẽ áp dụng cho ngày đó. Xin lưu ý rằng Google hỗ trợ tối đa 3 năm dữ liệu. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | Được đặt là true hoặc 1 để cho biết rõ việc có bao gồm các ngày thứ Hai.
Nếu bạn đặt là |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Được đặt là true hoặc 1 để cho biết rõ việc có bao gồm các ngày thứ Ba.
Nếu bạn đặt là |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Được đặt là true hoặc 1 để cho biết rõ việc có bao gồm các ngày thứ Tư.
Nếu bạn đặt là |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Được đặt là true hoặc 1 để cho biết rõ việc có bao gồm các ngày thứ Năm.
Nếu bạn đặt là |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | Được đặt là true hoặc 1 để cho biết rõ việc có bao gồm các ngày thứ Sáu.
Nếu bạn đặt là |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Được đặt là true hoặc 1 để cho biết rõ việc có bao gồm các ngày thứ Bảy.
Nếu bạn đặt là |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Được đặt là true hoặc 1 để cho biết rõ việc có bao gồm các ngày Chủ Nhật.
Nếu bạn đặt là |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | Giá trị nhận dạng duy nhất của quỹ phòng (loại phòng). Giá trị này liên kết với <RoomID> trong thông báo Giao dịch (Dữ liệu của cơ sở lưu trú). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | Giá trị nhận dạng duy nhất của gói giá. Giá trị nhận dạng này liên kết với <PackageID> trong thông báo Giao dịch (Dữ liệu của cơ sở lưu trú). Gói giá còn được xác định thêm và được đề cập đến trong <StatusApplicationControl> của cả thông báo <OTA_HotelRateAmountNotifRQ> và <OTA_HotelAvailNotifRQ> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | Giá trị nhận dạng cho biết loại mô hình định giá ARI áp dụng cho lần cập nhật giá này. Bạn chỉ nên chỉ định thuộc tính này bằng giá trị 26 khi sử dụng mô hình định giá dựa trên thời gian lưu trú. Nếu bạn loại trừ thuộc tính này, thì đây là thông tin cập nhật về giá mỗi ngày. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Vùng chứa tập hợp các phần tử <Rate> . Nếu NotifType là "Remove" , thì bạn không được chỉ định phần tử này. Nếu không, phần tử này phải được chỉ định chính xác một lần. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Vùng chứa tập hợp các phần tử <BaseByGuestAmts> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | Đơn vị mà theo đó thời gian lưu trú được chỉ định. Giá trị duy nhất được hỗ trợ là "Day" , nghĩa là thời gian lưu trú sẽ được chỉ định bằng ngày.
Để sử dụng giá dựa trên thời gian lưu trú, bạn phải chỉ định |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | Số RateTimeUnits tạo nên thời gian lưu trú cho mức giá này.
Ví dụ: nếu giá trị (Các) Mức giá cho thời gian lưu trú được chỉ định trong đối tượng Để sử dụng giá dựa trên thời gian lưu trú, bạn phải chỉ định |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | Vùng chứa tập hợp các khoản phí cơ bản. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Xác định giá phòng bằng một đơn vị tiền tệ cụ thể. Bạn có thể đặt giá theo số người lưu trú bằng cách sử dụng nhiều phần tử <BaseByGuestAmt> , mỗi phần tử có một giá trị cho NumberOfGuests .
Nếu không, giá sẽ được áp dụng cho số lượng người lưu trú tối đa do NumberOfGuests xác định. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float |
Giá theo ngày của giá phòng chưa bao gồm thuế và phí. Bạn có thể chỉ định cả Nếu bạn đang sử dụng chương trình khuyến mãi, thì mức chiết khấu sẽ áp dụng cho |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | Giá theo ngày của giá phòng đã bao gồm các khoản thuế và phí hiện hành. Nếu chỉ định AmountAfterTax , bạn không cần gửi thông báo <TaxFeeInfo> riêng cho từng cơ sở lưu trú. Bạn có thể sử dụng kết hợp thuộc tính này với AmountBeforeTax để cung cấp cả giá cơ sở và tổng giá mà người dùng ở một số khu vực nhất định có thể nhìn thấy.
Cảnh báo: Nếu đang sử dụng chương trình khuyến mãi, bạn không nên sử dụng số tiền Lưu ý: Nếu không chỉ định |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | Mã ký tự alpha theo ISO 4217 (3) cho một đơn vị tiền tệ cụ thể.
Hãy tham khảo danh sách đơn vị tiền tệ được hỗ trợ. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | Số lượng khách tối đa có thể phục vụ theo giá này.
Mặc định là 2 khách nếu không được cung cấp.
Xin lưu ý rằng nếu |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | Vùng chứa tính phí cho những khách lưu trú bổ sung.
Cú pháp này sẽ hữu ích nếu giá bổ sung cho khách hoặc trẻ em thay đổi dựa trên ngày. Hãy cân nhắc sử dụng thông báo
Ví dụ: Giả sử giá cơ bản được chỉ định cho 1 và 2 người lớn.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Chỉ định giá dựa trên loại khách, được chỉ định đến hết ngày AgeQualifyingCode và độ tuổi của khách được chỉ định đến MaxAge (nếu có).
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Xác định loại khách bổ sung, người lớn hoặc trẻ em. Các lựa chọn hợp lệ là:
Bạn có thể đặt Bạn phải chỉ định |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | Bạn phải chỉ định MaxAge khi AgeQualifyingCode là 8 . Bạn không được chỉ định thuộc tính này khi AgeQualifyingCode là 10 .
Việc chỉ định giá trị Các giá trị lớn hơn Bạn có thể chỉ định nhiều độ tuổi của trẻ thông qua các phần tử |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | Số tiền trước khi tính các khoản thuế và phí vào giá cơ bản cho mỗi khách lưu trú bổ sung.
Bạn phải chỉ định các khoản thuế và phí phụ thuộc vào độ tuổi của người lưu trú thông qua phần tử |
Ví dụ
Phần này cung cấp các mã ví dụ để làm nổi bật cách:
- Thiết lập đơn giá cơ bản và tổng giá
- Thêm, ghi đè và xoá các mức giá
- Thêm, phủ và xoá số tiền bổ sung của khách
- Thiết lập mức giá dựa trên thời gian lưu trú
- Thêm, phủ và xoá mức giá dựa trên thời gian lưu trú
Khi bạn đặt giá trị add
, overlay
hoặc remove
, phạm vi ngày có thể giống hoặc khác nhau, tuỳ thuộc vào mục tiêu của bạn. Ví dụ: bạn có thể sử dụng overlay
để chỉ đặt một vài tuần cho kỳ nghỉ lễ tháng 12 thay vì đặt toàn bộ phạm vi được đặt cho thông báo "Thêm giá". Giá trị này sẽ thay thế tỷ lệ kín phòng chỉ trong khoảng thời gian này.
Giá theo ngày
Thiết lập đơn giá cơ bản và tổng giá
Ví dụ 1
Giá cơ bản (không bao gồm thuế hoặc phí) cho số người lưu trú mặc định (gấp đôi). Trong mô hình này, bạn phải xác định các khoản thuế và phí cho cơ sở lưu trú bằng thông báo <TaxFeeInfo>
. Giá cơ bản sẽ nổi bật hơn đối với những người dùng tìm kiếm ở một số khu vực nhất định.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ví dụ 2
Giá cơ bản và tổng giá cho số người lưu trú mặc định (gấp đôi). Trong mô hình này, bạn không nên xác định riêng thuế và phí bằng thông báo <TaxFeeInfo>
. Giá cơ bản sẽ nổi bật hơn đối với những người dùng tìm kiếm ở một số khu vực nhất định.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ví dụ 3
Tổng giá (bao gồm thuế và phí) cho nhiều mức sức chứa. Trong mô hình này, bạn không nên xác định riêng thuế và phí bằng thông báo <TaxFeeInfo>
.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountAfterTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ví dụ 4
Giá cơ bản và tổng giá cho nhiều loại phòng và gói giá thuộc các phạm vi ngày khác nhau.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> <RateAmountMessage> <StatusApplicationControl Start="2020-05-01" End="2020-05-31" InvTypeCode="RoomID_2" RatePlanCode="PackageID_2"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" AmountAfterTax="220.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Thêm, ghi đè và xoá đơn giá
Thêm giá
Đặt NotifType
thành Delta
để thêm mức giá mỗi người lưu trú cho RoomID_1 và PackageID_1 trong thời gian 20/10/2021 và 31/12/2021. Xin lưu ý rằng Google hỗ trợ tối đa 3 năm dữ liệu.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountBeforeTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountBeforeTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Lớp phủ giá
Đặt NotifType
thành Overlay
để xoá tất cả mức giá theo số người lưu trú đối với RoomID_1 và PackageID_1 trong khoảng thời gian từ ngày 20/10/2021 đến ngày 31/12/2021 và thay thế bằng các mức giá theo số người lưu trú mới được chỉ định.
Ví dụ: Nếu thông báo này được gửi sau thông báo "Thêm giá", thì giá cho số người lưu trú 1, 2 và 3 sẽ bị xoá và chỉ có giá mới cho số người lưu trú 1 được lưu trữ. Bạn cũng có thể đặt phạm vi ngày ngắn hơn (ví dụ: 2021-12-20 và 2021-12-31) nhằm chỉ thay thế một số giá cho số người lưu trú vào một số ngày nhất định, chẳng hạn như dịp lễ.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Xoá giá
Đặt NotifType
thành Remove
để xoá tất cả mức giá mỗi người lưu trú cho RoomID_1 và PackageID_1 trong khoảng thời gian từ 20/10/2021 đến 31/12/2021.
Ví dụ: nếu thông báo này được gửi sau một trong những thông báo mẫu còn lại, thì sẽ không có đơn giá theo số người lưu trú nào được lưu trữ.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Thêm, phủ và loại bỏ số tiền bổ sung cho khách
Thêm số tiền
Đặt NotifType
thành Delta
để thêm giá cơ bản cho sức chứa 1 và 2 cũng như số tiền bổ sung cho khách lưu trú cho RoomID_1 và PackageID_1 trong khoảng thời gian từ 20/10/2021 đến 31/12/2021.
Số tiền bổ sung cho khách sẽ được áp dụng cùng với giá cơ bản. Giá này sẽ được xác định theo số người lưu trú trong nội dung tìm kiếm của người dùng. Số người lưu trú mà người dùng chỉ định phải nằm trong sức chứa của RoomID_1.
Trong ví dụ này, số tiền bổ sung cho khách sẽ được áp dụng là:
- 5 USD cho trẻ em trong độ tuổi từ 0 đến 10 tuổi (bao gồm cả hai giá này).
- 10$ cho trẻ em trong độ tuổi từ 11 đến 17 tuổi.
- 20 USD/người lớn.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountBeforeTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" /> <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" /> <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" /> </AdditionalGuestAmounts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Số lượng lớp phủ
Đặt NotifType
thành Overlay
để xoá tất cả mức giá theo số người lưu trú và mọi khoản tiền bổ sung cho khách lưu trú đối với RoomID_1 và PackageID_1 trong khoảng thời gian từ ngày 20/10/2021 đến ngày 31/12/2021 và thay thế bằng các mức giá theo số người lưu trú mới được chỉ định và các khoản tiền bổ sung.
Ví dụ: Nếu thông báo này được gửi sau thông báo "Thêm giá", thì mức giá cho số người lưu trú cơ bản 1 và 2 sẽ bị xoá và chỉ có giá mới cho số người lưu trú cơ bản 1 được lưu trữ. Tập hợp số tiền bổ sung trước đó cho khách sẽ bị xoá và chỉ tập hợp số tiền mới được lưu trữ. Giờ đây, những khoản tiền bổ sung cho khách sẽ sử dụng mức giá mới cho số người lưu trú 1 làm giá cơ bản. Xin lưu ý rằng sau lần cập nhật này, chúng tôi sẽ không tính thêm phí dành cho trẻ em dành cho khách lưu trú.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" /> </AdditionalGuestAmounts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Xoá số tiền
Đặt NotifType
thành Delete
để xoá tất cả mức giá cơ bản cho mỗi người lưu trú và mọi khoản tiền bổ sung cho khách lưu trú đối với RoomID_1 và PackageID_1 trong khoảng thời gian từ 20/10/2021 đến 31/12/2021.
Ví dụ: Nếu thông báo này được gửi sau một trong hai thông báo mẫu còn lại, thì giá cơ bản theo số người lưu trú hoặc số tiền bổ sung cho khách sẽ không được lưu trữ.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Chỉ xoá số tiền bổ sung của khách
Đặt NotifType
thành Delta
có phần tử <AdditionalGuestAmounts>
trống để xoá tất cả số tiền bổ sung cho khách dành cho RoomID_1 và PackageID_1 mà không ảnh hưởng đến giá cơ bản trong khoảng thời gian từ 20/10/2021 đến 31/12/2021.
Ví dụ: nếu thông báo này được gửi sau một trong hai thông báo ví dụ kia, thì hệ thống sẽ chỉ lưu trữ số tiền cơ sở.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <AdditionalGuestAmounts/> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Giá theo thời gian lưu trú
Thiết lập mức giá dựa trên thời gian lưu trú
Ví dụ 1
Đặt giá phòng cho 1, 2 và 3 đêm lưu trú từ ngày 18/05/2020. Tổng giá cho 1, 2 và 3 đêm lưu trú trong ví dụ này sẽ lần lượt là 100 đô la, 180 đô la và 240 đô la.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="1" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> <Rate UnitMultiplier="2" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="90.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2" /> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Thêm, phủ và xoá mức giá dựa trên thời gian lưu trú
Thêm thời gian lưu trú
Với giá dựa trên thời gian lưu trú, thao tác Delta
cho phép cập nhật dần giá phòng cho phạm vi ngày nhận phòng được chỉ định trong <StatusApplicationControl>
và cho tất cả thời gian lưu trú được chỉ định trong UnitMultiplier
của mỗi phần tử con Rate
.
Đối với mỗi ngày nhận phòng và thời gian lưu trú áp dụng, bạn phải chỉ định tất cả mức giá cho số người lưu trú.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Lớp phủ thời gian lưu trú
Với giá theo thời gian lưu trú, thao tác Overlay
sẽ thay thế mức giá cho toàn bộ thời gian lưu trú của sản phẩm và phạm vi ngày nhận phòng được nêu trong <StatusApplicationControl>
.
Với thông báo này, giá mỗi người lưu trú cho toàn bộ thời gian lưu trú vào các ngày đến đã chỉ định sẽ bị xoá và thay thế bằng giá cho phòng hai người chỉ được xác định cho thời gian lưu trú là 3.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Xoá thời gian lưu trú
Với giá dựa trên thời gian lưu trú, thao tác Remove
sẽ xoá mức giá cho toàn bộ thời gian lưu trú của sản phẩm và phạm vi ngày nhận phòng nêu trong <StatusApplicationControl>
.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Phản hồi
Cú pháp
Thông báo OTA_HotelRateAmountNotifRS
sử dụng cú pháp sau:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="timestamp"
EchoToken="echo_token"
Version="3.0">
<!-- Either Success or Errors will be populated. -->
<Success/>
<Errors>
<Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
</Errors>
</OTA_HotelRateAmountNotifRS>
Phần tử và thuộc tính
Thông báo OTA_HotelRateAmountNotifRS
có các phần tử và thuộc tính sau:
Phần tử / @Thuộc tính | Số lần xuất hiện | Loại | Nội dung mô tả |
---|---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Complex element | Phần tử gốc của phản hồi cho thông báo về tình trạng rảnh/bận. |
OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | Ngày và giờ tạo thông báo này. |
OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | Giá trị nhận dạng duy nhất lấy từ thông báo OTA_HotelRateAmountNotifRQ được liên kết. |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Cho biết rằng thông báo OTA_HotelRateAmountNotifRQ đã được xử lý thành công.
|
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Vùng chứa một hoặc nhiều vấn đề gặp phải trong quá trình xử lý thông báo OTA_HotelRateAmountNotifRQ .
|
OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | Nội dung mô tả về lỗi gặp phải trong quá trình xử lý thông báo OTA_HotelRateAmountNotifRQ . Bạn có thể xem thông tin chi tiết về những lỗi này trong Thông báo lỗi về trạng thái của nguồn cấp dữ liệu. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | Loại cảnh báo lỗi (EWT) của OpenTravel Alliance tương ứng với lỗi. Chỉ sử dụng giá trị 12 (Processing exception) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | Mã lỗi (ERR) của OpenTravel Alliance tương ứng với lỗi.
Chỉ sử dụng giá trị 450 (Unable to process) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | Trạng thái của yêu cầu ban đầu. Chỉ sử dụng giá trị NotProcessed . |
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | Giá trị nhận dạng của Google cho vấn đề. Bạn có thể xem thông tin chi tiết về những lỗi này trong Thông báo lỗi về trạng thái của nguồn cấp dữ liệu. |
Ví dụ
Thành công
Dưới đây là phản hồi cho thông báo OTA_HotelRateAmountNotifRQ được xử lý thành công.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0"> <Success/> </OTA_HotelRateAmountNotifRS>
Lỗi
Dưới đây là phản hồi cho thông báo OTA_HotelRateAmountNotifRQ không xử lý được do gặp lỗi.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0"> <Errors> <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error> </Errors> </OTA_HotelRateAmountNotifRS>