Process Wholesale Help Center

Which wholesale discount applies: priority and stacking rules

Process Wholesale decides a wholesale customer's (B2B customer's) discount in layers. Each cart line gets at most one line discount: a flat discount or a quantity tier, chosen by flat discount priority and the Tag priority setting. Then a cart value tier and a loyalty tier are added on top, in that order. Cart quantity tiers, price lists and cost plus markup are separate automatic discounts, and whether they apply on the same order as the others depends on the Discount combinations settings. These rules hold on every plan; the customer must be logged in and carry B2B plus the discount tags.

At a glance

  • Plan: All plans (price lists and cost plus markup need Professional; loyalty needs Enterprise or Professional)
  • Where the rules are set: Process Wholesale > Discounts (flat discount priority) and Settings > Discount settings (Tag priority, Discount combinations)
  • Per line: one flat discount or one quantity tier, never both
  • Added on top: one cart value tier, then one loyalty tier
  • Separate discounts: cart quantity tier, price list, cost plus markup
  • Default: Prefer flat tag

Which discount applies: the decision table#

Situation Which discount applies Set by
Customer has two or more flat discounts that cover the same product The flat discount with the lowest Priority number (1 is highest) Up and down arrows on the Flat Discounts tab
A flat discount and a quantity tier cover the same product Prefer flat tag: the flat discount. Prefer tier tag: the quantity tier. Settings > Discount settings > Tag priority
Customer has two quantity tiers that cover the same product One of them, not chosen by any setting Give a customer only one quantity tier per product
Customer buys several variants of one product with a quantity tier The units of all those variants are added together to pick the tier Always
Customer has a cart value tier Added on top of all line discounts Always
Customer has a loyalty tier and has earned a level Added after the cart value tier Always
Customer has two cart value tiers, two loyalty tiers or two cart quantity tiers Only one of each kind is used Give a customer only one of each kind
Customer has a cart quantity tier A separate order discount on the eligible lines Discount combinations decide whether it applies with the others
Customer has a price list Sets the price of each variant on the list Discount combinations and Price List Discount combinations together decide whether flat and tier discounts also apply
Customer has two price lists that both price a variant One of them, not chosen by the Priority column Give a customer only one price list tag
Customer has two cost plus markup discounts that cover the same product The one with the lowest Priority number Arrows on the Cost-Plus Discounts tab

Priority among flat discounts#

When a customer has several flat discounts, Process Wholesale checks them for each cart line in Priority order and uses the first one whose Applies to selection covers that product. The Flat Discounts tab lists discounts by priority with the note "1 = Highest Priority". Use the up and down arrows on a row to swap it with its neighbor.

A new flat discount gets the next number after the existing ones. Editing a discount does not change its priority. Deleting one moves every lower-priority discount up by one.

Example. A customer has vip20 (20% off the Coffee collection, priority 1) and wholesale10 (10% off all products, priority 2). Coffee lines get 20%, because vip20 comes first and covers them. Every other line gets 10%, because vip20 does not cover it and wholesale10 does. The two never add together on one line.

Flat discount versus quantity tier: the Tag priority setting#

When a customer has a flat discount and a quantity tier discount that both cover the same product, Settings > Discount settings > Tag priority decides which one the line gets. The Discount Priority menu has two options:

  • Prefer flat tag (the default): the line gets the flat discount. The quantity tier is used only on lines no flat discount covers.
  • Prefer tier tag: the line gets the quantity tier. The flat discount is used only on lines no quantity tier covers.

The setting matters only when both cover the same line. A change takes effect at checkout as soon as you save.

Example. Flat discount 10% on all products, quantity tier "10+ units: 20% off". A customer buys 12 units of one product. With Prefer flat tag the line gets 10%. With Prefer tier tag it gets 20%.

How the quantity for a quantity tier is counted. Process Wholesale adds up the units of the same product across all of its variants in the cart. For example, 4 small and 8 large of one T-shirt count as 12 units, so both lines reach a "10+ units" tier. Lines of that product that no flat discount or quantity tier covers are not counted.

