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:
Match price changes between product variants
Match product-level discounts
Match order-level discounts
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
Go to Discount Matching settings
Enter a
Metafield Namespace
andKey
(e.g.,PIM
andMPN
)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.