Use case for BSS B2B Solution

Which B2B Pricing Rule Wins: Priority Explained

When several rules match one customer, the storefront shows one price. Rules from different modules run in a fixed order, and the Priority field from 0 to 99 settles ties inside a module, lowest number first.

  • App: BSS B2B Solution
  • Business model: Wholesaler
  • Key feature: rule priority

Last updated

Reviewed by Hoa Nguyen, Senior Marketer. Last reviewed

The Advanced card of a rule with the Priority field, where 0 is highest
  • 4.9/5 1,187 reviews of BSS B2B Solution on the Shopify App Store
  • Built for Shopify Badge Shopify gives apps that meet its quality standards
  • 20 languages supported in the app

The problem

Several rules match one customer and the storefront shows a price you did not expect. Without a clear model, every fix creates another overlapping rule.

The outcome

You can predict which price a customer sees, design rules so they do not collide, and find the cause quickly when a price looks wrong.

how it works

How it works

  1. Know the module order

    Price List or Custom Pricing sets the base price, then Volume Pricing, then Discount Codes.

  2. Set Priority inside a module

    Use 0 to 99 in the Advanced card, where the lowest number wins.

  3. Resolve ties

    Equal numbers go to the rule created first.

  4. Check the basics

    Confirm the app embed, the module switch, the schedule and the customer's tag.

  5. Verify as the customer

    Compare the buyer view with a guest view in a private window.

When several B2B pricing rules match one customer, BSS B2B Solution shows a single price by running modules in a fixed order and picking one winner inside each module. Price List or Custom Pricing sets the base price, Volume Pricing applies on top of it, and the Priority field (0 to 99, lowest number wins) decides between rules of the same module.

This page also doubles as a troubleshooting path for the question behind many support requests: “my Shopify wholesale price is not showing”. Most cases are one of three things, an embed that is off, a customer who does not match the rule, or another rule that wins. The sections below help you tell which.

The Advanced card of a rule with the Priority field, where 0 is highest
The Advanced card of a rule with the Priority field, where 0 is highest

Who this is for

Read this if:

  • A wholesale customer matches more than one rule, for example a tag rule, a company rule and a quantity rule, and you are not sure which price they will see.
  • The storefront shows a price that you did not expect and every fix seems to add another overlapping rule.
  • Several people on your team create rules, and you need a shared model so that rules do not collide.
  • You are moving from a few rules to dozens, and you want a convention for numbering them.
  • A buyer says “I still see the retail price”, and you want a short checklist instead of trial and error.

Why this matters

Overlap is normal. A distributor tagged gold and wholesale can match a Price List, a Custom Pricing rule and a Volume Pricing rule at once, and every one of them is correct on its own. What you need is a predictable result. If the answer lives only in the head of the person who built the rules, the next price change is risky.

A wrong price is expensive in both directions. A price that is too high loses an order from a buyer who compares with a competitor. A price that is too low sells at a loss, and you may only notice when the order arrives. A model you can say out loud, “list first, then tiers, lowest priority number wins inside a module”, makes reviews quick.

A practical habit is to keep a short list of active rules per module with their priority numbers. When a price looks wrong, you walk through the list in the same order as the app.

How the app decides: two steps

Step 1: inside a module, one rule wins

Most rule editors have a Priority (0-99) field in the Advanced card. The lower number wins, so a rule with priority 0 beats a rule with priority 5. If two rules have the same priority, the rule created first wins. New rules start at 0, and only enabled rules take part. Leave gaps between numbers, such as 10, 20 and 30, so you can slot in a new rule later.

Priority is compared only between rules of the same module. The user guide describes how each module behaves when several rules match:

ModuleWhat happens when several rules match
Custom PricingThe matching rule with the lowest priority number sets the price; the others are ignored.
Price ListSame as Custom Pricing: one rule per product or variant.
Volume PricingThe rule with the lowest priority number applies; a setting can show every matching table on the product page.
Order LimitsRules with the lowest priority number are kept; if several set the same limit type, the strictest counts.
Quantity IncrementsThe matching rule with the lowest priority number applies.
Net TermsThe first rule by priority whose products cover every item in the cart is used.
Shipping RateNo priority field; the lowest or highest matching rate is chosen in Settings.
Auto TagsNo priority between rules; every rule whose conditions are met runs.

Step 2: across modules, prices chain

Different pricing modules stack in a fixed order, and each step starts from the price the previous one produced. A Price List or Custom Pricing sets the base price. If a Price List rule applies to a product or variant, Custom Pricing is skipped for it. Volume Pricing then applies its tier to that base price, not to the original price. After that, a Discount Code starts from the result. An Extra Fee is added as a separate fee and does not change the product price.

The Custom Pricing rule list with the priority column
The Custom Pricing rule list with the priority column

Example: why the deeper discount did not win

This is an illustration with made-up numbers, not a customer result. A store has these rules for customers tagged gold and wholesale.

RuleModuleEffectPriority
Gold listPrice ListProduct A fixed at $48 (retail $60)0
WholesaleCustom Pricing20% off all products10
ClearanceCustom Pricing30% off all products20
Case breaksVolume Pricing5% off from 10 units5

A customer with both tags buys 12 units of Product A and 12 units of Product B (retail $40).

  • Product A. A Price List rule covers it, so the price is $48 and Custom Pricing is skipped for this item. The tier takes 5% off $48, so $45.60 a unit.
  • Product B. No list covers it, so the Custom Pricing rules compete. Wholesale (priority 10) and Clearance (priority 20) both match, and the lowest number wins: Wholesale, 20% off, $32.00. Clearance’s deeper $28.00 never applies, because priority decides, not the size of the discount. The tier then takes 5% off $32.00, so $30.40 a unit.

If you wanted Clearance to win on Product B, the fix is to give it a lower number than Wholesale, not to delete the Wholesale rule.

How to debug a wrong or missing price

Work through these checks in order. Most cases are solved by one of the first four.

  1. Is the app embed on? Every B2B feature on the storefront loads from the embed. Open the app’s Home page and check the app embed status, then open the theme editor, go to App embeds, turn on BSS B2B Solution and save. Embeds are set per theme, so repeat this after you publish a new or duplicated theme.
  2. Is the module on? Each module has its own switch, and it applies only after you click Save in the save bar.
  3. Is the rule active? The status must be Enable, and the current time must be inside the schedule. Times use the time zone of the browser where you set them. If the editor shows a banner that the rule is inactive because an option needs a higher plan, change that option or upgrade.
  4. Does the customer match? Log in as a test customer with the same tags in a private window. Rules for logged-in customers, specific customers, tags or company locations do not apply to visitors who are not logged in. A tag added a moment ago takes effect after a page reload.
  5. Is another rule winning? Compare priority numbers inside the module, and check whether a Price List covers the variant.
The theme editor App embeds list where the B2B Solution embed is switched on
The theme editor’s App embeds panel with the BSS B2B Solution embed switched on
A product page for a guest visitor at the regular price
A product page for a guest visitor at the regular price
The same product for a logged-in matching buyer with the wholesale price
The same product for a logged-in matching buyer with the wholesale price

Works well with

The wholesale pricing hub links the other pricing guides. Related glossary terms are price list, customer tag and volume pricing.

Limits and common mistakes

  • Priority does not compare modules. Custom Pricing priority 0 does not beat Volume Pricing priority 5; they combine.
  • Priority decides, not the best price. A rule with a lower number wins even if another rule would give the buyer a cheaper price.
  • A Price List always wins over Custom Pricing on the same variant, even when its price is higher, so keep one module responsible for each group and product.
  • A custom price above the original price is not shown. The editor warns that prices higher than the original or compare-at price will not display.
  • Tags are case-insensitive, but product tags in exclusions are exact. Type an excluded product tag with the capitalization it has on the product.
  • Optimize B2B script loading. If it is enabled, B2B scripts load only for logged-in customers, so rules set to All or Not-logged-in customers do not run for guests.

Setup checklist

  • List your active rules per module with their priority numbers.
  • Number rules in steps of 10 so you can insert one later.
  • Name each rule with its group and discount.
  • Keep Price List and Custom Pricing from covering the same group and product.
  • Check the embed and module switches after publishing a theme.
  • Test with a tagged customer, a guest and a customer with two tags.

Plans and requirements

The priority rules apply to every module, but the modules differ by plan: Custom Pricing and Volume Pricing run on all plans (in limited form on Free), Price List needs Platinum, and Net Terms, Order Limits and Quantity Increments need Advanced or higher. See the BSS B2B Solutions pricing page for current plan details.

You can install BSS B2B Solution from the Shopify App Store (4.9 rating from 1,185 reviews as of 2026-10-02, 14-day free trial on paid plans), read the app overview, or follow the guide on how rule priority works. The troubleshooting checklist goes further.

The cart for a buyer with price list prices applied
A cart where the price list price replaces the retail price for a matching buyer

key features

What makes it work

Fixed module order

Each module has a set place in the price calculation.

Priority 0 to 99

Lowest number wins between rules of the same module.

Predictable stacking

Volume Pricing is applied on the price produced earlier in the chain.

Checklist for missing prices

Embed, module switch, rule status, customer match and priority, in that order.

Set this up with BSS B2B Solution

Install BSS B2B Solution from the Shopify App Store, then follow the guide to turn this on in your store.

faq

Frequently asked questions

Which pricing rule wins when several rules match one customer?

Inside one module, the rule with the lowest Priority number wins, and a tie goes to the rule created first. Across modules, prices chain in a fixed order: Price List or Custom Pricing first, then Volume Pricing on that result. Priority never compares rules from different modules.

What is the range of the Priority field?

The Priority field takes whole numbers from 0 to 99. A lower number wins, so 0 is the highest priority. If two rules of the same module have the same number, the older rule is applied. The Advanced card of each rule shows the field, and new rules start at 0.

Does Priority compare Custom Pricing with Volume Pricing?

No. Priority only decides between rules of the same module. Different modules chain in a fixed order, and Volume Pricing is calculated on the price that Custom Pricing or a Price List has already produced, so they do not compete with each other.

Which wins if a variant has both a Price List and a Custom Pricing rule?

The Price List wins. When a Price List applies to a variant, the Custom Pricing rule is skipped for it, even if the Custom Pricing discount would be deeper. Volume Pricing can still apply on top of the list price if its conditions are met.

Why is my wholesale price not showing on Shopify?

Check that the app embed is on in the live theme, the module is switched on and saved, the rule is enabled and inside its schedule, the customer is logged in with a matching tag, and the product is not excluded. A custom price higher than the original price is also not displayed.

A customer has two tags with different prices. Which one do they get?

If both tags are in rules of the same module, the rule with the lowest priority number applies, even when the other rule gives a cheaper price. To change the outcome, give the rule you prefer a lower number. Test with a customer who carries both tags.

How should I number priorities?

Use steps of 10, such as 10, 20 and 30, so you can slot in a new rule later without renumbering the others. Keep names descriptive, such as Gold list or Wholesale 20 percent, so the order is readable in the rule list. Only enabled rules take part.

  • BSS B2B Solution
  • Rule Priority