Your catalog is what the traveller portal sells. There are two shapes of product, and the difference decides how a traveller buys.
Packages with dated departures
A package — a tour, Umrah, or Hajj programme — is the template: name, itinerary, inclusions, exclusions, images, and a headline price. On its own it is not bookable.
What travellers actually buy is a departure: a specific date, with capacity and tiered pricing. Create departures under Travel Catalog → Departures.
Each departure carries tiers — Quad sharing, Double room, Economy, Premium. Tiers matter because they are sold separately:
- Each tier has its own capacity, so Premium can sell out while Economy still has seats.
- Each tier has a sell price (what the traveller pays) and a net price (what you owe the supplier). The gap between them is your margin, and the net never appears anywhere a customer can see.
tierKeyis a stable identifier. Rename a tier freely; the key keeps existing bookings pointing at the right seats.
Flat-priced services
Visas, insurance, transfers and car rental have no dated inventory but a real price. Create them under Visa Services (or as a service product) with a cost and a sales price, and travellers book them outright at that price — no quote needed.
For visas, fill in required documents. That list becomes the checklist on the visa desk the moment someone applies, so nobody retypes it.
Publishing
Products reach the portal through the travel_portal sales channel, which is set automatically when you create them in the catalog. A product is visible to travellers when it is active and carries that channel — the tiles on Travel Portal read the public API, so if a package is missing there it is missing from the storefront too.
Price modifiers
A departure can carry markups and discounts. A discount modifier is what creates an offer: it applies to every tier, shows the original price struck through, and puts the departure in the portal's offers strip. Remove the modifier and the offer disappears.