Extra Options
When a basic product is not enough
Overview
Not every booking is created equal. Some travelers want sparkling wine. Others prefer a vegetarian lunch. Some want a fast-track upgrade, while others just want a printed souvenir. To serve these diverse needs, Extra Options in the Prioticket API let you configure flexible, powerful, and fully translatable enhancements to your products.
Extra Options give your users more control, and your platform more upsell opportunities.
What Are Extra Options?
Extra Options represent configurable add-ons or input fields tied to a product or product type. They can range from selectable extras like drinks or equipment, to form fields where guests provide input like dietary restrictions or preferred visit times.
Each option is configurable by:
Selection logic (manual or auto-added)
Input type (checkboxes, dropdowns, text fields, etc.)
Pricing model (flat rate, per person, included)
Applicability scope (once per product or per guest type)
Quantity logic (flexible or restricted)
Real-World Scenarios
VIP Package: Add a “VIP upgrade” radio button that includes perks like priority entry and a welcome drink.
Meal Preferences: "Choose your lunch option: Chicken / Veg / Gluten-free."
Drink Add-on: Let guests choose between wine, beer, or juice. Charge €6 for adults, €4 for children.
Optional Merchandise: "Add a souvenir T-shirt for €10."
These are all made possible with ExtraOptions
.
How It Works
Extra options are returned as part of the product data and are selectable when creating a reservation. Each option can have one or more option values (e.g., “Red wine”, “White wine”) with separate pricing, limits, and types of selection.
Count Types & Selection Logic
FLEXIBLE
: Total option quantities can vary, e.g., 1 drink for 3 guests.RESTRICTED
: Quantities must match the product type count (e.g., 2 guests = 2 drink selections).
Selection Types:
MANUAL
: Guests choose their own options.AUTO
: Automatically applied to the cart (advanced use case for default upsells).
Pricing Models
PRODUCT
Same price, regardless of guest type.
PRODUCT_TYPE
Pricing varies by guest type (adult
, child
, etc.).
INCLUDED
Price included in base product. Display only.
Display Behavior
option_list_type:PRODUCT
Display once per product (global option).
option_list_type:PRODUCT_TYPE
Display once per guest type (e.g., adult vs child).
option_count_visible
Show quantity in cart or as bundled price.
Validation & Constraints
option_quantity_min / max
Required selection count across all values.
option_booking_quantity_min / max
Option is only available for bookings of this size.
value_quantity_min / max
Specific limits per value (e.g., max 5 wines).
option_mandatory
True = must be filled to complete checkout.
Option Values
Each option can have multiple values (e.g., Red Wine, White Wine, Water). These include:
value_name
Translatable name (e.g., “Wine”)
value_price
Upsell price for this value
value_cost_price
Internal cost (optional)
value_percentage
Percentage-based price (optional)
value_product_type_id
If only applicable to a certain pax type
value_quantity_min/max
Quantity bounds per value
These let you control availability and pricing at a granular level.
Use Case Example: Wine Tour
You're building a wine-tasting tour product. Here’s how you'd structure your options:
Meal Choice
option_type
:RADIO
option_values
: Pasta / Fish / Vegetarianoption_selection_type
:MANUAL
option_count_type
:RESTRICTED
(1 per guest)
Souvenir Bottle
option_type
:CHECKBOX
value_price
: €12.00option_count_type
:FLEXIBLE
Design Patterns
SINGLE + AUTO + RESTRICTED
Mandatory fixed-price additions (e.g., fees)
RADIO + MANUAL + RESTRICTED
Meal choices, upgrades with 1 selection per pax
CHECKBOX + FLEXIBLE
Optional extras (e.g., gear, souvenirs)
PRODUCT_TYPE + PRODUCT_TYPE
Different prices per guest type (e.g., child drink)
Last updated
Was this helpful?