Banners
CarDealsArchiveBanner

CarDealsArchiveBanner

Archive/listing of car deals, optionally with filters.

Includes the common banner props.

Car deal archive preview

Props

id
string
required

CMS id.

hideFilters
boolean
required

If true, filters UI is hidden.

query
string
required

Backend query string used to fetch the listing.

URL filtering behavior

The deal archive persists interactive filter state in the URL.

  1. With hideFilters = false, URL filters have priority over CMS defaults.
  2. CMS defaults (query) are used only when URL contains no filter state.
  3. With hideFilters = true, URL filter state is ignored and CMS defaults are enforced.

Supported Query Params

The query prop accepts a standard URL query string.
Multiple params are combined via &.

Brand

Filters by manufacturer.

  • Key: BRAND
  • Type: string
  • Value: Arbitrary brand name (must match backend data exactly)

Examples:

BRAND=BMW BRAND=MINI BRAND=Volkswagen

Multiple brands:

BRAND=BMW&BRAND=MINI

Series

Filters by model series.

  • Key: SERIES
  • Type: string
  • Value: Arbitrary series name (must match backend data exactly)

Examples:

SERIES=3 Series SERIES=A4 SERIES=Model 3

Combined with brand:

BRAND=BMW&SERIES=3 Series

Offer type

Filters by deal offer type.

  • Key: OFFER_TYPE
  • Type: DealOfferTypeType
  • Allowed values:
    PRIVAT
    COMMERCIAL
    BUSINESS
    SPECIAL

Examples:

OFFER_TYPE=PRIVAT OFFER_TYPE=BUSINESS

Fuel type

Filters by drivetrain / fuel type.

  • Key: FUEL
  • Type: CarFuelType
  • Allowed values:
    ELECTRICITY
    PETROL
    DIESEL
    LPG
    ETHANOL
    CNG
    HYBRID
    HYBRID_DIESEL
    HYDROGENIUM

Examples:

FUEL=ELECTRICITY FUEL=HYBRID FUEL=DIESEL

Combined Example

BRAND=BMW&OFFER_TYPE=PRIVAT&FUEL=PETROL

Sort options

Use the serialized enum values from @haendlerapp/types/src/enums/SortOption.ts and OrderOption.ts when configuring CMS query params.

Lifecycle

  • Neueste Deals zuerst sort=CREATED_AT&order=DESC

  • Älteste Deals zuerst sort=CREATED_AT&order=ASC

  • Zuletzt aktualisiert sort=UPDATED_AT&order=DESC

  • Am längsten unverändert sort=UPDATED_AT&order=ASC

Validity

  • Gültig ab: Neueste zuerst sort=VALID_FROM&order=DESC

  • Gültig ab: Älteste zuerst sort=VALID_FROM&order=ASC

  • Gültig bis: Bald zuerst sort=VALID_UNTIL&order=ASC

  • Gültig bis: Später zuerst sort=VALID_UNTIL&order=DESC

Pricing (Gross)

  • Monatsrate: Niedrig → Hoch sort=MONTHLY_RATE_GROSS&order=ASC

  • Monatsrate: Hoch → Niedrig sort=MONTHLY_RATE_GROSS&order=DESC

  • Kaufpreis: Niedrig → Hoch sort=PURCHASE_PRICE_GROSS&order=ASC

  • Kaufpreis: Hoch → Niedrig sort=PURCHASE_PRICE_GROSS&order=DESC

  • Gesamtpreis: Niedrig → Hoch sort=TOTAL_PRICE_GROSS&order=ASC

  • Gesamtpreis: Hoch → Niedrig sort=TOTAL_PRICE_GROSS&order=DESC

  • Rabatt: Hoch → Niedrig sort=DISCOUNT_AMOUNT_GROSS&order=DESC

  • Rabatt: Niedrig → Hoch sort=DISCOUNT_AMOUNT_GROSS&order=ASC

Contract Characteristics

  • Laufzeit: Kurz → Lang sort=TERM_MONTHS&order=ASC

  • Laufzeit: Lang → Kurz sort=TERM_MONTHS&order=DESC

  • Jahreskilometer: Niedrig → Hoch sort=ANNUAL_MILEAGE&order=ASC

  • Jahreskilometer: Hoch → Niedrig sort=ANNUAL_MILEAGE&order=DESC

Example

const banner: CarDealsArchiveBanner = {
  typename: BannerTypename.CarDealsArchiveBanner,
  id: 'b_123',
  title: 'Offers',
  titleTag: 'h2',
  titleAlign: 'left',
  cssId: null,
  cssClasses: null,
  hideFilters: false,
  query: 'BRAND=BMW&OFFER_TYPE=PRIVAT&FUEL=PETROL'
};