> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atomcommerce.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Buy X Get Y

> Reward customers with a free or discounted item when they purchase qualifying items.

Buy X Get Y lets you reward one purchase with another product.

## Best Use Cases

* Classic BOGO campaigns
* Attach-rate campaigns (buy item A, discount item B)
* Product-pair promotions (camera + tripod, dress + accessory)

## Common Structures

* Buy one, get one free
* Buy X, get Y percent off
* Buy X, get Y amount off
* Buy X, get Y at fixed price

## Key Controls

* X side: what customers must buy to unlock the deal
* Y side: what item gets discounted
* Discount mode for Y: free, percent off, amount off, fixed price
* Optional prorated discount: spread savings across Buy X and Get Y items by price
* Limits: max discount per order, multiple uses per order

## Example

<Callout>
  Buy any sweater, get one scarf free. Sweater unlocks the offer, scarf receives the discount.
</Callout>

## Prorated Discount

Eligible BXGY offers include a **Prorated discount** option.

* **On**: the total savings are shared across both the qualifying and discounted items based on their relative price
* **Off**: the full savings stay on the Get Y item

This matters most for:

* **BOGO or free-item offers**, where turning prorating on can make the Get Y item no longer appear fully free
* **Fixed-price offers**, where the savings created by the fixed price can be spread across both sides of the offer
* **Mixed-price carts**, where the discount split changes based on the item prices in the cart

<Tip>
  Use prorating when you want the promotion to behave more like a shared bundle
  savings offer. Leave it off when you want a classic "Get Y free" or "Get Y
  discounted" presentation.
</Tip>

## How Targets Are Chosen

When Customer Receives lists several specific products, Atom treats each product as its own discount target by default. That means more than one eligible product can be discounted after the customer qualifies.

Use **Discount only the highest/lowest priced item**, or a single collection target with **Quantity** `1`, when you want only one discounted item per application. **Max Uses Per Order** controls how many times the offer can repeat in the same cart.

For the full breakdown of Quantity, Target Options, Max Uses Per Order, and products vs collections, see [How Buy X Get Y Targets Are Chosen](/offers/how-buy-x-get-y-targets-are-chosen).

## Same-Product / Same-Collection Upsell Math

When you set up a Buy X Get Y offer where the **Buy X** (qualifying) and **Get Y** (discounted target) items are the same product or are selected from the same pool/collection (e.g., "Buy 3, Get 1 Free" of the same item):

* **Corrected Eligibility Math**: The cart upsell progress calculator automatically adjusts to count both the qualifiers and target items. For example, if a shopper has 2 items in the cart for a "Buy 3 Get 1 Free" offer, the inline progress message will correctly prompt them to **"Add 2 items more"** (3 qualifiers + 1 target = 4 total) to get the free item, rather than misleadingly telling them to "Add 1 more".
* **Qualifier Reservation**: Qualifying items are reserved first for the promotion. The progress message keeps track of how many items are currently acting as qualifiers versus those that have already received the discount.

## Continue

* How Y-side products are selected: [How Buy X Get Y Targets Are Chosen](/offers/how-buy-x-get-y-targets-are-chosen)
* Proration details and examples: [Prorated Discounts](/offers/prorated-discounts)
* Complex qualification and exclusions: [Advanced Buy X Get Y](/offers/types/advanced-buy-x-get-y)
* Offer interactions: [Offer Priority and Stacking](/offers/priority-and-stacking)
