How to Sell Cheese by Weight in WooCommerce

Picture a regular at a physical cheese counter. They point at the wheel, say “give me about 400 grams,” and walk away happy two minutes later. Now picture trying to replicate that same simple moment on your WooCommerce store. Suddenly it’s not simple at all, is it?
That gap between “how cheese is actually sold” and “how WooCommerce expects products to be sold” is the whole reason this guide exists. WooCommerce, by default, wants one product, one fixed price. Cheese doesn’t play by that rule. A wedge of aged cheddar isn’t a single SKU sitting on a shelf. It’s a wheel that gets cut to order, priced by how much ends up on the scale.
Let’s walk through how to actually build that experience properly, without turning your product catalog into a maintenance nightmare.
Where things typically go wrong first
Before getting into the fix, it helps to see why the common shortcuts don’t hold up.
Some shops create a separate product variation for every weight they sell. Twenty cheese types, each with six weight options, and suddenly you’re maintaining 120 individual variants. Raise your price on one cheese and you’re editing six entries just to keep it consistent. That’s a lot of busywork for something that should be a single number.
Others try turning “quantity” into a stand in for grams, so a customer types 500 into the quantity box meaning 500 grams. Almost nobody understands this on first glance, and it breaks the way carts normally display item counts, which just adds confusion at the exact moment you want the checkout to feel effortless.
And then there’s the classic “contact us for pricing” approach, where anything custom weight related just gets pulled off the automated path entirely. That might feel safer, but it quietly kills your conversion rate, and now someone on your team is manually pricing orders that a plugin could have handled in seconds.
None of these are really solutions. They’re patches on a system that was never built to think in grams and kilograms to begin with.
Why a dedicated plugin changes the equation
Here’s the thing that makes the rest of this guide actually work: you need a product type in WooCommerce that treats weight as the starting point, not something bolted on afterward.
That’s precisely what Weight Based Products for WooCommerce does. It gives you a genuine weight priced product type, so instead of forcing cheese into WooCommerce’s fixed price mindset, the plugin builds pricing, cart behavior, and stock tracking around the idea that the final price depends on how much the customer chooses. Once that foundation is in place, everything else described below becomes a configuration decision rather than a coding project.
Setting it up step by step
Getting your base price right
Create a new product and choose the Weight Based product type instead of the standard Simple product. From there, set your price per kilogram, or per pound if your customer base thinks in those terms. Try it with a real number. Say your Parmigiano Reggiano runs $48 per kilo. A shopper who selects 300 grams should instantly see $14.40 on screen, and someone who bumps it up to a full kilo sees $48.00, updating live as they adjust the amount. No page reload, no guessing.
Choosing how customers select their amount
You’ve got two ways to let people order, and honestly, different cheeses probably call for different modes.
If you’re selling pre cut portions like 250 gram wedges or 500 gram blocks, Fixed Packs mode fits naturally. You define your available sizes, they show up as clickable cards on the page, and shoppers adjust quantity with plus and minus buttons, the same motion they’re already used to from any online store.
If you’re cutting fresh from the wheel to order, Free Weight mode is the better call. Customers move a slider or type a number anywhere within a range you set, say 100 grams up to 3 kilos, and watch the price shift in real time as they land on the amount they actually want.
One more detail worth setting up early: a minimum order weight. Some soft cheeses genuinely can’t be cut below a certain amount without falling apart or wasting product. Set that floor, and below it, Add to Cart simply won’t activate, with a message telling the shopper exactly how much more they need to add.
Letting customers specify how it's prepared
Weight is only half of what a cheese order needs. The rest is preparation, and this is where a lot of stores drop the ball entirely.
Build reusable option groups for things like serving style (whole piece, thin sliced, thick sliced, crumbled), whether the rind stays on or comes off, and a free text field for gift notes or special instructions. Set these up once and attach them across your whole catalog. Mark the important ones as required, and checkout simply won’t proceed until the customer has actually told you what they want. That single feature alone prevents a surprising number of fulfillment mistakes.
Turning single purchases into bigger baskets
Once someone has picked their cheese and their cut, you’re in a great position to suggest something that goes with it. Crackers, a chutney, a small cutting board, a jar of honey, whatever pairs naturally with what they’ve chosen. Attach these as accessories directly beneath the cheese selector, and they ride along in the cart as linked items. If the shopper removes the cheese, the linked extras disappear with it automatically, so the cart never ends up with orphaned add ons that don’t make sense on their own.
Rewarding bigger orders automatically
Buyers ordering for a party or catering an event expect a better rate than someone grabbing a small wedge for tonight’s dinner. Set that up under tiered pricing.
| Order weight | Price per kg |
|---|---|
| Under 500 g | $48 |
| 500 g – 1.9 kg | $44 |
| 2 kg + | $38 |
The nice part is the product page can tell shoppers how close they are to the next discount tier while they’re still deciding, which tends to push people toward adding just a bit more almost without thinking about it.
Keeping stock honest
If you’re selling in Free Weight mode, set a total pool of available product, say 15 kilos of Comté for the week. As orders come in, the maximum on that slider quietly adjusts downward in real time, so nobody can order more than what’s actually left in the case. Add a low stock badge once you drop below a threshold you choose, and returning customers start to notice and act on it, which honestly works in your favor when a popular cheese is running low.
What your team actually sees
None of this changes what happens at checkout in any disruptive way, and that’s deliberate. Everything still runs through WooCommerce’s normal cart and order flow. Each cart line lists the cheese, the exact weight chosen, whatever preparation option was picked, and the price. Order two of the same cheese with the same prep instructions, say for a gift order, and the plugin merges them into one clean line rather than listing near duplicates that look like an error. On the admin side, every weight and option detail shows up right in the order screen and flows into your fulfilment emails automatically, so whoever is cutting and packing the order has everything they need without digging through notes.
Worth the switch?
If you’ve been maintaining a wall of product variations, or fielding “how much is 400 grams of the aged gouda” questions by email, this is the kind of setup that quietly saves hours every week once it’s running. Weight Based Products for WooCommerce is available on the WooCommerce Marketplace, and it’s worth trying on just one or two of your best selling cheeses first to see how it feels before rolling it across your whole catalog.
Have you already tried solving this a different way, maybe with variations or a custom field setup? I’d like to hear what worked and what didn’t, drop it in the comments below.
