How to Bulk Update Jewellery Product Prices in WooCommerce When Gold Rates Change
Introduction
If you’re managing a jewellery store on WooCommerce, the question of how to update prices across your entire catalogue when gold rates change is one of the most practically important operational questions you’ll face. There are several approaches — ranging from completely manual to fully automated — and choosing the right one depends on your catalogue size, technical comfort, and how much time you’re willing to spend on pricing admin.
This guide covers every available method for bulk updating jewellery prices in WooCommerce, from the most basic to the most efficient, so you can choose the approach that fits your store.
The Problem with Standard WooCommerce Bulk Editing
WooCommerce does have a built-in bulk editing feature. From Products → All Products, you can select multiple products and use the “Bulk actions” dropdown with “Edit” to update prices across many products at once.
The problem for jewellery stores is that this feature lets you set a fixed price or apply a percentage change — it doesn’t understand the jewellery pricing formula. If gold goes up by ₹150/gram, the correct price increase for each product depends on how much gold it contains. A 10-gram item needs a ₹1,500 increase. A 25-gram item needs a ₹3,750 increase. WooCommerce’s bulk edit can’t do this calculation — it treats all products identically.
You’d need to manually calculate the correct new price for every product and enter them individually, which defeats the purpose of bulk editing.
This is why jewellery stores need a purpose-built pricing approach, not a generic bulk edit tool.
Method 1: The ITS Jewellery Price Plugin (Recommended)
The cleanest and most efficient solution is the ITS Jewellery Price Plugin, which automates the entire bulk update process by storing the pricing formula per product rather than a fixed price.
How It Works
When you set up a product with the plugin, you enter:
- Metal type (e.g., Gold 22K)
- Metal weight (e.g., 18 grams)
- Making charge (flat per gram or percentage)
- Wastage percentage
The plugin stores these values. The product price is calculated automatically from these inputs combined with the current metal rate.
When you update the metal rate, the plugin immediately recalculates the price for every product that uses that metal — applying the correct formula to each one based on its specific weight and charges. A 10-gram product gets the right increase for 10 grams. A 25-gram product gets the right increase for 25 grams.
The Daily Update Process
- Go to Jewellery Price → Metals
- Change the Gold 22K rate from yesterday’s ₹6,180 to today’s ₹6,350
- Click Save
- Every 22K gold product in your catalogue updates simultaneously
Time taken: under 90 seconds. Products updated: all of them, correctly. No spreadsheets, no manual calculation, no data entry errors.
This is genuinely the only approach that scales to any catalogue size without proportional time investment.
Method 2: WooCommerce CSV Import/Export (Semi-Automated)
If you’re not yet using the ITS plugin, a CSV workflow is the next most manageable approach for stores with medium-sized catalogues.
The Process
Step 1: Export your product catalogue
Go to WooCommerce → Products → Export (or use the built-in WooCommerce product exporter at WooCommerce → Products → All Products → Export).
Export with columns including: Product ID, Name, Regular Price, and any custom meta fields you use for weight/making charges.
Step 2: Update prices in a spreadsheet
Open the exported CSV in Excel or Google Sheets. For each product, manually calculate the new price: code Codedownloadcontent_copyexpand_less
New Price = (Metal Weight × New Rate) + Making Charge + Wastage
If you’ve been storing metal weight and making charges as custom fields in your export, you can set up a spreadsheet formula to calculate this automatically. Something like: code Codedownloadcontent_copyexpand_less
=B2*$E$1 + C2 + (B2*$E$1*D2/100)
Where B2 is metal weight, E1 is today’s gold rate (entered once at the top), C2 is flat making charge, and D2 is wastage percentage.
Step 3: Import the updated CSV
Go to WooCommerce → Products → Import and upload your updated CSV, mapping the price column to the Regular Price field.
Limitations of the CSV Approach
This method is workable but has significant drawbacks:
- Export/calculate/import cycle takes 20–45 minutes minimum, every day
- You need to maintain a well-structured spreadsheet with accurate weight and charge data for every product
- Import errors can corrupt prices silently
- Variable product variants require a more complex CSV structure
- It doesn’t scale — a 500-product catalogue takes as long to export and re-import as a 50-product one
Use this method as a temporary solution while setting up the ITS plugin, or for very occasional one-time bulk price changes.
Method 3: WooCommerce REST API with a Custom Script
For technically capable store owners or developers, WooCommerce’s REST API provides a programmatic way to update product prices.
The Approach
Write a script (Python, PHP, or JavaScript with Node.js) that:
- Fetches all jewellery products via the WooCommerce REST API
- For each product, retrieves the stored metal weight and making charges from custom meta fields
- Calculates the new price based on the current gold rate
- Sends an update request back to the API to set the new price
Example Python Snippet
code Pythondownloadcontent_copyexpand_less
import requests
from requests.auth import HTTPBasicAuth
# WooCommerce API credentials
url = "https://yourstore.com/wp-json/wc/v3/products"
auth = HTTPBasicAuth('consumer_key', 'consumer_secret')
# Today's gold rate
gold_rate_22k = 6350 # ₹ per gram
# Fetch all products
products = requests.get(url, auth=auth, params={'per_page': 100}).json()
for product in products:
# Retrieve stored meta fields
meta = {m['key']: m['value'] for m in product.get('meta_data', [])}
weight = float(meta.get('gold_weight', 0))
making = float(meta.get('making_charge', 0))
wastage_pct = float(meta.get('wastage_pct', 0))
if weight > 0:
metal_value = weight * gold_rate_22k
wastage = metal_value * (wastage_pct / 100)
new_price = metal_value + making + wastage
# Update the product price
requests.put(
f"{url}/{product['id']}",
auth=auth,
json={'regular_price': str(round(new_price))}
)
print(f"Updated {product['name']}: ₹{new_price:.0f}")
Limitations of the API Approach
- Requires technical skill to write and maintain the script
- You still need to store metal weight and charges as custom meta fields on each product
- No built-in UI — the script runs from a terminal or scheduled task
- Doesn’t include the price breakup display feature
- Variable products require additional logic to handle correctly
- Any WooCommerce update could potentially break your API integration
This approach is viable for developers who want full control, but for most jewellery store owners it’s overkill when the ITS plugin does the same thing with a better UI and additional features.
Method 4: Third-Party Price Update Plugins
Several WooCommerce plugins offer bulk price update features — tools like “WooCommerce Bulk Price Change” or “Dynamic Pricing” extensions.
Why These Don’t Work Well for Jewellery
These tools are designed for retail scenarios where you want to apply blanket percentage increases or set prices above/below a fixed amount. They don’t understand jewellery-specific pricing formulas.
For example, if gold rises 2.4% today, applying a 2.4% price increase to all jewellery products equally will give wrong results for products with high making charges — because the making charge doesn’t change when gold changes, so the actual price increase percentage is lower than 2.4% for those products.
These tools are useful for seasonal promotions and blanket markdowns, not for daily precious metal rate adjustments.
Setting Up the ITS Plugin for Maximum Efficiency at Scale
If you’re managing a large catalogue (100+ products) and setting up automated pricing for the first time, here’s the most efficient approach:
Phase 1: Prepare Your Data
Before touching WooCommerce, export your product list to a spreadsheet and populate it with:
- Product name and WooCommerce product ID
- Metal type (22K, 18K, Silver, etc.)
- Metal weight (grams)
- Making charge per gram (or percentage)
- Wastage percentage
If you don’t have this data readily available, you’ll need to gather it from your manufacturer’s specifications or your existing pricing records. Getting this data organised upfront is the hardest part of the setup — but it only needs to be done once.
Phase 2: Configure Products in Batches
Work through your catalogue by category:
- All 22K gold necklaces → then pendants → then earrings → then bangles
- Then 18K gold products
- Then silver products
Grouping by metal type keeps you focused and reduces context-switching. Most products in the same category will have similar making charges, so you can often copy-paste values and only adjust the weight.
Speed benchmarks:
- Simple products with consistent making charges: ~1–2 minutes per product
- Variable products with multiple weights: ~5–10 minutes per product
- 100 simple products at 2 minutes each: ~3.5 hours total, done in a single afternoon
Phase 3: Verify a Sample Before Full Rollout
After configuring 20–30 products, do a test rate change. Update Gold 22K by ₹100, observe the price changes across those products, verify a few manually, then revert the rate. This confirms the system is working correctly before you invest time in the remaining catalogue.
Phase 4: The Ongoing Routine
After the initial setup, your daily routine is simply:
- Get today’s rates (from MCX, your supplier, or IBJA)
- Update each metal’s rate in Jewellery Price → Metals
- Save
- Done
That’s it. Your entire catalogue updates in the same 90 seconds whether it contains 50 products or 500.
Handling Price Updates During Market Hours
Gold prices in India are most active during MCX trading hours (10 AM to 11:30 PM IST). For most retail jewellery stores, updating once in the morning is sufficient. The morning rate from your supplier typically reflects the previous close or the opening of the current session.
Some stores in high-volume markets (jewellery hubs like Zaveri Bazaar, Thrissur, or Jaipur’s Johari Bazaar with many online competitors) update prices twice daily — morning and afternoon — to stay competitive during significant intraday moves.
The ITS plugin handles multiple daily updates without issue. Each update is logged with a timestamp, so your logs accurately reflect intraday rate changes if you update multiple times.
Communicating Price Changes to Customers
When gold rates move significantly, customers who’ve been watching products may notice price changes. Proactive communication can turn a potential frustration into a positive touchpoint.
Consider:
- A visible note on product pages: “Prices updated daily based on today’s gold rate of ₹[rate]/gram”
- A price alert feature (via a wishlist plugin) that notifies customers when a product they’ve saved drops in price
- Occasional social posts during significant gold rate movements explaining how this affects your pricing — this positions you as transparent and informed
The
shortcode showing live rates on your site also serves this communication function passively — customers can always see what rate underpins your prices.Conclusion
The right bulk price update approach for a jewellery store depends on your catalogue size and operational needs. For anything beyond a handful of products, the ITS Jewellery Price Plugin is the clear choice — it’s the only method that stores the pricing formula per product and applies it correctly to every item simultaneously when you update a single rate.
The alternatives (manual editing, CSV workflow, custom API scripts) are either too slow, too error-prone, or too technically demanding to serve as a sustainable daily operation for a growing jewellery store.
Automate your entire catalogue price updates with one click →