The Priority column on the Tier Discounts tab is only a row number. It does not decide which tier applies.

Cart value and loyalty discounts are added on top#

After the line discounts, Process Wholesale adds two order-level amounts, in this order:

  1. Cart value tier (Total Cart Value). The cart value is the cart subtotal minus the flat and quantity tier line discounts, rounded down to a whole number. The tier is chosen from that value. A percentage tier takes that percentage of the subtotal remaining after the line discounts. A Price Off tier adds its fixed amount.
  2. Loyalty tier (Loyalty). If the customer has earned a loyalty level, a percentage loyalty tier takes that percentage of what remains after the line discounts and the cart value discount. A Price Off loyalty tier adds its fixed amount.

Flat discounts, quantity tiers, the cart value tier and the loyalty tier together form one order discount in Shopify, the automatic discount named B2B Order/Loyalty Discount. Its label at checkout starts with PW: followed by the discount tags used. When a cart value tier applies, the label lists the cart value tag, then the flat and quantity tier tags, then the loyalty tag, separated by &, for example PW: cartvalue500 & wholesale10 & loyal10. When no cart value tier applies, the loyalty tag follows the last tag with no separator, for example PW: wholesale10loyal10.

Cart quantity tiers are a separate discount#

A cart quantity tier (Total Cart Quantity) runs as its own automatic order discount, B2B Cart Quantity Discount. It counts the units on the eligible lines (all lines, or only the products or collections the tier covers), picks the tier, and discounts those lines. Both order discounts follow the main Discount combinations card, which allows combining with order discounts by default. See using Shopify discount codes with wholesale discounts.

Example. A customer buys 2 units at $50.00 and 8 units at $10.00 (10 units, $180.00). The tier is 1 to 9 units: 5% off, 10+ units: 10% off. The cart quantity discount is 10% of $180.00 = $18.00.

Where price lists and cost plus markup fit#

Price lists and cost plus markup are product discounts that change the price of individual items. Each is its own automatic discount (B2B Price List Discount and B2B Cost Plus Markup Discount), and both need the Professional plan.

  • Price list: the line is priced at the list price for that variant. A variant that is not on any of the customer's price lists gets no price list discount.
  • Two price lists on one customer: when both price the same variant, checkout uses one of them, and the up and down arrows on the Price Lists tab do not decide which. Give each customer only one price list tag.
  • Cost plus markup: the item is priced at unit cost plus the markup. When a customer has several cost plus markup discounts, the one with the lowest Priority number that covers the product applies. A cost plus markup discount never raises a price above retail.
  • With flat and tier discounts: whether a price list or cost plus markup discount applies on the same order as flat and tier discounts depends on the Discount combinations cards in Settings. By default the price list and cost plus markup discounts are not set to combine with anything. See using Shopify discount codes with wholesale discounts.

Worked example: one order, step by step#

Store settings: Tag priority is Prefer flat tag. The customer is logged in and tagged B2B, vip20, wholesale10, bulkmugs, cart400 and loyal10, and has earned the loyal10 loyalty level.

Discount tag Type Rule
vip20 Flat, priority 1 20% off the Coffee collection
wholesale10 Flat, priority 2 10% off all products
bulkmugs Quantity tier, Mug only 1 to 9 units: 5% off; 10+ units: 15% off
cart400 Cart value tier 400+: 5% off
loyal10 Loyalty tier 10% off

