Most supplier feeds give you the supplier's price, not yours. The wholesale or cost column is what you pay; the price your customers see has to include your margin, payment fees, shipping you absorb and, depending on your tax settings, VAT. WooCommerce has no built-in “markup rule” that turns one into the other, so store owners usually end up doing the maths in a spreadsheet, editing prices by hand, or applying a rule during import. This guide covers how to choose the right rule, three ways to apply it in WooCommerce, and the mistakes that quietly erase your margin when the supplier updates prices.
If you want to update stock and prices from the supplier in general, start with how to auto-sync supplier stock and prices in WooCommerce. This guide is only about the price you sell at.
Markup or margin? Get the formula right first
The two words are often used as if they meant the same thing. They don't, and mixing them up is the most common pricing mistake we see.
- Markup is calculated on cost:
price = cost × (1 + markup %). A €10.00 item with a 40% markup sells for €14.00. - Margin is calculated on the selling price:
price = cost ÷ (1 − margin %). To keep a 40% margin on the same €10.00 item, you have to sell it for €16.67.
| Markup on cost | Margin it gives you | Price for a €10.00 cost |
|---|---|---|
| 25% | 20% | €12.50 |
| 42.9% | 30% | €14.29 |
| 66.7% | 40% | €16.67 |
| 100% | 50% | €20.00 |
If your accountant or your business plan talks about margin, convert it to a markup before you put it into a pricing rule: markup = margin ÷ (1 − margin). A 30% target margin is a 42.9% markup, not 30%.
Check which price the supplier is actually sending
Open the supplier's feed or spreadsheet and look at real values before you decide on a percentage. Feeds often contain more than one price field, and they rarely label them the way you would.
- Cost, net or wholesale price. What you pay. This is the column a markup should be applied to.
- Recommended retail price (RRP or MSRP). Already includes the supplier's suggested margin. Applying your markup on top of it usually prices you out of the market. Some suppliers also require you to respect a minimum advertised price, so check your agreement.
- With or without VAT. If the supplier's cost excludes VAT and your store shows prices including VAT, your rule has to account for that, or WooCommerce has to add it. In WooCommerce → Settings → Tax, the option Prices entered with tax tells WooCommerce whether the prices you store already include tax. Decide this once and build the rule around it.
- Number format. A price like
1.299,00uses a comma as the decimal separator. Make sure it is read as 1299.00 and not as 1.299 before any rule runs.
Choose a rule that fits your catalog
A single percentage is simple, but it is rarely right across a whole catalog. These are the rule types store owners use most, often in combination:
| Rule | Example | Good for |
|---|---|---|
| Percentage markup | cost + 35% | Small catalogs with similar prices |
| Multiplier | cost × 1.8 | Suppliers that quote a factor, or doubling low-cost items |
| Fixed amount | + €3.00 per product | Covering a per-order cost such as packaging or payment fees |
| Tiered by cost | up to €20: +55%; up to €50: +46%; above €450: +11% | Wide price ranges, where cheap items need a higher percentage to be worth selling |
| By category | spare parts × 3; furniture + €25 | Product groups with different competition or handling costs |
| Rounding | end in .99 or .90 | Clean shelf prices after the maths produces €41.52 |
Tiered rules deserve a closer look. A flat 30% on a €4 item earns you €1.20, which may not cover the payment fee and the time to pack it. The same 30% on an €800 item can make you more expensive than every competitor. A table that starts high and tapers down handles both. Here is how a tiered table with rounding to .99 works out on real numbers:
| Supplier cost | Tier markup | Calculated | Rounded to .99 |
|---|---|---|---|
| €12.00 | 55% | €18.60 | €18.99 |
| €27.50 | 51% | €41.52 | €41.99 |
| €48.00 | 46% | €70.08 | €69.99 |
| €96.00 | 22% | €117.12 | €116.99 |
| €300.00 | 13% | €339.00 | €338.99 |
Notice that rounding to the nearest .99 can move a price down as well as up. That is usually what you want for shelf prices, but if your margin on cheap items is thin, check the lowest tier after rounding.
Method 1: Calculate prices in a spreadsheet and import them
This needs no plugin and works well for a few hundred products that change occasionally.
- Export your products in Products → Export, so every row keeps its ID and SKU.
- Add the supplier's cost next to each row by looking up the SKU in the supplier file, for example with
XLOOKUPorVLOOKUP. - Write your rule in a new column. A 35% markup rounded to .99 is
=ROUND(C2*1.35,0)-0.01. For tiers, useIFSor a small lookup table of cost brackets and percentages. - Copy the results as values into the Regular price column. Leave Sale price empty unless you are deliberately running a sale.
- Import the file in Products → Import with Update existing products ticked, so rows are matched by ID or SKU instead of creating duplicates.
Keep the spreadsheet with the formula. Next time the supplier sends new costs, paste them in and the prices recalculate. If the import fails, our WooCommerce CSV import troubleshooting guide covers encoding, delimiters and price formats.
Method 2: Bulk edit prices inside WooCommerce
For a quick, one-off change, WooCommerce's bulk editor can raise prices without a file. Go to Products → All Products, filter to the products you want (for example one category), tick them, choose Edit from Bulk actions and click Apply. In the Price dropdown, choose Increase existing price by (fixed amount or %) and enter, for example, 10%.
Two warnings. First, it changes the price you already have, not the supplier's cost, so running it twice adds the markup twice. Second, the next time you import or sync supplier prices, the edited prices are replaced. Bulk edit is fine for a seasonal adjustment; it is not a pricing rule. The price fields in this editor apply to simple products. For variable products, open the product and use the bulk actions on the Variations tab, such as Increase regular prices (fixed amount or percentage), or use a file import.
Method 3: Apply the rule during every import or sync
If the supplier changes prices regularly, the only setup that stays correct is one where the rule is applied each time new prices arrive. Then the supplier's cost is the input, your rule produces the selling price, and nobody has to remember to run a formula.
General-purpose importers can usually transform the price field while importing, through built-in options or custom functions; check your importer's documentation for how it handles percentages, tiers and rounding. Whatever tool you use, check these points before relying on it:
- The rule reads the cost field, not a price that already contains your markup.
- It runs on every scheduled update, not only on the first import.
- It applies to variations, not only the parent product.
- It has a safety limit, so a supplier typo (€1,999 instead of €19.99) does not go live unchecked.
- Prices you set by hand on products outside the feed are left alone.
Mistakes that quietly cost you margin
- Applying markup to RRP. Your prices end up far above the market, and conversion drops without an obvious reason.
- Forgetting VAT. A 25% markup on a net cost, displayed as a VAT-inclusive price, can leave almost nothing after tax.
- Stale manual prices. The supplier raised costs by 8% last month; your prices did not move. Check margins on your best sellers after every supplier price list.
- Double markup. Running a bulk increase or a formula on prices that already include your margin.
- No minimum for cheap items. A percentage alone can produce a selling price that does not cover the cost of handling the order. A fixed amount or a higher low-price tier fixes it.
- No record of the rule. Write the rule down. When a price looks wrong, you can then tell a supplier change from a mapping mistake.
Using FeedPup for supplier pricing rules
FeedPup is our tool for importing supplier XML and CSV feeds into WooCommerce and keeping them in sync, so we built pricing rules into the sync itself. Install the free plugin from WordPress.org, connect in WooCommerce → FeedPup, add the supplier's feed URL and confirm which field is the supplier price.
On the Growth and Pro plans, the feed's price rules can:
- add a percentage markup, multiply the supplier price, or add a fixed amount;
- use different percentages by supplier price range, entered one line per bracket, such as
20:55for “up to 20, add 55%”, with*for everything above; - apply category-specific rules, such as
spare parts = x3orarmchairs = +25; - round the final price to end in .99 or .90;
- skip products whose calculated price is above a highest allowed price you set, as a safety limit.
The rules run on every scheduled sync, every 6 hours on Growth and every 2 hours on Pro, so new supplier costs become new selling prices without a spreadsheet step. On the free Basic plan and on Starter, prices are copied from the supplier as they are. The free plan lets you test the feed with up to 100 draft products before you pay. FeedPup only updates products it imported and never deletes WooCommerce products. Plans and limits are on FeedPup for WooCommerce and the pricing page.
A quick checklist before you go live
- Confirm which supplier column is your cost and whether it includes VAT.
- Convert any target margin into a markup.
- Write down the rule, including tiers, fixed amounts and rounding.
- Test it on five products: one cheap, one expensive, one variable product, one on sale and one from a different category.
- Compare the results with two competitors' prices for the same products.
- After the first supplier price update, check the same five products again.
