Skip to content

Products System

The Products system manages travel packages across multiple markets with localized content and dynamic flight configuration.

ProductTemplate (Master Content)
├── defines trip identity: route, itinerary, duration
├── source locale content (en_US, es_ES, etc.)
└── ProductByMarket (Market-Specific)
├── market assignment (ES, DE, etc.)
├── locale selection (es_ES, ca_ES)
├── flight search configuration
├── ProductByMarketTranslation (Translated Content)
│ └── localized title, description, itinerary
└── ProductByMarketFlightConfig (Flight Routes)
└── ProductByMarketFlightLeg (Individual Legs)
EntityPurpose
ProductTemplateDefine what a trip IS (route, structure, base content)
ProductByMarketConfigure HOW a trip is sold in a specific market
ProductByMarketTranslationLocalized content for display
ProductByMarketFlightConfigDeparture airport and route configuration
ProductByMarketFlightLegIndividual flight segments

ProductTemplate is the master definition. ProductByMarket creates market-specific versions. Each ProductByMarket can have multiple translations (one per locale) and multiple flight configurations (one per departure airport).

Source: backend/app/Models/ProductTemplate.php, backend/app/Models/ProductByMarket.php

EntityFormatExample
ProductTemplate<ID>-<DAYS>138-10
ProductByMarket<MARKET>-<ID>-<DAYS>-<LANG><VERSION>ES-138-10-ES1

SKUs are auto-generated based on template ID, duration, market, and language.