A vehicle can be available with multiple delivery packages. A delivery package might for example add warranty for a surcharge.

Each delivery package creates a variant in ILSA. Variants are enriched separately, but when searching you’ll only find one variant of each vehicle. Take this example:

  1. A visitor searches on your website and sees vehicle 123456789-1, which doesn’t come with warranty as standard.
  2. The visitor decides to filter on warranty.
  3. ILSA now shows 123456789-2, the second variant of the same vehicle which has warranty but is more expensive.

/searchresults will never show the same vehicle twice. It always shows the first variant that matches the filters. /vehicle takes a full ID, including the chosen variant_nr. /dropdowncontents might count a vehicle multiple times across different options, because both for warranty=True and for warranty=False it will show up if you search for that. The total number of results only counts vehicles, not variants.

Here’s a few takeaways:

  • You generally don’t need to think about variants as ILSA will handle it for you.
  • 123456789-1 and 123456789-2 are the same vehicle, but with small differences.
  • The full vehicle id (id) is composed of the vehicle_id, a dash (-) and the variant_nr. In most cases you should just use id everywhere and not have to worry about this.

On each variant there are fields with information about all delivery package for that vehicle in delivery_packages[].*. You can use it to allow your visitors to select a different delivery package. The currently applied delivery package is the one with delivery_packages[].applied == true.

delivery_packages[].price_absolute is the cost of that delivery package.
delivery_packages[].price_relative is the cost of that delivery package, minus the cost of the delivery package of the current variant. This might be negative.

Depending on the advertiser, you might be able to buy the vehicle without a delivery package. To indicate this, we’ll add a virtual delivery package with delivery_packages[].is_null set to true.

If the advertiser didn’t supply translations in the given _locale, we might hide delivery packages.