Changing the price of one product takes a minute. Changing five hundred prices one by one takes a day and invites mistakes. You can bulk edit products in PrestaShop without add-ons in three ways: the bulk actions in the product list (enable, disable, duplicate, delete), a CSV import in Advanced Parameters → Import, and catalog price rules for percentage discounts. For everyday work on thousands of items, a spreadsheet-style mass editor is more comfortable. Below you will find each method, the usual import traps and how to export orders to Excel for your accountant.
- Can you bulk edit products in PrestaShop without modules?
- How do you change prices by a percentage in PrestaShop?
- PrestaShop CSV import: how to use it and what to watch out for
- How do you move products to another category?
- How do you fill in features and attributes in bulk?
- How do you protect your store before bulk changes?
- Exporting orders to Excel for accounting
- Which method should you choose?
- Frequently asked questions
Can you bulk edit products in PrestaShop without modules?
Partly. Start with what you already have. In Catalog → Products, tick the products in the list (checkbox in the first column) and open the Bulk actions button. PrestaShop 1.7, 8 and 9 offer four operations there:
- Activate selection and Deactivate selection — hide a whole collection quickly or withdraw seasonal products,
- Duplicate selection — copies as a starting point for similar items,
- Delete selection — permanent deletion, there is no trash bin.
In multistore mode, check which store context you are working in. These bulk actions do not change prices, stock, categories or features; for that you need the CSV import, catalog price rules or a module.
The exception is combinations: in the new product page (PrestaShop 8 with the new page enabled, and PrestaShop 9) you can edit several combinations of one product together: stock, price impact, references and images.
How do you change prices by a percentage in PrestaShop?
This is the most common need: an 8% increase, an exchange rate correction or a discount on a whole category. You have three options.
Catalog price rules, when you want a discount
Catalog → Discounts → Catalog Price Rules let you set a percentage or fixed reduction for selected categories, brands, suppliers, attributes or features, with a start and end date. The base price stays the same and customers see the old price crossed out. Good for a sale, useless for an increase: a rule only works downwards.
Export, spreadsheet and re-import
When you want to change the base price:
- In Catalog → Products, set filters (for example a category) and use the Export option. You get a CSV file with the columns visible in the list, including ID, name, reference and price.
- Open the file in a spreadsheet and recalculate prices with a formula such as
=ROUND(C2*1.08,2). - Keep only the columns needed for the update: ID and Price tax excluded, and the reference if you use it as a key.
- Import the file in Advanced Parameters → Import as Products and map the columns.
It works, but every spreadsheet mistake goes straight to the store, and "nice" prices (49.99 instead of 49.72) need rounding by hand.
A spreadsheet-style mass editor
A mass edit module does the same job inside the back office, without moving files around. When you compare modules, check three things: filters by category, brand and stock, price rules with rounding, and an undo history, so a mistake can be reversed without restoring the database. If your changes follow your own rules, such as a supplier price list or a margin per category, a script written for your store as development work may serve you better than a general-purpose editor.
PrestaShop CSV import: how to use it and what to watch out for
The import in Advanced Parameters → Import is the most powerful native tool for bulk changes, and the easiest way to break something. It handles products, combinations, categories, customers, brands and more. You map file columns to fields, and PrestaShop validates the data before saving it.
The most common traps:
- No key means duplicates. If the file has no ID column and Use product reference as key is off, every row becomes a new product. For updates, always provide the ID or the reference.
- Categories are replaced, not added. The Categories (x,y,z...) column sets the full list of categories for the product. If you enter one, the product disappears from the others. A name the store does not know may create a new category, so IDs are safer.
- Images multiply. Re-importing with an image URL column adds the images again. Set Delete existing images to 1, or do not map that column at all.
- Options that delete data. The "Delete all … before import" switch wipes the existing records of that type. Leave it off when updating.
- Encoding and separators. Save the file as UTF-8, otherwise accented characters turn into garbage. The default Field separator is a semicolon and the Multiple value separator is a comma, so a comma inside a category name splits it in two.
- Tax excluded or included. Pick the right price column and check the tax rule. A mix-up means prices off by the full VAT rate.
- Large files. Tens of thousands of rows can exceed the PHP time limit. Split the file, and use Skip thumbnails regeneration when images do not change.
Rule before every import: back up the database, test the file on 5–10 rows and only then import everything. Save the column mapping too, so you do not have to redo it next time.
How do you move products to another category?
Natively you have two options. For a few products, change the categories in the product page (the categories section and the default category). For more, prepare a file with ID and Categories (x,y,z...) columns and import it as an update, remembering that the category list is replaced in full.
After moving products, check two things:
- the default category — it drives the breadcrumb and often the product URL,
- the URLs — if they contain the category name, old links may stop working and you will need 301 redirects.
If your categories are mapped to the Google taxonomy, review that mapping too, as explained in the guide to Google Merchant Center and PrestaShop.
How do you fill in features and attributes in bulk?
You define features (material, case colour) and attributes (size, variant colour) in Catalog → Attributes & Features. To assign them to many products at once, use the import:
- Features — the
Feature (Name:Value:Position:Customized)column, for exampleMaterial:Cotton:1:0; separate several features with the multiple value separator. A feature that does not exist is created, so a typo in the name gives you a new, separate feature. - Combinations — a separate "Combinations" import type, with attribute columns in the
Name:Type:Positionformat and values inValue:Position. It needs the ID or reference of the parent product.
Clean up the values first: "cotton", "Cotton" and "100% cotton" are three different values and three filter entries.
Some content does not have to go into every product at all. Shipping, returns or a size guide can live in one shared tab: Shared Product Tabs shows it on all products or only on chosen categories and brands, so you edit it in one place. Badges such as "Bestseller" or "Low stock" work the same way with Product Labels & Badges, which assigns them by rules (categories, brands, a price range, low stock) instead of product by product.
How do you protect your store before bulk changes?
A bulk operation changes hundreds of records in seconds, and so does a mistake. Before you start:
- Back up the database. PrestaShop has Advanced Parameters → Database → DB Backup, although for large databases a backup made by your host is more reliable. We explain how to prepare a backup in the guide to upgrading PrestaShop.
- Export the state before the change. A CSV with IDs and old prices is the fastest way to roll back prices alone.
- Test on a small sample or on a copy of the store, outside peak hours.
- Check the result in the front office: prices with tax, crossed-out prices, category filters and the cart.
Exporting orders to Excel for accounting
Accountants usually ask for a monthly order list: number, date, customer, net amount, VAT, total, payment method and carrier.
Natively you have:
- Orders → Orders → Export — a CSV with the list columns (including ID, reference, customer, delivery country, total, payment, status and date), following the filters you set. It has no tax breakdown and no order lines.
- Advanced Parameters → Database → SQL Manager — your own SQL query with the result exported to CSV. Full freedom, but it requires knowing the database structure, and a mistake in the query means wrong numbers in the report.
- Orders → Invoices — PDF invoices for a chosen period, handy for archiving but not for analysis in a spreadsheet.
In Excel, open the CSV through the text/CSV import with UTF-8 and the semicolon separator; a double-click often breaks accents and dates.
If you export every month, save the query in SQL Manager: the same report is then one click away, and you only change the date range.
Which method should you choose?
| Task | Native in PrestaShop | More convenient |
|---|---|---|
| Enable or disable many products | Bulk actions in the list | native is enough |
| % discount for a category or brand | Catalog price rules | native is enough |
| Increase or change base prices | CSV export and import | mass editor with price rules |
| Change stock and SEO data | CSV import | mass editor |
| Move products to a category | Product page or import | import with category IDs |
| Features and combinations | CSV import | import with a cleaned-up value list |
| Order list for accounting | List export, SQL Manager | export with a column template |
Frequently asked questions
Does PrestaShop have built-in bulk price editing?
Not as an editor. Natively you can set percentage discounts with catalog price rules or change base prices with a CSV import. Comfortable grid editing with price rules and rounding comes from modules.
How do I update products by import without creating duplicates?
Include a product ID column in the file, or enable the option to use the product reference as key. Without it, PrestaShop treats every row as a new product. Test the import on a few rows first.
How can I undo a bulk price change?
If you exported IDs and prices before the change, re-importing that file restores them. Otherwise you are left with restoring a database backup, which also removes new orders, or a module with a change history that lets you undo a specific operation.
How do I export orders with VAT to Excel?
The native order list export has no tax breakdown. You can write a query in the SQL Manager or use an export module where you choose the columns yourself and save a template for your accountant.
Thousands of products and price changes every week? Order development work or get in touch and we will suggest how to simplify it.