# Product Customizer (Engraving, Text, Image) — Complete Guide

> Overview The Product Customizer module lets your customers personalize an item straight from the product page: entering text / an engraving (with font and color) or uploading an image. The…

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

## Overview

The **Product Customizer** module lets your customers personalize an item straight from the product page: entering **text / an engraving** (with font and color) or **uploading an image**. The customization appears as a **live preview on the product picture** — drag-and-drop positioning, adjustable size and rotation — and each option can apply a **price surcharge** (fixed amount or percentage) added automatically to the cart.

The module is compatible with **PrestaShop 8.x and 9.x**. It creates its own tables and does not overwrite existing product pages: customization is driven by options you create, targeted by category and refinable product by product.

## Installation

1. Zip the `dfcustomizer` folder (or use the provided `dfcustomizer.zip` archive directly).
2. In the back office, open **Modules > Module Manager**.
3. Click **Upload a module** and drop the ZIP archive.
4. Once installed, click **Configure** to create your options.

On installation, the module creates the required tables (`dfc_option` and its related tables, `dfc_product_override`, `dfc_customization`) and registers the display hooks on the product page, the cart and the order.

## Configuration: creating an option

Go to **Modules > dfcustomizer > Configure** to create and manage your customization options. Each option defines a customization type, its price impact and its scope.

### Customization type

- **Text / engraving**: the customer enters text. You can offer a choice of **font** and **color** (both optional).
- **Image upload**: the customer uploads a file in **JPG, PNG or WEBP** format.

### Price impact

Each option can add a surcharge to the product price:

- a **fixed amount (tax excl.)**, or
- a **percentage** of the product price.

The surcharge shows in real time on the customer side and is passed through to the cart (see the Cart & price section).

### Category targeting

Tick the **categories** the option should apply to: the option will only appear on products in those categories. If **no category** is ticked, the option applies to the **entire catalog**.

### Per-product override

On the **product page** (**Modules** tab), each product has an override setting. It can:

- **inherit** the options defined by categories (default behavior);
- **choose its own options** specifically for that product;
- **disable** customization entirely for that product.

## Customer side (front office)

On the product page, the customer enters their text (font, color) or uploads their image. The customization appears immediately as a **live preview on the product picture**:

- **positioning** by drag-and-drop on the image;
- **size and rotation sliders** to fine-tune the result.

The price surcharge tied to the chosen options shows live. When adding to cart, the customization and a **flattened PNG preview** are saved so they can be retrieved with the order.

## Cart & price

The surcharge is added to the item price in the cart through a cart-bound price rule (`SpecificPrice` tied to the `id_cart`). It is **recalculated on every cart save** and **removed automatically** if the product is taken out of the cart.

**Note:** only one customization is possible per _product / combination_ pair per cart.

## Order side

### Back office

On an order page, a **"Product customizations"** panel summarizes each customization: the text entered, the **downloadable customer file** and the generated preview. You have everything you need for production (engraving, printing, etc.).

### Front office

The customer finds a reminder of their customizations in their **order detail**.

## Technical notes

- **Tables created:** `dfc_option` (+ `dfc_option_lang` and `dfc_option_category`), `dfc_product_override`, `dfc_customization`.
- **Price surcharge:** applied through `SpecificPrice` bound to the cart (`id_cart`), recalculated on every cart save and removed if the product is taken out.
- **Customer files:** stored in `modules/dfcustomizer/uploads/`, a folder where PHP execution is blocked by an `.htaccess` file for security.

**Limitation:** one customization per product/combination pair per cart.

## Troubleshooting

### The customization option does not appear on the product page

Check that the option is active and that its **categories** include the product's category (or that no category is ticked to target the whole catalog). Then check the **per-product override** (Modules tab of the page): customization must not be disabled for that product. Finally, clear the PrestaShop cache.

### The price surcharge does not appear in the cart

The surcharge is recalculated on cart save. Check that the option has a price impact (fixed amount or percentage) and reload the cart. If the product was removed and re-added, the customization must be redone.

### The image upload is rejected

Only **JPG, PNG and WEBP** formats are accepted. Check the file format as well as the maximum upload size allowed by your hosting (`upload_max_filesize` / `post_max_size` PHP).

## Uninstallation

Uninstalling removes the module's hooks and configuration. Back up beforehand the customer files in `modules/dfcustomizer/uploads/` and the order customization data if you want to keep them.

## FAQ

### Is the module compatible with PrestaShop 9?

Yes, the module is compatible with PrestaShop 8.x and 9.x.

### Can I charge for customization?

Yes. Each option can apply a surcharge, as a fixed amount (tax excl.) or a percentage of the product price, added automatically to the cart.

### Can I limit an option to certain products?

Yes, in two ways: through the option's **category targeting**, and through the **per-product override** that lets each page inherit, pick its own options or disable customization.

### Can the customer add several customizations to the same item?

Only one customization is saved per product/combination pair per cart.
