Buy X Get Y (BXGY) is a Smart Flows promotion step, also called a component or node, that rewards customers with a free or discounted item when they purchase a qualifying product or quantity, or spend a qualifying amount. It is built for single-trigger, fixed-quantity offers where the qualifying product and the reward are different products. Common examples are "buy a qualifying product and get a different item free," "buy three items and get a free gift," and "spend over a threshold and get a free gift." Offers where the reward quantity scales with the cart, or where the reward is the same product as the qualifier, have limits covered in the FAQ.
A Buy X Get Y step has two halves. Buy X defines what the customer must do to qualify. Get Y defines what they receive. When the qualifying condition is met, the reward is offered through a modal that the shopper confirms, or added directly to the cart if the reward is configured to skip the modal.
This article is organized by the settings you configure on the step. Several settings appear, disappear, or lock to fixed values depending on the Display Mode you choose, so that setting is covered first.
Adding a Buy X Get Y step
In the Smart Flow editor, open the Add Step panel and select Buy X Get Y under Promotions.
(Image example above: The Smart Flow Editor Add Step panel with the Promotions group expanded, Buy X Get Y highlighted.)
Buy X Get Y Display Modes
Display Mode is the top-level Buy X Get Y setting that determines how the offer is presented. It has two values.
(Image example above: The Display Mode dropdown open, showing Standard and Post-Add Offer along with the Single Screen toggle)
Standard is the default. After the customer qualifies, the reward is shown in a modal. With multiple reward products, the modal uses a Product Selection screen followed by a Product (variant) screen. With one reward product, it uses a single screen.
Post-Add Offer shows the reward as a single-page grid of product cards immediately after a qualifying product is added to the cart, similar to a quick cross-sell widget. Switching to Post-Add Offer changes how the rest of the step behaves: the If Customer Buys condition is hidden and qualification is always "any eligible product," the Buy X quantity is locked to 1, and Customer Gets Up To is locked to 1.
Single Screen is a toggle available in Standard mode only that collapses the standard two-step Buy X Get Y modal into one screen. In a normal Standard-mode modal with multiple reward products, the shopper goes through two stages: a Product Selection screen where they pick which reward and how many, then a Product detail screen where they choose the variant and confirm, with Back and Next pagination between them. Turning Single Screen on removes that paging and puts the reward products and their variant selectors together on a single screen, so the shopper picks product and variant and adds in one view.
Buy X: the qualifying condition
The Buy X section of a Buy X Get Y step defines what triggers the offer. In Standard mode, the If Customer Buys dropdown sets the qualification type and the fields below it change with the type. In Post-Add Offer mode this dropdown is hidden and the step qualifies on any eligible product you add.
There are three qualification types:
(Image example above: The Buy X section with the If Customer Buys dropdown open, showing all three conditions.)
Minimum quantity of specific items. You add specific qualifying products, and the offer triggers when the combined quantity of those products in the cart meets the Minimum Quantity value. Quantities are summed across all the qualifying products you list. With a minimum of 3 and two qualifying products, two units of one plus one unit of the other qualifies.
Minimum Quantity sets the required quantity. Range 1 to 20, default 1. It is forced to 1 in Post-Add Offer mode.
Add Products + button is where you add qualifying products through the product search slideout. It is shown for the specific-items type, and also in Post-Add Offer mode regardless of condition.
Minimum quantity of any item. The offer triggers when any single line item in the cart reaches the Minimum Quantity value on its own. This is a per-line check, not a cart-wide total. A minimum of 3 means one product at quantity 3 or more. Three different products at quantity 1 each does not qualify. Items added as the reward of this same step are never counted toward qualification.
Minimum Quantity sets the required quantity. Range 1 to 20, default 1. It is forced to 1 in Post-Add Offer mode.
Minimum purchase amount. The offer triggers when the cart subtotal meets the Unlock Price you set. For international shoppers, the required amount is adjusted by the store's currency conversion rate, so the threshold scales to the shopper's presentment currency.
Unlock Price is the cart subtotal threshold, shown only for the Minimum purchase amount type.
Get Y: the reward
The Get Y section of a Buy X Get Y step defines the reward and its per-product behavior.
(Image example above: The Smart Flows Get Y section)
Customer Gets Up To sets the maximum total quantity of reward products the shopper can receive across all reward products. Range 1 to 20, default 1. It is locked to 1 in Post-Add Offer mode.
Of Any of the Eligible Products Below "Add Products +" button is where you add the reward products through the product search slideout.
Each reward product has its own settings:
(Image example above: An expanded Get Y product card showing At Discount, Discount Amount, Discount Message, Select First Variant by Default, and Trigger Fail Behavior.)
At Discount sets how the reward is priced. The options are None, Free, Percentage Off, and Fixed Amount.
Discount Amount is the value you enter for the chosen type. To give the reward away as a free gift, set At Discount to Free, or set Percentage Off to 100%.
Compare Price With controls which Shopify price the discount is calculated against, either the product's price or its compare-at price. It defaults to price.
Discount Message is optional text describing the reward, for example "Congratulations! You've earned a free gift."
Override Modal Text lets this product override the flow-level modal copy with its own Modal Title, Modal Description, and call-to-action (CTA) labels (cancel, previous, current, next, submit).
Select First Variant by Default pre-selects the first available variant when the modal opens. It differs from the Add Items to Cart step, where no variant is pre-selected.
Skip Add to Cart Modal adds the reward directly without showing a modal for it. This is available for single-variant reward products only. It is automatically disabled when the product has more than one selected variant, and in Post-Add Offer and Single Screen modes. If a single reward product is configured and it has Skip Add to Cart Modal on, no modal renders at all and the reward is added silently.
Trigger Fail Behavior controls what happens if the shopper stops qualifying after the reward was added, for example by removing the required item. Remove offer from cart is the default. Do nothing leaves the reward in the cart. This is set per reward product.
Buy X Get Y: Subscription Rewards
When a Buy X Get Y reward is offered as a subscription, Product Type restricts how it can be redeemed:
(Image example above: The Subscription section showing the Product Type dropdown and the Subscription Is Default toggle when Both is selected.)
One-Time is a single, non-recurring item.
Subscription adds the reward as a subscription. The shopper receives it on every subscription cycle, not just once. Confirm this is intended, since the free gift recurs on each renewal.
Both (One-Time & Subscription) lets the shopper choose between a one-time or subscription reward in the modal.
Subscription Is Default controls which purchase mode is pre-selected when Product Type is set to Both (One-Time & Subscription). It is hidden for the other product types.
Standard Display Single Screen Settings
These Buy X Get Y settings appear when Display Mode is set to Standard with Single Screen enabled.
Variant Selection Mode applies in Single Screen layouts. Always shows the variant options up front. Dynamic shows an options button that reveals the selectors on demand.
In Dynamic mode, Single Option Button sets the button label for products with exactly one option type and supports a placeholder, written as option_name inside double curly braces, that inserts the option's name at render time. Multiple Options Button sets the label for products with two or more option types (default 'Select Options').
Add to Cart Button is the button label before the click (default "Add to Cart"), and Adding Button is the label shown during the add request (default "Adding...").
The Experience group is hidden entirely when a single reward product is configured and it has Skip Add to Cart Modal on, because no modal renders in that case. The Modal Settings and Retrigger Offer Banner panels opened from here are described in their own sections below.
Buy X Get Y Post-Add Offer Settings
These Buy X Get Y settings appear when Display Mode is set to Post-Add Offer.
(Image example above: A storefront example of the Post-Add Offer card grid, with the Buy X section at the top showing the just-added product.)
Title is a rich text heading shown at the top of the offer.
Show Buy X Section toggles a section that shows the product the shopper just added, giving context for the offer. It is on by default. Buy X Section Heading sets its text, defaulting to "Just added to your cart."
Variant Selection Mode, Single Option Button, Multiple Options Button, Add to Cart Button, and Adding Button work the same way as in the Standard experience settings above, with the same defaults.
Buy X Image controls the appearance of the triggering product's image in the Buy X section: aspect ratio, aspect width and height units, layout, and max height. It is hidden when Show Buy X Section is off.
Get Y Image controls the reward product card image, with the same options. Its max height ranges 100 to 500.
This mode also links to the shared Modal Settings and Retrigger Offer Banner panels.
(Image example above: A storefront example of the Post-Add Offer card grid, with the Buy X, Get Y Image controls)
Buy X Get Y Modal Settings
The Buy X Get Y Modal Settings panel is organized into the screens below. The Product Selection and Product screens apply to Standard mode and are hidden in Post-Add Offer and Single Screen layouts. The Display and Custom CSS settings apply across modes.
(Image example above: The Smart Flows Buy X Get Y Modal Settings panel, with the Product Display list showing each reward product and the Product Selection, Product, Display, and Custom CSS section)
Modal settings: Product Display Options for Variants
Options Display controls how each variant option group, such as Color or Size, is presented to the shopper in the modal. It is set per option group, and the default is Dropdown. The label shown for each variant comes from its Name Appears As value, which you can edit to change how a variant reads in the modal without changing the product in Shopify.
Located in the Smart Flows Buy X Get Y Modal Settings > Product Display section > Options Display
Display Options: Dropdown
Display Options: Dropdown Shows the option group as a single dropdown menu. The shopper opens it and picks a value from the list. This is the default, and it works well when a product has many variants or modal space is limited.
(Image example above: The Smart Flows Buy X Get Y Options Display setting set to "Dropdown", with the preview showing the variant as a dropdown menu in the gift modal)
Display Options: Swatches
Display Options: Swatches Shows each variant as a colored circle. You assign a color to each variant in the option's settings, next to its Name Appears As label. The shopper taps a swatch to select, and the chosen variant name appears above the swatches. Best for color options, where the swatch itself signals the choice.
(Image example above: The Smart Flows Buy X Get Y Options Display setting set to "Swatches", with each variant mapped to a color and the preview showing them as colored circles)
Display Options: Images
Display Options: Images Shows each variant as a thumbnail image. You provide an Image URL for each variant. The shopper taps an image to select. Best when seeing the variant, such as a pattern, finish, or style, helps the shopper decide.
(Image example above: The Smart Flows Buy X Get Y Options Display setting set to "Images", with each variant mapped to an image URL and the preview showing them as thumbnail images)
Display Options: Buttons
Display Options: Buttons Shows each variant as a labeled button. The shopper taps a button to select, and the button text comes from the variant's Name Appears As value. Best for a small set of variants where a short text label reads clearly.
(Image example above: The Smart Flows Buy X Get Y Options Display setting set to "Buttons", with the preview showing the variants as labeled text buttons)
Modal settings: Product Selection Screen
This screen is the first screen in a multi-product Standard modal, where the shopper chooses which Buy X Get Y reward they want.
(Image example above: The storefront Product Selection screen of a multi-product modal, with the automated helper text visible below the title.)
Title is a rich text heading. Description is shown when its toggle is on, with a rich text body. Automated Helper Text is a multi-product toggle that renders an auto-generated line such as "You can select up to N more product(s)," reflecting the Customer Gets Up To quantity.
Modal settings: Product screen (variant selection)
This is the variant selection and confirmation screen of the Buy X Get Y modal. It is the only screen for a single reward, or the second screen for multiple rewards.
Title is a rich text heading. Description is shown when its toggle is on, with a rich text body.
Call-to-action (CTA) labels with a single reward product:
Submit is the primary confirm label (placeholder "Add to Cart"). Secondary Button is a toggle that enables a secondary cancel button, and Cancel Label sets its text (placeholder "No Thanks").
(Image example above: The Buy X Get Y Modal Settings Product screen configured for a single reward.)
CTA labels with multiple reward products:
Cancel dismisses the modal (placeholder "No Thanks"). Previous Step returns to the Product Selection screen (placeholder "Back"). Current Step labels the current-page indicator (placeholder "Product"). Next Step advances through the modal (placeholder "Next"). Submit is the final confirm label (placeholder "Add to Cart").
(Image example above: The Buy X Get Y Modal Settings Product screen configured for multiple reward options)
Modal settings: Display
These settings style the Buy X Get Y modal, including width, position, and image configuration.
(Image example above: The Smart Flows Buy X Get Y Modal Display Settings.)
Products Per Row sets how many reward cards render per row, configured separately for mobile (1 or 2) and desktop (1 through 4). It is shown only when more than one reward product is configured.
(Image example above: The Products Per Row control showing the mobile and desktop breakpoint selectors.)
Modal settings: Custom CSS
Each component (Popup, Banner, BXGY, etc.) has a Custom CSS field in its sidebar. Styles added here can be scoped to that specific component or applied globally across all Smart Flow components.
Buy X Get Y Retrigger Offer Banner
Once a Buy X Get Y popup is dismissed, or the required item is removed from the cart, the popup does not reappear until the page is refreshed, even if the shopper requalifies. This is expected behavior and is in place to prevent popup fatigue.
To prompt the shopper again without a refresh, enable the Retrigger Offer Banner on the step. When the shopper requalifies, a banner appears on the storefront inviting them to re-add the item, and clicking it brings the popup back.
(Image example above: A storefront example of the retrigger banner prompting the shopper to re-add the offer.)
Horizontal building vs Vertical stacking
How you place steps in the flow editor determines the order they run in. Steps arranged horizontally, in sequence, run one after another. Steps stacked vertically run at the same time, independently of each other.
Horizontal steps execute in order. Each step runs only after the previous one resolves, so when steps show a popup, the shopper sees them one at a time rather than all at once. For chained Buy X Get Y steps, rewards are also treated cumulatively: moving up a step keeps the gifts already earned, and only dropping below a step's requirement removes that step's reward.
(Image example above: Smart Flows horizontal build of chained steps)
Vertically stacked steps execute asynchronously. They all start together and react to cart changes on their own, so a single qualifying change can trigger several at once. With multiple popup-based steps, that means popups can stack on top of each other.
(Image example above: Smart Flows vertical stacked steps)
When steps depend on order or should appear one at a time, such as a cumulative reward promotion where higher spend unlocks more gifts, build them horizontally. Stack vertically only when the steps are independent and meant to run in parallel.
Smart Flows Buy X Get Y Frequently Asked Questions
How do I set up a free gift (gift with purchase) using Smart Flows Buy X Get Y?
To create a free gift in a Smart Flows Buy X Get Y step, add the gift as a Get Y reward product that is different from the qualifying product, and set its At Discount option to Free (or use Percentage Off at 100%). Define the qualifying purchase in the Buy X section, for example a minimum quantity of specific items or a minimum purchase amount. This fixed-quantity, different-product setup is what Buy X Get Y handles reliably.
Can I set up a same-product or scaled buy one, get one (BOGO) offer in Buy X Get Y?
Buy X Get Y reliably handles single-trigger, fixed-quantity offers where the qualifying product and the reward are different products. It does not handle offers where the reward quantity scales with the cart.
A same-product BOGO, such as buy 1 of a product and get 1 of the same product free, is not supported, because the reward auto-adds the same product, which re-triggers qualification and loops.
Scaled offers, where the number of gifts grows as more qualifying items are added, are also not natively supported. A 1:1 scaled offer such as "buy 3 items, get 3 gifts" or "buy 5 items, get 5 gifts" requires custom JavaScript, even with different products. A scaled "buy 3, get 1" that adds more gifts as the cart grows breaks for the same reason: once a gift is added it counts as a cart item and shifts the qualifying math. A fixed "buy 3, get 1 free gift," with a single gift of a different product, is supported.
If you need the gift quantity to scale with the cart, that is unsupported.
Can I skip the variant selection screen in Buy X Get Y?
You can skip the variant selection modal in a Smart Flows Buy X Get Y step, but only for single-variant reward products, using Skip Add to Cart Modal in the Get Y settings. With it on, the product is added without showing a modal. It is automatically disabled for products with more than one variant, and in Post-Add Offer and Single Screen modes, so multi-variant rewards always show a selection step. If a single reward product is configured and skips the modal, no modal renders at all.
Why does the Buy X Get Y modal show one screen for some shoppers and two for others?
In a Standard-mode Buy X Get Y step, the screen count is set by how many reward products the flow returns to that shopper, not by the number of variants. One product shows a single screen. Multiple products show a two-step modal, unless Single Screen is enabled.
What is the difference between the three Buy X conditions in Buy X Get Y?
A Buy X Get Y step offers three qualifying conditions. Minimum quantity of specific items sums the quantities of the products you list. Minimum quantity of any item checks whether one cart line reaches the threshold on its own. Minimum purchase amount checks the cart subtotal against the Unlock Price, scaled by currency for international shoppers.
Why did my Buy X Get Y quantity fields disappear or lock to 1?
Switching a Buy X Get Y step's Display Mode to Post-Add Offer locks both the Buy X quantity and Customer Gets Up To to 1 and hides the If Customer Buys condition, since that mode offers one reward immediately after a single qualifying add. Switch back to Standard mode to set custom quantities.
Will the Buy X Get Y reward stay in the cart if the customer removes the qualifying item?
That depends on the Trigger Fail Behavior set on each Buy X Get Y reward product. Remove offer from cart (the default) takes the reward out when the shopper no longer qualifies. Do nothing leaves it in.


























