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 | 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 thông báo trên OpenTravel. |
OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | Loại thông báo sẽ được á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 được sử 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ông báo 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ợ là nguồn cấp dữ liệu cho nhiều tài khoản, thì giá trị này cần 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> trong 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á trị cho giá phòng (một kiểu kế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 (sử dụng 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 (sử dụng 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ợ dữ liệu trong tối đa 3 năm. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | Đặt là true hoặc 1 để thể hiện rõ là 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 tương ứng 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 tương ứng 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 phần <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 nội dung cập nhật giá này. Bạn chỉ nên chỉ định giá trị này bằng cách sử dụng giá trị 26 khi sử dụng mô hình định giá dựa trên LOS. Việc loại trừ thuộc tính này cho biết đây là nội dung cập nhật giá theo 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" , bạn không được chỉ định phần tử này. Nếu không, bạn chỉ chỉ định phần tử này một lần duy nhất. |
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ị chỉ định thời gian lưu trú. 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 tính năng định giá dựa trên LOS, 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á phòng được chỉ định trong đối tượng Để sử dụng tính năng định giá dựa trên LOS, 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ơ sở. |
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ệ nhất định. 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ử chứa một giá trị cho NumberOfGuests .
Nếu không, giá sẽ được áp dụng cho số lượng người 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 dùng chương trình khuyến mãi, thì chương trình giảm giá sẽ được á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 thuế và phí hiện hành. Nếu chỉ định AmountAfterTax , thì bạn không cần phải gửi thông báo <TaxFeeInfo> riêng cho mỗi cơ sở lưu trú. Bạn có thể kết hợp thuộc tính này với AmountBeforeTax để cung cấp cả đơn giá cơ sở và tổng giá, sau đó những thông tin này có thể được hiển thị đến người dùng tại một số khu vực nhất định.
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 bạn không chỉ định |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | Mã ký tự alpha ISO 4217 (3) cho một đơn vị tiền tệ cụ thể.
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ể lưu trú theo mức giá này.
Giá trị 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ập hợp các khoản phí cho khách lưu trú bổ sung.
Cú pháp này hữu ích nếu giá 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ử bạn chỉ định mức giá cơ bản 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 thông qua AgeQualifyingCode và nếu có, tuổi của khách được chỉ định thông qua MaxAge .
|
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 tuỳ 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 thuế và phí được cộng vào giá cơ bản cho mỗi
khách lưu trú bổ sung.
Bạn phải chỉ định 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 đoạn mã ví dụ để làm rõ cách:
- Thiết lập đơn giá cơ bản và tổng giá
- Thêm, ghi đè và xoá mức giá
- Thêm, ghi đè và xoá số lượng khách bổ sung
- Thiết lập mức giá dựa trên LOS
- Thêm, ghi đè và xoá mức giá dựa trên LOS
Khi bạn đặt giá trị add
, overlay
hoặc remove
, phạm vi ngày có thể giống nhau 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 các ngày lễ tháng 12 thay vì đặt toàn bộ phạm vi cho thông báo "Thêm giá". Mức giá này sẽ chỉ thay thế mức giá theo số người lưu trú trong khoảng thời gian này.
Giá theo ngày
Đối với một phòng và gói giá nhất định, mỗi cơ sở lưu trú có thể có tối đa 50 mức giá theo số người lưu trú. Nếu giá giống nhau cho tất cả số người lưu trú, bạn chỉ cần gửi số người lưu trú tối đa kèm theo giá bắt buộc. Bằng cách này, Google suy luận rằng số người lưu trú thấp hơn cũng nhận được cùng một mức giá cơ bản.
Thiết lập đơn giá cơ bản và tổng giá
Ví dụ 1
Đơn giá cơ bản (không bao gồm thuế hoặc phí) cho sức chứa mặc định (gấp đôi). Trong mô hình này, bạn phải chỉ định thuế và phí cho cơ sở lưu trú bằng thông báo <TaxFeeInfo>
. Đơn giá cơ bản sẽ quan trọng 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
Đơn giá cơ bản và tổng giá của sức chứa 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>
. Đơn giá cơ bản sẽ quan trọng 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á mức giá
Mỗi cơ sở lưu trú có hạn mức 5.000 sản phẩm (kiểu phòng và tổ hợp gói). Sử dụng loại thông báo Overlay
hoặc Remove
để xoá các sản phẩm đã xác định trước đó.
Thêm mức giá
Đặt NotifType
thành Delta
để thêm đơn giá theo sức chứa cho RoomID_1 và PackageID_1 trong khoảng thời gian từ 20/10/2021 đến 31/12/2021. Xin lưu ý rằng Google hỗ trợ dữ liệu trong tối đa 3 năm.
<?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>
Mức giá ghi đè
Đặt NotifType
thành Overlay
để xoá tất cả đơn giá theo sức chứa cho RoomID_1 và PackageID_1 trong khoảng thời gian từ 20/10/2021 đến 31/12/2021 và thay thế bằng các đơn giá mới theo sức chứa được chỉ định.
Ví dụ: Nếu thông báo này được gửi đi sau thông báo "Thêm đơn giá", thì đơn giá cho sức chứa 1, 2 và 3 sẽ bị xoá và chỉ có đơn giá mới cho sức chứa 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) để chỉ thay thế một số mức giá theo 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á mức giá
Đặt NotifType
thành Remove
để xoá mọi đơn giá theo sức chứa 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 hai thông báo mẫu kia thì sẽ không có đơn giá theo sức chứa nào được lưu lại.
<?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, ghi đè và xoá số lượng khách lưu trú bổ sung
Thêm số tiền
Đặt NotifType
thành Delta
để thêm giá cơ sở cho sức chứa 1 và 2 người, cũng như số lượng khách bổ sung cho RoomID_1 và PackageID_1 trong khoảng thời gian từ ngày 20 tháng 10 năm 2021 đến ngày 31 tháng 12 năm 2021.
Số lượng khách lưu trú bổ sung sẽ được áp dụng ngoài mức giá cơ bản. Mức giá cơ bản 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ố lượng khách bổ sung sẽ được áp dụng như sau:
- 5 USD đối với trẻ em từ 0 đến 10 tuổi (bao gồm cả 10 tuổi).
- 10 USD đối với trẻ em trong độ tuổi từ 11 đến 17 (bao gồm cả 11 và 17 tuổi).
- 20 USD đối với 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ố tiền được ghi đè
Đặt NotifType
thành Overlay
để xoá tất cả đơn giá theo sức chứa và tất cả số tiền bổ sung cho khách cho RoomID_1 và PackageID_1 trong khoảng thời gian từ ngày 20 tháng 10 năm 2021 đến ngày 31 tháng 12 năm 2021, đồng thời thay thế bằng đơn giá theo sức chứa và số tiền bổ sung mới được chỉ định.
Ví dụ: Nếu thông báo này được gửi đi sau thông báo "Thêm đơn giá", thì đơn giá cơ sở cho sức chứa 1 và 2 sẽ bị xoá và chỉ có đơn giá cơ sở mới cho sức chứa 1 được lưu trữ. Tập hợp số tiền bổ sung cho khách trước đó sẽ bị xoá và chỉ tập hợp số tiền mới được lưu trữ. Giờ đây, số lượng khách bổ sung sẽ sử dụng giá mới cho 1 người lưu trú làm giá cơ bản. Xin lưu ý rằng sau khi cập nhật, chúng tôi sẽ không tính thêm phí cho khách lưu trú là trẻ em.
<?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ả đơn giá cơ bản theo số người lưu trú và tất cả số người lưu trú bổ sung cho RoomID_1 và PackageID_1 trong khoảng thời gian từ ngày 20 tháng 10 năm 2021 đến ngày 31 tháng 12 năm 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 kia thì sẽ không có đơn giá cơ bản theo sức chứa hoặc số lượng khách bổ sung 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>
Chỉ xoá số lượng khách bổ sung
Đặt NotifType
thành Delta
với phần tử <AdditionalGuestAmounts>
trống để xoá tất cả số lượng khách bổ sung cho RoomID_1 và PackageID_1 mà không ảnh hưởng đến đơn giá cơ bản trong khoảng thời gian từ ngày 20 tháng 10 năm 2021 đến ngày 31 tháng 12 năm 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 kia thì chỉ có số tiền cơ bản đượ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="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á dựa trên LOS
Thiết lập mức giá dựa trên LOS
Ví dụ 1
Đặt giá cho các lượt lưu trú 1, 2 và 3 đêm kể từ ngày 18 tháng 5 năm 2020. Tổng giá phòng cho thời gian lưu trú 1, 2 và 3 đêm 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, ghi đè và xoá mức giá dựa trên LOS
Thêm(các) khoảng thời gian lưu trú
Với phương thức định giá dựa trên LOS, thao tác Delta
cho phép cập nhật giá theo từng bước cho các 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 bằng UnitMultiplier
của mỗi phần tử Rate
con.
Đối với mỗi ngày nhận phòng và thời gian lưu trú hiện hành, bạn phải chỉ định tất cả giá theo 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>
(Các) khoảng thời gian lưu trú được ghi đè
Với phương thức định giá dựa trên LOS, toán tử Overlay
sẽ thay thế giá cho tất cả thời gian lưu trú của sản phẩm và phạm vi ngày nhận phòng được chỉ định trong <StatusApplicationControl>
.
Với thông báo này, đơn giá theo số người lưu trú cho tất cả thời gian lưu trú vào ngày đến được chỉ định sẽ bị xoá và thay thế bằng đơn giá cho 2 người lưu trú chỉ được xác định cho thời gian lưu trú là 3 ngày.
<?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á(các) khoảng thời gian lưu trú
Với phương thức định giá dựa trên LOS, thao tác Remove
sẽ xoá giá cho tất cả thời gian lưu trú của sản phẩm và phạm vi ngày nhận phòng được chỉ định 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 | Mô tả |
---|---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Complex element | Phần tử gốc của phản hồi cho thông báo kiểm tra tình trạng phòng. |
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 từ thông báo OTA_HotelRateAmountNotifRQ tương ứng. |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Cho biết rằng thông báo OTA_HotelRateAmountNotifRQ đã được xử lý thành công.
Mỗi thông báo có |
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Vùng chứa một hoặc nhiều sự cố xảy ra trong quá trình xử lý thông báo OTA_HotelRateAmountNotifRQ .
Mỗi thông báo có |
OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | Thông tin mô tả lỗi xảy ra trong quá trình xử lý thông báo OTA_HotelRateAmountNotifRQ . Bạn có thể xem thông tin chi tiết về các 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 Hiệp hội 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 Hiệp hội 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 | Mã nhận dạng sự cố của Google. Bạn có thể xem thông tin chi tiết về các 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>