---
title: Promotional mechanics management
description: how to manage the refund and exchange of promotional mechanics applied during the sale
---

[Skip to content](https://help.ifreturns.com/en/knowledge-center/promotional-mechanics-management#main-content)

English

Show submenu for translations

[Customer portal](https://help.ifreturns.com/tickets-view?hsLang=en)

![Logo Negativo-4.png\]](https://help.ifreturns.com/hs-fs/hubfs/Logo%20Negativo-4.png?height=40&name=Logo%20Negativo-4.png)

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- [Customer portal](https://help.ifreturns.com/tickets-view)
- Go to ifreturns.com

 Go to ifreturns.com

 How can we help?

- There are no suggestions because the search field is empty.

1. [Knowledge Center](https://help.ifreturns.com/en/knowledge-center?hsLang=en)
2. [Getting Started](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en)
3. [Promotions Management](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#promotions-management)

# Promotional mechanics management

## This article explains how to calculate refundable quantities per line item when different types of promotions are applied in Shopify, with a focus on Buy X Get Y (BuyXGetY) discounts.

### **Standard Promotions Management – Shopify**

This article explains how to calculate **refundable quantities per line item** when different types of promotions are applied in Shopify, with a focus on **Buy X Get Y (BuyXGetY)** discounts.

---

#### **Default Behavior (Standard Case)**

### **Mandatory Return Policy for BuyXGetY**

By default, when a **BuyXGetY promotion** is applied:

> ✅ **Customers must return all items included in the promotion.**

This means:

- Refunds are **not calculated per individual item**.
- The promotion is treated as a **bundle**.
- Partial returns are **not allowed**.

---

#### **Optional Configuration: Discount Redistribution**

The cases described below apply **only if an optional configuration is enabled**, allowing:

> 🔄 **Proportional redistribution of discounts across items**

This enables:

- Partial returns of items within a BuyXGetY promotion
- Fair allocation of discounts per item
- Calculation of **refundable amounts per line item**

---

#### **General Principle (When Redistribution is Enabled)**

1. Identify all items belonging to the BuyXGetY promotion.
2. Calculate the **total price** of those items.
3. Calculate the **total discount applied** (including all promotions affecting those items).
4. Determine each item's **weight (proportion)**.
5. Distribute the total discount proportionally.
6. Subtract the allocated discount to get the **refundable amount per item**.

---

### **CASE I: Only BuyXGetY Discounts Applied**

> ⚠️ This case represents the **standard scenario**, but redistribution applies **only if partial returns are allowed via configuration**.

### **Scenario**

- Only BuyXGetY promotion is applied.
- No additional order-level or line-level discounts.

---

### **Order Details**

- **Item 1**:  
  Price = 50€  
  Discount = 0€
- **Item 2**:  
  Price = 30€  
  Discount = 30€

---

### **Step 1: Identify Promotion Items**

All items belong to the BuyXGetY promotion.

---

### **Step 2: Calculate Totals**

- Total price = 80€
- Total discount = 30€

---

### **Step 3: Calculate Weight**

- Item 1: 50 / 80 = 0.625
- Item 2: 30 / 80 = 0.375

---

### **Step 4: Allocate Discount**

- Item 1: 0.625 × 30 = 18.75€
- Item 2: 0.375 × 30 = 11.25€

---

### **Step 5: Refundable Amount**

- Item 1: 50 − 18.75 = **31.25€**
- Item 2: 30 − 11.25 = **18.75€**

---

### **CASE II: BuyXGetY + Order-Level Discount + Non-Promo Items**

### **Scenario**

- BuyXGetY promotion applied
- Additional **order-level discount**
- Some items are **not part of the promotion**

---

### **Order Details**

- **Item 1** (BuyXGetY + Order Discount):  
  Price = 50€  
  Discount = 10€
- **Item 2** (BuyXGetY + Order Discount):  
  Price = 30€  
  Discount = 30€
- **Item 3** (Only Order Discount):  
  Price = 50€  
  Discount = 10€

---

### **Step 1: Select Promotion Items**

Items included: Item 1 and Item 2

---

### **Step 2: Totals (Promo Items Only)**

- Total price = 80€
- Total discount = 40€

---

### **Step 3: Weight**

- Item 1: 0.625
- Item 2: 0.375

---

### **Step 4: Allocate Discount**

- Item 1: 25€
- Item 2: 15€

---

### **Step 5: Refundable Amount**

- Item 1: **25€**
- Item 2: **15€**

---

### **Non-Promo Item**

- Item 3: 50 − 10 = **40€**

---

### **CASE III: BuyXGetY + Line Item Discount**

### **Scenario**

- BuyXGetY promotion applied
- Additional **line-level discount** on one item

---

### **Order Details**

- **Item 1**:  
  Price = 80€  
  Discount = 0€
- **Item 2**:  
  Price = 60€  
  Discount = 60€

---

### **Step 1: Promotion Items**

Both items belong to BuyXGetY

---

### **Step 2: Totals**

- Total price = 140€
- Total discount = 60€

---

### **Step 3: Weight**

- Item 1: 0.57
- Item 2: 0.43

---

### **Step 4: Allocate Discount**

- Item 1: 34.28€
- Item 2: 25.72€

---

### **Step 5: Refundable Amount**

- Item 1: **45.72€**
- Item 2: **34.28€**

---

### **Summary**

| Scenario | Behavior |
| --- | --- |
| Default (no configuration) | All BuyXGetY items must be returned together |
| Redistribution enabled | Discounts are proportionally allocated |
| Mixed promotions | Include all discounts affecting promo items |
| Non-promo items | Calculated independently |

- [Inquiries or Incidents](https://help.ifreturns.com/en/knowledge-center/inquiries-or-incidents?hsLang=en)
- [Getting Started](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#main-content)

    - [Portal Overview](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#portal-overview)
    - [Analytics](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#analytics)
    - [In app configurations](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#in-app-configurations)
    - [Return Portal Configurations](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#return-portal-configurations)
    - [UX/UI Return Portal configurations](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#ux-ui-return-portal-configurations)
    - [Build your refund policy](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#build-your-refund-policy)
    - [Customizations](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#customizations)
    - [Promotions Management](https://help.ifreturns.com/en/knowledge-center/getting-started?hsLang=en#promotions-management)
- [Refund Processes](https://help.ifreturns.com/en/knowledge-center/refund-processes?hsLang=en#main-content)

    - [Overview](https://help.ifreturns.com/en/knowledge-center/refund-processes?hsLang=en#overview)
    - [Refunds Methods](https://help.ifreturns.com/en/knowledge-center/refund-processes?hsLang=en#refunds-methods)
    - [Other configurations](https://help.ifreturns.com/en/knowledge-center/refund-processes?hsLang=en#other-configurations)
- [Returns Management](https://help.ifreturns.com/en/knowledge-center/returns-management?hsLang=en#main-content)

    - [Day to Day Operations](https://help.ifreturns.com/en/knowledge-center/returns-management?hsLang=en#day-to-day-operations)
    - [Return Methods](https://help.ifreturns.com/en/knowledge-center/returns-management?hsLang=en#return-methods)
    - [Return Reasons](https://help.ifreturns.com/en/knowledge-center/returns-management?hsLang=en#return-reasons)
    - [Return Policies](https://help.ifreturns.com/en/knowledge-center/returns-management?hsLang=en#return-policies)
- [Rules Settings](https://help.ifreturns.com/en/knowledge-center/rules-settings?hsLang=en#main-content)

    - [General Information](https://help.ifreturns.com/en/knowledge-center/rules-settings?hsLang=en#general-information)
    - [Actions](https://help.ifreturns.com/en/knowledge-center/rules-settings?hsLang=en#actions)
    - [Conditions](https://help.ifreturns.com/en/knowledge-center/rules-settings?hsLang=en#conditions)
    - [Operators](https://help.ifreturns.com/en/knowledge-center/rules-settings?hsLang=en#operators)
    - [Most Common Rules](https://help.ifreturns.com/en/knowledge-center/rules-settings?hsLang=en#most-common-rules)
- [Shipping Integrations](https://help.ifreturns.com/en/knowledge-center/shipping-integrations?hsLang=en#main-content)

    - [ShippyPro](https://help.ifreturns.com/en/knowledge-center/shipping-integrations?hsLang=en#shippypro)
- [Invoices / Documents](https://help.ifreturns.com/en/knowledge-center/invoices-documents?hsLang=en)
- [Releases Notes](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#main-content)

    - [Release Notes 1.1](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-1-1)
    - [Release Notes 1.2](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-1-2)
    - [Release Notes 1.3](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-1-3)
    - [Release Notes 1.4](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-1-4)
    - [Release Notes 2.0](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-2-0)
    - [Release Notes 2.1](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-2-1)
    - [Release Notes 2.2](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-2-2)
    - [Release Notes 2.3](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-2-3)
    - [Release Notes 3.0](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-3-0)
    - [Release Notes 3.1](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-3-1)
    - [Release Notes 3.2](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-3-2)
    - [Release Notes 4.2](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-4-2)
    - [Release Notes 5.0](https://help.ifreturns.com/en/knowledge-center/releases-notes?hsLang=en#release-notes-5-0)
- [Frequently Asked Questions](https://help.ifreturns.com/en/knowledge-center/frequently-asked-questions?hsLang=en)

[![Chill listening crop-3](https://help.ifreturns.com/hs-fs/hubfs/iF%20brand/brand-logo.png?width=33&height=24&name=brand-logo.png "Chill listening crop-3")](https://www.ifreturns.com/)

Knowledge center iF returns

<https://www.linkedin.com/company/ifreturns/> <https://www.instagram.com/ifreturns/>

Copyright © 2026, iF Returns