Price Schedule
Price Scheduling is a connectivity feature offered by Redeam, allowing operators to set specific daily price points for tours and attractions rather than static pricing for all dates.
Within the transaction flow you will need to retrieve supplier, products and rate objects regardless of the pricing type. At the time of availability & traveler type selection you will need to check both the Availabilities and Price Schedule endpoints to ensure that there is availability AND a valid price for that date and traveler type.
The data from both of these endpoints must be used together in order to determine which dates/times are available to be booked, and what traveler types / prices are available at those times.
Example #1:
Availabilities are checked for the Product 1 Rate A, which utilized Redeam’s Price Schedule feature, and contains a RatePrice for an Adult traveler. When checking availability, Rate A is available at various times on June 23rd and June 24th. However, upon checking the Price Schedule for Rate A, an Adult price is only visible on June 23rd.
In this example, Rate A is only bookable for an adult on June 23rd using the price on the Price Schedule.
Example #2:
Availabilities are checked for the Product 2 Rate B, which does not utilize Redeam’s Price Schedule feature (static pricing). When checking availability, Rate B is available at various times on June 23rd and June 24th. However, upon checking the Price Schedule for Rate B, no prices are returned. You must then use the prices found in the Rate object.
In this example, Rate B is bookable on June 23rd and June 24th using the price on the pricing in the Rate.
Summary / Outline Booking Flow
Supplier, Product and Rate are selected as normal.
Availabilities endpoint is queried to determine when the product may be booked
Price Schedule endpoint is queried to determine when specific traveler types are available & at what price point
- Note: If a RatePrice is present on the Price Schedule, this should be used above all else.
- Note: If a RatePrice is present on the Rate, but not on the Price Schedule for a desired time, the RatePrice on the Rate may be used. Only use RatePrice from Rate if Price Schedule does not exist for this rate.
- Note: It is an error to use the PriceId of a RatePrice if a price for the requested time & traveler type is present on the Price Schedule.
A hold is created using the selected supplier, product, rate, price & availability.
A booking is placed with the selected supplier, product, rate, price, availability & hold.
Parameters
GET /suppliers/{supplier_id}/products/{product_id}/pricing/schedule
Name | Required | In | Type |
---|---|---|---|
supplier_id | Yes | Path | UUID |
product_id | Yes | Path | UUID |
start_date | Yes | Query | RFC3339 full-date |
end_date | No | Query | RFC3339 full-date |
rate_id | No | Query | UUID |
Booking with Price Schedule
Sections which differ from the normal booking flow while using the Price Schedule feature are in bold.
Selection
Reseller / traveler chooses which products they wish to purchase, and at what times.
Offer
Supplier, Product, and Rate.
- A Supplier, Product, and Rate MUST be chosen from Redeam’s Booking API.
- Rates MAY restrict the minimum or maximum number of travelers required to book. If this value is set or non-zero, the number of travelers purchasing the offer MUST be greater than or equal to the
minTravelers
on the rate, and less than or equal to themaxTravelers
on the rate.
Price & Time
RatePrice
- Using the Supplier, Product, Rate and Time data from Selection, the price schedule endpoint MUST be used to obtain a price.
- If a price for a desired traveler type is missing from the price schedule, but present on the rate, the price on the rate MAY be selected.
- When a price schedule is enabled for a rate, bookings MUST NOT use the prices listed under the rate. The price schedule MUST be used instead.
- Price & Time MUST be selected together through the availability and price-schedule endpoints. To be bookable, a Rate MUST have an Availability with capacity and a price conforming to the traveler’s requested type, at the requested time.
Reservation
- If the selected Rate is a RESERVED type, a hold MAY be created to guarantee the offering selection until the customer is ready to confirm.
- If a hold request fails, the selected offer is unavailable at the provided time, and the booking attempt MUST be aborted.
- The priceId given to the hold MUST correspond with the priceId fetched from the price schedule endpoint.
Confirmation
- A new booking is created using the information gathered in Selection.
- If a Hold was placed for the Selection in this booking, the ID of the Hold MUST be included in the request.
- The priceId given to the booking MUST correspond with the priceId fetch from the price schedule endpoint.