PrestaShop CSV product import: common errors and when to choose another route
PrestaShop CSV product import is still the best way to handle hundreds or thousands of items. It most often breaks on five things: character encoding, the separator, images from other servers, combinations and matching existing products. For a few dozen new products from a supplier list, adding them in a conversation with the chat, as drafts to review, is quicker.
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: · 5 min read
When to use CSV and when a conversation?
It depends on the number of products and how much work each one needs. A file wins on scale. A conversation wins where the supplier's list is incomplete and each product needs filling in: description, category, price with a markup.
| CSV import | Conversation with the chat | |
|---|---|---|
| Number of products | hundreds and thousands | a few to a few dozen at a time |
| Preparation | a spreadsheet in PrestaShop format, column mapping | you paste the list as it arrived |
| Descriptions | as they are in the file | the chat writes a description from the list data |
| Images | addresses in a column, the server downloads them during import | up to 10 images per product from public https addresses |
| Combinations | a separate file and a separate import | you create them in the admin |
| When something goes wrong | you fix the file and import again | you undo each product from the change history |
| Version | built into PrestaShop | TellMyShop Pro |
If a wholesaler sends you a file with two thousand items every week, stick with import or an integration module. A conversation with the chat won't replace ongoing synchronisation with a wholesaler.
Why does a CSV import fail?
Because the file format must match what PrestaShop expects, down to the character. The most common symptoms and their causes:
- Gibberish instead of accented letters. The file isn't saved in UTF-8.
- Everything in one column. The separator in the file differs from the one in the import settings, for example a comma instead of a semicolon.
- No images after the import. The store's server can't download the files from the given addresses, or it runs out of time.
- Overwritten products. The import matches rows by ID or by reference and hits a different product from the one intended. A PrestaShop GitHub issue describes such a case.
- Errors with combinations. Combinations need a separate file, and even the sample file has been known to end in errors, as another issue shows.
The PrestaShop import documentation describes the column format and the steps. HelpGuru covers typical problems, including server timeouts.
How to import a CSV file safely
A small test first, then the rest.
- Back up the database. An import changes many products at once and has no undo button.
- Save the file as CSV UTF-8 and check the separator in the import settings.
- Import five rows. In the admin go to Advanced Parameters > Import, choose the Products type and upload the test file.
- Check those five products in the store. Name, price excluding and including tax, category, images.
- Import the rest. With a large file, split it into parts so you don't exceed the server's time limit.
- Rebuild the filter index if the store uses filters. The import usually doesn't do that. More in the post on why PrestaShop filters aren't working.
- List the gaps. Products without images, an EAN or a description after an import only show up on a list of gaps.
What to do when the import doesn't upload images
Check one image address from the file before you start looking for a fault in PrestaShop. Open it in a private browser window. If instead of the image itself you see a preview page, a login prompt or an error, the store's server won't download it either.
There are four typical causes:
- the address leads to a cloud gallery page, not to a JPG or PNG file,
- the supplier's server only lets logged-in customers download images,
- the address starts with http and the supplier's server redirects it in an unusual way,
- there are so many images that the import stops at the server's time limit.
The last case is solved by splitting the file into smaller parts or by a higher time limit from your host. The developer documentation describes PrestaShop's server requirements. When the images matter more than the rest of the data, import the products without them and add the images in a second step.
How to add products from a supplier list in a conversation
You paste the list, describe the rules, and your chat (Claude or ChatGPT) adds the products one by one as disabled drafts. First it shows the plan and a preview of each product.
You: Here's a list of 12 gloves from the supplier. Add them to the Work gloves category, prices from the list plus 35%, write short descriptions and add images from the links. Don't enable them yet.
Your chat: I checked the references. 2 products from the list are already in the store, so I'm skipping them. Plan: 10 new products, disabled. Preview of the first:
You: No word “best” in the description. The rest is fine, go ahead.
Your chat: Corrected. I'll add the products one at a time, saving each after your agreement.
new version: Grip nitrile gloves, size 9
new version: Price: €18.90 incl. tax (€14.00 on the list, plus 35%)
new version: Category: Work gloves, EAN from the list, stock 40 units
new version: Description: 3 sentences on the material, grip and use
new version: Images: 2 from the given addresses
Adding products and the ready task New products from a list are in TellMyShop Pro, because they change the store from the first step. An example request is new products from a supplier list. Each new product is a separate write, and you set the hourly write limits in the module panel. Before a bigger job the chat checks whether it fits and suggests stages if needed. That is why a conversation makes sense for dozens of products, not thousands. Version details are on the pricing page.
What to check after every import
The list of gaps, before a customer finds them. In TellMyShop Free the chat shows products without images, without an EAN and with an empty description, with reference and category. An example request: products without images, EAN or brand.
Questions and answers
Why do accented characters turn into gibberish after a CSV import?
The file was saved in an encoding other than UTF-8, most often a Windows encoding from Excel. PrestaShop reads it as UTF-8 and the special characters break. Save the file again as CSV UTF-8, or open it in a spreadsheet that lets you choose the encoding when saving, and import it again.
Why doesn't the CSV import upload images?
Most often the store's server can't download the file from the given address. The address requires a login, leads to a preview page instead of the file itself, or the supplier's server blocks downloads. On top of that, server time limits kick in with a large number of images. Check one address in a private browser window.
How many products can the chat add in one conversation?
A few to a few dozen. Each new product is a separate write. You set the hourly limits in the module panel, and before a bigger job the chat checks whether it fits and suggests stages if needed. Images are added separately, up to 10 per product. For hundreds or thousands of items, a file import is faster and is the right tool.
Will new products appear in the store straight away?
No. Products added by the chat start disabled, as drafts. You check them in the admin, fix what's needed and enable them. When you enable them, the module warns about gaps, for example a missing image or stock. A product priced at 0 can't be enabled, so an accidentally free item won't go on sale.
Does adding products work in the free TellMyShop Free version?
No. TellMyShop Free only reads the store, so it doesn't create products. You can use it to check which products are missing images, an EAN or a description after an import. Adding products and the ready task New products from a list need TellMyShop Pro, because they change the store from the first step.
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.