Cart: Coffee beans (in Coffee) 10 × $30.00 = $300.00; Mug 12 × $10.00 = $120.00; Tea 5 × $20.00 = $100.00. Subtotal $520.00.

  1. Coffee beans: vip20 comes first and covers Coffee: 20% × $30.00 × 10 = $60.00.
  2. Mug: vip20 does not cover it. wholesale10 covers all products, and Prefer flat tag picks it over bulkmugs: 10% × $10.00 × 12 = $12.00.
  3. Tea: wholesale10: 10% × $20.00 × 5 = $10.00.
  4. Line discounts: $82.00. Cart value = $520.00 − $82.00 = $438, which reaches 400. Cart value tier: 5% × $438.00 = $21.90. Running total $103.90.
  5. Loyalty tier: 10% × ($520.00 − $103.90) = 10% × $416.10 = $41.61.
  6. Order discount $145.51, labeled PW: cart400 & vip20 & wholesale10 & loyal10. The customer pays $374.49.

Same order with Prefer tier tag. The Mug line now gets bulkmugs: 12 units reach 10+, so 15% × $10.00 × 12 = $18.00. Coffee and Tea are unchanged ($60.00 and $10.00), because no quantity tier covers them. Line discounts $88.00; cart value $432 → 5% = $21.60; loyalty 10% × ($520.00 − $109.60) = $41.04. Order discount $150.64, labeled PW: cart400 & vip20 & bulkmugs & wholesale10 & loyal10; the customer pays $369.36.

Rounding#

  • The order discount (flat, quantity tier, cart value and loyalty together) is rounded to two decimals once, at the end. Individual lines are not rounded first.
  • The cart value used to pick a cart value tier is rounded down to a whole number. A cart value of 399.99 counts as 399 and does not reach a tier that starts at 400.
  • In another currency, Price Off and Fixed Price amounts and cart value thresholds are converted at the exchange rate of the customer's checkout. Percentages are not converted.

Why the storefront can show a different discount than checkout#

The Product Wholesale block and Quick Buy calculate their own displayed price in the browser. Checkout uses the rules in this article. They can differ:

  • The product page and Quick Buy show one product-level price, in this order: cost plus markup, then price list, then flat discount or quantity tier (by Tag priority). At checkout, more than one can apply when the combination settings allow it.
  • The Product Wholesale block does not show loyalty discounts.
  • Quick Buy shows only the largest single cart discount among cart value and cart quantity tiers, plus loyalty. At checkout the cart value tier and the cart quantity tier are separate discounts.
  • Quick Buy picks between two price lists by the Priority column; checkout does not. Give a customer one price list tag to keep them the same.

Limits and things to know#

  • Use a different name for every discount. Process Wholesale lets a flat discount and a tier discount share a name, but at checkout a flat discount and a Total Cart Value, Individual Product Quantity or Loyalty tier with the same name cannot both apply: only one of them is used.
  • Set Fixed Price and Price Off amounts below the product's price. Process Wholesale does not cap these amounts. A Fixed Price higher than the product's price makes the discount on that line negative, which lowers the customer's total discount.
  • Custom items added to a draft order get no flat or quantity tier discount, but count toward the cart value. See draft orders.

Frequently asked questions#

Do wholesale discounts stack in Process Wholesale?#

Partly. Each line gets one flat discount or one quantity tier, never two. A cart value tier and a loyalty tier are then added on top. Cart quantity, price list and cost plus markup discounts are separate discounts that apply alongside depending on the Discount combinations settings.

What does Prefer flat tag or Prefer tier tag do?#

It decides which discount a line gets when a flat discount and a quantity tier both cover it. Prefer flat tag (the default) uses the flat discount; Prefer tier tag uses the quantity tier, even if the quantity is below the first tier.

Is the cart value discount calculated before or after the flat discount?#

After. The cart value tier is chosen and calculated from the subtotal minus flat and quantity tier discounts. The loyalty discount is calculated after both.

What happens if a customer has two price list tags?#

Checkout uses one of them for each variant, and the Priority arrows on the Price Lists tab do not decide which. Give each customer only one price list tag.

Which flat discount wins when a customer has two?#

The one with the lowest Priority number on the Flat Discounts tab that covers the product. Lines it does not cover can still get the second flat discount.

Plans: All plans · Last verified · View this page as Markdown