What moves: products, one price each, stock, SKUs (PrestaShop references), the main category and the cover image. What does not: customers, orders, reviews, gift card balances, blog posts, pages and URL redirects are not in a product export, so CatalogHop does not convert them.
1. Export your products from PrestaShop
- In the PrestaShop back office, go to Catalog, then Products.
- Set the filters on the product list: the export holds only the products that match them. Clear them to export everything, or filter the Status column to Yes to leave disabled products out.
- In PrestaShop 8.1 up to 8.2.1, the export holds only the products on the current page of the list, which shows 20 by default. Show all your products on one page first, or export page by page. PrestaShop 1.7, 8.0 and 8.2.2 or later export every product that matches the filters.
- Open the product list's actions menu, the one that also holds "Export to SQL Manager", and click Export. You get a file named product_ followed by the date and time, ending in .csv.
- Upload the file as it was downloaded. Its columns are separated by semicolons, which the converter reads.
What to know about the PrestaShop file
- This is PrestaShop's product list, not a full catalog export. It has no descriptions, summaries, extra images, combinations, weights, EAN13 or other barcodes, brands, tags, features, SEO fields or discounts, so none of those move. Every converted file says so.
- Combinations are not in the file. A product with combinations becomes one product with no options, its own price and the total stock of all its combinations (PrestaShop keeps that total for the product). Add the options in the new store.
- The export does not say which products are enabled, and it includes disabled ones unless you filtered the list. So every product is written as a draft (hidden), with a note. Publish the ones you sell after import.
- PrestaShop exports two prices. The converter uses the price before tax, the price PrestaShop asks you to set (in 8.1 and later this column includes any ecotax). If your new store shows prices including tax, choose "Including tax" under "PrestaShop price to use" before you download. Prices before tax with more than 2 decimals (PrestaShop stores them that way when a price was typed including tax) are rounded to cents and listed.
- In PrestaShop 1.7 and 8.0, the price including tax is worked out with the default combination's price impact, so for a product with combinations it can differ from the price before tax plus tax. The converter says so when you choose it.
- In PrestaShop 8.1 and later, the image column links a small version of each product's cover image (a file ending in -small_default.jpg). The converter links the full-size file at the same address instead (12-small_default.jpg becomes 12.jpg); PrestaShop's standard image folder settings let anyone open it. Open one link before importing. Products without a cover image, where PrestaShop links its "no image" picture, get no image.
- Only the main (default) category is in the file, by name, not as a path. Shopify files get it as the product type (the Type column) and WooCommerce files as the product category. Other categories are not in the export.
- Column names follow your back office language, except Product ID. The converter recognises the file by Product ID, the number of columns and the semicolons PrestaShop always writes between them, and when the names are not in English it also checks that the first rows hold a plain price and an image link. It reads the columns in the order PrestaShop writes them, so a back office in French, Spanish, Italian, Polish or another language is read the same way. A file opened and saved again with commas instead of semicolons is not recognised; upload the file as PrestaShop saved it.
- An orders, customers or categories export from the same back office is refused with a message when its column names are in English, so the wrong file is not converted by mistake.
- Built from PrestaShop's own source code (the product list export in 1.7.8, 8.1.7 and 9.0.0) and its user guide. PrestaShop publishes no sample export and no real export was used. It was not tested by importing into a live store.
What the WooCommerce file gets
- The column labels of WooCommerce's built-in importer (checked against WooCommerce 11.2.2), so columns map automatically.
- Variable products with their variations, each variation linked to the parent by SKU. A parent SKU is made from the URL handle when the source has none.
- Weights converted to your WooCommerce weight unit, with the matching column label such as Weight (kg).
- Repeated SKUs left blank on the later rows, because WooCommerce rejects duplicate SKUs.
- Products hidden from the online store written with catalog visibility hidden, and products that need no shipping written as virtual.
- Attributes as product-level (not global) attributes.
2. Before and after
Before: the PrestaShop product export CSV
"Product ID";Image;Name;Reference;Category;"Price (tax excl.)";"Price (tax incl.)";Quantity 1;https://shop.example.com/img/p/1/1-small_default.jpg;"Linen Apron";APR-LIN-01;Kitchen;24.000000;€28.80;12 2;https://shop.example.com/img/p/2/3/23-small_default.jpg;"Tasse en grès";TAS-GRES-02;"Arts de la table";20.833333;€25.00;40 3;https://shop.example.com/img/p/en-default-small_default.jpg;"Gift Card Envelope";;Accessories;3.500000;€4.20;0 4;https://shop.example.com/img/p/4/5/45-small_default.jpg;"Oak Serving Board; large";BRD-OAK-L;Kitchen;41.666667;€50.00;-2 5;https://shop.example.com/img/p/6/7/67-small_default.jpg;"Beeswax Wraps (set of 3)";WRP-BEE-3;Kitchen;12.500000;€15.00;7
After: woocommerce-products.csv
| Type | SKU | Name | Published | Is featured? | Visibility in catalog | Tax status | In stock? | Stock | Backorders allowed? | Regular price | Categories |
|---|---|---|---|---|---|---|---|---|---|---|---|
| simple | APR-LIN-01 | Linen Apron | -1 | 0 | visible | taxable | 1 | 12 | 0 | 24.00 | Kitchen |
| simple | TAS-GRES-02 | Tasse en grès | -1 | 0 | visible | taxable | 1 | 40 | 0 | 20.83 | Arts de la table |
| simple | Gift Card Envelope | -1 | 0 | visible | taxable | 0 | 0 | 0 | 3.50 | Accessories | |
| simple | BRD-OAK-L | Oak Serving Board; large | -1 | 0 | visible | taxable | 0 | -2 | 0 | 41.67 | Kitchen |
| simple | WRP-BEE-3 | Beeswax Wraps (set of 3) | -1 | 0 | visible | taxable | 1 | 7 | 0 | 12.50 | Kitchen |
12 of 21 columns shown (empty columns hidden, 1 more with data).
What the converter reported for this sample
5 products read, 5 written.
- Check this: PrestaShop's product list export does not say which products are enabled, and it includes disabled products unless the list was filtered. So all 5 products were written as drafts (hidden). Publish the ones you sell after import.
- Check this: PrestaShop's product list export has only 8 columns (ID, image, name, reference, category, two prices, quantity). Not in the file, so not carried over: descriptions, extra images, combinations, weights, EAN13 and other barcodes, brands, tags, features, SEO fields and discounts. A product with combinations becomes one product with no options, its own price and the total stock of all its combinations.
- Check this: Prices are PrestaShop's price before tax (the "Price (tax excl.)" column, which includes any ecotax). If your new store shows prices including tax, choose "Including tax" for the PrestaShop price and convert again.
- Check this: 2 prices before tax have more than 2 decimal places (PrestaShop stores the price before tax that way when it was typed including tax) and were rounded to cents: "Tasse en grès" 20.833333 to 20.83, "Oak Serving Board; large" 41.666667 to 41.67.
- Check this: The export links a small version (small_default) of each cover image. 4 links were changed to the full-size file at the same address (for example 12-small_default.jpg became 12.jpg). Open one in your browser before importing; if it does not load, your server blocks the originals. Only the cover image is in the export.
- Not carried over: One product has no cover image in PrestaShop (the export links PrestaShop's "no image" picture), so it has no image.
- Not carried over: Only each product's main (default) category is in the export, by name and not as a path. It was carried over as the product type in Shopify files and as the category in WooCommerce files. Other categories are not in the export.
Sample products made up for this page, laid out exactly like a real PrestaShop export. The "after" file and the notes were produced from it by the same converter this page runs.
3. Import into WooCommerce
- In WordPress, go to Products, then All Products, and click Import.
- Choose woocommerce-products.csv and click Continue.
- On the column mapping screen, check that each column is matched. If the weight column is not matched, pick Weight for it.
- Click Run the importer. WooCommerce shows a count of imported, skipped and failed products at the end.
Before you import everything
- Vendor and barcodes are not written: core WooCommerce has no vendor column, and the barcode (GTIN) column does not map automatically in 11.2.
- Weight column labels other than Weight (lbs) are taken from WooCommerce's source code rather than a sample file. If yours is not matched on the mapping screen, match it by hand.
- Images are imported by WooCommerce downloading each link, so the links must be public.
- Import a handful of products first, open them in your store and check variants, prices, stock and images. Then import the rest.
Already have a WooCommerce CSV that fails? Use the WooCommerce CSV checker.
Questions
- Why are descriptions and combinations missing after converting my PrestaShop export?
- PrestaShop's product export has 8 columns only: ID, image, name, reference, category, two prices and quantity. Descriptions, combinations, weights and barcodes are not in it, so there is nothing to carry over. A product with combinations comes over as one simple product with its total stock.
- Which PrestaShop category does WooCommerce get?
- Only the main (default) category of each product is in the export, by name. It becomes the product's WooCommerce category. Other categories are not in the file.
- Was this tested by importing into a live WooCommerce store?
- No. It follows PrestaShop's own export code and WooCommerce's import code. Check the file with the WooCommerce CSV checker, then import a few products first.
- Is my file uploaded anywhere?
- No. The page reads the file with your browser and converts it there. The only thing the site records is an anonymous count: which converter was used, a rough row count, and whether it worked. The privacy page lists every field.
- Will the import definitely work?
- Nobody can promise that from a file alone. The converter follows each importer's documented rules, leaves out products that would be rejected and tells you about them, and does not check the WooCommerce file before download, so run it through the WooCommerce CSV checker on this site. Import a few products first, look at them in your store, then import the rest.
Sources
- PrestaShop 8.1.7, product list export (ProductController exportAction): https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/PrestaShopBundle/Controller/Admin/Sell/Catalog/Product/ProductController.php#L730-L765
- PrestaShop 9.0.0, product list export (exports every matching product): https://github.com/PrestaShop/PrestaShop/blob/9.0.0/src/PrestaShopBundle/Controller/Admin/Sell/Catalog/Product/ProductController.php#L826-L864
- PrestaShop 1.7.8.11, legacy product list export (ProductCsvExporter): https://github.com/PrestaShop/PrestaShop/blob/1.7.8.11/src/Core/Product/ProductCsvExporter.php#L66-L97
- PrestaShop 1.7.8.11, legacy product list data (prices, image link, Status column): https://github.com/PrestaShop/PrestaShop/blob/1.7.8.11/src/Adapter/Product/AdminProductDataProvider.php#L230-L396
- PrestaShop 8.1.7, CSV writer (semicolon separator): https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/PrestaShopBundle/Component/CsvResponse.php#L222-L271
- PrestaShop 8.1.7, product list data (small_default image link, "no image" picture, formatted prices): https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/Adapter/Product/Grid/Data/Factory/ProductGridDataFactoryDecorator.php#L185-L243
- PrestaShop 8.1.7, product list query (default category, price plus ecotax, stock): https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/Core/Grid/Query/ProductQueryBuilder.php#L93-L130
- PrestaShop 8.1.7, product image file names: https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/Adapter/Product/Image/ProductImagePathFactory.php#L78-L157
- PrestaShop 8.1.7, image folder access rules (img/.htaccess): https://github.com/PrestaShop/PrestaShop/blob/8.1.7/img/.htaccess
- PrestaShop 8.1.7, product list Status column and filter, Export and Export to SQL Manager actions: https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/Core/Grid/Definition/Factory/ProductGridDefinitionFactory.php#L622-L659
- PrestaShop 1.7.8.11, product list toolbar (Export, Export to SQL Manager): https://github.com/PrestaShop/PrestaShop/blob/1.7.8.11/src/PrestaShopBundle/Resources/views/Admin/Product/CatalogPage/Blocks/tools.html.twig#L38-L49
- PrestaShop 8.1.7, product list default page size (20): https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/Core/Search/Filters/ProductFilters.php#L44-L52
- PrestaShop 8.1.7, product total stock is the sum of its combinations (StockAvailable): https://github.com/PrestaShop/PrestaShop/blob/8.1.7/classes/stock/StockAvailable.php#L523-L531
- PrestaShop 1.7.8.11, price including tax uses the default combination (Product priceCalculation): https://github.com/PrestaShop/PrestaShop/blob/1.7.8.11/classes/Product.php#L3784-L3787
- PrestaShop 8.1.7, orders list export: https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/PrestaShopBundle/Controller/Admin/Sell/Order/OrderController.php#L357-L403
- PrestaShop 8.1.7, customers list export: https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/PrestaShopBundle/Controller/Admin/Sell/Customer/CustomerController.php#L787-L830
- PrestaShop 8.1.7, categories list export: https://github.com/PrestaShop/PrestaShop/blob/8.1.7/src/PrestaShopBundle/Controller/Admin/Sell/Catalog/CategoryController.php#L705-L732
- PrestaShop 8 user guide, Managing Products (price tax excluded, main category): https://docs.prestashop-project.org/v.8-documentation/user-guide/selling/managing-catalog/managing-products
Related converters
- Etsy to WooCommerce CSV converter
- Wix to WooCommerce CSV converter
- Squarespace to WooCommerce CSV converter
- Shopify to WooCommerce CSV converter
- BigCommerce to WooCommerce CSV converter
- Square to WooCommerce CSV converter
- Magento to WooCommerce CSV converter
- PrestaShop to Shopify CSV converter
- Ecwid to WooCommerce CSV converter
- eBay to WooCommerce CSV converter