PrestaShop CSV Import: Limits and the Right Alternative
PrestaShop's native CSV import works for 50 products. For 500+, API sync prevents timeouts, duplicates, and broken product pages.
You manage a PrestaShop catalog of a few hundred products or more, and you’ve just hit the limits of the native CSV import. Either your file crashes halfway through with a 500 error. Or prices don’t get updated. Or your product variants end up in a mess. Or all of the above — on a Friday night before a promo.
This article is for you if:
- Your catalog has more than 200 SKUs
- You have multiple suppliers, each with their own file formats
- You need to sync stock, prices, or product pages more than once a week
- You manage multiple stores or multiple languages
If you import 30 products once a year, PrestaShop’s native tool works just fine. For everything else, read on.
What PrestaShop’s native CSV import does
Expected format and recognized columns
The native import tool is available in the PrestaShop back office under Advanced Parameters > Import (or Catalog > Import depending on your version). It accepts .csv files, and since version 1.7, also .xls, .xlsx, and .ods.
For product imports, the columns recognized by the native engine include:
| Column | Description |
|---|---|
ID | PrestaShop identifier (optional — leave empty to create) |
Active (0/1) | Whether the product is active |
Name * | Product name (required) |
Categories (x,y,z...) | Comma-separated categories |
Price tax excl. | Price excluding tax |
Tax rules ID | Tax rule identifier |
Wholesale price | Purchase price (supplier cost) |
Reference # | Internal reference |
EAN13 | EAN-13 barcode |
Quantity | Available stock |
Description | Long description |
Short description | Short description |
Meta title | SEO title tag |
Meta description | SEO meta description |
Image URLs (x,y,z...) | Image URLs, comma-separated |
Combinations | Product variants (attributes/values) |
Available for order (0/1) | Whether the product can be ordered |
Technical note: The exact column names vary slightly depending on your PrestaShop version (1.6, 1.7, 8.x) and your back office language. The back office displays the available columns in a side panel when setting up an import — that panel is the authoritative reference.
The default separator is semicolon ;. The separator for multiple values (multiple categories, multiple images) is comma ,. The expected encoding is UTF-8 without BOM.
How to trigger an import
The import runs synchronously in the browser: you upload the file, map the columns, launch the import, and the back office sits there waiting for processing to complete. No background job, no resume capability if the network drops. If processing exceeds the PHP timeout (often 30 or 60 seconds depending on server configuration), the import stops mid-file with no rollback.
The 6 concrete limits of PrestaShop CSV import
1. Timeout and crashes on large volumes
The native import is designed for modest volumes. In practice, PrestaShop forums document 500 errors or timeouts starting at a few hundred rows — sometimes less if products have images to download. A catalog of 5,000 SKUs with remote images? The import crashes before halfway. There’s no resume mechanism: you start over from scratch, or you split your file into batches of 200 rows and redo it manually.
2. Encoding and separators: the UTF-8 lottery
A CSV file exported from Excel on Windows often comes in Windows-1252 (Latin-1) or UTF-8 with BOM. PrestaShop expects UTF-8 without BOM. Result: accented characters (é, ç, ô) display as é, ç, ô in your catalog. Debugging this easily eats two hours — a problem that upstream encoding validation would fix in two seconds.
Same issue with separators: if your supplier delivers a file with commas as separators and semicolons inside descriptions, the import fails without a clear error message.
3. No rollback, no idempotence
The native import is not idempotent: if you import the same file twice, you create duplicates or overwrite existing data depending on the option selected. There’s no consistency check before the import: if your CSV references a category that doesn’t exist yet, the product is imported without that category — silently, with no warning.
If an import is cut short by a timeout, the products processed before the stop are in the database, the rest are not. Your catalog is in an indeterminate intermediate state.
4. Variants: the most fragile case
Importing product variants via native PrestaShop CSV is technically possible but notoriously fragile. Attributes (size, color) and their values must already exist in your back office. The variant CSV format is different from the product CSV format: it requires a two-pass import. A mismatch between attribute IDs and CSV values creates orphaned variants or incorrect combinations that silently corrupt the catalog.
5. Zero monitoring, no usable logs
The import interface displays a summary after processing: “X products imported, Y errors.” No line numbers, no timestamped trace, no report export. If 47 products out of 800 failed, you don’t know which ones or why without hunting them down manually.
6. Frequency and content: two limits in one
The native tool has no scheduling — every import is manual. But the most structural limitation isn’t frequency: it’s content. The supplier’s CSV carries what the supplier wrote. Not your descriptions, not your editorial voice, not your SEO keywords, not your translations. For a serious catalog, CSV import is only half the work — the other half remains entirely manual.
What external automation brings
Real-time sync via the PrestaShop REST API
PrestaShop exposes a REST API (formerly called “Webservices”) that lets you create, read, update, and delete resources — products, stock, prices, orders, customers — without going through the graphical interface. An external automation solution like PropulseCom uses this API to push data directly to the database, product by product or in batches, without blocking the back office.
The key difference from CSV: the API allows granular, targeted operations. Rather than re-importing a 2,000-row file to change 15 prices, an API call updates only those 15 products in a few seconds. The back office remains usable throughout the synchronization.
PropulseCom connects to your store by validating your PrestaShop API key, then automatically syncs your categories, languages, attributes, and features — with no manual re-entry.
Idempotence and duplicate handling
A well-built automation is idempotent: running the sync twice with the same data produces the same result as running it once. The deduplication logic relies on a stable unique identifier — product reference, EAN13, or PrestaShop ID — to decide whether to create or update. No duplicates, no loss of existing data unrelated to the update.
Error workflow and observability
When a product fails during automated synchronization, several things happen that the native module doesn’t do:
- The error is captured with its precise cause (inaccessible image, duplicate reference, missing category)
- The failing product goes into automatic retry without blocking the products that follow
- Every operation is logged with timestamp, product ID, action performed, and result
- Progress updates in real time in the interface, without reloading the page
After generating 3,000 products, you know exactly what was created, what was updated, and what failed — and why.
Concrete use cases
Supplier catalog analysis: new, existing, and missing products
This is often the first operational problem when a supplier sends their updated catalog: how do you know what’s changed? PropulseCom includes a supplier catalog analysis module that automatically compares the delivered file against the actual state of your store via the PrestaShop API.
Results are sorted into three categories:
- New products: present in the supplier file, absent from your store → importable in one click
- Existing products: already in your store → the module shows purchase price differences (delta in € and %) so you decide whether a price update is warranted
- Missing products: in your store, absent from the supplier file → the module flags them so you decide whether to deactivate them
Each supplier’s format is remembered after the first import: column mapping is configured once, then reused automatically with every new file. On a catalog of 800 SKUs with two active suppliers, this analysis replaces what previously took 2 to 3 hours of manual spreadsheet comparison.
Generating product descriptions in your store’s voice
The supplier’s CSV contains what the supplier wrote: a product title, some technical specs, sometimes a generic sentence. That’s not your content — and it’s not SEO content.
PropulseCom adds an AI generation layer between the CSV import and creation in PrestaShop. You configure customizable prompts per field: short description, long description, meta title, meta description, product features. These prompts define the tone, style, and trade vocabulary of your store. The AI then generates within that precise framework for each product in the CSV.
A concrete example: an electrical equipment reseller configures their long description prompt to always mention applicable CE standards, compatibility with existing installations, and a sentence about customer service. That context is applied to every generated product, without the merchant having to re-enter it each time. A test mode on 3 products lets you validate quality before launching mass generation — accessible directly via the product sheet generator.
Multi-language at no extra cost
For multi-language stores, PropulseCom automatically detects all active languages when connecting to the PrestaShop API. Product generation covers all languages in a single pass: 1 credit = 1 product, all languages included. No additional configuration, no separate pass per language, no cost multiplied by the number of languages.
Beyond text: image recognition and enrichable descriptions
AI vision on product images
A supplier’s CSV often contains image URLs. What the native import does with those URLs: download the files and attach them to products. What it doesn’t do: check whether those images are usable.
PropulseCom includes AI image analysis before publication. For each visual provided, the AI vision detects:
- Watermarks: images marked by the supplier or a partner, not usable as-is in your storefront
- Product/image consistency: does the image actually represent the listed product? A supplier mapping error can associate a cable’s image with a connector, or show two different colors
- Resolution: images that are too low-resolution degrade the user experience and conversion rate
A concrete case: a supplier delivers 2,000 new products with their images. The AI analysis automatically flags 47 visuals bearing a partner watermark and 12 images with resolution below the minimum required for zoom display. Without this step, those 59 products would go live with non-compliant images, discovered only through customer feedback or a manual audit — weeks later.
The analysis is billed in credits per image processed. It doesn’t reanalyze the entire catalog on each import: only products that are new or modified since the last pass are analyzed.
Direct SEO benefit: Google penalizes duplicate images, low-quality images, or images associated with inconsistent content. Catching problems before publication — before Google even indexes those pages — avoids post-correction work that requires deindexing, fixing, and then waiting for the bot to come back. The gain isn’t theoretical: every correct image published on the first pass is ranking potential that doesn’t need to be rebuilt. You can check the current state of your store with our SEO shop audit.
Enrichable descriptions: an editorial asset that builds over time
PropulseCom’s model isn’t to replace the merchant, but to provide a quality base they can enrich. The typical workflow:
- Raw supplier CSV — title + technical specs + one generic descriptive sentence
- PropulseCom generates — short description, long description, meta title, meta description, structured features, in the tone and style defined by your configured prompts
- The merchant receives in PrestaShop — a pre-filled, editable product page they can enhance with differentiating elements: customer reviews used as social proof, store-specific guarantees, internal comparisons, local technical references
What this changes compared to a classic CSV import: a CSV carries what the supplier wrote. All your competitors reselling the same products have the same descriptions. The AI generates content unique to your store — in your style, with your keywords, in all your languages — which is the critical point for SEO: Google systematically demotes product pages duplicated across competing resellers. Our product page SEO guide details the 6 criteria that make the difference on this front.
The long-term advantage comes from persistent mapping templates. Prompts are saved and reloaded from one import to the next: your store’s voice stays consistent between the first import in January and a new supplier added in September. Recommended cycle: mass generate → validate on 3 products via test mode → refine prompts → relaunch. After a few iterations, prompt mastery becomes a real competitive advantage over resellers who publish supplier descriptions unchanged.
Comparison table: native CSV vs Addons module vs PropulseCom
| Criterion | Native PrestaShop CSV | Addons module (e.g. Sitolog, Store Commander) | PropulseCom |
|---|---|---|---|
| Supported volume | < 500 products reliably | Up to tens of thousands | Unlimited, automatic batch splitting |
| Error handling | Summary report, no retry | Varies by module | Per-product capture, automatic retry, timestamped logs |
| Idempotence | No | Partial | Yes — deduplication by reference/EAN |
| Reusable mapping templates | No | Depends on module | Yes — saved and reloaded between imports |
| AI description generation | No | No | Yes — customizable prompts per field |
| Test mode (3 products before mass run) | No | No | Yes |
| Automatic multi-language | No (one pass per language) | Depends on module | Yes — 1 credit = 1 product, all languages included |
| AI vision on images | No | No | Yes — watermarks, consistency, resolution |
| Supplier catalog analysis | No | No | Yes — new / existing / missing + price delta |
| Prepaid credits | N/A | Annual license | Yes — 100 credits free at signup |
| Human intervention | Every import | Initial setup + supervision | Initial setup + quality validation |
Note on TCO: The apparent €0 cost of native CSV doesn’t account for operator time. On a catalog synced twice a week, 1 to 2 hours per operation adds up to 100 to 200 hours per year. At €30/hour (loaded cost of an e-commerce employee), that’s €3,000 to €6,000/year in hidden costs — not counting time spent fixing import errors and empty product pages.
FAQ
Why does PrestaShop CSV import crash with a 500-product file?
The native import runs synchronously in the PHP thread of the back office. If processing exceeds the server’s configured timeout (often 30 to 60 seconds), PHP stops execution with no rollback. On shared hosting or a limited VPS, 500 products with remote images to download can easily exceed that threshold. The native workaround is to split the file into batches — which doesn’t solve the problem, just moves it.
What’s the difference between a CSV import module and API synchronization?
A CSV import module stays in the same paradigm as native: it processes a file, often with better performance and reporting, but the data source remains a batch file. API synchronization is granular: data is read from any source (supplier CSV, feed) and sent directly to PrestaShop’s REST endpoints, product by product. Business rules are applied in the flow, not in pre-processing.
How do I automatically update PrestaShop prices from a supplier file?
PropulseCom reads the purchase price from the supplier file (wholesale_price) during CSV mapping, and writes it directly to PrestaShop via the API. The sale price stays under your control: you define your margin rule in the settings, and the automation applies that same logic on every import without manual intervention.
Can you import product variants via CSV in PrestaShop?
Yes, but it’s a two-step operation in the native interface: first import the products, then import the combinations in a separate file. Attributes and values must already exist in the back office. In practice, the slightest mismatch between the two files creates orphaned variants that are hard to debug. PropulseCom syncs your store’s attributes and features as soon as it connects, ensuring consistency between CSV mapping and actual PrestaShop data.
What sync frequency is possible with the PrestaShop API?
The PrestaShop API doesn’t impose a documented rate limit, but the server hosting your store is the real limiting factor. In practice, generation volume depends on catalog size and available credits. For targeted price or stock updates via the API, operations on specific products complete in seconds without impacting store performance.
How can AI generate unique content when my competitors sell the same products?
Because the generated content isn’t the supplier description reformatted — it’s original content created within the precise framework you defined. PropulseCom’s customizable prompts let you inject your tone, your trade vocabulary, and your differentiating angles (service, expertise, guarantees) into every product page. Two resellers importing the same supplier file will get structurally different descriptions if their prompts are different.
The other lever is multi-language: PropulseCom generates in all your active languages in a single pass, at the same cost (1 credit per product). Complete product pages in all languages = more indexable pages and more SEO surface area compared to a competitor who stayed in a single language.
Move to automation
If your catalog changes more than once a week, if you have multiple suppliers with their own formats, or if you’re spending time reformatting CSV files in Excel before every import — that’s the signal that the native tool is costing you more than it saves.
PropulseCom connects your data sources to PrestaShop via the API, generates descriptions in your voice, covers all your languages, and analyzes your images before publication. First product pages are generated with 100 free credits at signup — no credit card required.
Try PropulseCom free on your catalog
To go further: