Wholesale pricing by role with Dynamic Pricing

This recipe gives wholesale or trade customers their own prices with Dynamic Pricing: one catalogue with a retail price and a trade price. The cart totals below were measured on a real cart.

The price follows the WordPress user role. Anyone in that role sees the adjusted price as soon as they log in: in the shop, on the product page and in the cart. Everyone else sees the regular price. Customers join the role through manual assignment, a registration form or a membership plugin.

What you need

↑ Back to top
  • Dynamic Pricing, activated
  • A user role for your trade customers. Any role works, including one a membership plugin created.
  • At least one customer in that role, so you can check the result

Two places to put it

↑ Back to top
UseWhen
Role Pricing, store-wideTrade customers get the same discount on everything.
The product’s Dynamic Pricing tabThe trade discount differs by product, or applies to selected products.

When both match a product, the product rule applies.

Route 1: the whole catalogue

↑ Back to top
  1. Go to WooCommerce > Dynamic Pricing and open the Role Pricing tab.
  2. Find the row for your wholesale role and tick Enabled.
  3. Set Type to Percentage Discount and Amount to 25.
  4. Click Save Changes.

A role discount applies to every product at every quantity.

Measured with this rule on two products:

Signed in asRegular priceCharged
Retail customer$100.00$100.00
Retail customer$40.00$40.00
Wholesale customer$100.00$75.00
Wholesale customer$40.00$30.00

Route 2: one product

↑ Back to top
  1. Edit the product and open the Dynamic Pricing tab in the Product data panel.
  2. Click Add Pricing Group.
  3. Set Applies To to Specific Roles, then pick your wholesale role.
  4. Leave Rule Processing Mode on Bulk.
  5. Fill the row: Minimum Quantity 1, Max Quantity *, Type Percentage Discount, Amount 25.
  6. Click Update.

Minimum Quantity 1 and Max Quantity * mean any quantity. Because the row starts at 1, a logged-in wholesale customer also sees the adjusted price in the shop and on the product page.

Measured on a $100 product with this rule:

Signed in asQuantityUnit priceCharged
Guest4$100.00$400.00
Retail customer4$100.00$400.00
Wholesale customer1$75.00$75.00
Wholesale customer4$75.00$300.00

Role pricing and product rules together

↑ Back to top

A product’s own rule sets the price of its cart line. To give trade customers a role discount and quantity tiers on the same product, put both in the product rule: one Specific Roles pricing group for trade customers, with as many tiers as you need.

Variations on the same rule

↑ Back to top
You wantChange
A flat amount off each unitType Price Discount, amount 25 for $25 off each unit
A set trade priceIn the product tab, Type Fixed Price, amount 75
Several trade levels, such as silver and goldOne role each. Route 1 handles all of them on one screen.
Trade customers also get quantity tiersRoute 2 with more than one row. See Tiered quantity discounts.
Trade pricing on one category onlyAdvanced Category Pricing under WooCommerce > Dynamic Pricing > Category Pricing, with Applies To Specific Roles and one Bulk row from 1 to *.

Every setting is described in the Dynamic Pricing documentation.

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.