Setting up attribute-based pricing in WooCommerce normally means generating a variation for every possible combination of attributes. With four sizes, three materials, and two colours, that is twenty-four variation records before you have made a single sale — and every price change means editing them one by one. This tutorial takes the opposite approach: you define a small set of pricing rules once, attach them to a product, and let the final price be calculated at runtime. No variation records, no combinatorial bloat.

By the end you will have a working configurable product whose price updates live as the customer selects options, with the chosen attributes flowing correctly through the cart, checkout, and order records. 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 the modifiers of whatever the customer selected. "Size XL adds $10" and "Material Oak adds $25" are rules; the price of an XL Oak item is simply base + 10 + 25. Adding a fifth size adds one rule, not a multiplied set of new combinations. If you want the background on why variation counts explode, the variation bloat article covers it in detail.

Before You Start

You need WooCommerce 6.0 or higher and at least one global attribute defined, because 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. For each attribute, add its terms (Size: S, M, L, XL; Material: Pine, Oak, Walnut). These terms are what your pricing rules will reference, so name them the way you want customers to see them. If you skip this step, the blueprint editor will show 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. Give the blueprint a name that describes the pricing logic rather than a single product — for example "Standard Furniture Pricing" — because you will 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 valuePrice 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

Notice that Size M and Material Pine are set to +$0.00. That is intentional: every attribute should have a baseline value that does not change the price, so the product has a sensible starting configuration. Setting an add-on to zero is fully supported and is the correct way to define your base option.

Step 2 (Optional) — Generate Rules Automatically with Quick Setup

If you already have a product with the right attributes assigned, you do not have to enter rules by hand. Use Quick Setup to generate a blueprint from that product's attributes in one click — it reads the attribute terms and creates a rule for each, which you then adjust. New to the plugin? The Welcome screen also offers a one-click Import Demo Data button that installs a sample blueprint and a 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 is what links the product to your pricing rules — there are no variations to generate.

Set the Base Price

Enter the product's base (regular) price in the standard WooCommerce price field. This is the starting figure that the attribute add-ons are applied 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 will see a selector for each attribute and a price that recalculates as selections change. The update happens over AJAX, so it works correctly even with full-page caching plugins such as WP Rocket or LiteSpeed Cache — the cached HTML loads instantly and the price request runs on top of it. Change the quantity and the displayed total updates with it.

Step 5 — Check Cart, Checkout, and Orders

Add the configured product to the cart and confirm the selections and the calculated price carry through. PriceBlueprint records the chosen attribute values at every stage, so they appear in the cart, at checkout, in the WooCommerce admin order screen, in order confirmation emails, on the Thank You page, and under My Account. The setup is 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 in the blueprint and every linked product reflects it immediately — no per-product editing. A store with eighty products that share one pricing structure maintains one blueprint instead of editing eighty catalogs.

A Worked Example: Pricing a Chair

With a $120 base price and the rules above, the configurator resolves prices like this:

ConfigurationCalculationFinal price
M / Pine120 + 0 + 0$120.00
L / Oak120 + 8 + 25$153.00
XL / Walnut120 + 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 rather than multiplying the record count.

Adding a Sale Price (Optional)

Configurable products support sale prices the same way a simple WooCommerce product does. Set a sale price and, if needed, schedule its dates in the product's price fields. Shop and category listings show the strikethrough pair ("From regular sale"), and the product-page configurator stays sale-aware as the customer changes selections, so the discounted total is always reflected live.

Troubleshooting

If the blueprint editor shows no attributes, you have no global attributes yet — the editor links you straight to the screen to add them. If an attribute's value list is empty, that attribute has no terms; add terms under Products → Attributes and they will appear. If the front-end price does not update, confirm the product type is set to Configurable Product and that 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 — and it replaces the entire variation-generation step. The payoff is not just a faster setup but a catalog where pricing logic is defined once and reused everywhere, so a price change is a single edit rather than a sweep through hundreds of records. For stores whose products share pricing structure, that difference compounds with every product and every price update.