> For the complete documentation index, see [llms.txt](https://docs.intelligems.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.intelligems.io/merchandising-experiences/offer-modifications/how-to-set-up-a-buy-x-get-y-bxgy-experience.md).

# How to Set Up a Buy X Get Y (BXGY) Experience

A Buy X Get Y (BXGY) Experience runs "buy 2, get 1 free" style promotions natively — no separate app, no manual Shopify discount setup. You set a Buy quantity and a Get quantity, choose what happens to the Get items (free, a percentage off, or a fixed amount off per item), and pick which products qualify on each side. Shoppers get the reward automatically once their cart qualifies, making it seamless without a code to enter.

You build the offer once, then decide how it runs. Run it as a Test and Intelligems holds back a control group and reports what BXGY did to conversion rate, AOV, and revenue lift. Alternatively, you can run it against another offer, such as a flat percent off sitewide, to see what works best with your customer base. Finally, if you already feel confident in your offer, run it as a Personalization and the offer stays on for the audience you target.

The discount is applied by the same Intelligems discount function that powers every other offer, so the price the shopper sees in the cart and at checkout match.

## Where to start

### 1. Create the experience

On the left navigation, click **Merchandising**, then **New Merchandising Experience**. Pick the **Buy X Get Y** card, then choose whether to run a Test or create a Personalization.

### 2. Set up the offer

* **Discount name:** the line the shopper reads as the reason they're paying less.
* **Combinations:** only Shopify discounts appears here. There's no Intelligems discounts checkbox — a BXGY can't be prevented from combining with the brand's other Intelligems offers, so that control is left off the page rather than shown as a checkbox that does nothing. If a shopper qualifies for a BXGY and another Intelligems discount at the same time, they get both. Free Gift behaves the same way today. The Shopify discounts checkbox works normally, same as every other offer type.
* **Buy and Get Products:** choose Same products or Different products.
  * Same products — the buy side and the get side pull from one set. This is the classic buy 2 get 1 free. Below it, Customer buys & gets shows a single Select products field (all products by default) — these are the products that both trigger the offer and receive the discount.
  * Different products — separate pickers for what the shopper has to buy vs. what gets the discount. This is how you build cross-product BXGY: buy from Collection A, get an item from Collection B free or discounted.
* Mix and match: on by default, so customers can mix eligible products to reach the required quantity, including on the get side. Turn it off to require the same product for every unit.
* **Buy quantity, Get quantity, Discount type:** three fields in a row. Buy quantity and Get quantity are numbers; Discount type is Free, Percentage off, or Fixed amount off, applied per item. Below the row, a live preview line spells out what you've configured — e.g. "Customer adds 3 eligible items to cart → cheapest item is free."
* **Purchase type:** one-time purchases only by default. You can switch to subscription purchases only, or to both. On a subscription option the discount applies to the first order and not to refills. This setting applies to both the Buys & the Gets.

### 3. Add merchandising

Any onsite merchandising for your BXGY offer — a progress bar, an announcement bar, PDP callouts, or anything else visual — will get built in the visual builder, the same tool used for custom onsite content elsewhere in Intelligems.

To build it:

1. In the Modifications tab, click Add Modification in the top right.
2. Click Content Edits.
3. Scroll down and click Visual Builder.
4. Prompt the chat on the right to make the visual changes you want.
5. Check the in-app preview to confirm they're working as expected, and tweak as needed.
6. Once you're happy with it, hit save and exit the visual builder to finish setting up your test or personalization.

### 4. Set targeting (optional)

For a Test, a visitor's group is assigned on their first visit and stored via a first-party cookie, so they'll see the same variant on repeat visits during the test.

For a Personalization, everyone who matches your targeting sees it every time.

Either way, you can narrow who's included in several ways, all under the Audience option unless noted:

* UTM parameters
* JavaScript expressions
* Device type (mobile or desktop)
* New vs. returning visitors
* [Mutually Exclusive Tests](/general-features/targeting/mutually-exclusive-experiments.md) prevent visitors from being targeted by related experiments at the same time, to avoid interaction effects

### 5. Configure analytics

Choose whether analytics should default to only orders containing specific products (helpful if you’ve limited your offer to specific products), or orders containing any products in your shop. You can always change this later in your Analytics filters.

What you configure next depends on which path you chose in step 2:

* Personalization? Add any [Custom Metrics](/analytics/overview/custom-events.md) you want to track, beyond the built-in ones.
* Test? Choose your Key Metrics and Primary Metric to measure against your control group, plus any [Custom Metrics](/analytics/overview/custom-events.md).

### 6. Preview and activate

Preview your changes on the live site, then activate. The [Merchandising Experience QA Checklist](/merchandising-experiences/offer-test-qa-checklist.md) covers what to check in the cart and at checkout before a shopper sees it.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.intelligems.io/merchandising-experiences/offer-modifications/how-to-set-up-a-buy-x-get-y-bxgy-experience.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
