Wholesale Pricing When Cost Data Is Missing: Skip or Fall Back?
Choosing between Skip and Apply when margin-based wholesale tiers meet products with no Shopify cost, and why Apply removes the profit floor.
Margin-based wholesale tiers need Shopify's Cost per item. For products without it, Discount Prime offers two rules per campaign: Skip, so the product sells at its normal price, or Apply, which applies the tier value to the selling price with no profit floor. Apply is safe only when tier values stay below every product's gross margin.
At a glance
- Challenge
- A failed supplier export left 1,600 newly imported products with an empty Cost per item, the field every margin-based wholesale price depends on.
- Approach
- Wholesale / B2B Pricing with a deliberate missing-cost rule per campaign: Skip for thin-margin equipment, Apply only where tier values stay below every product's margin.
- Discount Prime campaign types used
- Wholesale / B2B PricingCost-Based PricingFallback Rules
Scenario-based case study: the merchant is fictional and modeled on patterns across Discount Prime stores. Prices, costs and outcome figures are illustrative assumptions for teaching, not measured results from a real store.
Short Answer
When wholesale tiers are based on profit margin, every price depends on Shopify's Cost per item. Discount Prime's Wholesale / B2B Pricing gives you one setting for variants without a cost, "If a variant has no cost", with two choices:
| Rule | What the wholesale buyer pays | Profit protection |
|---|---|---|
| Skip this variant | The normal selling price (no wholesale price) | Not needed: no discount is given |
| Apply discount on selling price instead | The tier value applied to the selling price | None: no cost means no floor |
The second rule is more aggressive than it sounds. A tier written as "40% of margin" becomes 40% off the list price for a product without cost, with nothing to stop it below cost. Choose the rule deliberately, per campaign, before a supplier feed fails. A third path avoids the question entirely: tiers based on the selling price do not use cost at all.
Scenario
North Supply Co. is a fictional Shopify distributor of industrial tools and office supplies, selling to logged-in trade accounts. Costs reach Shopify from supplier feeds. One supplier's export fails, and 1,600 newly imported products arrive with an empty Cost per item. Selling prices and inventory are correct.
Both divisions use Wholesale / B2B Pricing based on profit margin. They have different priorities:
| Division | Catalog | Priority |
|---|---|---|
| Industrial equipment | High-ticket tools, thin margins | Never price on guesswork |
| Office supplies | Cheap, fast-turnover items reordered weekly | Keep trade pricing available |
How Missing Cost Behaves in Discount Prime
These points describe current product behavior; confirm them in a test campaign:
- Cost source: only Shopify's Cost per item. A cost of 0 is treated as missing. There is no CSV cost import in the app.
- Warnings, not blocks: when some selected products lack cost, the campaign shows a warning and marks them (for example "Will be skipped at checkout"). Saving is blocked only when every selected variant lacks cost and the rule is Skip.
- Check the selected rule. Do not rely on a default; confirm the choice on each campaign.
- Adding costs in the app: the "Add missing costs" screen can set a cost per variant, set costs from a target margin, set a fixed cost, or export the missing list as CSV. Saved costs are written to Shopify's Cost per item, so they also feed Shopify's own reports.
- When cost returns: active wholesale campaigns are re-checked automatically shortly after prices or costs change, and products are re-evaluated on that cycle. Confirm in the campaign's product list that the variants now have a wholesale price.
- Profit reporting: order lines without cost are left out of Estimated Profit (both their revenue and cost). Costs added later are picked up by the nightly recalculation of the last 30 days of orders, or by "Calculate again" on an order.
Worked Example
Illustrative assumptions. Gross profit is price minus unit cost; fees and shipping are excluded. The office carton's true cost ($30) is unknown to the system during the outage.
| Product | List | Cost in Shopify | Tier | Rule | Price paid | Gross profit |
|---|---|---|---|---|---|---|
| Torque wrench set | $139.00 | $84.00 | 55% of margin | (cost present) | $108.75 | $24.75 |
| Safety harness | $96.00 | Missing | 55% of margin | Skip | $96.00 | Full list margin |
| Copy paper carton, cost known | $42.00 | $30.00 | 12% of margin | (cost present) | $40.56 | $10.56 |
| Copy paper carton, cost missing | $42.00 | Missing | 12% of margin | Apply | $36.96 | $6.96 |
The office division's fallback looks harmless: still profitable. But the buyer received $5.04 off instead of the intended $1.44, because 12% was applied to the price instead of the margin. Run the same Apply rule on the industrial campaign and the harness would be priced at 55% off list ($43.20), likely below its real cost.
The rule of thumb: Apply is only safe when your highest tier value, read as a percentage off the selling price, is still below the gross margin % of every product that might lack cost. To adapt it, take your largest tier value and compare it with the lowest-margin products in the campaign.
Choosing the Rule
| Option | Fits when | Does not fit when |
|---|---|---|
| Skip this variant | Thin margins or high-ticket items; tiers are large shares of margin | Buyers expect a trade price on every reorder and missing cost is common |
| Apply discount on selling price instead | Tier values are small compared with every product's margin; continuity matters more than precision | Large tiers, thin-margin products, or any catalog where a missing cost could hide a low-margin item |
| Selling-price tiers instead of margin tiers | You want trade pricing that never depends on cost data | Margins vary widely: a single percentage cannot be right for all products, and there is only a manual dollar floor |
| Pause the campaign | Most of the catalog lost cost at once | A partial gap: pausing removes trade prices from products with good data |
| Enter estimated costs ("Set cost from margin %") | You know the supplier's typical margin and need pricing today | You cannot replace estimates promptly: they become your Shopify cost data and feed every profit report |
North Supply's choice: Skip for industrial equipment, where one mispriced order matters. For office supplies, Apply is acceptable only because its tiers are small shares of margin; the team checked that 12% off list stays below the gross margin of its lowest-margin products. If tiers grow, they should switch to Skip.
What the Customer Sees
- A wholesale buyer viewing a skipped product sees and pays the normal price, with no message explaining why. If many products are skipped, tell account managers so they can answer questions.
- Restricted eligibility requires the buyer to be logged in; guests always see retail prices.
- Under Apply, the buyer pays the fallback price with no indication that it is different from the normal trade price.
Limits and Edge Cases
- Cost scope: cost covers whatever your feed writes into Cost per item. If it omits inbound freight, the margin used for tiers is overstated.
- Bundles behave the same way: a Product Bundle with profit protection and the Apply rule also discounts cost-less items with no floor.
- Dropshipping Pricing on a cost base with Apply adds the markup to the selling price instead of the cost, which raises the price of cost-less products.
- Plan: Wholesale / B2B Pricing requires the Prime plan or above, and live variants are capped by plan; check the in-app Plans page for your catalog size.
Pre-launch Tests
| Test input | Expected result |
|---|---|
| Product with cost, wholesale buyer logged in | Margin-based tier price |
| Product with cost set to 0 | Treated as missing; follows the rule |
| Missing cost, rule Skip | Normal selling price at checkout |
| Missing cost, rule Apply | Tier value off the selling price; confirm it stays above real cost |
| Add the cost in Shopify, wait for the automatic re-check | Product shows its margin-based price |
Measurement and Next Decision
- Data health (primary): number of campaign variants without cost, and how long they stay that way. Fix the feed, not just the symptom.
- Exposure: revenue from cost-less lines sold under Apply. It does not appear in Estimated Profit until costs are added, so track it separately.
- Guardrail: after costs return, compare gross profit on fallback-priced orders with cost-based orders for the same products.
- Next decision: if fallback lines repeatedly earn less than your minimum, switch that campaign to Skip or lower its tiers.
Frequently asked questions
What happens to wholesale pricing when a Shopify product has no cost?
With Discount Prime's Wholesale / B2B Pricing based on profit margin, the campaign follows its "If a variant has no cost" rule. Skip leaves the product at its normal price. Apply discounts the selling price by the tier value with no floor, so a 40%-of-margin tier becomes 40% off list. A cost of 0 counts as missing. Tiers based on the selling price do not use cost at all.
Should I skip products without cost or apply the discount to the selling price?
Skip when margins are thin, items are expensive, or tiers are large shares of margin, because Apply could price below cost. Apply can fit when every tier value, read as a percentage off the price, is still below the gross margin of the lowest-margin product that might lack cost. In the example, a 12% tier gave $5.04 off a $42 carton instead of the intended $1.44.
How do I keep a supplier data outage from breaking my B2B pricing?
Decide the missing-cost rule on each campaign before an outage and check it is the one you expect. During an outage, partial gaps show as warnings, not errors. You can add costs in the app, which writes them to Shopify's Cost per item, or fix the feed. Estimated costs become real cost data in every report, so replace them promptly with supplier figures.
Do products rejoin wholesale pricing when their cost comes back?
Active wholesale campaigns are re-checked automatically shortly after prices or costs change, and products are re-evaluated on that cycle. After the cost reaches Shopify, confirm in the campaign's product list that the variant now has a wholesale price before telling buyers it is fixed.
Can I see what fallback-priced orders earned?
Not until costs are added. Order lines without cost are left out of Estimated Profit, both revenue and cost, so they never show as profit or loss. Once costs are in Shopify, the nightly recalculation updates the last 30 days of orders, or you can use Calculate again on an order. Track revenue from cost-less lines separately in the meantime.
Go deeper
Run this architecture in your store
Every campaign type in this case study is included in Discount Prime, with profit analytics to verify the margin impact.