CarDealsArchiveBanner
Archive/listing of car deals, optionally with filters.
Includes the common banner props.

Props
CMS id.
If true, filters UI is hidden.
Backend query string used to fetch the listing.
URL filtering behavior
The deal archive persists interactive filter state in the URL.
- With
hideFilters = false, URL filters have priority over CMS defaults. - CMS defaults (
query) are used only when URL contains no filter state. - 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
SPECIALExamples:
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
HYDROGENIUMExamples:
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'
};