Skip to main content

🎯 Discount Matching – Preserve discounts and pricing during exchanges

Jeppe Oestergaard Hansen avatar
Written by Jeppe Oestergaard Hansen
Updated over 2 months ago

Discount Matching ensures a fair return experience by preserving discounts and handling price changes between the original order and the exchange.

This feature is only applied to exchanges, and lets you:

  1. Match price changes between product variants

  2. Match product-level discounts

  3. Match order-level discounts

  4. Match between products using product grouping via metafields


⚙️ Where to find Discount Matching

Go to:
Settings → Returns → Discount Matching

Here you'll find:

  • Cover Price Differences

  • Match Product Discounts

  • Match Order Discounts

  • [Optional] Product Grouping via Metafields


1️⃣ Cover Price Differences – Handle price increases

Covers price increases that occurred after the original purchase but before the exchange.

  • Only applies to exchanges between variants of the same product

  • Automatically uses the lowest price if multiple variants are involved

  • Can be extended to similar products using product grouping

🔢 Example 1: Standard variant exchange

  • Customer buys a T-shirt (size M) for 200 DKK

  • Price increases to 230 DKK for size L

  • Customer exchanges for size L

With Cover Matching: Customer pays 0 DKK
Without: Customer pays the 30 DKK difference


🔢 Example 2: Across products via metafields

  • “Denim Jeans Indigo” and “Denim Jeans Black” share a metafield (e.g., PIM.MPN)

  • Jeans A was bought for 400 DKK

  • Jeans B now costs 450 DKK

With Cover Price + product grouping: Customer pays 0 DKK
Without grouping: Jeans B is treated as a new product → customer pays 50 DKK


2️⃣ Match Product Discounts – Reapply product-specific discounts

Matches both percentage and fixed value discounts, applied via code or automatically.

  • Only applies when exchanging variants of the same product

  • Adjusts proportionally if the product’s price has changed

  • Can be extended via product grouping

🔢 Example 1: Variant with percentage discount

  • Original price: 300 DKK

  • Discount: 10 % → Paid: 270 DKK

Exchanged for variant that now costs 330 DKK
→ 10 % applied → New price: 297 DKK
→ Customer pays 27 DKK


🔢 Example 2: Across products with metafields

  • T-shirt A and B are grouped via metafields

  • A had a 50 DKK discount at time of purchase

  • Exchanging to B, which now costs more

→ System applies proportional discount of 50 DKK
→ Customer only pays the adjusted difference


3️⃣ Match Order Discounts – Preserve full-cart discounts

Matches full-order discounts like 10 % off, buy X get Y, or automated Shopify promotions.

  • Works across all products, even when exchanging for a different product

  • Distributes discount proportionally

  • Supports multiple stacked discounts

🔢 Example 1: One discount

  • Original order:

    • T-shirt = 300 DKK

    • Jeans = 300 DKK

    • Total = 600 DKK

    • Order discount: 10 % = –60 DKK

Customer exchanges the T-shirt (50 % of order)
→ 50 % of discount = 30 DKK
→ Customer receives a 30 DKK discount on new item


🔢 Example 2: Multiple discounts

  • Original order has:

    • 10 % discount (–60 DKK)

    • Additional 50 DKK promotion

→ Customer exchanges 50 % of cart value
→ 50 % of total 110 DKK = 55 DKK discount


🧩 Product Grouping via Metafields

To allow price and discount matching between different products, you can define product groups using Shopify Metafields.

🔧 How to set up

  1. Go to Discount Matching settings

  2. Enter a Metafield Namespace and Key (e.g., PIM and MPN)

  3. In Shopify, ensure the products you want to group share the same metafield value

If no metafields are set, Returnflows will only match based on the product's parent ID.


🔢 Example: Denim jeans group

  • “Denim Jeans Indigo” and “Denim Jeans Black” share metafield PIM.MPN = 1234

  • Price and product-level discounts will apply across those items

→ Customer can exchange freely between grouped products with discount matching applied


❓ FAQ

Does this apply to refunds?
No – only exchanges are eligible for Discount Matching.

Can multiple discounts be matched at the same time?
Yes – all valid discounts are matched independently and proportionally.

What if the new item has no variant?
Order Discounts will still apply.
Cover Price and Product Discounts require variant relation or metafield grouping.

Does this work with both code-based and automatic discounts?
Yes – both are supported for all types of matching.


💡 Best Practices

  • Enable Cover Price + Product Discount Matching for a smooth size-exchange experience

  • Use Order Discount Matching if you frequently offer full-cart promos

  • Configure product grouping if customers often switch between related products (e.g., different color or fit)


🙋 Need help?

Not sure how to structure your discounts or set up metafields?
💬 Chat with us – we’re happy to assist with implementation or testing.

Did this answer your question?