# DF Fitment Finder — Vehicle search and product compatibility

> DF Fitment Finder adds compatibility search to your PrestaShop store: the customer picks their vehicle (or device) and the catalog only shows the products that fit. This documentation covers installation,…

- Page: <https://www.datafirefly.com/en/documentation/dffitmentfinder/>
- Language: en
- Last updated: 2026-09-15
- Other languages: [fr](https://www.datafirefly.com/documentation/dffitmentfinder/index.md), [es](https://www.datafirefly.com/es/documentation/dffitmentfinder/index.md), [de](https://www.datafirefly.com/de/documentation/dffitmentfinder/index.md), [it](https://www.datafirefly.com/it/documentation/dffitmentfinder/index.md), [pl](https://www.datafirefly.com/pl/documentation/dffitmentfinder/index.md), [pt](https://www.datafirefly.com/pt/documentation/dffitmentfinder/index.md), [nl](https://www.datafirefly.com/nl/documentation/dffitmentfinder/index.md)
- Index: <https://www.datafirefly.com/en/documentation/llms.txt>

DF Fitment Finder adds compatibility search to your PrestaShop store: the customer picks their vehicle (or device) and the catalog only shows the products that fit. This documentation covers installation, configuration, filling the vehicle database and the front-office display.

## Installation

1. Go to **Modules > Module Manager**, then click **Upload a module**.
2. Drop the `dffitmentfinder.zip` file and run the installation.
3. Click **Configure** to open the settings.

The installation creates three tables (vehicle database, product fitments, customer garages), registers the required hooks and adds a **Vehicles** tab under the **Catalog** menu. No core override is installed and no Composer dependency is required.

Compatible with PrestaShop 8.0 to 9.x, PHP 7.4 to 8.3, on single-store as well as multistore setups.

## Configuration

### Search levels

The selector is built on four levels: **Make**, **Model**, **Year** and **Engine**. The first two are always active; the last two can be switched on or off depending on your catalog.

- **Use year**: switch it off for a catalog with no notion of year (printer cartridges, phone cases, appliance parts).
- **Use engine**: switch it off if the finest level of your database is the model.

Searching remains possible as soon as make and model are filled in: the customer is never forced down to the finest level.

### Level labels

Each level carries a label that is editable per language. Defaults: Make, Model, Year, Engine. Adapt them to your industry:

- Car parts: Make / Model / Year / Engine
- Printer cartridges: Brand / Series / — / Reference
- Phone cases: Brand / Model
- Home appliances: Manufacturer / Range / Year / Reference

### Display zones

- **Show in header**: the selector appears at the top of every page.
- **Show on homepage**: the selector appears in the homepage content.
- **Widget**: place the selector anywhere in your theme with the Smarty tag `{widget name='dffitmentfinder'}`.

### Product page

- **Fitment check**: shows a banner under the price — green (the product fits the current vehicle), red (it does not) or neutral (no vehicle selected).
- **Fitment chart**: shows the complete list of compatible vehicles at the bottom of the page, grouped by make and collapsible.

### Results per page

Number of products shown per page on the results page. Default: 12.

## Filling the vehicle database

### Manual entry

Go to **Catalog > Vehicles**. The **Add** button opens the vehicle form:

- **Make** and **Model**: required.
- **Year from** and **Year to**: optional. Left empty, the vehicle is treated as valid for every year. Filled in, they define a range: a 2012–2019 vehicle appears under each year of the range in the selector.
- **Engine**: optional, this is the finest level (for example "1.2 PureTech").
- **Active**: an inactive vehicle no longer appears in the selector but keeps its fitments.

### Attaching products to a vehicle

Once the vehicle is saved, a **Compatible products** panel appears at the bottom of its form. Type at least two characters (name or reference) in the search field, click a result, and the product is attached immediately. The optional **Note** field lets you narrow the scope of the fitment: "front axle only", "manual gearbox", "from chassis no. 12000"… The note is shown in the fitment chart on the product page.

### CSV import

For large databases, the CSV import is the recommended route. The expected file has six columns:

```
make;model;year_from;year_to;variant;references
```

Example:

```
Peugeot;208;2012;2019;1.2 PureTech;BRK-P208-F|FLT-P208
Peugeot;208;2012;2019;1.6 BlueHDi;BRK-P208-F
HP;LaserJet Pro M404;;;;TNR-59A|TNR-59X
```

- The delimiter, semicolon or comma, is detected automatically.
- The **references** column holds the compatible product references, separated by a vertical bar.
- The year and engine columns may be left empty.
- A vehicle already present in the database is not duplicated: its fitments are simply completed.
- At the end of the import, a report shows how many vehicles were created, how many fitments were added and how many rows failed.

### CSV export

The **Export CSV** button on the module configuration page downloads the whole database in the same format. Handy to rework the data in a spreadsheet and import it back.

## The customer journey

### Selecting a vehicle

The customer picks a make, then a model, then (if the levels are active) a year and an engine. Each dropdown is populated from the previous one, with no page reload. The **Search** button opens the results page, which displays the compatible products with your theme's native miniatures.

The selected vehicle is then remembered and recalled on every page, until the customer changes it or clears it.

### My Garage

The **Add to my garage** button saves the current vehicle. The **My Garage** page, reachable from the customer account, lists the saved vehicles and lets the customer:

- set a vehicle as the **current vehicle**;
- jump straight to the products compatible with a vehicle;
- remove a vehicle from the garage.

The garage also works for guest visitors: their vehicles are kept and attached to their account automatically as soon as they log in or create an account.

### On the product page

If the fitment check is enabled and a current vehicle is selected, a banner appears under the price: green if the product fits, red otherwise. With no vehicle selected, a neutral message invites the customer to pick one.

If the fitment chart is enabled, the page shows the full list of compatible vehicles at the bottom, grouped by make and collapsible, with the note of each fitment when there is one.

## Frequently asked questions

### Can I use the module without any notion of vehicle?

Yes. Switch off the Year and Engine levels, rename the labels, and the module becomes a Brand / Series selector suited to cartridges, cases, appliance parts or any catalog where compatibility drives the purchase.

### What happens to a fitment when I delete a product?

It is removed automatically. The database keeps no orphan rows.

### Does the selector slow my site down?

No. The dropdowns are populated over AJAX on demand, in vanilla JavaScript with no jQuery dependency: only the list of makes is loaded on first render.

### Is the module multistore-compatible?

Yes. Product fitments and customer garages respect the shop context.

## Placements, icon and layout (v1.1.0)

Since version 1.1.0, the "Show in the header" and "Show on the homepage" switches are replaced by a **Display the selector on** block: seven checkboxes covering the common theme placements (header, full-width bar under the header, homepage, top of the content area, left and right columns, above the footer). The **Custom hooks** field additionally accepts your own display hooks, comma-separated: they are registered automatically on save. The `{widget name='dffitmentfinder'}` widget still works, independently of these settings.

- **Vehicle icon**: six built-in presets (car, garage, printer, phone, wrench, chip), no icon, or your own PNG, JPG or SVG image uploaded from the configuration page. The icon shows on the save button, the current-vehicle badge, the garage page and the product-page checker.
- **Desktop layout**: horizontal (fields on one row) or vertical (stacked fields). On mobile the selector always stacks vertically.

## Global vehicle filter (v1.2.0)

The **Filter category pages by the selected vehicle** setting, enabled by default, extends the selection to the whole shop: as long as a vehicle is active, category, brand and supplier pages only show compatible products, with your theme's native sorting and pagination.

A bar is shown above the listing with the active vehicle and two actions:

- **Show all products**: pauses the filter for 30 days (or until it is re-enabled). The bar stays visible and then offers to re-enable the filter.
- **Change vehicle**: links back to the selector.

If Faceted Search (ps_facetedsearch) is enabled, the vehicle filter temporarily takes over these pages while a vehicle is selected: pagination, counters and sort orders stay exact. The facet filters come back as soon as the customer pauses the filter or clears the vehicle.
