Products Admin Panel
Products are managed through two Filament resources in the admin panel under “Product Management”.
Product Templates Resource
Section titled “Product Templates Resource”Path: Admin > Product Management > Product Templates
Source: backend/app/Filament/Resources/ProductTemplates/ProductTemplateResource.php
Create/Edit Workflow
Section titled “Create/Edit Workflow”The form uses a wizard with three steps:
-
General Data
- AI Trip Parser (paste raw trip info)
- Core info: title, subtitle, SKU (auto-generated), source locale
- Descriptive content: descriptions, highlights, requirements
- Hero image upload
-
Itinerary & Logistics
- Trip itinerary repeater with POI selector (supports cities, attractions, landmarks)
- Each stop: POI selection, nights, title, details, image
- Optional activities and free time
- Accessibility options
- Duration (auto-calculated), accommodation, meal plans
-
SEO
- Meta title and description
AI Features
Section titled “AI Features”Trip Parser: Paste raw trip info like:
Asia India 9 nights - 2 Delhi - 1 Jodhpur - 2 Udaipur - 2 Jaipur - 1 Agra - 1 DelhiAI generates all fields including itinerary with titles and descriptions.
Title-based Generation: Enter a title, click sparkle icon to generate all content.
Table Columns
Section titled “Table Columns”- Hero image
- Title, subtitle, SKU
- Markets count (shows lock icon if > 0)
- Short description
- Created date
Templates with market products show a lock badge - these cannot have their core structure modified.
Products by Market Resource
Section titled “Products by Market Resource”Path: Admin > Product Management > Products by Market
Source: backend/app/Filament/Resources/ProductsByMarket/ProductByMarketResource.php
Create Workflow (Wizard)
Section titled “Create Workflow (Wizard)”The creation form uses a 4-step wizard for guided data entry:
Step 1: Product & Market
- Select product template (ordered by most recent)
- Select market (auto-fills locale, airports, search dates)
- Select language from market’s supported locales
- Set status and sort order
Step 2: Flight Configuration
- Departure airports (multi-select from market’s active airports)
- Route type: Multi-City or Separate Flights
- Search period (start/end dates)
- Excluded dates repeater
Step 3: Description and Itinerary
- “Translate from Product” button for AI translation (in section header)
- Core Translation: title, subtitle, descriptions, categories, highlights, destination info
- Itinerary: per-day translations (auto-populated from template when entering this step)
- Optional activities, free time
Step 4: Details & SEO
- Logistics & Practical Details: accommodation, meal plans, not included, special requirements
- SEO & URL: meta title, URL slug, meta description
Each step validates before allowing progression to the next. The wizard enforces sequential completion (no skipping steps).
Source: backend/app/Filament/Resources/ProductsByMarket/Pages/CreateProductByMarket.php
Edit Workflow (Sections)
Section titled “Edit Workflow (Sections)”The edit form uses collapsible sections (not wizard) for quick access to any field:
- Product & Market Selection
- Flight Configurations
- Core Translation
- Itinerary & Activities
- Logistics & Practical Details
- SEO & URL
Auto-fill Behavior
Section titled “Auto-fill Behavior”When selecting a market:
- Locale defaults to market’s default locale
- Departure airports auto-filled with all active market airports
- Search dates default to 3 months out + 60 days
When entering Step 3 (Description and Itinerary):
- Itinerary auto-populates from product template (city, nights per stop)
- User only needs to add translated titles and details per day
AI Translation
Section titled “AI Translation”Click “Translate from Product” to:
- Load ProductTemplate content
- Call OpenRouter API for translation
- Populate all translation fields
Configuration: OPENROUTER_API_KEY, OPENROUTER_API_URL, OPENROUTER_MODEL
Source: backend/app/Services/ProductByMarketTranslationService.php
Table Columns
Section titled “Table Columns”- Product template title
- Market code
- Locale
- Status badge
- SKU
- Search date range
- Created date
View Page Actions
Section titled “View Page Actions”The view page provides several action buttons in the header:
| Button | Visibility | Behavior |
|---|---|---|
| Preview on Frontend | Active products | Direct link to frontend product page |
| Preview Draft | Draft/Inactive products | Signed URL with 60-minute expiration |
| Prepare Flight Searches | Always | Creates routes and cache entries for flight configs |
| View Cached Flights | When matching routes exist | Links to DynamicFlightCaches filtered by product routes |
View Cached Flights navigates to the flight cache browser pre-filtered to show only routes matching this product’s flight configurations. Supports products with multiple departure airports and domestic flights.
Source: backend/app/Filament/Resources/ProductsByMarket/Pages/ViewProductByMarket.php
Navigation
Section titled “Navigation”Both resources appear under “Product Management” navigation group:
| Resource | Icon | Sort Order |
|---|---|---|
| Product Templates | rectangle-stack | default |
| Products by Market | globe-alt | 20 |
Permissions
Section titled “Permissions”Resources use HasResourcePermissions trait for RBAC integration.
Source: backend/app/Filament/Traits/HasResourcePermissions.php
Related
Section titled “Related”- Product Templates - Data model
- Products by Market - Configuration details
- Dynamic Flight Cache - Flight pricing cache system
- POI System - Points of Interest management
- Google Places - Import POIs from Google