Use WooCommerce’s built-in bulk editor for a small, clearly filtered group; use CSV when you need to review or calculate many rows in a spreadsheet; and use the REST API or WP-CLI when price changes must be repeatable and logged. Treat regular prices, sale prices, parent products, and individual variations as separate decisions. Export a reference copy, change only the intended records, and verify the result on the storefront before announcing new prices.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
Choose the right bulk-pricing method
The safest method depends less on the number of products than on how precisely you need to select them and how often the operation will be repeated. A one-time change to a filtered group is usually quickest in the WordPress dashboard. A catalog-wide repricing exercise is easier to inspect in a CSV file. Integrations and recurring rules justify an authenticated API or command-line process.
As an Amazon Associate I earn from qualifying purchases.
| Method | Best fit | Price logic | Technical overhead | Main control |
|---|---|---|---|---|
| Dashboard bulk editor | Focused groups selected in Products > All Products | Fixed sale price, adjustment to an existing sale price, or sale price derived from regular price | Lowest | Review the filter and selected count immediately before Update |
| Built-in CSV | Large catalogs, spreadsheet review, formulas, or scheduled sale dates | Direct values in the relevant product columns | Moderate | Keep IDs or SKUs matched and retain the export as a reference |
| REST API | Applications, integrations, and repeatable batch jobs | Fields such as regular_price and sale_price |
High | Authentication, permissions, request logging, and error handling |
| WP-CLI | Server-side scripts, deployments, and administrator-run batches | Product command options including --regular_price and --sale_price |
High | Script review, staged execution, and a documented rollback |
| Spreadsheet-style extension | Frequent filtering, formulas, variation editing, CSV exchange, or scheduled repeat work | Depends on the extension’s supported fields and operations | Varies | Check compatibility, permissions, pricing, and backup procedures before relying on it |
Do not begin by selecting every product and deciding what the operation means afterward. First define the target set, the price field, the calculation, and whether variations are included. Those four decisions prevent most accidental price changes.
Bulk edit prices in the WooCommerce dashboard
WooCommerce core includes a dashboard bulk editor under Products > All Products. It is the lowest-overhead option when the products can be selected confidently using the list filters or individual checkboxes.
#1 Best Overall
Step-by-step dashboard workflow
- Open Products > All Products.
- Filter the list by the attributes that define the change, such as product status, category, or another available list filter. If the set is small, tick products individually instead.
- Confirm the selected rows and the total selected count. Check that drafts, discontinued items, or products outside the promotion are not included.
- Open Bulk Actions, choose Edit, and apply the action.
- Set the intended regular-price or sale-price operation in the bulk-edit panel.
- Review the values and the selected count again, then click Update.
- Open several changed products on the storefront and in the product editor. Check the displayed price, sale badge, sale dates if applicable, and variation choices before treating the batch as complete.
The dashboard is deliberately simple: it applies the operation to the rows you selected. It is not a substitute for checking whether your filter captured every intended product or whether a parent product and its variations are represented separately.
What the sale-price controls mean
The built-in editor supports several different interpretations of “change the sale price.” Choose the one that matches your pricing rule:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →- Replace with a fixed value: enter the sale price you want each selected product to receive. This is appropriate when all selected items should share one sale amount, but it can be inappropriate when their regular prices differ substantially.
- Increase or decrease the existing sale price by a fixed amount: use this when the current sale price is the baseline and the same currency adjustment should apply to each selected item.
- Increase or decrease the existing sale price by a percentage: use this for proportional changes to sale prices that already exist. Decide in advance how rounding should be handled and inspect representative products afterward.
- Derive the sale price from the regular price: use this when the promotion is defined relative to the current regular price rather than the old sale price. The editor can calculate the sale value from the regular price according to the operation you select.
Leaving the derived sale-price value blank, or entering 0, removes the sale price for the selected products. Treat that control as destructive: a blank or zero is not “leave unchanged” when you are using the derived sale-price operation.
How to make a percentage change safely
Before applying a percentage operation, decide whether the percentage should affect existing sale prices or be calculated from regular prices. These are different bases. A product with a regular price of 60 and an existing sale price of 45 will produce different results if you reduce the existing sale price by 10 percent versus setting a sale price based on 10 percent below the regular price.
- Write the intended rule in plain language before opening the editor, for example, “set every selected item’s sale price to 20 percent below its regular price.”
- Test the rule mentally on a high-priced item, a low-priced item, and a product with no current sale price.
- Use a small selected group first when the operation is unfamiliar.
- After updating, inspect the stored regular and sale values, not only the price shown to shoppers.
Use the built-in CSV importer for spreadsheet-scale updates
WooCommerce’s built-in CSV tool is designed for importing, exporting, and bulk-updating products. It is usually the better choice when a spreadsheet makes the target rows, formulas, and exceptions easier to review than a long product-list selection. WooCommerce places Import and Export beside Add new product in the products area.
Export before editing
- Go to Products > All Products and choose Export.
- Export the products that belong to the pricing exercise, or export the full catalog when the rule depends on reviewing all products.
- Save the untouched file with a date and a description of the intended change. This is your reference copy if you need to compare values or restore them manually.
- Open a working copy in a spreadsheet application. Do not sort or delete identifier columns unless you are certain the importer can still match every row.
An export contains identifying and commercial information such as the product title, price, stock, status, and other product details. Keeping that context makes it easier to catch a row that was accidentally included or excluded.
Free tools Windows power users keep installed
One-click scans. No signup required.
Edit only the relevant price fields
Keep product IDs or SKUs paired with the correct row. Product titles are useful for human review, but they should not be your only matching key because titles can be duplicated or edited. Change the regular-price and sale-price columns required by your rule and leave unrelated fields untouched.
- For a uniform new regular price, enter the fixed value only for the intended records.
- For a percentage increase, calculate from the correct baseline in a separate spreadsheet column, review the results, then copy the final values into the WooCommerce price column.
- For a sale derived from regular price, calculate the sale value from the edited regular value if that is what your promotion requires.
- For products that should have no sale, use the importer’s documented empty-value behavior deliberately and test it on a small file first; do not assume that an empty cell always means “remove.”
Spreadsheet formulas are useful for review, but they can introduce rounding, locale-specific decimal separators, or currency symbols that the importer does not expect. Keep cells in the format accepted by your store, and inspect the final CSV as plain data before importing.
Import the update
- Return to Products > All Products and choose Import.
- Upload the edited CSV and use the option to update existing products when prompted.
- Map the columns to the corresponding WooCommerce fields. Confirm that the identifier column maps to the existing product records rather than creating unrelated new products.
- Review the import summary and any skipped or failed rows.
- Open representative simple products, parent products, and variations, then check their storefront presentation.
CSV is especially useful for scheduled sale pricing because the built-in tool documents sale-date fields alongside product updates. Keep the start and end dates in the store’s expected format and verify the site’s timezone before relying on a scheduled promotion.
Rank #2
Price variable products and variations deliberately
Variable products add a scope decision that does not exist for a simple product. A parent product can describe the option set, while the purchasable prices live on individual variations. Changing a parent row does not automatically prove that every variation now has the intended regular and sale prices.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallDecide which level should change
- Parent only: change the catalog-level information when the parent value is the only value your theme or workflow uses. Confirm that this is actually how the store calculates and displays prices.
- Individual variations: change the variation rows when each size, edition, platform, or other option has its own price.
- Parent and variations: update both only when your catalog rules require both records to carry aligned values. Avoid changing the parent merely to make the list look consistent if the customer-facing price comes from variations.
Review variations in a CSV or extension workflow
When exporting, identify variation rows separately from their parent rows. Keep the variation ID or SKU with the row, and use attributes such as platform or edition to validate that the price was assigned to the right option. The Marketplace bulk-edit documentation describes bulk regular- and sale-price updates for generated variations; the same discipline still applies: filter the intended variations, preview the result, and verify actual purchasable combinations.
Check storefront behavior
Open a variable product and select at least two combinations after the update. Confirm that the displayed price changes to the selected variation, that an on-sale label appears only where intended, and that no variation has an empty or unexpectedly inherited value. A parent page can look correct while one or more combinations remain wrong.
Automate price updates with the REST API
The WooCommerce REST API supports batch product operations and exposes price fields such as regular_price. It is appropriate when another system supplies prices, when the same rule runs repeatedly, or when a dashboard and spreadsheet process would be too manual.
Plan the batch before sending it
- Define the source of truth for each product’s identifier. Use stable product IDs or a controlled ID-to-SKU map rather than matching on titles.
- Separate simple products, parent products, and variations in your selection logic.
- Decide whether a missing sale price means “leave unchanged” or “remove the sale.” Encode that meaning explicitly in the payload and test it on a small batch.
- Store the old and new values, the operator or job name, the timestamp, and the response for each record.
- Throttle or split large batches according to the store’s hosting capacity and API limits, and stop when error rates rise.
Use fields that match the intended change
Send regular_price when changing the regular value and sale_price when changing the sale value. Do not send unrelated product fields in a pricing-only job unless the integration requires them. A narrow payload reduces the chance of overwriting descriptions, inventory settings, or tax information.
Authentication and permissions are part of the implementation, not optional details. Use credentials with only the access the job needs, keep them out of spreadsheets and front-end code, and test the batch against a staging or tightly limited set when available.
Run repeatable changes with WP-CLI
For administrators who work on the server, the WooCommerce CLI product command exposes --regular_price and --sale_price. CLI is useful for deployment scripts, controlled maintenance windows, and jobs driven by a versioned file or database query.
Operational pattern
- Generate and review the list of product or variation IDs that meet the rule.
- Write the proposed old and new values to a log before changing anything.
- Run the product update command for a small sample and inspect the resulting products.
- Process the remaining IDs in manageable batches.
- Record failures separately and retry only after identifying why they failed.
- Run a post-update query or export to compare the stored values with the intended result.
Do not treat a successful process exit as proof that every price changed correctly. A script can finish while skipping invalid IDs, applying a wrong filter, or updating parents instead of variations. Logging each target and response gives you an audit trail and a basis for correction.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.When a spreadsheet-style extension is worth considering
An extension can be practical when native CSV editing is too slow but API or CLI development is disproportionate. Spreadsheet-style interfaces commonly add filters, formulas, direct variation editing, CSV exchange, and scheduled or repeatable operations. Those features are most valuable for catalogs where staff repeatedly adjust related groups and need to see many fields at once.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →- Confirm that the extension edits the exact product types you use, including generated variations.
- Check whether its percentage and fixed-amount operations use the same price basis you expect.
- Verify how it handles blank, zero, and inherited sale values.
- Check permissions, backups, import limits, compatibility with your WooCommerce version, and the extension’s current pricing separately.
- Keep an export or other recoverable reference before the first large operation.
Verification and rollback checklist
Price changes affect what customers see immediately, so verification should be part of the operation rather than an afterthought.
- Selection: compare the final target count with the number you expected. Investigate a zero count or an unexpectedly large count before proceeding.
- Values: compare regular and sale prices on a low-priced item, a high-priced item, an item with no previous sale, and an item with an existing sale.
- Structure: check at least one simple product, one variable parent, and several individual variations when the catalog contains them.
- Display: view product pages, category listings, and the cart. Confirm that sale badges, strike-through prices, and variation selectors show the intended values.
- Dates: for scheduled sales, verify start and end behavior using the store’s timezone and a product whose dates are easy to identify.
- Record: save the export, filter definition, spreadsheet formula or script version, and update log.
If the result is wrong, stop further automation first. Use the saved export or log to identify the affected IDs and restore only those records. A targeted correction is safer than importing an entire catalog again with uncertain mappings.
Common failure modes and fixes
The wrong products were selected
Cause: a broad filter, a forgotten status, or pagination that hid the true selection. Fix: cancel before updating when possible, reproduce the selection in a fresh list, and compare the selected count with an independent export or count.
A percentage produced unexpected prices
Cause: the operation used existing sale prices when you expected regular prices, or vice versa. Fix: write down the calculation base, test it on three representative products, and use CSV or a scripted calculation when the rule needs explicit formulas.
Sale prices disappeared
Cause: a blank or zero was entered in the derived sale-price control, which removes the sale price. Fix: restore the intended sale values from your reference export, then rerun the operation with the correct field and a small sample.
Variation prices did not change
Cause: only the parent products were selected or imported. Fix: identify the variation rows and update them explicitly, then test several attribute combinations on the storefront.
The CSV created or skipped products
Cause: identifiers were removed, altered, or mapped incorrectly. Fix: start from a fresh WooCommerce export, preserve IDs or SKUs, use the existing-product update option, and inspect the importer’s skipped-row report.
The API or CLI job partly completed
Cause: invalid identifiers, permission failures, timeouts, or a script that did not record per-item responses. Fix: stop the job, compare the log with a current export, retry only failed IDs, and keep a record of the corrected values.
Recommended Free Tools
A practical decision sequence
- Define scope: list the categories, statuses, product types, and variations that should change.
- Define the field: choose regular price, sale price, or both.
- Define the rule: fixed value, fixed amount, percentage adjustment, or a sale derived from regular price.
- Choose the tool: dashboard for a focused set, CSV for broad review, API or CLI for repeatable automation, and an extension when spreadsheet-style control is needed repeatedly.
- Capture a reference: export before editing and retain the filter, formula, script, or payload.
- Run a sample: update a small, representative group and verify stored and storefront values.
- Complete the batch: process the remaining records with logging and explicit variation handling.
- Verify and communicate: check product pages, cart behavior, sale dates, and the final count before publishing the promotion.
For most stores, this sequence is safer than trying to force every price change through one tool. WooCommerce’s native editor is fast for focused work, CSV keeps large changes visible, and API or CLI workflows earn their complexity when the process must be repeatable and auditable.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




