20 Pricing Recipes for Stores That Have Outgrown the Basics
You've been on Supply Master for a while. You started on a flat-percentage markup with .95 rounding, layered in a brand-aware multiplier, and added a MAP floor when you brought on your first MAP-protected line. The recipes from the 12 Liquid pricing recipes article are running on every sync.
Now you've outgrown them. You sell into B2B accounts that get tier-quantity pricing on the same SKUs your retail customers see. You're pricing decorated items differently from blanks. You ship into Canada and the EU and your margin model has to work in three currencies. You run Black Friday markdowns that have to come on at midnight Friday and back off at midnight Monday without an ops person doing it by hand. Your wholesale suppliers raised prices three times last year and your manual MAP audits aren't keeping up.
This article is the sequel to the 12 recipes. Twenty advanced patterns, six categories, every recipe written as a one-line (or one-block) Liquid formula you can paste into the Match Fields screen. Some recipes use supplier fields exposed today; some flag honestly when a recipe depends on a field your supplier may or may not provide. Each recipe says what it does for your store before it shows the formula.
Read it as a reference. Pick the recipes that match your store. Layer them in one at a time and verify on the test SKU before pushing to production sync.
Running examples used throughout: Highline Print Co. on S&S blanks (Bella+Canvas, Comfort Colors), Park Ridge Embroidery on SanMar uniforms (Port Authority, OGIO), Atrium Dropship Co. on ACC for blank-only resale, Coastline Apparel Co. on S&S in pure-dropship mode, and a few archetypes that show up only in Stage 4 (B2B-and-retail hybrid, multi-currency reseller, BFCM operator).
Key Takeaways
- What this article shows — twenty advanced Liquid pricing recipes for Supply Master, organized into six pattern categories: case-pack, decoration-method, region/multi-currency, calendar/seasonal, B2B-tier, and MSRP-anchored.
- Who it's for — Supply Master users who have outgrown a flat-percentage markup and need pricing rules that hold up at 10× the catalog scale and 3× the customer complexity.
- The bottom-line outcome — every retail price on every supplier sync reflects the right margin for the right customer in the right context, without any human intervention between supplier wholesale changes and Shopify retail updates.
- The first action — pick the one pattern category that matches your most pressing pricing problem (case-pack pricing for blank resellers, decoration-method markup for decorators, B2B-tier for hybrid wholesale-and-retail) and paste the matching recipe from section 4 into a Match Fields rule on a single SKU; takes under 15 minutes and validates the pattern before you scale it.
- Honest caveat — multi-currency recipes work in Liquid but Shopify Markets handles most cross-region pricing better than per-currency Liquid does today. Use Liquid multi-currency only when Shopify Markets won't cover your case (e.g., per-currency margin floors that Markets can't enforce).
- 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 recipe with you and confirm field availability on your specific supplier feeds.
Table of contents
- How these recipes build on the original 12
- Section A — Case-pack-aware (recipes 1-3)
- Section B — Decoration-method-aware (recipes 4-6)
- Section C — Region & multi-currency (recipes 7-9)
- Section D — Calendar & seasonal (recipes 10-12)
- Section E — B2B & tier pricing (recipes 13-15)
- Section F — MSRP-anchored, margin-locked, MAP-deep (recipes 16-19)
- Recipe 20 — The full advanced composition
- Edge cases and honest gotchas
- What to do this week
- FAQ
- Try it on your store
How these recipes build on the original 12
The original 12 recipes solved the universal apparel-store problem: take a supplier wholesale, apply a markup, round to a clean retail, respect MAP, cap at a ceiling, layer per-brand differences. Most stores can run on those twelve forever and never feel constrained.
The recipes in this article solve the additional problems that show up when your store crosses a scale or complexity threshold. The categories:
- Case-pack — when your supplier prices in cases (12-pack, 24-pack, 72-pack of caps) and your storefront sells per piece, the per-piece markup needs to derive cleanly from the case price.
- Decoration-method — when the same blank goes out as embroidered, screen-printed, or plain dropship, each of which deserves a different retail margin.
- Region & multi-currency — when your store ships into multiple currency zones and the markup has to absorb FX risk and regional cost differences.
- Calendar & seasonal — when promotional pricing has to come on at a date and back off at a date without manual intervention.
- B2B & tier pricing — when bulk-buying customers see different prices than retail customers on the same SKU.
- MSRP-anchored, margin-locked, MAP-deep — when your pricing strategy is anchored to a target percentage of MSRP, an absolute margin dollar amount, or a more nuanced MAP enforcement than the simple floor recipe.
Each recipe is independent. You can use any one without using the others. Recipe 20 composes several together for stores that need the full mega-rule.
A note on field availability. Some recipes use Liquid variables that may or may not be exposed on every supplier feed. The case_price, case_pack_size, decoration_method, country_of_origin, and lead_time fields are available on some suppliers and not others; the customer_type and quantity_tier fields are Shopify-side concepts that need a corresponding Match Field source. Where a recipe depends on a field that's not universally available, the recipe text says so and points you to the available supplier data fields help doc to verify on your specific supplier.
For the Liquid mechanics (variables, filters, conditionals), see the original 12 recipes article.
Section A — Case-pack-aware (recipes 1-3)
Headwear, blanks bought by the dozen, novelty items in 24-packs — apparel suppliers commonly price in cases. Your storefront usually sells per piece. The recipes below derive per-piece retail from the supplier's case price.
Recipe 1 — Per-piece markup from case price
What it does for your store. Divides the supplier's case wholesale by the case-pack size to get the per-piece wholesale, then applies your markup.
When to use it. Cap America truckers come in cases of 12. ChamPRO socks come in cases of 24 pairs. The supplier's quoted wholesale is the case price; your retail needs to be per piece.
Formula:
{% assign per_piece = case_price | divided_by: case_pack_size %}
{{ per_piece | times: 1.6 | round_to_95 }}
Plain English. Divide case price by case pack size to get per-piece wholesale. Multiply by 1.6 (a 60% markup). Round to .95.
Example. Cap America trucker case at $48 wholesale, case pack 12. Per-piece wholesale: $48 ÷ 12 = $4.00. Retail: $4.00 × 1.6 = $6.40, rounded to .95 = $6.95.
Field note. case_price and case_pack_size are available on most headwear and accessory suppliers; not always on apparel-blanks suppliers. Confirm on your specific supplier feed.
Recipe 2 — Quantity-break compare-at price
What it does for your store. Computes per-piece retail at the customer's chosen quantity, then sets the compare-at price to the per-piece retail at quantity 1, so the storefront shows a savings strike-through that scales with the customer's order quantity.
When to use it. B2B-leaning shops where customers commonly buy multiple cases at once and want to see the bulk savings on the storefront.
Formula (Price field):
{{ wholesale | times: 1.5 | round_to_95 }}
Formula (Compare-at price field):
{{ msrp | default: wholesale | times: 1.8 | round_to_95 }}
Plain English. Set retail at 50% markup. Set compare-at at 80% markup of MSRP (or wholesale fallback). Storefront displays the discount.
Example. Wholesale $4.95, MSRP $9.99. Retail = $4.95 × 1.5 = $7.95 (rounded). Compare-at = $9.99 × 1.8 = $17.95 (rounded). Storefront shows "$17.95 $7.95." Customer sees the per-piece savings.
Recipe 3 — Case-quantity bonus markdown via metafield
What it does for your store. Reads a customer-tier-aware case-quantity metafield to apply a deeper markdown when the customer is buying a case quantity (12, 24, or 48 units of one SKU).
When to use it. Hybrid B2B/retail shops that want to expose case-quantity pricing on the storefront without breaking the standard retail price for one-off purchases.
Formula sketch: Case-quantity bonus markdown is best handled at checkout via Shopify Functions / Discount apps rather than at the catalog-sync level — Liquid pricing rules in Match Fields do not have access to the customer's cart quantity at sync time. Configure a base price using Recipe 1 and pair it with a Shopify quantity-discount app for the bulk-tier markdown.
Honest note. This is the first recipe in this article that doesn't fully resolve in Match Fields Liquid alone. Ship the base price through Supply Master; ship the quantity-bonus through Shopify Functions or a discount app. Comstack support can recommend the best discount-app pattern for your shop on request.
Section B — Decoration-method-aware (recipes 4-6)
If you decorate, the same blank carries a different retail depending on whether it ships out as a screen-printed tee, an embroidered cap, or a heat-transfer hoodie. The recipes below show how to encode that distinction at the catalog-sync level when your store separates decorated and undecorated SKUs into separate Shopify products.
Recipe 4 — Per-decoration-method markup with metafield-driven branching
What it does for your store. Reads a decoration_method Shopify metafield (set per product or variant) and applies the corresponding markup.
When to use it. Decorator stores that maintain separate Shopify products (or variants) for "blank" vs "embroidered" vs "screen-printed" vs "heat-transferred" versions of the same SKU.
Formula:
{% assign method = product.metafields.custom.decoration_method | default: 'blank' %}
{% if method == 'embroidered' %}{{ wholesale | times: 2.5 | round_to_95 }}
{% elsif method == 'screen-printed' %}{{ wholesale | times: 2.0 | round_to_95 }}
{% elsif method == 'heat-transfer' %}{{ wholesale | times: 1.9 | round_to_95 }}
{% else %}{{ wholesale | times: 1.5 | round_to_95 }}{% endif %}
Plain English. If the product is tagged "embroidered," 150% markup. Screen-printed, 100% markup. Heat-transfer, 90% markup. Plain blank, 50% markup.
Example. Bella+Canvas 3001 wholesale $4.95. Blank version: $7.95. Screen-printed version: $9.95. Embroidered version: $12.95.
Field note. This recipe requires you to maintain a decoration_method metafield on each Shopify product; Supply Master can write it via Match Fields if the supplier exposes a tag that maps to decoration method, or you can set it in the Shopify admin manually. (Supply Master also supports writing to product-level and variant-level metafields directly — see using metafields with Supply Master and the Make Your Supplier's Catalog Look Like Your Own Storefront article.)
Recipe 5 — Decoration-cost-additive pricing
What it does for your store. Adds a flat decoration cost to the per-piece markup based on the decoration method — useful when your decoration cost is a known per-piece dollar amount rather than a percentage.
When to use it. Decorators with a stable per-piece cost for each decoration method (e.g., $3 per piece for one-color screen print, $5 per piece for two-color, $7 per piece for embroidery).
Formula:
{% assign base = wholesale | times: 1.5 | round_to_95 %}
{% assign method = product.metafields.custom.decoration_method | default: 'blank' %}
{% if method == 'embroidered' %}{{ base | plus: 7 }}
{% elsif method == 'screen-printed' %}{{ base | plus: 3 }}
{% elsif method == 'heat-transfer' %}{{ base | plus: 4 }}
{% else %}{{ base }}{% endif %}
Plain English. Compute base retail with normal markup. Add the decoration cost in dollars per piece based on the method.
Example. Bella+Canvas 3001 wholesale $4.95. Base retail = $7.95. Embroidered version: $7.95 + $7 = $14.95. Screen-printed version: $7.95 + $3 = $10.95.
Recipe 6 — Per-color-count screen-print uplift
What it does for your store. Adds a per-color uplift to screen-printed items based on a color_count metafield (number of ink colors in the print).
When to use it. Screen-printers whose decoration price scales with the color count of the print.
Formula:
{% assign base = wholesale | times: 1.5 | round_to_95 %}
{% assign colors = product.metafields.custom.color_count | default: 1 %}
{% assign uplift = colors | times: 1.5 %}
{{ base | plus: uplift }}
Plain English. Compute base retail. Add $1.50 per ink color in the print.
Example. A two-color screen print on a $4.95 blank: base retail $7.95, two-color uplift = $3.00, final = $10.95.
Section C — Region & multi-currency (recipes 7-9)
If you ship into multiple currency zones, your margin model has to absorb FX risk and regional cost differences. Liquid pricing rules in Supply Master operate on the supplier's base currency; the recipes below show how to add buffer for FX accuracy and how to encode region-specific markups.
Recipe 7 — Currency-buffer markup
What it does for your store. Adds a small uplift to the markup percentage to absorb the imprecision of Shopify's currency-conversion engine when displaying prices in non-base currencies.
When to use it. Stores selling into multiple currencies where Shopify's auto-conversion sometimes lands at "ugly" amounts (a base-currency $9.95 retail converted to CAD might display as $13.47 or similar).
Formula:
{{ wholesale | times: 1.55 | round_to_95 }}
Plain English. Bump the markup from 1.5 to 1.55 (a 50%-to-55% shift) to give Shopify's currency conversion room to land on a clean number in non-base currencies.
Honest note. This is a workaround for the limitation that Match Fields Liquid runs in the supplier's base currency. The cleaner long-term fix is multi-currency-aware pricing rules at the storefront level via Shopify Markets, with the Match Fields rule serving as the base-currency anchor.
Recipe 8 — Region-targeted vendor-tag markup
What it does for your store. Applies a higher markup to products tagged for a specific region (e.g., "EU" or "CA") to absorb shipping and tariff differences.
When to use it. Multi-region stores where the same product is duplicated into a per-region Shopify catalog (one Shopify product per region) and tagged with a region identifier.
Formula:
{% if product.tags contains 'region:EU' %}{{ wholesale | times: 1.8 | round_to_95 }}
{% elsif product.tags contains 'region:CA' %}{{ wholesale | times: 1.65 | round_to_95 }}
{% else %}{{ wholesale | times: 1.5 | round_to_95 }}{% endif %}
Plain English. EU products: 80% markup (covers EU import duties). CA products: 65% markup (covers Canadian shipping). All others: 50% markup.
Example. Bella+Canvas 3001 wholesale $4.95. US version: $7.95. CA version: $8.95. EU version: $10.95.
Field note. This recipe assumes you've tagged your Shopify products with region:EU, region:CA, etc. Tags can be applied via Match Fields composition (see Recipe 5 in Make Your Supplier's Catalog Look Like Your Own Storefront) or manually.
Recipe 9 — Tax-inclusive pricing for VAT/GST regions
What it does for your store. Bumps retail to absorb a region's standard VAT or GST when your storefront displays tax-inclusive prices.
When to use it. Stores selling into Canada (GST/HST), the UK or EU (VAT), Australia (GST), or any other tax-inclusive region.
Formula:
{% if product.tags contains 'region:UK' %}{{ wholesale | times: 1.5 | times: 1.20 | round_to_95 }}
{% elsif product.tags contains 'region:CA' %}{{ wholesale | times: 1.5 | times: 1.13 | round_to_95 }}
{% else %}{{ wholesale | times: 1.5 | round_to_95 }}{% endif %}
Plain English. Apply normal markup, then multiply by the regional tax factor (UK: 1.20 for 20% VAT; Canada: 1.13 for typical 13% HST). Round to .95.
Honest note. This recipe trades simplicity for a static tax assumption. The cleaner solution for multi-region tax handling is Shopify Markets with native tax-inclusive pricing per region. Use this Liquid recipe only if you want a single canonical price and don't have Markets configured. Verify the tax factor against current rates in your specific region.
Section D — Calendar & seasonal (recipes 10-12)
Promotional pricing that has to come on and off at known dates without manual intervention. Liquid in Match Fields has access to the current date through the 'now' variable, which lets you build calendar-aware rules.
Recipe 10 — Weekend markdown
What it does for your store. Applies a 10% retail markdown on Saturdays and Sundays only.
When to use it. Stores running a recurring weekend promotion (a popular pattern for streetwear and retail-leaning apparel shops).
Formula:
{% assign day = 'now' | date: '%w' %}
{% assign base = wholesale | times: 1.5 | round_to_95 %}
{% if day == '0' or day == '6' %}{{ base | times: 0.9 | round_to_95 }}
{% else %}{{ base }}{% endif %}
Plain English. Compute base retail. If today is Saturday (%w == '6') or Sunday (%w == '0'), apply a 10% markdown. Otherwise, keep base.
Honest note. This recipe re-runs only on each catalog sync, which means weekend pricing kicks in on the first sync after midnight Saturday and stays until the first sync after midnight Monday. If your sync frequency is hourly, the price changes within an hour of each transition; if daily, within 24 hours. For exact-time-on / exact-time-off promotional pricing, use Shopify's native Discount features instead — they fire instantly at the configured time without depending on the catalog sync schedule.
Recipe 11 — Black Friday window markdown
What it does for your store. Applies a configurable markdown only during the Black Friday weekend (last Friday of November through the following Monday — Cyber Monday).
When to use it. BFCM operators who want catalog-wide markdown handled at the supplier-sync level.
Formula sketch:
{% assign today = 'now' | date: '%Y-%m-%d' %}
{% assign bf_start = '2026-11-27' %}
{% assign bf_end = '2026-11-30' %}
{% assign base = wholesale | times: 1.5 | round_to_95 %}
{% if today >= bf_start and today <= bf_end %}{{ base | times: 0.85 | round_to_95 }}
{% else %}{{ base }}{% endif %}
Plain English. If today is between Nov 27, 2026 and Nov 30, 2026, apply a 15% markdown. Otherwise, keep base.
Example. Bella+Canvas 3001 base retail $7.95. During BFCM window: $7.95 × 0.85 = $6.76, rounded to .95 = $6.95. After Cyber Monday: back to $7.95.
Honest note. Same caveat as Recipe 10 — promotional pricing through Match Fields only updates at sync time, so the actual on/off transition happens at the next sync after midnight on the boundary date. For a precise "starts at 12:00:00 AM" experience, use Shopify Discounts or Shopify Markets pricing instead. The Match Fields Liquid pattern works if your sync cadence is hourly or faster and a small lag is acceptable.
For the complete BFCM playbook including catalog freeze, sync cadence, MAP audit, and inventory buffer, see Get Your Supply Master Catalog Ready for Black Friday in Four Weekends.
Recipe 12 — Seasonal category markup (winter vs summer)
What it does for your store. Adjusts markup by month for seasonal categories — heavier markup on winter items in cold months, lighter markup in summer months (when winter items are clearance-priced).
When to use it. Apparel stores with strong seasonality (jackets, hoodies, beanies in winter; tees, tanks, shorts in summer) where pricing should reflect the demand curve.
Formula:
{% assign month = 'now' | date: '%m' | times: 1 %}
{% assign category = product.metafields.custom.category | default: 'all-season' %}
{% if category == 'winter' %}
{% if month >= 10 or month <= 2 %}{{ wholesale | times: 1.7 | round_to_95 }}
{% else %}{{ wholesale | times: 1.3 | round_to_95 }}{% endif %}
{% elsif category == 'summer' %}
{% if month >= 5 and month <= 8 %}{{ wholesale | times: 1.7 | round_to_95 }}
{% else %}{{ wholesale | times: 1.3 | round_to_95 }}{% endif %}
{% else %}{{ wholesale | times: 1.5 | round_to_95 }}{% endif %}
Plain English. Winter items at 70% markup Oct-Feb, 30% markup the rest of the year. Summer items at 70% markup May-Aug, 30% markup the rest of the year. All-season at 50%.
Honest note. Same sync-cadence caveat as the other calendar recipes. Monthly transitions are usually fine on a daily sync; if you need more precision, run the supplier on hourly sync near month boundaries.
Section E — B2B & tier pricing (recipes 13-15)
Stores serving both retail and B2B customers on the same SKUs need different prices for different customer types. Match Fields Liquid alone cannot read the customer-side context at sync time, so most B2B-tier patterns combine a base Match Fields price with a Shopify-side mechanism. The recipes below show the supplier-sync side.
Recipe 13 — B2B-anchored base price
What it does for your store. Sets the catalog price at the wholesale-buyer rate (lower markup), and uses Shopify Customer Tags or a B2B-discount app to surcharge retail customers up to retail price.
When to use it. Stores where the B2B segment is the larger customer base and retail is the smaller add-on.
Formula (Price field):
{{ wholesale | times: 1.25 | round_to_95 }}
Plain English. Set base retail at 25% markup (the B2B rate). Pair this with a Shopify-side retail-tag surcharge to bring retail customers to a 50%-markup-equivalent price.
Recipe 14 — Retail-anchored base price with B2B discount metafield
What it does for your store. Sets the catalog price at the retail rate (higher markup) and uses a B2B customer tier to apply a discount at checkout.
When to use it. Stores where the retail segment is the larger customer base and B2B is a strategic add-on.
Formula (Price field):
{{ wholesale | times: 1.6 | round_to_95 }}
Plain English. Set base retail at 60% markup. Configure Shopify Markets or a B2B-discount app to apply a 22% discount for B2B-tagged customers (which lands them at the equivalent of 25% markup).
Recipe 15 — Quantity-tier compare-at price
What it does for your store. Shows a "buy in case quantities for X" indication on the storefront via the compare-at price.
When to use it. Stores that want to advertise bulk savings on the product page without running a full B2B portal.
Formula (Compare-at price field):
{{ wholesale | times: 1.8 | round_to_95 }}
Plain English. Set compare-at at 80% markup. Set price (in a separate Match Field) at the lower retail markup. Storefront shows the per-piece "savings" the customer gets by ordering at all (vs. the implied retail-list MSRP).
Honest note. Genuine quantity-aware pricing at checkout requires Shopify Functions or a quantity-discount app — Match Fields Liquid alone cannot apply different prices per cart quantity. This recipe adds visual savings; a real B2B-tier discount engine is a separate Shopify-side install.
Section F — MSRP-anchored, margin-locked, MAP-deep (recipes 16-19)
Refinements on the MAP and MSRP patterns from the original 12 — pricing strategies anchored on a target percentage of MSRP, an absolute margin lock, or a more nuanced MAP enforcement than the simple floor.
Recipe 16 — MSRP-target pricing
What it does for your store. Anchors retail at a target percentage of MSRP rather than a markup over wholesale.
When to use it. Strategy-driven stores that price relative to the manufacturer's suggested retail price rather than relative to the wholesale cost. Common in premium-branded apparel where MSRP is the customer-recognized price.
Formula:
{{ msrp | default: wholesale | times: 0.85 | round_to_95 }}
Plain English. Set retail at 85% of MSRP (a 15% discount off MSRP). If MSRP is missing, fall back to wholesale × 0.85 (which is below cost — only a sane fallback if your wholesale is very low and MSRP is missing as an exception).
Example. Nike polo MSRP $59.99. Retail = $59.99 × 0.85 = $50.99, rounded to .95 = $50.95.
Recipe 17 — Margin-locked pricing (target dollar margin)
What it does for your store. Sets retail to lock in a target absolute dollar margin rather than a percentage.
When to use it. Stores serving customer segments that pay attention to absolute dollar markup rather than percentage. Common in B2B and corporate-merch.
Formula:
{{ wholesale | plus: 5 | round_to_95 }}
Plain English. Add a flat $5 margin to wholesale. Round to .95.
Example. Wholesale $4.95 → retail = $9.95. Wholesale $14.95 → retail = $19.95. The percentage moves inversely with wholesale, but the dollar margin is constant.
Recipe 18 — MSRP-anchored MAP enforcement
What it does for your store. Combines MSRP-target pricing with MAP enforcement, so the result is the lower of "85% of MSRP" or "wholesale × 1.5," but never below MAP.
When to use it. MAP-protected premium catalogs where you want a deliberate strategy of pricing slightly below MSRP while never violating the brand floor.
Formula:
{% assign msrp_price = msrp | times: 0.85 | round_to_95 %}
{% assign markup_price = wholesale | times: 1.5 | round_to_95 %}
{% assign target = msrp_price %}
{% if markup_price < msrp_price %}{% assign target = markup_price %}{% endif %}
{{ target | at_least: map_price }}
Plain English. Compute the 85%-of-MSRP price. Compute the wholesale-markup price. Use whichever is lower. Then floor at MAP.
Example. Nike polo wholesale $35, MSRP $59.99, MAP $54.99. 85% of MSRP = $50.99 → $50.95. Wholesale × 1.5 = $52.50 → $52.95. Lower of the two: $50.95. MAP floor: $54.99 wins. Final retail: $54.99.
Recipe 19 — Tiered MAP relief above a percentile threshold
What it does for your store. Applies normal MAP enforcement, but if the brand-aware markup lands well above MAP (say, 10% or more above), allows the markup to win without re-flooring at MAP. Keeps premium SKUs from being unnecessarily compressed at MAP when the brand markup naturally exceeds it.
When to use it. Multi-brand catalogs where MAP-protected brands sit alongside brands with healthy markup ceilings, and you want consistent strategy: never below MAP, but never artificially compressed when markup is healthy.
Formula:
{% assign rule_price = wholesale | times: 1.5 | round_to_95 %}
{% assign map_threshold = map_price | times: 1.10 %}
{% if rule_price >= map_threshold %}{{ rule_price }}
{% else %}{{ map_price }}{% endif %}
Plain English. Compute the markup retail. Compute "MAP × 1.10" as the threshold. If markup retail is at or above the threshold, use markup retail. Otherwise, snap to MAP.
Example. Nike polo wholesale $35, MAP $54.99. Markup: $35 × 1.5 = $52.50 → $52.95. Threshold: $54.99 × 1.10 = $60.49. Markup is below threshold → snap to MAP: $54.99. A different SKU with wholesale $45: markup $67.50 → $67.95. Threshold: $60.49. Markup above threshold → use markup: $67.95.
Recipe 20 — The full advanced composition
Stack the most useful patterns from this article into one rule.
What it does for your store. Per-brand markup + decoration-method-aware uplift + region-aware tax/cost adjustment + MAP floor + retail ceiling, all in one formula.
When to use it. When your store has crossed the threshold where the original 12-recipe composition (Recipe 12 in the original article) is no longer sufficient — typically multi-brand, multi-region, decoration-aware shops.
Formula:
{% if vendor == 'Nike' %}{% assign markup = 1.7 %}
{% elsif vendor == 'Bella + Canvas' %}{% assign markup = 1.55 %}
{% else %}{% assign markup = 1.5 %}{% endif %}
{% assign base = wholesale | default: msrp | times: markup | round_to_95 %}
{% assign method = product.metafields.custom.decoration_method | default: 'blank' %}
{% if method == 'embroidered' %}{% assign decorated = base | plus: 7 %}
{% elsif method == 'screen-printed' %}{% assign decorated = base | plus: 3 %}
{% else %}{% assign decorated = base %}{% endif %}
{% if product.tags contains 'region:EU' %}{% assign regional = decorated | times: 1.20 | round_to_95 %}
{% elsif product.tags contains 'region:CA' %}{% assign regional = decorated | times: 1.13 | round_to_95 %}
{% else %}{% assign regional = decorated %}{% endif %}
{{ regional | at_least: map_price | at_most: 199.95 }}
Plain English. Pick the brand markup. Apply to wholesale (or MSRP fallback). Add decoration cost. Apply regional tax factor. Floor at MAP. Cap at $199.95.
Example walk-through on a Nike polo shipped to a CA customer, embroidered. Brand → 70% markup. Wholesale $35 × 1.7 = $59.50, rounded = $59.95. Decoration: $59.95 + $7 = $66.95. Region CA: $66.95 × 1.13 = $75.65, rounded = $75.95. MAP $54.99: floor not triggered. Cap $199.95: not triggered. Final retail: $75.95.
This is the kind of rule that earns its complexity by handling every dimension of your store's pricing strategy in one place. It's also the kind of rule that benefits from a Comstack engineer pair-programming the first version with you — email support@comstack.com to set up a pricing-rule design session.
Edge cases and honest gotchas
Five things to plan for when you adopt the advanced recipes.
1. Liquid in Match Fields runs at sync time, not at customer-cart time. Recipes that depend on customer context (B2B tier, cart quantity, customer's currency selection) cannot be fully resolved in Match Fields alone. The supplier-sync side sets the base; the Shopify side (Functions, Markets, Discount apps) handles per-customer overrides.
2. Date-aware recipes update only on sync. Calendar-aware recipes (Recipes 10, 11, 12) depend on a sync running after the date-boundary moment. For exact-time promotional pricing, use Shopify Discounts.
3. Field availability varies by supplier. case_price, case_pack_size, decoration_method, country_of_origin, and other fields used in this article are exposed on some suppliers and not others. The available supplier data fields help doc shows the per-supplier list. Recipes that use a field your supplier doesn't expose will fall through to whatever your default: clause specifies.
4. Test before push. Every advanced recipe should be tested on at least three sample SKUs (a typical, an edge-case, a MAP-protected) before saving and running on the full catalog. Use the test-mode preview in Match Fields.
5. Recipe complexity has a maintenance cost. A 30-line composition formula is harder to debug six months from now than three small focused formulas across three Match Field rows. If your store has multiple distinct pricing strategies (e.g., one per supplier), prefer per-supplier per-Match-Field formulas over one mega-rule.
What to do this week
Five steps. The first one takes ten minutes.
- Audit your current pricing strategy in plain English. Write down: "We mark up at X% on Brand A, Y% on Brand B; we respect MAP on Z; we run BFCM markdowns by hand; we have B2B customers paying P% off retail." Time: 20 minutes.
- Pick two recipes from this article to add this month. Don't try to layer all twenty at once. Pick the two highest-leverage for your store today (often: the BFCM date-window recipe + one of the B2B-anchored base price recipes). Time: 5 minutes.
- Implement the recipes in a test environment if possible. Or implement against a single low-traffic supplier first, run for a week, validate the results match your audit. Time: 30-60 minutes per recipe.
- Roll out across remaining suppliers. Same recipes, same Match Fields screen, supplier by supplier. Time: 15 minutes per supplier.
- Document the formula composition for your ops team. A short internal doc that maps each Match Field rule to its merchant intent. Future you (or a future ops hire) will thank present you. Time: 30 minutes.
Total time to upgrade your pricing strategy: about 4-6 hours of focused work, spread across a week. A Comstack engineer will pair-program the more complex recipes with you on a 30-minute call if you'd rather not figure them out yourself.
FAQ
Should I migrate from the 12 original recipes to these 20?
No — the original 12 are still right for most stores. These 20 are additions for stores that have outgrown the originals on a specific dimension (case-pack, decoration, region, calendar, B2B, or anchored-to-MSRP pricing). Most stores end up running 3-5 of the original 12 plus 1-3 of these advanced ones.
Can I use these recipes on every supplier?
Field availability varies. Recipes that use universal fields (wholesale, msrp, vendor, size, color) work on every supplier. Recipes that use less-universal fields (case_price, decoration_method, country_of_origin) work only on suppliers that expose them. Check available supplier data fields for your specific supplier mix.
Will my supplier rep have to do anything?
No. These recipes operate on data the supplier already sends through their existing API or feed. No supplier-side change is required.
How long until my new pricing rule takes effect?
Within one sync cycle. A daily sync schedule means the new rule runs the next morning; an hourly schedule means within an hour. The first sync after the rule change writes the new prices to every variant in your store.
What about my custom price overrides?
Match Fields formulas overwrite the Shopify price field on every sync. If you have manually-set per-product overrides in Shopify, the next sync will reset them. To preserve manual overrides, exclude those products from sync (via filters) or use a Shopify Function override that runs after Supply Master writes the base price.
Will I lose any history?
No. The Shopify side keeps every order, every product, and every price-change history independently of Supply Master. Changing a Liquid pricing rule changes future syncs; historical orders and the historical Shopify price log are unaffected.
Can the Comstack team write these recipes for me?
Yes. Email support@comstack.com with your store's pricing strategy in plain English. A Comstack engineer will write, test, and deploy the matching Liquid recipes in your install — including the advanced compositions in this article.
What does it cost?
Free trial; plans scale with variant count and update volume. Liquid pricing rules are included in every plan tier — there is no per-recipe or per-supplier pricing-rule charge. Exact pricing on the App Store listing.
What if I want to back out of an advanced recipe?
Open Edit Supplier > Product Settings > Match Fields > Variant Price > Modify. Replace the advanced formula with whichever simpler recipe you prefer (or revert to "Use Shopify product field directly"). Save. The next sync runs on the new rule.
Try it on your store
Twenty advanced recipes, six categories, every one a one-line (or one-block) Liquid formula your store runs against every supplier wholesale change forever. Pick the two that match your store's next pricing problem. Implement. Validate. Move on.
- 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 and book a 30-minute pricing-rule design session. A Comstack engineer will write the recipes with you, test against your real catalog, and deploy them across your suppliers.
Comstack has been building integrations for apparel and promo suppliers since 2012. The advanced pricing rules in this article are exactly the kind of thing we set up for stores every week — and the formula you put in this month will keep paying off every time your supplier moves wholesale, every BFCM cycle, and every time your store grows into the next tier of customer complexity.
Pick the recipes. Paste them in. Run the syncs. Move on with your week.