# Product Finder — Documentation

> The Product Finder module (dffinder) turns a complex catalog into a guided buying journey. You build a question tree in the back office; the visitor answers step by step and…

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

The **Product Finder** module (`dffinder`) turns a complex catalog into a guided buying journey. You build a question tree in the back office; the visitor answers step by step and lands on a filtered product selection, just like an in-store sales advisor would deliver.

## Overview

The module targets catalogs where customers hesitate: mattresses, bikes, IT hardware, cosmetics, spare parts. Each answer in the questionnaire is linked to one or more of your catalog criteria (attributes, features, categories, manufacturers, price ranges), and the module turns the visitor's choices into a native product search.

- Drag-and-drop question-tree builder, no code.
- Single- or multiple-choice questions, multilingual titles and labels.
- Real-time counter of matching products at every step.
- Native results page (theme sorting and pagination) via `ProductSearchProviderInterface`.
- Display as a home-page widget, widget tag or dedicated page.
- Compatible with PrestaShop 8.0 to 9.x, multistore and multilingual.

## Installation

1. Go to _Modules > Module Manager > Upload a module_.
2. Select the `dffinder-1.0.0.zip` archive and confirm the installation.
3. The module creates its tables, a **DF Product Finder** admin tab and the rewritten routes `product-finder` and `product-finder/results`.

After installation, if the `product-finder` URLs don't respond, regenerate the links: _Advanced Parameters > Performance > Clear cache_, then make sure Friendly URLs are enabled under _Traffic & SEO_.

## Create your first finder

Open _Modules > DF Product Finder_ and click **Add a finder**. Give it an internal name and an introduction text shown at the top of the questionnaire. The builder is organised in columns: questions on the left, the answers of each question, and the mappings of each answer.

### Add questions

Click **Add a question**. For each question, set:

- the **title** (e.g. "What will you use it for?") and an optional **help text**;
- the **display type**: single choice (one answer, with auto-advance) or multiple choice (several tickable answers);
- the order, by dragging the question to the desired position.

### Add answers

Under each question, add the answers offered to the visitor (e.g. "Sport", "City", "Kids"). Each answer has a multilingual label and can be reordered by drag-and-drop within its question.

### Map answers to the catalog

This is the heart of the module: each answer points to one or more product criteria. The available mapping types are:

- **Attribute** — a combination attribute value (size, colour…), matched against product combinations;
- **Feature** — a product feature value;
- **Category** — membership of a category;
- **Manufacturer** — the product's brand;
- **Price** — a `min`/`max` range on the store base price.

The attribute, feature, category and manufacturer fields provide autocomplete: type a few letters to find the value. A single answer can combine several mappings (for example a category _and_ a price range).

Price ranges filter on the product's **tax-excluded base price** for the current store (`product_shop.price`). Taxes and specific prices (discounts, group prices) are not applied in this filter.

When your tree is ready, click **Save**. Saving is idempotent: the whole tree is rebuilt on every save, which guarantees a consistent state.

## Understanding the matching engine

The module combines the visitor's choices using two simple rules:

- **OR** between the answers of the same question: ticking "Sport" and "City" widens the selection to products matching either one.
- **AND** between questions: the criteria of each completed question stack to narrow the selection.

At every step, the module recomputes the number of matching products via AJAX and shows it to the visitor, which avoids reaching an empty selection.

## Displaying the finder

### Home-page widget

Enable the home-page display from the module configuration. The widget shows a call-to-action card leading to the questionnaire.

### Widget tag

To insert the finder anywhere in one of your theme templates, use the Smarty tag:

```
{widget name='dffinder' id_finder=1}
```

Replace `id_finder` with the ID of the desired finder (visible in the back-office list).

### Dedicated URLs

The questionnaire is also directly accessible via clean URLs, handy for your campaigns:

- `your-store/product-finder` — the questionnaire;
- `your-store/product-finder/results?answers=1,4,9` — the results page.

## The results page

At the end of the questionnaire, the visitor is directed to a results page that extends PrestaShop's native listing controller. Concretely, you get without extra setup:

- your theme's product-list template;
- sorting by date, price or name;
- standard pagination.

A **Restart** link lets the visitor relaunch the questionnaire from the beginning.

## Multistore and multilingual

The module is bound to the shop context: each finder belongs to the shop(s) of your choice. All texts (name, introduction, question titles, answer labels) can be entered per language thanks to the editing-language switcher at the top of the builder.

## Troubleshooting

**The counter always shows zero.** Check that the mappings point to values actually used by your products (attribute/feature properly assigned to products), and that the products are active and associated with the current store.

**The price range doesn't filter as expected.** Remember the filter applies to the tax-excluded base price, without specific prices. A product on sale is still filtered on its catalog price.

**Best practice.** Start with a general question (use, profile) then refine (budget, size). Keep each question to a few clear answers to maintain a smooth journey.
