TRIPSOFTFlight Booking Engine
← Back to Home

Widget Config

Every option here is a field on PublicWidgetConfig returned by GET /api/v1/public/flight/config. Load the live config, tweak it, and export widget-config.json for the backend to serve per agent.

Desktop card — live

Vietjet Air
Chuyến bay: VJ131
HAN
Hà Nội
23:20
2h 15m
Bay thẳng
SGN
TP. Hồ Chí Minh
01:35

Mobile card — live

VietjetAIR
VJ131
23:20
HAN
Airbus A321
2h 15m
01:35
SGN+1
Phổ thông1.590.000

Widget

Agent name
Currency
Locale

Card container

Card style
Corner radius
Hover effect
Density

Colours

Accent colour
Secondary colour
Price colour
Currency display

Choose button

Button style
Button shape
Button label

Logo, price & route

Logo shape
Price emphasis
Price figure
Route connector
Font scale

Details panel

Detail layout

Section visibility

Search form

Variant
Field style
Search button
Desktop layout
Mobile layout
Điểm đi
Điểm đến
Ngày đi

Result list layout

Filter panel
Banner style

Bộ lọc

Chuyến bay từ HAN tới HUI
Tìm thấy 8 kết quả
Sắp xếp

⚠ Lưu ý: Giá vé có thể sẽ được tính lại chính xác sau khi bạn chọn đầy đủ hành trình

HANHUIThứ 5, 25 thg 4 20242 hành kháchPhổ thông
Vietjet Air
Chuyến bay: VJ371
HAN
Hà Nội
06:20
1h20p
Bay thẳng
HUI
Huế
07:40
Pacific Airlines
Chuyến bay: BL589
HAN
Hà Nội
15:10
1h20p
Bay thẳng
HUI
Huế
16:30
Vietravel Airlines
Chuyến bay: VU221
HAN
Hà Nội
08:15
1h20p
Bay thẳng
HUI
Huế
09:35
Vietjet Air
Chuyến bay: VJ375
HAN
Hà Nội
17:25
1h20p
Bay thẳng
HUI
Huế
18:45
Bamboo Airways
Chuyến bay: QH113
HAN
Hà Nội
10:30
1h20p
Bay thẳng
HUI
Huế
11:50
Vietnam Airlines
Chuyến bay: VN167
HAN
Hà Nội
12:45
1h20p
Bay thẳng
HUI
Huế
14:05
Vietnam Airlines
Chuyến bay: VN171
HAN
Hà Nội
21:40
1h20p
Bay thẳng
HUI
Huế
23:00
Bamboo Airways
Chuyến bay: VN167
HAN
Hà Nội
20:15
1h20p
Bay thẳng
HUI
Huế
21:35

widget-config.json

Drop this into airagent-service/src/main/resources/embed/widget-config.json (or embed/widget-config-<agentId>.json to override one agent) and restart the service. GET /api/v1/public/flight/config loads it via WidgetConfigServiceImpl; any field you omit falls back to PublicFlightCardConfig.defaults(), and agentId is always taken from the request resolver.

{
  "agentName": "Tripsoft Demo",
  "currency": "VND",
  "locale": "vi-VN",
  "flightCard": {
    "showAirlineLogo": true,
    "showAirlineName": true,
    "showFlightNumber": true,
    "showAircraft": true,
    "showDuration": true,
    "showStops": true,
    "showSeatsAvailable": true,
    "showFareBasis": false,
    "showCabinClass": true,
    "showBaggageSummary": true,
    "showFareConditions": true,
    "showDetailButton": true,
    "showPriceBreakdown": false,
    "detailLayout": "tabs",
    "priceDisplay": "total",
    "accentColor": "#2563EB",
    "priceColor": "#DC2626",
    "currencyDisplay": "code",
    "density": "comfortable",
    "cardStyle": "elevated",
    "cornerRadius": "soft",
    "hoverEffect": "border",
    "accentBar": false,
    "secondaryColor": "#1E40AF",
    "buttonStyle": "solid",
    "buttonShape": "rounded",
    "chooseLabel": "",
    "logoShape": "rounded",
    "logoFrame": false,
    "priceEmphasis": "normal",
    "routeVisual": "plane",
    "showSavingsBadge": false,
    "fontScale": "md"
  },
  "searchForm": {
    "variant": "card",
    "cornerRadius": "soft",
    "fieldStyle": "outline",
    "accentColor": "#2563EB",
    "secondaryColor": "#1E40AF",
    "searchButton": "icon",
    "searchLabel": "",
    "buttonStyle": "solid",
    "selectorShape": "pill",
    "density": "comfortable",
    "showVoucher": false,
    "showServiceFee": false,
    "mobileLayout": "classic",
    "desktopLayout": "classic"
  },
  "flightList": {
    "filterPosition": "left",
    "bannerStyle": "gradient",
    "sortPosition": "toolbar",
    "summaryPosition": "below-banner",
    "dateStripPosition": "below-summary",
    "selectedFlightPosition": "top",
    "columns": 1,
    "listGap": "comfortable",
    "showPriceNotice": true,
    "accentColor": "#4F46E5",
    "secondaryColor": "#6366F1"
  }
}