Generate a WooCommerce bulk edit plugin for variable products
Editing variable product attributes in WooCommerce is slow. The built-in bulk actions on the variations screen help for small changes, but once you have 200 variations across 30 products and you need to raise prices by 7% or adjust stock across a whole size set, the default UI is an afternoon of clicking.
A custom bulk edit plugin fits your real workflow. You describe the fields you want to edit in bulk, the filters you want to apply (by category, tag, price range, attribute), and how the preview should look before you commit. We generate a plugin that adds a single admin page tuned to your exact job — not a generic grid that tries to be everything.
Why generate it instead of installing an existing plugin?
Smart Manager for WooCommerce, WP Sheet Editor, and similar commercial plugins are excellent general-purpose tools. They also carry a price tag (typically €100-200/year) and a learning curve, and they expose every field to every editor by default — which is sometimes more than you want.
If your team has a repeatable workflow — say, a weekly price adjustment on winter items, or a seasonal SKU reset — a plugin tailored to that workflow is faster to use and easier to onboard new staff onto. Two columns instead of fifty. A "preview 10 changes" button before the big update. A CSV export of the diff for your records.
For shops with less than 500 variations, a generated plugin running entirely on your own server, in your own wp_posts, often performs better than a generic JS-heavy grid. No external asset payload, no CDN dependencies, no monthly per-seat pricing.
Example prompt
This is the kind of description that generates this plugin. You can start from it and tweak whatever you need before hitting generate.
Plugin name: Acme Bulk Variation Editor
Admin page under Products > Bulk Edit Variations with:
1. Filter row: category (select), tag (select), stock status (all / in-stock / out-of-stock), price range (min, max).
2. Click "Load" → fetches matching variations via AJAX into a simple HTML table (id, parent product, attributes summary, current price, new price, current stock, new stock).
3. Each row editable inline (price, stock only).
4. Bulk actions over selected rows: +X%, -X%, set exact price, set exact stock.
5. "Preview changes" button shows a diff modal before saving.
6. "Apply" button commits via a single REST endpoint that updates in chunks of 50 to avoid PHP timeouts.
Uses WC_Product_Variation CRUD (HPOS-safe, although variations still live in posts).
Capability: manage_woocommerce. Nonce on every AJAX call. No frontend footprint. Uninstall removes the log option.What the generated plugin typically includes
- Admin page registered under the Products menu with a dedicated capability check
- AJAX endpoint that queries variations in chunks and returns them as JSON
- In-page edit grid built with plain WP admin styles (no JS framework)
- Preview step showing the diff before any DB write
- Progress indicator on apply using a chunked PATCH approach
- Activity log stored as an option (or custom table if the shop has 10k+ variations)
- Translation-ready strings for the admin labels
Add CSV export, add attribute-level filters, add a scheduled bulk job that runs at midnight — every extra feature is one line in the prompt.
Frequently asked questions
Will this scale to 10,000 variations?
The generated plugin is tested with up to 2,000 at a time out of the box. For heavier shops, ask for a background job queue using Action Scheduler — the plugin then processes the changes in batches without blocking the admin.
What about simple products (not variations)?
Default is variations only. If you also want to edit parent variable products or simple products, describe that. The plugin will add a "product type" filter on the loader.
Is there an undo?
We store the previous values in the activity log so you can roll back a batch manually. Ask for a native "rollback" button if you want one-click undo — costs a bit more in DB writes but works.
Does it handle price currency conversion?
By default no — it operates on whatever currency field the shop uses. Multi-currency plugins like CURCY add their own hooks that a generated plugin can integrate with. Mention it in the prompt.