Skip to content

How it works

Seven levels, one pipeline, one answer

Most pricing bugs in this category come from several plugins filtering the price in different places. B2B Suite has exactly one resolver, and everything else asks it.

The precedence walk

Resolution stops at the first level that matches.

  1. 1 Accepted quote Pro A price you agreed in writing beats everything else.
  2. 2 Customer-specific rule Pro A rule written for this one buyer.
  3. 3 Company rule Pro A rule on the buying organisation.
  4. 4 Group rule The customer group’s contract price.
  5. 5 Category or tag rule Pro Broad rules across part of the catalogue.
  6. 6 WooCommerce sale price Considered, and recorded in the trail even when it loses.
  7. 7 Regular price The fallback everyone starts from.

Levels 1–3 and 5 have no rule source in the free plugin — Pro supplies them through documented filters rather than by patching the resolver. That is why adding Pro changes what you can configure without changing how pricing behaves.

The guarantees

These are the properties the precedence test suite asserts on every build.

  • First match wins, ties broken deliberately

    Within a level, priority decides; if priority ties, the larger discount wins. No accidental ordering, no “whichever filter ran last”.

  • Rules are read fresh, never snapshotted

    Add a product to a category tomorrow and today’s rule already covers it. Snapshotting is why “products added later are ignored” is a recurring complaint elsewhere.

  • Percentages come off the regular price

    Not off the sale price, and never compounded with it. A matching B2B rule wins outright, and the trail shows the sale price it beat.

  • Coupons apply after, once

    A 10% coupon takes 10% of the resolved trade subtotal. It never re-enters the pricing walk, so discounts cannot silently stack.

  • The same price everywhere

    Catalogue, product page, variation prices, cart totals and the Store API all read from the one resolver. There is no second code path to disagree.

  • Fast on real catalogues

    Rules live in indexed custom tables and load in bulk per request: a 300-variation product costs a handful of queries cold and none warm.

“Why is this customer seeing that price?”

The Price Explainer answers it from the same walk that charges the customer — pick a product, a customer and a quantity, and read the trail.

It cannot drift from checkout

The explanation is generated from the real resolution, not re-implemented for the admin screen. The test suite asserts the explainer and the resolver agree at the API boundary, so a divergence fails the build rather than confusing a merchant.

View as customer

Browse your own storefront exactly as a chosen buyer sees it, through a signed, capability-gated link. It swaps the pricing context only — it never logs anyone in and never touches their cart or session, and a banner makes clear you are previewing.

The pricing engine is free.

Groups, rules, the explainer and view-as-customer are all in the free plugin. Pro widens what you can target, not how pricing works.

14-day money-back guarantee · 24-hour first response