Modify a product

Products connect room types to rate plans, and contain details about cancellation policies, mealplans, and booking rules. Use /ota/OTA_HotelProductNotif to modify products.

Before you start

Overlay

Content API uses an overlay system. Every time you update an existing property, room type, or other object, the body of your request replaces whatever information was stored in our servers at that time. This means existing information may be deleted if you don't include it in your request.

To update an object without deleting information, make sure your request contains both the fields you want to update and those you want to keep the same. Copy/paste sample requests from this page at your own risk.

Specify the entire policy object including the override information

While updating your roomrate object don't forget to specify the policy override information in the request, in absence of which all previously applied overrides (or day level policies) will be removed and the product will have its default policy (defined on the roomrate level) on all days.

To complete this task, you need:

Request

HTTP request

POST https://supply-xml.booking.com/hotels/ota/OTA_HotelProductNotif

Request body

Provide an OTA_HotelProductNotifRQ object in the request body. Use HotelProduct[@ProductNotifType="Overlay"] to specify that you are updating an existing product. Example:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelProductNotifRQ
  xmlns="http://www.opentravel.org/OTA/2003/05"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  PrimaryLangID="en-US"
  EchoToken="GUID"
  Version="1.0"
  Target="Test">
  <HotelProducts HotelCode="{PropertyID}">
    <HotelProduct ProductNotifType="Overlay">
      <RoomTypes>
        <RoomType RoomTypeCode="{RoomTypeID}"  MaxOccupancy="{MaxOccupancy}"/>
      </RoomTypes>
      <RatePlans>
        <RatePlan RatePlanCode="{RatePlanID}" />
      </RatePlans>
      <PolicyInfo>
        <BookingRules>
          <BookingRule MinAdvancedBookingOffset="P1D" />
          <BookingRule ReleaseTimeOfDayStart="41"/>
          <BookingRule ReleaseTimeOfDayEnd="41"/>
        </BookingRules>
        <CancelPolicy>
          <CancelPenalty PolicyCode="12" PolicyName="General"/>
          <PrepaymentPolicy EffectiveFrom="after_reservation_is_made"/>
        </CancelPolicy>
        <OverridePolicies>
          <OverridePolicy PolicyName="Nonrefundable">
            <BookDates>
              <BookDate Start="2019-06-06" End="2019-06-29"/>
              <BookDate Start="2019-07-06" End="2019-07-29"/>
            </BookDates>
          </OverridePolicy>
          <OverridePolicy PolicyName="Nonrefundable">
            <BookDates>
              <BookDate Start="2019-09-07" End="2019-09-08"/>
              <BookDate Start="2019-09-21" End="2019-09-29"/>
            </BookDates>
            <ActiveWeekdays>
              <ActiveWeekday Day="Friday"/>
              <ActiveWeekday Day="Saturday"/>
            </ActiveWeekdays>
          </OverridePolicy>
        </OverridePolicies>
      </PolicyInfo>
    </HotelProduct>
  </HotelProducts>
</OTA_HotelProductNotifRQ>

Response

The response contains an OTA_HotelProductNotifRS object:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelProductNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opentravel.org/OTA/2003/05 OTA_HotelProductNotifRS.xsd" TimeStamp="2015-07-31T14:08:46-00:00" Target="Production" Version="3.000">
  <Success />
</OTA_HotelProductNotifRS><!-- RUID: [XXXXXXXXXXXXXXXXXXXXXXXXXXX==] -->

Understanding the prepayment policy.

The prepayment policy is closely attached to your cancellation policy and together they form a PolicyName (General/Nonrefundable/Specialgroups). The Cancellation Policy Code along with information on whether or not prepayment has to be charged, and if so at what time together forms the Policy. Prepayment can be charged "after_reservation_is_made", "after_cancellation_fee_begins", or simply not charged at all.

Next steps