---
title: Buy X, Get Y (BxGy)
description: The Buy X, Get Y (BxGy) feature lets you handle returns for items bought with a combo discount.
---

[Skip to content](https://support.returngo.ai/buy-x-get-y-bxgy#main-content)

English

Show submenu for translations

[Customer portal](https://support.returngo.ai/tickets-view?hsLang=en)

![ReturnGO Logo-1](https://support.returngo.ai/hs-fs/hubfs/ReturnGO%20Logo-1.png?width=198&height=30&name=ReturnGO%20Logo-1.png)

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- [Customer portal](https://support.returngo.ai/tickets-view)
- Go to returngo.ai

 Go to returngo.ai

 Hello. How can we help you?

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

1. [Knowledge Base](https://support.returngo.ai/?hsLang=en)
2. [Returns Management](https://support.returngo.ai/returns-management?hsLang=en)
3. [Advanced Returns Management](https://support.returngo.ai/returns-management?hsLang=en#advanced-returns-management)

# Buy X, Get Y (BxGy)

Last Updated: August 24, 2026

The Buy X, Get Y (BxGy) feature lets you handle returns and exchanges for items bought with a native Shopify Buy X, Get Y discount.

**Note:** ReturnGO currently supports only Shopify native Buy X, Get Y discounts. Buy X, Get Y discounts created through third-party applications are not supported.

You can create promotions where customers buy a specific quantity or spend a minimum amount to receive additional products or discounts, and ReturnGO's BxGy feature ensures that the returns process accommodates the items included in the promotion.

![BxGy Select Items](https://support.returngo.ai/hs-fs/hubfs/BxGy%20Select%20Items.png?width=670&height=366&name=BxGy%20Select%20Items.png)

### Requirements

The BxGy feature is available to all Shopify merchants on an *Enterprise* plan and can be added as an [**add-on**](https://support.returngo.ai/add-ons?hsLang=en) to all other plans.

### Limitations

- BxGy items that were previously exchanged cannot be returned or exchanged again. If a customer buys an item as part of a BxGy deal, exchanges that item for a new one, and later wants to return or exchange that new item again, they will not be able to do so. 
    - The newly exchanged item will no longer be linked to the original promotion. As a result, ReturnGO automatically marks it as *Not Eligible* for additional returns or exchanges.
    - This is done to protect your business from losing money, as the new item is not associated with the BxGy deal and could therefore be eligible for a full refund if returned.

### What is BxGy?

BxGy stands for Buy X, Get Y. BxGy is a type of discount that you can create on your Shopify admin page.

When configuring the discount code, you specify what the customer needs to do to be eligible for the discount and what they will receive as a benefit.

There are two parts to a BxGy discount:

#### Customer Buys (Buy X)

- Determine if the customer needs to buy a minimum number of items to qualify for the discount.
- Decide if the customer needs to spend a minimum amount of money to be eligible for the discount.
- Select the collections, products, or variants of products that are included in the discount.

#### Customer Gets (Get Y)

- Specify the number of products to which the discount will be applied.
- Set the percentage of discount to be given.
- Choose the collections, products, or variants of products that are included in the discount.

### How BxGy Works on the Edge Portal

On the Edge Portal, ReturnGO handles all BxGy deals in a way that makes pricing changes more transparent for both you and your customers.

### How BxGy Items Appear in the Edge Portal

In the Edge Portal, items that belong to the same BxGy promotion are grouped together. The portal displays the relevant **Buy** and **Get** items within that promotion, along with the deal description.

![BxGy Select Items](https://support.returngo.ai/hs-fs/hubfs/BxGy%20Select%20Items.png?width=670&height=366&name=BxGy%20Select%20Items.png)For BxGy deals, if a customer selects multiple items in one request, the return portal only shows *Treat all items the same way* option.

### How ReturnGO Determines the Final BxGy Outcome

A return or exchange request does not always break a BxGy deal.

ReturnGO determines the final BxGy outcome based on the customer’s completed request, including any returned and exchanged items.

If the items remaining in the order still meet the original BxGy conditions, the deal remains valid.

If the items remaining in the order no longer meet the original BxGy conditions, the deal is considered broken. In that case, ReturnGO applies a *Broken deal fee*.

![Broken deal fee](https://support.returngo.ai/hs-fs/hubfs/Broken%20deal%20fee.png?width=324&height=362&name=Broken%20deal%20fee.png)

An exchange can still preserve the BxGy deal if the final combination of items continues to meet the original promotion conditions.

**Example:**

**BxGy Promotion:** Buy 2 items, get the 3rd item at 50% off.

A customer bought 3 eligible items with a regular price of $50 each. With the promotion applied, the customer paid full price for 2 items and 50% off the 3rd item.

The customer exchanges 1 of the items for another item that is also eligible for the same BxGy promotion.

Because the final combination of items still meets the original promotion conditions, the deal remains valid and no *Broken deal fee* is applied.

### How the Broken Deal Fee Is Calculated

When a deal is broken, ReturnGO calculates the *Broken deal fee* based on the regular value of the items the customer keeps compared to what they actually paid.

The calculation uses the following values:

- **Kept Value:** The total regular price of the items the customer keeps, before discounts.
- **Net Payment:** The actual amount the customer paid after discounts.
- **Gap:** The difference between the Kept Value and the Net Payment.
- **Discount Fee:** The fee the customer must pay if the deal is broken. The Discount Fee is equal to the Gap.

**Example:**

**BxGy Promotion:** Buy 2 items, get the 3rd item at 50% off.

A customer bought 3 items with a regular price of $50 each. With the promotion applied, the customer paid full price for 2 items and 50% off the 3rd item. If the customer returns 1 *Buy* item:

- **Kept Value:** 3 × $50 = $150
- **Net Payment:** $50 + $50 + $25 = $125
- **Gap:** $150 - $125 = $25
- **Discount Fee:** $25
- **Final Refund:** $25

**Note:** If the customer breaks the deal, the *Discount Fee* is deducted from the refund amount to compensate for the lost discount. If the *Discount Fee* is higher than the refund amount, the refund is reduced to $0, and the customer is not charged the remaining difference.

### What Happens When Items Are Returned

#### Single Get Item

If the customer returns the only *Get* item, the *Broken deal fee* is not applied. However, other fees may still apply depending on the return request. The customer already paid the discounted price for that item.

#### Multiple Get Items

If the customer returns one of multiple *Get* items, ReturnGO subtracts the paid value of the returned item from the *Kept Value* and recalculates the *Gap.*

**Example:**

**BxGy Promotion:** Buy 2 items, get 2 items at 50% off

A customer bought 4 items with a regular price of $50 each. With the promotion applied, the customer paid full price for 2 items and 50% off 2 items, for a total of $150.

- **Kept Value:** 4 × $50 = $200
- **Net Payment:** $50 + $50 + $25 + $25 = $150
- **Gap:** $200 - $150 = $50

If the customer returns 1 of the discounted *Get* items with a paid value of $25:

- **New Kept Value:** $200 - $25 = $175

- **Net Payment:** $150

- **New Gap:** $175 - $150 = $25

- **Discount Fee:** $25
- **Refund Amount:** $0

#### Free Get Item

If the customer returns a *Get* item that was given at a 100% discount, the paid price of that item is $0, so there is no amount to refund for it. 

**Example:**

**BxGy Promotion:** Buy 2 items, get the 3rd item free (100% off)

A customer bought 3 items with a regular price of $50 each. With the promotion applied, the customer paid full price for 2 items and $0 for the 3rd item, for a total of $100. The full $50 discount is allocated to the *Get* item, so the *2 Buy* items keep their $50 paid price.

- **Kept Value:** 3 × $50 = $150
- **Net Payment:** $50 + $50 + $0 = $100
- **Gap:** $150 - $100 = $50

**Scenario 1: The customer returns the free Get item.** Because this is the only *Get* item in the deal, the *Broken deal fee* is not applied. The customer paid $0 for the item, so there is nothing to refund. The discount is not redistributed to the 2 Buy items, which were paid in full and remain unchanged.

- **Refund:** $0

**Scenario 2: The customer returns 1 Buy item and keeps the free item.** Only 1 Buy item remains, so the deal no longer meets the original BxGy conditions and the Broken deal fee is applied.

- **Kept Value:** 3 × $50 = $150
- **Net Payment:** $100
- **Gap:** $150 - $100 = $50
- **Discount Fee:** $50
- **Refund:** $50 - $50 = $0

The customer keeps the free item, and the *Broken deal fee* recovers its full $50 value.

**Scenario 3: The customer returns all 3 items.** Returning every item in the deal does not break it, so the Broken deal fee is not applied.

- **Refund:** $100

**Note:** A 100% discount leaves the Get item with a paid price of $0, so returning that item on its own never produces a refund. Set this expectation with customers before they submit a return request.

#### Partial Returns of Buy Items

If the customer returns some, but not all, items from the deal, and the return breaks the deal, the customer must pay the *Discount Fee.* The only exception is when the customer returns all items from the deal.

### What Customers See in the Edge Portal

In the Edge Portal, customers may see a warning during item selection if their choices could affect a BxGy promotion.

![BxGy Warning](https://support.returngo.ai/hs-fs/hubfs/BxGy%20Warning.png?width=670&height=502&name=BxGy%20Warning.png)

The final outcome is shown in the *Summary* step, where ReturnGO displays:

- A **Broken deal fee** line, including when the fee is $0
- A **Why deal price changed?** explaining the reason for the price change
- The relevant **Buy** and **Get** item details

![bxgy summary](https://support.returngo.ai/hs-fs/hubfs/bxgy%20summary.png?width=670&height=500&name=bxgy%20summary.png)

### How to Enable BxGy Handling

To configure how ReturnGO handles Buy X, Get Y discounts:

1. Go to **[Settings \> General \> Discounts.](https://app.returngo.ai/dashboard/settings/store)**
2. Open the *Discounts* section.
3. Enable the *Allow processing of BxGy deals* toggle.
4. Click on the *save* icon to save your changes.

![bxgy settings](https://support.returngo.ai/hs-fs/hubfs/bxgy%20settings.png?width=670&height=199&name=bxgy%20settings.png)

If you have the BxGy feature, this setting enables ReturnGO’s BxGy-specific handling, including deal grouping, broken deal fee calculations, and BxGy details in the portal summary.

**Note:** If you do not have the BxGy feature, this setting provides limited functionality only. If enabled, the portal displays items purchased with a BxGy discount, but returns for these items are treated like any other return for discounted items. The product’s paid price is used as the reference point for any exchange or refund request. If disabled, the portal shows items purchased with a BxGy discount as ineligible for returns.

- [Account & Setup](https://support.returngo.ai/account-setup?hsLang=en#main-content)

    - [Getting Started](https://support.returngo.ai/account-setup?hsLang=en#getting-started)
    - [Installing ReturnGO](https://support.returngo.ai/account-setup?hsLang=en#installing-returngo)
    - [Account Settings](https://support.returngo.ai/account-setup?hsLang=en#account-settings)
    - [Billing](https://support.returngo.ai/account-setup?hsLang=en#billing)
    - [Portal Customization](https://support.returngo.ai/account-setup?hsLang=en#portal-customization)
    - [Emails](https://support.returngo.ai/account-setup?hsLang=en#emails)
    - [FAQs](https://support.returngo.ai/account-setup?hsLang=en#faqs)
- [Returns Management](https://support.returngo.ai/returns-management?hsLang=en#main-content)

    - [Processing Returns](https://support.returngo.ai/returns-management?hsLang=en#processing-returns)
    - [Return Portals](https://support.returngo.ai/returns-management?hsLang=en#return-portals)
    - [Advanced Returns Management](https://support.returngo.ai/returns-management?hsLang=en#advanced-returns-management)
    - [Return Methods](https://support.returngo.ai/returns-management?hsLang=en#return-methods)
    - [Return Policy](https://support.returngo.ai/returns-management?hsLang=en#return-policy)
    - [Automation](https://support.returngo.ai/returns-management?hsLang=en#automation)
    - [Inventory](https://support.returngo.ai/returns-management?hsLang=en#inventory)
    - [Return Reasons](https://support.returngo.ai/returns-management?hsLang=en#return-reasons)
    - [Warranty Management](https://support.returngo.ai/returns-management?hsLang=en#warranty-management)
- [Return Resolutions](https://support.returngo.ai/return-resolutions?hsLang=en#main-content)

    - [Refunds](https://support.returngo.ai/return-resolutions?hsLang=en#refunds)
    - [Exchanges](https://support.returngo.ai/return-resolutions?hsLang=en#exchanges)
    - [Other Resolutions](https://support.returngo.ai/return-resolutions?hsLang=en#other-resolutions)
- [Return Shipping](https://support.returngo.ai/return-shipping?hsLang=en#main-content)

    - [Ship by ReturnGO](https://support.returngo.ai/return-shipping?hsLang=en#ship-by-returngo)
    - [Shipping Labels](https://support.returngo.ai/return-shipping?hsLang=en#shipping-labels)
    - [Shipping Settings](https://support.returngo.ai/return-shipping?hsLang=en#shipping-settings)
    - [QR Codes](https://support.returngo.ai/return-shipping?hsLang=en#qr-codes)
- [Shipping Integrations](https://support.returngo.ai/shipping-integrations?hsLang=en#main-content)

    - [Shipping Integrations](https://support.returngo.ai/shipping-integrations?hsLang=en#shipping-integrations)
    - [Shipping Aggregators](https://support.returngo.ai/shipping-integrations?hsLang=en#shipping-aggregators)
    - [Shipping Carriers](https://support.returngo.ai/shipping-integrations?hsLang=en#shipping-carriers)
    - [Drop-Off Services](https://support.returngo.ai/shipping-integrations?hsLang=en#drop-off-services)
- [Other Integrations](https://support.returngo.ai/other-integrations?hsLang=en#main-content)

    - [Helpdesk Integrations](https://support.returngo.ai/other-integrations?hsLang=en#helpdesk-integrations)
    - [3PL/WMS Integrations](https://support.returngo.ai/other-integrations?hsLang=en#3pl-wms-integrations)
    - [Fintech Integrations](https://support.returngo.ai/other-integrations?hsLang=en#fintech-integrations)
    - [Loyalty Integrations](https://support.returngo.ai/other-integrations?hsLang=en#loyalty-integrations)
    - [Marketing Integrations](https://support.returngo.ai/other-integrations?hsLang=en#marketing-integrations)
    - [ERP Integrations](https://support.returngo.ai/other-integrations?hsLang=en#erp-integrations)
    - [ReturnGO API](https://support.returngo.ai/other-integrations?hsLang=en#returngo-api)
- [Order Tracking](https://support.returngo.ai/order-tracking?hsLang=en#main-content)

    - [Order Tracking Portal](https://support.returngo.ai/order-tracking?hsLang=en#order-tracking-portal)
    - [Order Tracking Notifications](https://support.returngo.ai/order-tracking?hsLang=en#order-tracking-notifications)
- [Analytics](https://support.returngo.ai/analytics?hsLang=en#main-content)

    - [Analytics](https://support.returngo.ai/analytics?hsLang=en#analytics)
    - [Reports](https://support.returngo.ai/analytics?hsLang=en#reports)
- [Legacy Features](https://support.returngo.ai/legacy-features?hsLang=en)

[![Chill listening crop-3](https://support.returngo.ai/hs-fs/hubfs/RETURNGO%20BLUE.png?width=162&height=24&name=RETURNGO%20BLUE.png "Chill listening crop-3")](https://returngo.ai)

knowledge Base

Copyright © 2026, ReturnGO