Supply Master Pricing Formulas: 12 Liquid Recipes for Wholesale Apparel
A pricing rule is a one-line price formula you write once. It runs on every Supply Master sync. When your supplier raises wholesale on Tuesday, your Shopify retail goes up Wednesday with the margin you wanted — without you re-uploading anything.
The hard part is figuring out the shape of your rule. A flat 50% markup is one shape. A different markup per brand is another. Respecting MAP (the brand's minimum advertised price) is a third. Capping retail on premium SKUs so your store doesn't list a $90 polo for $135 is a fourth.
This article gives you twelve recipes — twelve common pricing patterns wholesale apparel stores actually run — written as one-line Liquid formulas you can paste straight into Supply Master's Match Fields screen and tweak for your numbers. Each recipe says what it does for your store before it shows the formula. Each recipe says when to use it. Each recipe is grounded in real apparel-store math.
Running examples used throughout: Northside Print Co. on S&S blanks (Gildan, Bella+Canvas, Comfort Colors), Park Ridge Embroidery on SanMar uniforms (Port Authority, OGIO, Eddie Bauer licensed catalog), and a couple of multi-supplier shops where the rule needs to handle different brands differently.
Key Takeaways
- What this article shows — twelve pricing recipes, each as a one-line Liquid formula, with the apparel-store scenario each one fits.
- Who it's for — Supply Master users (or evaluators) who want to keep margin intact when wholesale moves and don't want to re-do prices by hand.
- The fast answer — start with Recipe 1 (flat markup with rounding). Layer in MAP, brand-specific markup, or size upcharges as your catalog grows.
- What it doesn't do (yet) — multi-currency price recipes per region are an upcoming improvement; today, set the price in your store's primary currency and let Shopify Markets convert at the storefront.
- Try it now — Install Supply Master free on the Shopify App Store (5.0★, top-rated for apparel-supplier integration in the U.S. and Canada).
- Want help? — Email support@comstack.com and a Comstack engineer will write the formula with you.
Table of contents
- How pricing formulas actually work in Supply Master
- Recipe 1 — Flat percentage markup with rounding
- Recipe 2 — Different markup per brand
- Recipe 3 — Tiered markup (more on cheap, less on expensive)
- Recipe 4 — Floor at MAP (the brand minimum)
- Recipe 5 — Cap at retail ceiling
- Recipe 6 — Minimum margin floor
- Recipe 7 — Size-based upcharge for XXL+
- Recipe 8 — Color-based upcharge for premium colors
- Recipe 9 — Round to .95, .99, or nearest dollar
- Recipe 10 — Use MSRP when wholesale isn't available
- Recipe 11 — Compare-at price (show the discount)
- Recipe 12 — Compose multiple rules at once
- How real stores layer these
- Where Supply Master fits
- FAQ
- Try it on your store
How pricing formulas actually work in Supply Master
Before the recipes, the basic mechanic. Supply Master's Edit Supplier > Product Settings > Match Fields screen lists every Shopify field on the left (Title, Price, Compare-at price, Description, etc.) and lets you set the source for each one. For Price, the source is a one-line Liquid formula — a tiny text box where you type a rule like {{ wholesale | times: 1.5 }}.
Liquid is the same templating language Shopify themes use. Three things make it useful for pricing:
- Variables for supplier data fields.
wholesale,msrp,case_price,map_price,vendor,brand,size,colorare all available. The exact list is at available supplier data fields. - Filters for math operations.
times,divided_by,plus,minus,round,at_least,at_most,defaultare the standard set. Supply Master also exposes apparel-specific extensions likeround_to_95andround_to_99documented at customizing fields with Liquid formulas. - Conditionals for if/else logic.
{% if vendor == 'Gildan' %}...{% else %}...{% endif %}lets you branch on brand, size, color, price band, or any other supplier field.
Every recipe below is a one-line formula (or a tiny if/else block) that goes into the Price field. The formula re-runs every sync, so when the supplier moves wholesale, your retail moves with it.
If a custom filter shown below doesn't match what's available in your Supply Master version, the Liquid help article lists the exact filter names. The recipes below show the pattern; the support team will write the matching syntax for your install if you'd like.
Recipe 1 — Flat percentage markup with rounding
What it does for your store. Marks every variant up by a fixed percentage and rounds the result to a clean retail price. The simplest, most common rule for blank-tee resellers.
When to use it. When your store sells a single product type (e.g. all blank tees) at a single margin band, with no MAP-protected brands and no complicated edge cases.
Formula:
{{ wholesale | times: 1.5 | round_to_95 }}
Plain English. Take the supplier's wholesale, multiply by 1.5 (a 50% markup), round to the nearest .95.
Example. Wholesale $4.20 → $6.30 → rounded to $6.95. Wholesale $7.40 → $11.10 → rounded to $10.95.
If your apparel store doesn't already have a pricing rule, this is where to start. Most decorators run something like this on their blanks. Adjust 1.5 to your actual margin (1.4 for tighter; 1.6 for premium decoration).
Recipe 2 — Different markup per brand
What it does for your store. Applies a different markup multiplier depending on the brand (vendor) the supplier sends.
When to use it. When you carry multiple brands at different margin bands. Common pattern: low margin on Gildan blanks (high-volume, price-sensitive); higher margin on premium brands like Bella+Canvas, Comfort Colors, Champion (lower-volume, less price-sensitive).
Formula:
{% if vendor == 'Gildan' %}{{ wholesale | times: 1.4 | round_to_95 }}
{% elsif vendor == 'Bella + Canvas' %}{{ wholesale | times: 1.55 | round_to_95 }}
{% elsif vendor == 'Comfort Colors' %}{{ wholesale | times: 1.65 | round_to_95 }}
{% else %}{{ wholesale | times: 1.5 | round_to_95 }}{% endif %}
Plain English. If the brand is Gildan, mark up 40%. If Bella+Canvas, 55%. If Comfort Colors, 65%. For any other brand, fall back to 50%. Round all results to .95.
Example. A Gildan 5000 at $3.80 wholesale becomes $5.95. A Bella+Canvas 3001 at $4.95 wholesale becomes $7.95. A Comfort Colors 1717 at $6.20 wholesale becomes $10.95.
Use this on stores that consciously carry premium brands at premium margins. The vendor name matching is exact, so verify the brand spelling in your supplier's data feed (Bella + Canvas is one common spelling; Bella Canvas is another). The available supplier data fields doc lists the exact vendor strings.
Recipe 3 — Tiered markup (more on cheap, less on expensive)
What it does for your store. Applies a higher markup percentage on inexpensive items and a lower markup on expensive items. Keeps retail prices reasonable across the price band.
When to use it. When carrying both cheap blanks and expensive premium items. A 100% markup on a $3 tee makes the customer happy at $5.95. A 100% markup on a $30 polo makes the customer balk at $59.95.
Formula:
{% if wholesale < 5 %}{{ wholesale | times: 1.7 | round_to_95 }}
{% elsif wholesale < 15 %}{{ wholesale | times: 1.5 | round_to_95 }}
{% elsif wholesale < 30 %}{{ wholesale | times: 1.4 | round_to_95 }}
{% else %}{{ wholesale | times: 1.3 | round_to_95 }}{% endif %}
Plain English. Wholesale under $5 → 70% markup. Wholesale $5–$15 → 50%. Wholesale $15–$30 → 40%. Wholesale over $30 → 30%. All rounded to .95.
Example. Gildan 5000 at $3.80 → 70% markup → $6.95. Bella+Canvas 3001 at $4.95 → 70% → $8.95. Port Authority L500 polo at $14.50 → 50% → $21.95. Eddie Bauer-licensed jacket at $58 → 30% → $74.95.
Use this when your apparel store spans price tiers. The brackets above are illustrative — adjust the cutoffs and percentages to match your actual margin model.
Recipe 4 — Floor at MAP (the brand minimum)
What it does for your store. Calculates your normal markup, then checks whether the result is below the brand's MAP (minimum advertised price). If it is, uses MAP instead. Keeps you compliant with brand pricing policies.
When to use it. Mandatory if you carry MAP-protected brands. Common MAP-protected apparel brands in the U.S. include several premium lines on SanMar (Nike, OGIO, Eddie Bauer's licensed catalog), some streetwear lines, and increasingly, premium blank brands.
Formula:
{{ wholesale | times: 1.5 | round_to_95 | at_least: map_price }}
Plain English. Take wholesale, multiply by 1.5, round to .95. Then make sure the result is at least the supplier's MAP. If the markup landed below MAP, use MAP.
Example. Nike polo wholesale $35, supplier MAP $59.99. Markup math: $35 × 1.5 = $52.50, rounded to .95 = $52.95. MAP floor kicks in: $59.99. Compliance preserved.
A note on availability. The map_price field is only present on supplier feeds that expose MAP — most reputable suppliers do, but a few file-based smaller suppliers don't. The available supplier data fields doc shows MAP availability per supplier. If your supplier doesn't expose MAP, maintain the brand floor manually for the affected brands.
Recipe 5 — Cap at retail ceiling
What it does for your store. Calculates your normal markup, then caps the result at a maximum retail price. Keeps premium SKUs from going to silly retail numbers when wholesale is high.
When to use it. When a flat percentage markup pushes premium-tier items past a price point your customers actually pay. Useful as a safety check on Recipe 1 or 2.
Formula:
{{ wholesale | times: 1.5 | round_to_95 | at_most: 99.95 }}
Plain English. Take wholesale, multiply by 1.5, round to .95. Then cap at $99.95.
Example. Most items unaffected. A premium-tier polo with wholesale $75 would normally hit $112.95; the cap brings it to $99.95.
Combine with Recipe 4 (MAP floor) for the full safety belt:
{{ wholesale | times: 1.5 | round_to_95 | at_least: map_price | at_most: 99.95 }}
Recipe 6 — Minimum margin floor
What it does for your store. Calculates retail using your markup formula, but ensures the result is at least a minimum dollar amount above wholesale. Useful when small-dollar items get rounded too tight by the percentage rule.
When to use it. When a percentage markup on cheap blanks lands too close to wholesale because the rounding ate the margin. Common with Gildan or Hanes basics where wholesale is under $3.
Formula:
{% assign rule_price = wholesale | times: 1.5 | round_to_95 %}
{% assign min_price = wholesale | plus: 3 %}
{{ rule_price | at_least: min_price }}
Plain English. Calculate the markup retail. Calculate "wholesale + $3" as the minimum margin floor. Use whichever is higher.
Example. Gildan basic at $1.50 wholesale. Markup: $2.25 → rounded to .95 = $1.95. Margin floor: $1.50 + $3 = $4.50. Result: $4.50 (rounded by Shopify display rules; or you can wrap with another round_to_95 to land at $4.95).
This recipe is most useful for very-cheap-blank merchants who don't want their retail to look indistinguishable from wholesale.
Recipe 7 — Size-based upcharge for XXL+
What it does for your store. Applies a flat dollar upcharge to size 2XL, 3XL, and up. Mirrors what most apparel suppliers already do at wholesale and what most decorators charge customers.
When to use it. Apparel stores selling extended sizes. Suppliers themselves charge an extra dollar or two on 2XL+; if your retail markup formula doesn't reflect this, you're losing margin on the extended sizes.
Formula:
{% if size == '2XL' or size == '3XL' or size == '4XL' or size == '5XL' or size == '6XL' %}
{{ wholesale | times: 1.5 | round_to_95 | plus: 2 }}
{% else %}
{{ wholesale | times: 1.5 | round_to_95 }}
{% endif %}
Plain English. If the size is 2XL or larger, do the normal markup and then add $2. Otherwise, use the normal markup. (For most apparel suppliers, the wholesale on 2XL+ is already higher; this recipe adds a customer-facing surcharge on top.)
Example. Bella+Canvas 3001 size L wholesale $4.95 → markup $7.95 → retail $7.95. Size 3XL wholesale $7.20 → markup $10.95 → with surcharge $12.95.
For decorators who charge a 2XL+ surcharge in their decoration price separately, this recipe is optional. For pure resellers, it's usually worth running.
Recipe 8 — Color-based upcharge for premium colors
What it does for your store. Adds a small upcharge for colors the supplier classifies as "heather" or "premium" (which often have higher wholesale themselves but sometimes need an additional retail upcharge for fit-and-finish).
When to use it. When your apparel store carries color-tier suppliers (Comfort Colors is the canonical example) and wants premium colors to retail meaningfully above standard ones.
Formula:
{% if color contains 'Heather' or color contains 'Pigment' %}
{{ wholesale | times: 1.55 | round_to_95 }}
{% else %}
{{ wholesale | times: 1.5 | round_to_95 }}
{% endif %}
Plain English. If the color name contains "Heather" or "Pigment," apply 55% markup. For other colors, apply 50%. Round to .95.
Example. Bella+Canvas 3001 in "Black" at $4.95 wholesale → $7.95. Same SKU in "Heather Athletic" → $8.95.
The contains check is forgiving on color name spellings. Most apparel suppliers tag heather and pigment-dyed colors with a recognizable substring; the recipe matches whatever the supplier writes.
Recipe 9 — Round to .95, .99, or nearest dollar
What it does for your store. Standardizes retail to a chosen rounding pattern so your storefront prices look consistent.
When to use it. Always — every retail apparel store should round consistently. Common conventions:
.95ending — Most common in apparel and decorator stores. Connotes "fair price." Recipe:| round_to_95..99ending — Common in big-box retail. Connotes "discount price." Recipe:| round_to_99.- Whole-dollar — Common in premium and corporate-merch stores. Connotes "premium." Recipe:
| round.
Formula examples:
{{ wholesale | times: 1.5 | round_to_95 }}
{{ wholesale | times: 1.5 | round_to_99 }}
{{ wholesale | times: 1.5 | round }}
Plain English. Use whichever rounding fits your store's positioning. Pick once and apply across the catalog.
If Supply Master's specific custom-filter names differ from round_to_95, the Liquid help article shows the exact ones. Standard Shopify Liquid round works without any custom filter.
Recipe 10 — Use MSRP when wholesale isn't available
What it does for your store. Falls back to a different supplier field if the primary one is missing on a particular variant. Keeps the catalog from going to $0.00 retail when a wholesale value is blank.
When to use it. Some supplier feeds occasionally have a missing wholesale value on certain edge-case variants (a discontinued color, a special-order size). Without a fallback, those variants would write $0.00 retail.
Formula:
{% assign base = wholesale | default: msrp %}
{{ base | times: 1.5 | round_to_95 }}
Plain English. If wholesale is set, use it. If wholesale is missing, use MSRP instead. Then run the normal markup.
Example. Standard SKU: wholesale $4.95 → retail $7.95. Edge-case discontinued SKU: wholesale missing, MSRP $9.99 → fallback uses MSRP, retail = $9.99 × 1.5 = $14.95.
Recipe 11 — Compare-at price (show the discount)
What it does for your store. Sets Shopify's "compare-at price" field to the supplier's MSRP, so the storefront shows a strike-through "was $X" next to your retail price.
When to use it. When you want to show savings on the product page. Common in dropshipper stores; less common in decorator stores. Goes into the Compare-at price Match Field, not the Price field.
Formula:
{{ msrp }}
Plain English. Use the supplier's MSRP as the compare-at price. Shopify will display it struck through alongside your computed retail.
Example. Wholesale $4.95, your retail (Recipe 1) = $7.95. MSRP $14.99. Storefront shows "$14.99 $7.95." The customer sees a 47% savings.
A note: only set compare-at if you're confident the MSRP is real and current. Inflated compare-at prices to manufacture savings is a fast way to get pulled into a comparative-advertising compliance issue.
Recipe 12 — Compose multiple rules at once
What it does for your store. Stacks several recipes — brand-aware markup, MAP floor, retail ceiling, size upcharge — into one formula that handles the full apparel-store edge-case set in a single rule.
When to use it. Once your catalog crosses one or two suppliers, multiple brands, MAP-protected items, and extended sizes. Most multi-brand apparel stores end up here within their first quarter.
Formula:
{% if vendor == 'Gildan' %}{% assign markup = 1.4 %}
{% elsif vendor == 'Comfort Colors' %}{% assign markup = 1.65 %}
{% else %}{% assign markup = 1.5 %}{% endif %}
{% assign base = wholesale | default: msrp %}
{% assign rule_price = base | times: markup | round_to_95 %}
{% if size == '2XL' or size == '3XL' or size == '4XL' or size == '5XL' or size == '6XL' %}{% assign rule_price = rule_price | plus: 2 %}{% endif %}
{{ rule_price | at_least: map_price | at_most: 99.95 }}
Plain English. Pick the brand-specific markup. Use wholesale (or MSRP fallback). Round to .95. Add $2 on extended sizes. Floor at MAP. Cap at $99.95.
Example walk-through on a Bella+Canvas 3001 in 3XL. Brand → 50% markup. Wholesale $7.20 × 1.5 = $10.80, rounded to .95 = $10.95. 3XL surcharge: $10.95 + $2 = $12.95. MAP not applicable (not a MAP-protected brand). Cap not applicable. Final retail: $12.95.
This is the kind of rule that a manual spreadsheet workflow can't run reliably. Once it's in Supply Master, it runs on every sync, on every variant, against the latest wholesale, forever.
How real stores layer these
The pattern: start simple, layer in complexity as the catalog grows.
| Store shape | Recipes used |
|---|---|
| Single-brand blank reseller | Recipe 1 (flat markup with rounding) |
| Multi-brand decorator | Recipe 2 (per-brand) + Recipe 9 (rounding) |
| Premium retailer carrying MAP-protected brands | Recipe 2 + Recipe 4 (MAP floor) + Recipe 9 |
| Apparel store with extended sizes | Recipe 1 + Recipe 7 (size upcharge) |
| Multi-brand store with safety bounds | Recipe 12 (compose all) |
| Dropshipper showing discounts | Recipe 1 + Recipe 11 (compare-at price) |
| Healthcare uniform retailer | Recipe 4 (MAP floor) + Recipe 9 |
| Corporate-merch shop with strict price points | Recipe 5 (cap at ceiling) |
Most stores start on Recipe 1 in their first hour and layer in additional rules over the first quarter as they hit specific edge cases.
Where Supply Master fits
Every recipe above runs in the Match Fields screen at Edit Supplier > Product Settings > Match Fields, on the row labeled Price (or Compare-at price for Recipe 11). The formula re-runs on every sync, against the supplier's latest wholesale data, and writes the computed retail to Shopify automatically.
What it does well today:
- Liquid formulas with conditional branching (if/elsif/else), arithmetic, and rounding.
- Per-supplier formulas, so you can run a different rule on S&S than on SanMar in the same install.
- Fallback to alternate supplier fields (Recipe 10) when a primary value is missing.
- MAP enforcement (Recipe 4) on supplier feeds that expose MAP — see available supplier data fields for the per-supplier list.
- Test-mode preview before saving, so you can see what the formula produces on a sample SKU before the next sync.
- Same Liquid formula mechanic available on other Match Fields (Title, Description, Compare-at price, custom metafields).
What it doesn't do (yet):
- Multi-currency conditional pricing — Liquid formulas operate on the single base currency of the supplier. Multi-currency stores either use Shopify's currency conversion on top of a single-currency formula or maintain currency-specific suppliers; native multi-currency Liquid is on the roadmap.
- Time-bound price rules — promo overrides ("$2 off Memorial Day weekend") are best handled by Shopify's Discount features rather than the supplier-side Liquid formula. Mixing them in the formula gets brittle.
FAQ
Will my pricing rule survive a wholesale change?
Yes. The whole point of these formulas is that they re-run on every sync against the supplier's current wholesale. The Tuesday wholesale move applies to your retail by Wednesday's sync at the latest, with margin intact.
Do I have to know Liquid to use this?
No. Most apparel stores end up on Recipe 1 (flat markup with rounding), which is one line you can paste in. As your catalog grows, you can layer in additional recipes — and the Comstack support team will write the formula with you on request.
What if my supplier doesn't expose MAP?
A few file-based smaller suppliers don't expose MAP in their data feed. For those, maintain MAP-protected brand floors manually outside the formula, or only carry non-MAP brands from those suppliers. The supplier data fields list shows MAP availability per supplier.
Can I run different rules per supplier?
Yes. Match Fields are configured per supplier. S&S can run Recipe 1, SanMar can run Recipe 12, and Cap America can run Recipe 2 in the same Supply Master install.
Can I run different rules per brand within one supplier?
Yes — that's Recipe 2. The if/elsif/else branches on the supplier's vendor field. As many branches as your store needs.
What if my formula doesn't produce the result I expected?
Use the "Test" button next to each Match Field formula. Pick a sample SKU; the editor shows you exactly what the formula would compute against that SKU's wholesale, MSRP, MAP, and other supplier fields. Iterate until the test result matches what you want, then save.
Will this work for AI+ pricing?
AI+ rewrites descriptions and SEO content, not prices. Your Price formula is unchanged regardless of whether AI+ is on. See AI+ enriched product data for what AI+ does and doesn't touch.
Can the Comstack team write my formula for me?
Yes. Email support@comstack.com with your store's pricing rules described in plain English (e.g. "50% on Gildan blanks, 60% on premium brands, MAP floor on Nike, cap at $99.95"). A Comstack engineer will write and test the formula in your install.
What if I want to back out and use Shopify's regular price field?
Set the Price field's source back to "Use Shopify product field directly" (the default before you set a formula). The next sync stops touching the price; whatever's already in Shopify stays.
What does it cost?
Free trial; plans scale with variant count, sync volume, and supplier count. Exact pricing on the App Store listing.
Related reading
- Advanced Liquid Pricing: 20 Real-World Formulas Used by Top Supply Master Stores — the Stage 4 sequel with 20 advanced recipes including decoration-method-aware pricing, regional markups, and BFCM patterns.
- Make Your Supplier's Catalog Look Like Your Own Storefront — sister Match Fields article covering the broader modifier system that pricing rules sit inside.
- Buyer's Guide: How to Evaluate a Shopify Supplier Integration App — criterion 3 (pricing logic) walks through what to ask any candidate app about Liquid-based pricing capabilities.
Try it on your store
Most apparel stores are losing margin to wholesale changes they didn't catch. A one-line price rule fixes the structural cause permanently.
- Install Supply Master free on the Shopify App Store — 5.0★, top-rated for apparel-supplier integration in the U.S. and Canada.
- Or email support@comstack.com — a Comstack engineer will write the formula with you, end-to-end.
Comstack has been building integrations for apparel and promo suppliers since 2012. Pricing rules are one of the most common things stores ask us to set up — and the formula you put in this week will keep paying off every time your supplier moves wholesale.
Pick the recipe. Paste it in. Run the sync. Move on with your week.