PrestaShop features vs attributes: what to use so your catalogue does not fall apart
PrestaShop features vs attributes comes down to one question: does the customer choose this value when buying. An attribute, for example size, creates product variants with their own stock and price. A feature, for example material, only describes the product and is the same for all variants. Both can feed filters, but each needs its own kind of order.
Author: The TellMyShop team. A guide for PrestaShop store owners: the cause, the manual fix and the same work in a chat conversation.
Last updated: · 6 min read
How do features differ from attributes in PrestaShop?
An attribute sells, a feature describes. You create attributes in Catalog > Attributes & Features, and from their values you build combinations in the product. Each combination is a variant with its own stock, reference and price impact. Features are assigned to a product without creating variants. On the product page they go into the data sheet.
| Feature | Attribute | |
|---|---|---|
| Example | material, power, dimensions, country of origin | size, colour to choose, length |
| Customer chooses it when buying | no | yes |
| Creates variants with their own stock | no | yes, through combinations |
| Can change the price | no | yes, the combination's price impact |
| Where it shows on the page | data sheet | a selector above the add to cart button |
| Can feed filters | yes | yes |
| Typical trouble | duplicate values after an import | the back office slows down with many combinations |
The PrestaShop documentation covers product features and attributes separately. The question of “which to use” has come up on the forum for years, for example in the thread product features or attributes (in Polish).
How do you decide which to use for a given piece of information?
Ask four questions in order and stop at the first “yes”.
- Does the customer choose this value before adding the product to the cart? If so, it is an attribute. Work gloves in sizes 8, 9 and 10 are one product with three combinations.
- Does the value change the price or the stock? If so, it is an attribute as well. A bigger sofa costs more, and each size has its own stock.
- Do customers filter by this value or compare products by it? If so, and the first two questions gave “no”, it is a feature. Material: Cotton, or power: 5 W.
- Is it information for the description only? If nobody filters by it, the product description is enough. Not every piece of information has to be a feature.
Colour is the most common borderline case. A clothing store usually sells one T-shirt in several colours, so colour is an attribute. A lantern store has a separate product for each colour, because each one has different photos and a different description. There, colour is a feature. Google Merchant Center also treats colour as variant information, as the description of the colour attribute shows.
Why do features turn into a mess after an import?
Because every different spelling creates a new value. Wholesaler A supplies “Stainless steel”, wholesaler B “stainless steel”, and someone in the back office typed a custom value “stainless stl.”. For PrestaShop those are three different values. On top of that, for years the back office let you create duplicates when editing a product, as an issue on PrestaShop's GitHub describes.
Saturday, 22:35. The list of values for the Material feature has 63 entries. You open the filter in the Work Gloves category and see “Leather”, “leather”, “Lether” and “Cowhide leather” side by side. To clean that up by hand, you have to find the products with each version, open every one of them and switch the value. How duplicates break filters is covered in detail in the article PrestaShop filters not working.
How do you merge duplicate feature values after an import?
You ask for a review of one feature, and your chat (Claude or ChatGPT) shows the values with the number of products and flags likely duplicates. Then it suggests which value to move the products to. The tool will not add a new value that already exists in a different spelling. The chat uses the existing one instead.
You: The Material feature in Work Gloves is a mess. Show me the duplicates and suggest how to tidy it.
Your chat: The Material feature has 63 values, and there are 9 groups of likely duplicates. The largest:
I'm keeping “Cowhide leather” separate, it is narrower information. I suggest moving 23 products to the value “Leather”.
You: Show me the preview.
Your chat: Preview: 23 products, only the Material feature changes. You can delete the empty values afterwards in the back office. I'll save after your approval, and you can undo the operation from the change history.
old version: Leather (41 products), leather (17), Lether (6)
new version: Leather (64 products)
It is best to tidy one feature at a time: request, preview, approval, a check of the filter in the store. One batch holds up to 100 assignments. The feature review and the list of gaps work in TellMyShop Free. Moving products to the right value is saved by TellMyShop Pro.
The chat does not create or delete combinations. Turning attributes into features and back stays in the back office. It does translate the names of features, attributes and their values into other languages, which we describe in the article on translating your store. You will find ready requests in the use cases tidying up duplicate feature values and filling in features for filters.
Can the same information be a feature and an attribute at the same time?
It can, but then the customer sees it twice in the filter. The typical example is colour. The store has a Colour attribute for T-shirt combinations and a Colour feature entered during an import for all products. Two “Colour” lists with different values appear in the filter block. The customer ticks one and does not see some of the products.
The solution depends on how you sell. If colour is a choice when buying, keep the attribute and remove the feature from the filter template. If each colour is a separate product, keep the feature. You set the filter template in the configuration of the faceted search module, separately for each category. Before you delete anything, check which field your feed module for price comparison sites uses.
How do you avoid ending up in a mess again in six months?
Agree a list of values before the import and stick to it. Features with predefined values are safer than custom values typed into the product. With every new supplier, check how they write material, colour and dimensions. Once a quarter, review the most important features before duplicates reach the filters.
Questions and answers
Should colour be a feature or an attribute?
It depends on whether the customer chooses the colour when buying. If the same sofa comes in three colours at one URL, colour is an attribute and creates combinations. If each colour is a separate product, colour is a feature. You can have both at once, but then make sure the filter shows only one of them.
Can I turn attributes into features without deleting products?
Yes, but it takes two steps. First you set the feature in the products, then you delete the combinations that are no longer needed. Watch out for stock and variant references, because they are stored in the combinations. Before deleting combinations, export them and check that no module, for example a feed, uses them.
Where do duplicate features in PrestaShop come from?
Most often from imports from several wholesalers and from values typed by hand. Every different spelling, even a capital letter or a trailing space, creates a new value. Over time the Colour feature has dozens of entries, and the filter shows “Black” and “black” side by side. You have to move the products to one value.
Do features matter for Google Shopping?
They can. Feed modules often take data such as material or colour from features, and sizes and variants from combinations. It depends on the specific module and its settings. Check in your feed module which field it takes colour and size from before you move data between features and attributes.
What does the chat do in TellMyShop Free?
It lists features with the number of values and products, flags likely duplicates and shows which products are missing an important feature. That is read-only, so it works in TellMyShop Free. Moving products to the right values and filling in features is TellMyShop Pro, with a preview before saving.
PrestaShop is a registered trademark of PrestaShop SA. Claude is a trademark of Anthropic PBC. ChatGPT and OpenAI are trademarks of OpenAI. TellMyShop is not affiliated with these companies.