LogoLogo
SupportChangelogAPI ReferenceStatus
Distributor API
Distributor API
  • Welcome
  • Getting Started
    • Functionalities
    • Integration Process
      • Implementation Guide
    • OCTO & Prioticket
      • Feature Comparison
    • Postman & Interactive Documentation
    • Connect Once, Reach the World
      • Featured Suppliers
        • Supplier Overview Europe
        • Supplier Overview Americas
        • Supplier Overview Middle East
      • Featured Resellers
    • Statement on API Excellence
    • Frequently Asked Questions
  • Key Concepts
    • Product Structure
      • Product types and classes
      • Admission types
      • Extra Options
      • Pickup Points
      • Combi, Clusters, Bundles & Addons
        • Cluster
        • Combi
        • Addons
        • Bundle
    • Availability and Capacity
      • Availability
      • Capacity
        • Shared and Allocated Capacity
      • Availability API
    • Pricing Guide
      • Who are you?
      • Configurations
      • Variable Pricing
      • Dynamic Pricing
      • How It All Comes Together
    • Booking Logic
      • Cart Management
      • Payments
      • Cancellation & Refunds
      • Booking Questions
    • Additional Capabilities
      • Locations, Destinations and Categories
      • Recommendations
      • Promotions
      • Webhooks
      • Translations
    • Technical Concepts
      • Authentication
      • Idempotency
      • Rate Limiting
      • Timeout Handling
      • Error Handling
      • API versioning
      • Pagination
      • Formats
      • Headers
      • Caching
  • Endpoints
    • About
    • Authentication
    • System
    • Products
      • Stock
    • Availability
    • Reservations / Cart
      • Promocodes
    • Orders
      • Email & Vouchers
    • Payments
    • Contacts
    • Notifications
    • Models
  • Resources
    • Release notes
    • Roadmap
    • Postman
    • Swagger
    • Changelogs
      • Parameter Changelog
    • API Specs
      • V3.8 (Latest)
      • V3.7
      • V3.6
      • V3.5
    • Support
    • Certification
  • Status Dashboard
Powered by GitBook
On this page
  • Overview
  • What Are Extra Options?
  • Real-World Scenarios
  • How It Works
  • Count Types & Selection Logic
  • Pricing Models
  • Display Behavior
  • Validation & Constraints
  • Option Values
  • Use Case Example: Wine Tour
  • Design Patterns

Was this helpful?

Export as PDF
  1. Key Concepts
  2. Product Structure

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.

{
  "option_id": "EXTRA_DRINKS",
  "option_name": "Drinks",
  "option_description": "Choose your welcome drink.",
  "option_type": "RADIO",
  "option_selection_type": "MANUAL",
  "option_count_type": "RESTRICTED",
  "option_price_type": "PRODUCT_TYPE",
  "option_mandatory": true,
  "option_values": [
    {
      "value_id": "WINE",
      "value_name": "Glass of Wine",
      "value_price": "6.00",
      "value_cost_price": "2.00",
      "value_product_type_id": "ADULT"
    },
    {
      "value_id": "JUICE",
      "value_name": "Fresh Juice",
      "value_price": "4.00",
      "value_product_type_id": "CHILD"
    }
  ]
}

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

🔲 option_price_typed
📝 Description

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.

Note: Discounts may or may not apply based on the option_discount_applicable flag.


Display Behavior

🔲 Field
📝 Description

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

🔲 Field
📝 Description

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:

🔲 Field
📝 Description

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:

  1. Meal Choice

    • option_type: RADIO

    • option_values: Pasta / Fish / Vegetarian

    • option_selection_type: MANUAL

    • option_count_type: RESTRICTED (1 per guest)

  2. Souvenir Bottle

    • option_type: CHECKBOX

    • value_price: €12.00

    • option_count_type: FLEXIBLE

Design Patterns

🔁 Pattern
❓ When to Use

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)

PreviousAdmission typesNextPickup Points

Last updated 10 days ago

Was this helpful?