Buy X Get Y
Buy X Get Y promotions automatically reward customers who purchase qualifying items (X) by adding discounted or free products (Y) to their cart. These are ideal for gift-with-purchase campaigns, sample distribution, bundled offers, and incentivizing purchases of specific product lines or categories.
How to set it up
Where to find it: Admin → Promotions → Create Promotion → Buy X Get Y
When you'd use this: You want to automatically add free or discounted items to a customer's cart when they purchase specific products or reach a purchase threshold in certain categories.
What you need first:
- Product codes or category identifiers for the trigger items (X)
- Product codes for the reward items (Y)
- Decision on whether the reward is free or discounted by percentage
- Promo code (if using Promo Code method) or readiness to auto-apply
- Start and end dates for the promotion
- Customer eligibility criteria (if restricting to specific groups)
Set it up:
- Navigate to Admin → Promotions and click Create Promotion
- Select Buy X Get Y as the promotion type
- Enter a description for internal reference
- Choose the method: Promo Code (requires customer entry) or Auto Promo (applies automatically)
- If using Promo Code, enter a unique code
- Set start and end date/time for the promotion period
- Configure Customer Buys (X) settings:
- Select Minimum Purchase type: Nothing, Purchase Amount, or Quantity Of Item
- If using Purchase Amount or Quantity Of Item, enter the minimum threshold
- Select Buy X List Type: Product or Category
- Enter the product codes or category identifiers in List Type Values
- Configure Customer Gets (Y) settings:
- Select Discount Type: Percentage or Free
- If using Percentage, enter the discount percentage
- Select Get Y List Type: Product
- Enter the product codes in List Type Values
- Optionally set Maximum Usage Per Order to limit how many times the reward can apply in a single order
- Configure customer eligibility: Nothing, Customer Code, Customer Group, or User Group
- If restricting by customer, select the specific codes or groups
- Set maximum discount usage: Unlimited, One Per User, or X Amount Of Time
- If using X Amount Of Time, specify the total number of uses allowed
- Set the promotion to active
- Save the promotion
Configuration options
| Field | What it does | Allowed values | Required |
|---|---|---|---|
| Description | Internal label for the promotion | Any text | Yes |
| Method | How the promotion is applied | Promo Code, Auto Promo | Yes |
| Code | The promo code customers enter | Any unique text | Yes (if Method is Promo Code) |
| Start Date Time | When the promotion becomes active | ISO timestamp | Yes |
| End Date Time | When the promotion expires | ISO timestamp | Yes |
| Active | Whether the promotion is currently enabled | True/False | Yes |
| Customer Buys (X) | |||
| Minimum Purchase Type | What triggers the promotion | Nothing, Purchase Amount, Quantity Of Item | Yes |
| Minimum Amount | Threshold value for purchase/quantity | Decimal ≥ 0 | Yes (if type is not Nothing) |
| Buy X List Type | What items qualify as triggers | Product, Category | Yes |
| List Type Values | Specific product codes or categories | List of strings | Yes |
| Customer Gets (Y) | |||
| Discount Type | How the reward is discounted | Percentage, Free | Yes |
| Discount Amount | Percentage off the Y items | Decimal ≥ 0 | Yes (if type is Percentage) |
| Get Y List Type | What items are added as rewards | Product | Yes |
| List Type Values | Specific product codes | List of strings | Yes |
| Maximum Usage Per Order | Limit on reward applications per order | Decimal ≥ 0 | No |
| Customer Eligibility | |||
| Customer Eligibility Type | Who can use this promotion | Nothing, Customer Code, Customer Group, User Group | Yes |
| Customer Eligibility Values | Specific codes or group identifiers | List of strings | Yes (if type is not Nothing) |
| Maximum Discount Use | |||
| Maximum Discount Use Type | Overall usage limits | Unlimited, One Per User, X Amount Of Time | Yes |
| Maximum Discount Use Amount | Total number of uses | Integer > 0 | Yes (if type is X Amount Of Time) |
Using it day-to-day
-
Customer adds qualifying items: When a customer adds the trigger products (X) to their cart or reaches the purchase threshold, the promotion eligibility is evaluated.
-
Auto Promo application: If the method is Auto Promo and all criteria are met, the reward items (Y) are automatically added to the cart with the configured discount applied.
-
Promo Code application: If the method is Promo Code, the customer must enter the code at checkout; once entered and validated, the reward items are added.
-
Discount calculation: The Y items receive the configured discount (either a percentage off or 100% off for Free). The discount is calculated on the catalog price of the Y items, even if that price is $0.
-
Order placement: The promotion details are recorded on the order, including which items triggered the promotion and which items were added as rewards.
-
Usage tracking: If the promotion has usage limits (One Per User or X Amount Of Time), each application is counted against the user's or global limit.
-
Admin monitoring: Admins can view active promotions, check usage counts, and deactivate promotions without deleting them by toggling the Active flag.
Troubleshooting
-
Free item not auto-adding to cart — Verify the promotion is set to Auto Promo method and is marked as active. Confirm the trigger item codes or categories in Buy X List Type Values exactly match what's in the cart. Check that the current date/time falls within the Start Date Time and End Date Time range. Ensure the customer meets any Customer Eligibility requirements.
-
Promo code not working — Confirm the code entered matches exactly (codes are case-sensitive). Verify the promotion is active and within its date range. Check that the customer has qualifying items (X) in their cart that meet the Minimum Purchase criteria.
-
Y item shows wrong price — The discount is applied to the catalog price of the Y item. If the item should be free, ensure Discount Type is set to Free. If using Percentage, verify the Discount Amount is set correctly (100 for free).
-
Promotion applying too many times in one order — Set the Maximum Usage Per Order field to limit how many times the reward can be added in a single transaction.
-
Customer exceeding usage limit — If Maximum Discount Use Type is One Per User, each customer can only use the promotion once across all orders. If set to X Amount Of Time, the promotion stops working globally once that total is reached. Verify the limit is appropriate for your campaign.
-
Category-based trigger not working — When Buy X List Type is Category, ensure the category identifiers in List Type Values match your catalog's category structure exactly. All items in the cart within those categories count toward the Minimum Purchase threshold.
-
Validation error on save — All fields marked as required must be populated. Minimum Amount and Discount Amount must be greater than or equal to 0. List Type Values cannot be empty arrays.
-
Promotion not appearing in Admin list — Deleted promotions are hidden from the main list. Check if the promotion was soft-deleted (deleted flag set to true). Non-deleted, inactive promotions still appear but are clearly marked.
-
Y item not in cart after trigger — The Get Y List Type only supports Product, not categories. Ensure you've entered specific product codes in the List Type Values for Customer Gets.