Setting up attribute-based pricing in WooCommerce normally means generating a variation for every possible combination of attributes. Four sizes, three materials, two colours — that's twenty-four variation records before you've sold a single item, and every price change means editing them one by one. This tutorial takes the opposite approach: define a small set of pricing rules once, attach them to a product, and let the price calculate at runtime. No variation records, no combinatorial bloat.
By the end you'll have a configurable product whose price updates live as customers select options, with the chosen attributes flowing correctly through cart, checkout, and orders. The walkthrough uses PriceBlueprint for WooCommerce, a free plugin on WordPress.org, but the underlying model — rules instead of combinations — applies regardless of the tool. For the reasoning behind why this scales better, see the rule-based pricing guide.
What Attribute-Based Pricing Means
In the variation model, each combination of attribute values is a stored record with its own price. In the rule-based model, each attribute value carries a price modifier, and the product price is the base price plus whatever modifiers the customer selected. "Size XL adds $10" and "Material Oak adds $25" are rules; an XL Oak item is simply base + 10 + 25. Adding a fifth size adds one rule, not a multiplied set of combinations — the variation bloat article covers why that math gets ugly fast.
Before You Start
You need WooCommerce 6.0+ and at least one global attribute defined, since blueprints are built from global attributes rather than per-product custom ones. Global attributes live under Products → Attributes.
Set Up Global Attributes
Create the attributes that drive your pricing — for a chair that might be Size, Material, and Finish — then add terms to each (Size: S, M, L, XL; Material: Pine, Oak, Walnut). These terms are what your rules will reference, so name them the way customers should see them. Skip this step and the blueprint editor will show you a notice with a direct link to add attributes instead of an empty dropdown.
Step 1 — Create a Price Blueprint
Go to Products → Price Blueprints → Add New. Name the blueprint after the pricing logic, not a single product — "Standard Furniture Pricing," for example — since you'll reuse it across every product that shares this logic.
Add Attribute Rules
Select an attribute, then assign a price add-on to each of its terms. A typical furniture blueprint looks like this:
| Attribute value | Price add-on |
|---|---|
| Size: M | +$0.00 |
| Size: L | +$8.00 |
| Size: XL | +$15.00 |
| Material: Pine | +$0.00 |
| Material: Oak | +$25.00 |
| Material: Walnut | +$40.00 |
The Zero Add-On Base Option
Size M and Material Pine are set to +$0.00 on purpose — every attribute needs a baseline value that doesn't change the price, so the product starts from a sensible configuration. Zero is a fully supported add-on and the correct way to define your base option.
Step 2 (Optional) — Generate Rules Automatically with Quick Setup
Already have a product with the right attributes assigned? Use Quick Setup to generate a blueprint from that product's attributes in one click — it reads the terms and creates a rule for each, which you then adjust. New to the plugin? The Welcome screen also has a one-click Import Demo Data button that installs a sample blueprint and linked product so you can see the whole flow before building your own.
Step 3 — Create a Configurable Product and Assign the Blueprint
Add a new product as usual. In the Product data dropdown, set the type to Configurable Product. Open the PriceBlueprint tab and select the blueprint you created — that single assignment links the product to your pricing rules. No variations to generate.
Set the Base Price
Enter the product's base (regular) price in the standard WooCommerce price field — the figure the attribute add-ons apply on top of. For a chair with a $120 base, an XL Walnut configuration resolves to $120 + $15 + $40 = $175.
Step 4 — Verify the Live Price on the Product Page
Open the product on the front end. You'll see a selector for each attribute and a price that recalculates as selections change. This happens over AJAX, so it works fine even with full-page caching plugins like WP Rocket or LiteSpeed Cache — the cached HTML loads instantly and the price request runs on top of it.
Step 5 — Check Cart, Checkout, and Orders
Add the configured product to the cart and confirm the selections and price carry through. PriceBlueprint records the chosen attribute values at every stage — cart, checkout, the WooCommerce admin order screen, order emails, the Thank You page, and My Account. It's also HPOS-compatible, so it works whether or not your store uses High-Performance Order Storage.
Reusing One Blueprint Across Many Products
This is where the model pays off. Create a second product, set it to Configurable Product, and assign the same blueprint. Both products now share the same pricing rules. When Oak goes up by $5, you edit one rule and every linked product reflects it immediately — no per-product editing. A store with eighty products on one pricing structure maintains one blueprint instead of eighty catalogs.
A Worked Example: Pricing a Chair
With a $120 base price and the rules above, the configurator resolves prices like this:
| Configuration | Calculation | Final price |
|---|---|---|
| M / Pine | 120 + 0 + 0 | $120.00 |
| L / Oak | 120 + 8 + 25 | $153.00 |
| XL / Walnut | 120 + 15 + 40 | $175.00 |
None of these is a stored variation — each is computed at runtime from four rules, and adding a new size or material adds one rule, not a multiplied record count.
Sale Prices and Troubleshooting
Configurable products support sale prices the same way a simple product does, including scheduled dates — shop listings show the strikethrough pair, and the configurator stays sale-aware as selections change. If the blueprint editor shows no attributes, you have no global attributes yet (it'll link you straight to the screen to add them). If the front-end price doesn't update, confirm the product type is Configurable Product and a blueprint is assigned on the PriceBlueprint tab.
Conclusion
Setting up WooCommerce attribute-based pricing with rules takes a blueprint, a product type, and one assignment — it replaces the entire variation-generation step. The real payoff shows up later: pricing logic is defined once and reused everywhere, so a price change is a single edit instead of a sweep through hundreds of records.