# AI Assistant
Source: https://docs.atomcommerce.io/ai-assistant/overview
Use the Atom Commerce assistant to create offers, find products, test discount logic, and troubleshoot promotions directly inside the dashboard workflow.
Use the Atom Commerce assistant when you need help **creating offers, finding products, testing discount logic, or troubleshooting why a promotion did not apply**. It helps merchants move faster inside the dashboard with plain-language requests.
The assistant understands your products and business data. It suggests actions for you to review before making changes to your store.
For durable reference material, pair the assistant with [Offer Types](/offers/offer-types), [Offer Priority and Stacking](/offers/priority-and-stacking), and [Web Store Connection Setup](/getting-started/setup).
## In this section
* [Getting started](#getting-started)
* [What the AI Assistant can do](#what-it-can-do)
* [How it helps](#how-it-helps)
* [Getting the best results](#best-results)
* [Ready to get started](#ready-to-get-started)
## Getting started
Look for the chat icon in your Atom dashboard. The AI Assistant is available 24/7.
## What it can do
Search products, find items by ID, and get pricing details
Create offers, learn discount types, and track performance
Test active discounts and validate conditions
The assistant can search through your products by name, type, or collection, find specific items by ID or search terms, and show how your products are organized and grouped. It can also retrieve pricing, descriptions, and availability information, plus convert product names to IDs for promotion setup.
When it comes to promotions, the assistant helps you create and manage offers by showing all your active, scheduled, and expired promotions. It teaches you about different offer types like volume discounts, bundles, and gift-with-purchase campaigns. It reviews what products and rules each promotion uses, checks which promotions are working and which need attention, and tracks promotion performance and activity over time.
The assistant connects to your Shopify store for testing by accessing your storefront and creating secure testing environments. It can test active discounts to see exactly how they work with real customer interactions. It also provides contextual guidance by understanding what you are working on right now and where you are in your onboarding journey.
## How it helps
New to Atom and overwhelmed by options
Need product names or IDs for promotion setup
Choose the right discount type for your business
If you're new to Atom and overwhelmed by all the options, the assistant guides you through the welcome survey, explains different discount types, and helps you create your first promotion. Simply ask "I'm new to Atom - what should I do first?" or "Help me understand the different types of discounts" to get started.
When you need to create a discount but don't know the exact product names or IDs, the AI Assistant searches through your products, finds items by name or collection, and converts names to the IDs you need. Try asking "Find products with 'coffee' in the name" or "Show me all products in my electronics collection" to locate what you need.
The assistant helps you create compelling promotions by choosing the right promotion type for your business. It can set up volume discounts with "buy more, save more" strategies, create bundle offers that package products together for better value, design gift-with-purchase campaigns that surprise customers with free items, and configure shipping discounts to reduce friction at checkout.
When your discount isn't working as expected, the assistant tests promotion conditions, identifies issues, and suggests fixes. It can troubleshoot problems by asking "Why isn't my discount working?" or "Test my promotion and tell me what's wrong." It also helps you understand which promotions drive the most sales through analytics insights.
## Best results
Ask for exactly what you want with clear details
Request data-driven insights and trends
To get the best results from the AI Assistant, be specific about what you want instead of asking vague questions. Instead of "Help me with discounts," try "Help me create a volume discount for my electronics collection that encourages customers to buy 3+ items." The more specific you are, the better the AI Assistant can help you.
Always ask about your actual products and collections rather than asking general questions. Instead of "What products should I discount?" try "Find products in my 'Winter Sale' collection" or "Show me my most expensive products." This gives the AI Assistant context about your specific store and inventory.
Test your active promotions to make sure they work correctly. Instead of "Is this discount good?" try "Test this promotion" or "Show me how this discount will work with my actual products." This helps you verify your active discounts are working as expected.
## Ready to get started?
Your AI Assistant is already active and ready to help! Simply:
1. **Open the chat** - Look for the chat icon in your Atom dashboard
2. **Ask your first question** - Try "Help me create my first promotion"
3. **Follow the guidance** - The AI Assistant will walk you through everything
4. **Test and verify** - Use the testing features to confirm your active promotions work correctly
5. **Launch with confidence** - Knowing your promotions are properly configured
## Important notes
The assistant provides helpful guidance and suggestions, but it can make mistakes. Always verify important information before implementing changes to your store.
Use the testing features to verify your active promotions work as expected. Double-check critical settings like discount amounts, dates, and product selections. Verify product information including names, IDs, and pricing are correct. If something doesn't seem right, reach out to [support@atomcommerce.io](mailto:support@atomcommerce.io) for help.
# Exporting Data
Source: https://docs.atomcommerce.io/analytics/exporting
Learn how to export data from Atom Commerce for external analysis, reporting, and integration with other business systems.
This guide explains how to export data from Atom Commerce for external analysis, reporting, and integration with other business systems.
## Data Export Overview
Atom Commerce allows you to export various types of data including:
* Offer performance data
* Customer information
* Campaign results
* Sales and revenue metrics
* Product performance data
## Export Methods
### Standard Export
The standard export feature is available throughout the platform:
1. Navigate to the section containing the data you want to export
2. Look for the "Export" or "Download" button (usually in the top right corner)
3. Select your preferred export format
4. Configure any export options
5. Initiate the export
### Bulk Data Export
For larger datasets or scheduled exports:
1. Go to "Analytics" in the main menu
2. Select "Data Export" from the submenu
3. Choose the data category to export
4. Configure export settings
5. Download the export or set up a scheduled delivery
## Export Formats
Atom Commerce supports multiple export formats to suit your needs:
* **CSV**: Simple tabular format compatible with most applications
* **Excel**: Native Microsoft Excel format with formatting preserved
* **PDF**: Formatted documents ideal for sharing and printing
* **JSON**: Structured data format for technical integrations
## Exporting Specific Data Types
### Offer Data Export
To export offer performance data:
1. Go to "Offers" in the main menu
2. Use filters to select the offers you want to include
3. Click "Export" in the top right
4. Select the metrics to include in your export
5. Choose your export format and download
### Customer Data Export
To export customer information:
1. Navigate to "Customers" in the main menu
2. Filter customers by segment or other criteria if needed
3. Click "Export" in the top right
4. Select the customer data fields to include
5. Choose your export format and download
### Campaign Data Export
To export campaign performance data:
1. Go to "Campaigns" in the main menu
2. Select the campaigns to include
3. Click "Export" in the top right
4. Configure the export settings
5. Download the campaign data
## Advanced Export Options
### Scheduled Exports
For recurring data needs, set up automated exports:
1. Configure your export as usual
2. Click "Schedule this Export"
3. Set the frequency (daily, weekly, monthly)
4. Enter email addresses to receive the export
5. Choose delivery format options
### Custom Data Selection
For more granular control over exported data:
1. Start a new export
2. Click "Advanced Options"
3. Select specific fields and metrics to include
4. Set filtering conditions
5. Choose aggregation and grouping options
### Large Dataset Handling
When exporting very large datasets:
1. Use date range filters to limit the data size
2. Consider using segmented exports
3. Schedule exports during off-peak hours
4. Use compression options for large files
## Data Security Considerations
* Exports may contain sensitive business or customer data
* Ensure exports are stored securely
* Consider anonymizing customer data when appropriate
* Review who has access to exported data
* Check your data handling against privacy regulations
## Integrating with Other Systems
Exported data can be used with:
* Business intelligence tools
* Spreadsheet applications
* External databases
* Marketing platforms
* Custom analysis scripts
## Next Steps
* Learn about [Performance Reports](/analytics/performance) for pre-configured analysis
* Explore [Key Metrics](/analytics/key-metrics) to understand what data to export
# Key Metrics
Source: https://docs.atomcommerce.io/analytics/key-metrics
Understand the key metrics available in Atom Commerce analytics to measure the performance of your promotions and marketing activities.
Atom Commerce provides comprehensive analytics to help you understand the performance of your promotions. This page explains the key metrics available on your dashboard.
## Performance Overview
The dashboard provides at-a-glance performance metrics:
* **Active Offers**: Number of currently running promotions
* **Revenue Impact**: Estimated additional revenue generated by your offers
* **Conversion Rate**: Percentage of visitors who make a purchase with an offer
* **Average Order Value (AOV)**: Average amount spent by customers using promotions
## Offer-Specific Metrics
For each offer, you can view:
* **Usage Count**: Number of times the offer has been applied
* **Revenue Generated**: Total revenue from orders using this offer
* **Discount Amount**: Total discount value provided by this offer
* **ROI**: Return on investment for this promotional activity
## Reading Your Analytics Dashboard
The main dashboard provides visualizations of:
1. **Daily Performance**: Charts showing offer usage and revenue impact over time
2. **Offer Comparison**: Visual comparison of different offers' performance
3. **Customer Behavior**: Insights into how customers interact with your offers
## Using Metrics for Decision Making
These metrics can help you:
* Identify your most effective promotions
* Determine optimal discount levels
* Understand customer preferences
* Plan future marketing strategies
## Next Steps
To dive deeper into analytics:
* Explore [Performance Reports](/analytics/performance) for detailed analysis
* Learn about [Exporting Data](/analytics/exporting) for further processing
# Performance Reports
Source: https://docs.atomcommerce.io/analytics/performance
Explore performance reporting capabilities in Atom Commerce to analyze the effectiveness of your promotions and marketing activities.
This guide explores the performance reporting capabilities in Atom Commerce, helping you analyze the effectiveness of your promotions and marketing activities.
## Overview of Performance Reports
Atom Commerce provides comprehensive performance reports that help you understand:
* How your offers are performing
* Which customer segments respond best
* The revenue impact of your promotions
* How to optimize future marketing efforts
## Accessing Performance Reports
To access performance reports:
1. Navigate to "Analytics" in the main menu
2. Select "Performance Reports" from the submenu
3. Choose the report type you want to view
## Types of Reports
### Offer Performance Report
This report provides detailed metrics for each offer:
* Usage count
* Revenue generated
* Average order value
* Conversion rate
* Cost of promotion
* ROI (Return on Investment)
To access the Offer Performance Report:
1. Go to Analytics > Performance Reports
2. Select "Offer Performance" from the report options
3. Choose the date range for your analysis
4. Filter by offer type, status, or campaign (optional)
### Campaign Performance Report
This report aggregates data across all offers within a campaign:
* Overall campaign revenue
* Campaign ROI
* Customer acquisition metrics
* Goal completion rates
To access the Campaign Performance Report:
1. Go to Analytics > Performance Reports
2. Select "Campaign Performance" from the report options
3. Choose a specific campaign to analyze
4. Select your preferred metrics and date range
### Customer Segment Performance
This report shows how different customer segments respond to your offers:
* Segment engagement rates
* Revenue by segment
* Offer effectiveness by segment
* Segment growth metrics
To access the Segment Performance Report:
1. Go to Analytics > Performance Reports
2. Select "Segment Performance" from the report options
3. Choose the segments to analyze
4. Compare metrics across different segments
## Customizing Reports
All reports can be customized to show the data most relevant to your needs:
1. Use the "Customize" button at the top of any report
2. Select the metrics you want to include
3. Choose your preferred visualization type
4. Set comparison parameters (e.g., compare to previous period)
5. Save your custom report configuration for future use
## Data Visualization Options
Performance data can be viewed in various formats:
* Line charts (for trends over time)
* Bar charts (for comparisons)
* Pie charts (for proportional analysis)
* Data tables (for detailed figures)
* Heat maps (for segment analysis)
## Exporting Report Data
To export report data for further analysis:
1. Navigate to the report you want to export
2. Click the "Export" button in the top right corner
3. Select your preferred format (CSV, Excel, PDF)
4. Choose to export all data or just the visible portion
5. Download the exported file
## Scheduled Reports
You can set up automated report delivery:
1. Configure a report with your preferred settings
2. Click "Schedule" at the top of the report
3. Set the frequency (daily, weekly, monthly)
4. Enter the email addresses to receive the report
5. Choose the delivery format
## Next Steps
* Learn about [Exporting Data](/analytics/exporting) for more advanced analysis
* Explore [Key Metrics](/analytics/key-metrics) to understand specific performance indicators
# Budgets
Source: https://docs.atomcommerce.io/budgets/overview
How to set spending limits for your discounts and campaigns.
Budgets in Atom Commerce help you control how much you spend on discounts and promotions. By setting a budget, you can make sure your total discount spend does not go over a set amount.
## What is a Budget?
A budget is a spending limit you assign to one or more offers or campaigns. When the total value of discounts given out reaches the budget limit, Atom Commerce will automatically stop applying those discounts. This helps you avoid overspending and gives you more control over your promotional costs.
## Why Use Budgets?
* **Prevent overspending:** Make sure you never give out more discounts than you planned.
* **Limit fraud risk:** Stop abuse by capping the total value of discounts.
* **Stay on track:** Keep your campaigns within your marketing or finance team's guidelines.
## How Budgets Work
* You can create a budget with a name, description, and a spending limit (daily or lifetime).
* Assign one or more offers to a budget.
* As customers use your offers, Atom Commerce tracks the total value of discounts given out.
* When the budget limit is reached, the assigned offers will automatically stop applying discounts.
## Setting Up a Budget
1. Go to the **Budgets** section in the Atom Commerce dashboard.
2. Click **New Budget**.
3. Enter a name and (optionally) a description for your budget.
4. Set your budget limit (for example, \$10,000).
5. Choose whether the limit is for a specific period (like daily) or for the lifetime of the budget.
6. Assign offers to the budget.
7. Save your budget.
You can view and edit your budgets at any time. The dashboard shows how much of each budget has been used and how much is left.
## Example
If you set a budget of $10,000 for your "Spring Sale" offers, Atom Commerce will keep track of all discounts given out by those offers. Once the total reaches $10,000, the discounts will stop being applied until you increase the budget or reset it.
## Best Practices
* Review your budgets regularly to make sure you’re staying within your planned spend.
* Use budgets for high-value or high-risk campaigns to avoid surprises.
* Adjust your budget limits as your marketing goals or business needs change.
# Manage Storefront and POS Offer Channels in Atom Commerce
Source: https://docs.atomcommerce.io/channels/managing
Learn how to configure storefront and POS channel settings in Atom Commerce so offers run in the right places, with the right rules and messaging.
Use this page to manage where promotions run and how channel-specific settings affect storefront and POS behavior.
## Channel Configuration
Each channel can be configured with specific settings:
1. Navigate to "Channels" in the main menu
2. Select a channel from the list
3. Click "Edit Settings"
4. Configure the channel-specific options:
* Display priority
* Default messaging
* Offer eligibility rules
* Visual presentation options
## Default Channel Types
Atom Commerce supports online and point of sale channel types:
### Storefront
Settings for promotional offers displayed directly in your Shopify store:
* Product page placement
* Cart page offers
* Checkout offers
* Collection page promotions
### POS
Settings for offers that only apply to point of sale locations. You may enable offers
to run only for all POS locations, specific POS locations, or none at all.
# Sales Channels and Offer Distribution in Atom Commerce
Source: https://docs.atomcommerce.io/channels/overview
Understand how Atom Commerce distributes offers across storefront, checkout, POS, and other sales channels so you can control where promotions appear.
Use this page to understand how Atom Commerce distributes promotions across storefront, checkout, POS, and other supported sales channels.
## What Are Channels?
Channels represent the different platforms and touchpoints where your offers can be presented to customers:
* Store checkout page
* Product pages
* Cart page
* Email marketing
* Mobile app
## Channel Benefits
Managing your offers through channels helps you:
* Create a consistent promotional strategy across platforms
* Track which channels drive the most engagement
* Customize offers for specific customer touchpoints
* Control where and when offers are displayed
## Getting Started with Channels
To start managing your offer channels:
1. Navigate to the Channels section in the main menu
2. Review your existing channel setup
3. Configure channel settings
4. Link offers to appropriate channels
# Creating Coupon Batches
Source: https://docs.atomcommerce.io/coupons/creating
Learn how to create and configure coupon batches in Atom Commerce to generate multiple unique coupon codes for your offers.
Use this page to create coupon batches, link them to offers, and control how codes are generated, distributed, and redeemed.
## What Are Coupon Batches?
Coupon batches allow you to generate multiple unique coupon codes for your offers:
* Share codes through different marketing channels
* Create limited-use coupons for specific campaigns
* Track redemption rates and performance
* Control distribution and expiration
## Creating a New Coupon Batch
### Step 1: Navigate to Coupon Batches
1. Click "Coupon Batches" in the main navigation
2. Select "Create New Batch"
### Step 2: Configure Basic Settings
Fill in the batch details:
1. **Batch Name**: Choose a descriptive name (e.g., "Summer Sale 2023")
2. **Number of Codes**: Specify how many unique codes to generate
3. **Code Format**: Select a format (e.g., alphanumeric, custom prefix)
4. **Code Length**: Choose how long each code should be
### Step 3: Link to an Offer
Connect the coupon batch to a specific offer:
1. Select an existing offer from the dropdown menu
2. Or create a new offer specifically for this coupon batch
### Step 4: Set Distribution Rules
Configure how the coupons can be used:
1. **Usage Limit**: Set how many times each code can be redeemed
2. **Batch Limit**: Set a total redemption limit for the entire batch
3. **Customer Limit**: Restrict to one-per-customer or allow multiple uses
4. **Expiration Date**: Set when the coupons will expire
### Step 5: Generate Codes
1. Review your settings
2. Click "Generate Codes"
3. Wait for the system to create your unique coupon codes
## Coupon Batch Management
After creating your coupon batch:
1. View the list of generated codes
2. Export codes for distribution (CSV or Excel format)
3. Monitor usage statistics
4. Adjust settings if needed
# Coupon Distribution Strategies
Source: https://docs.atomcommerce.io/coupons/distribution
Learn effective ways to distribute coupon codes across email, social media, and in-store channels to maximize impact.
This guide covers effective ways to distribute your coupon codes to maximize their impact.
## Exporting Coupon Codes
Before distribution, you need to export your coupon codes:
1. Navigate to "Coupon Batches" in the main menu
2. Select the batch you want to distribute
3. Click "Export Codes"
4. Choose your preferred format (CSV or Excel)
5. Download the file containing your codes
## Email Distribution
Send coupon codes directly to customers via email:
### Manual Email Export
1. Export your coupon codes as described above
2. Import the codes into your email marketing platform
3. Create an email campaign with personalized coupon codes
4. Schedule and send the campaign
### Best Practices for Email Distribution
* Craft a compelling subject line mentioning the discount
* Create a sense of urgency with clear expiration dates
* Include simple redemption instructions
* Design a mobile-friendly email template
* Test your emails before sending to your full list
## Social Media Distribution
Share coupon codes on social platforms:
1. Create engaging social media posts highlighting your offer
2. Include redemption instructions
3. Consider using unique tracking codes for each platform
4. Schedule posts at optimal times for your audience
## In-Store Distribution
For businesses with physical locations:
1. Create printed cards or flyers with coupon codes
2. Train staff to distribute codes to customers
3. Include codes on receipts for future purchases
4. Use QR codes that customers can scan
## Strategic Distribution Timing
Maximize impact with strategic timing:
* **Welcome Offers**: Send codes to new subscribers or customers
* **Abandoned Cart Recovery**: Send codes to customers who didn't complete checkout
* **Win-Back Campaigns**: Send codes to previously active customers who haven't purchased recently
* **Holiday Promotions**: Distribute codes before major shopping holidays
* **Birthday Offers**: Send personalized codes on customer birthdays
## Measuring Distribution Success
Track the effectiveness of your distribution channels:
1. Create unique coupon batches for each distribution channel
2. Monitor redemption rates by channel
3. Compare performance metrics
4. Adjust your strategy based on the data
# Manage Coupon Batches and Redemptions in Atom Commerce
Source: https://docs.atomcommerce.io/coupons/managing
Learn how to edit, activate, export, and monitor coupon batches in Atom Commerce, including redemption history and linked offer management.
Use this page to edit coupon batches, monitor redemption activity, export codes, and manage linked offers after a batch is live.
## Coupon Batch Dashboard
The Coupon Batches dashboard provides an overview of all your coupon batches:
1. Navigate to "Coupon Batches" in the main menu
2. View all your coupon batches in one place
3. Sort by name, creation date, or status
4. Filter by active, expired, or pending batches
## Viewing Coupon Details
To view detailed information about a specific batch:
1. Click on the batch name from the dashboard
2. View the batch details page with:
* Usage statistics
* Individual coupon codes
* Distribution history
* Performance metrics
## Editing Coupon Batches
To modify an existing coupon batch:
1. Navigate to the batch details page
2. Click "Edit Batch"
3. Update the available settings:
* Batch name
* Usage limits
* Expiration date
* Linked offer
4. Save your changes
Note: Some settings cannot be changed after coupon codes have been generated.
## Activating and Deactivating Batches
Control whether coupon batches are usable:
1. From the Coupon Batches dashboard, find the batch
2. Toggle the "Active" switch
3. Confirm your action
Deactivated batches will have all codes temporarily disabled until reactivated.
## Extending Expiration Dates
To extend the validity of coupons:
1. Navigate to the batch details page
2. Click "Edit Batch"
3. Update the expiration date
4. Save your changes
## Viewing Redemption History
Track how your coupons are being used:
1. Go to the batch details page
2. View the "Redemption History" tab
3. See detailed information on each code:
* When it was used
* Customer who used it
* Order value
* Applied discount
## Deleting Coupon Batches
To permanently remove a coupon batch:
1. Navigate to the batch details page
2. Click "Delete Batch"
3. Confirm your action
Warning: This action cannot be undone and will invalidate all codes in the batch.
# Allow Multiple Users Per Order
Source: https://docs.atomcommerce.io/discount-limits/multiple-users-per-order
Control whether the same discount can be applied multiple times within a single order
Quick Summary
-
Purpose: Controls if the same discount can be used multiple times in one order
-
Default: Disabled (one discount per order)
-
Use Case: Managing discount behavior for multiple customers or scenarios
-
Location: Discount Limits section of offer configuration
## What This Setting Does
The "Allow Multiple Users Per Order" setting controls whether a single discount can be applied multiple times within the same order.
This feature is controlled by the **"Allow Multiple Users Per Order"** checkbox in the Discount Limits section. By default, this checkbox is **unchecked**, meaning each offer can only be applied once per order.
## How It Works
### When Disabled (Default)
* The **"Allow Multiple Users Per Order"** checkbox is **unchecked**
* Each discount can only be applied **once per order**
* Prevents the same discount from being used multiple times
* Helps control discount costs and prevent abuse
### When Enabled
* The **"Allow Multiple Users Per Order"** checkbox is **checked**
* The same discount can be applied **multiple times per order**
* Useful for scenarios where multiple customers should benefit from the same promotion
## Real-World Examples
### Example 1: Family Shopping Scenario
**Scenario:** A parent is shopping for multiple family members and wants to use the same discount for each person.
**Discount:** "20% off any item" (code: FAMILY20)
**With Setting Disabled:**
* Parent adds 3 items to cart
* Discount applies to 1 item only
* **Result:** 20% off 1 item, full price for other 2 items
**With Setting Enabled:**
* Parent adds 3 items to cart
* Discount applies to all 3 items
* **Result:** 20% off all 3 items
### Example 2: Free Gift with Each Purchase
**Scenario:** A customer wants to buy multiple pairs of jeans and get a free gift with each pair.
**Discount:** "Get a free gift with each pair of jeans" (automatic)
**Customer Action:** Buys 3 pairs of jeans (\$150 each)
**With Setting Disabled:**
* Customer adds 3 pairs of jeans to cart
* Discount applies once (1 free gift total)
* **Result:** Customer gets 1 free gift for the entire order
**With Setting Enabled:**
* Customer adds 3 pairs of jeans to cart
* Discount applies 3 times (1 free gift per pair)
* **Result:** Customer gets 3 free gifts (one for each pair of jeans)
### Example 3: Bulk Purchase Scenario
**Scenario:** A customer wants to buy multiple quantities of the same product with a quantity-based discount.
**Discount:** "Buy 2, Get 1 Free" (automatic)
**With Setting Disabled:**
* Customer adds 6 items to cart
* Discount applies once (buy 2, get 1 free)
* **Result:** Customer pays for 4 items, gets 2 free
**With Setting Enabled:**
* Customer adds 6 items to cart
* Discount applies twice (buy 2 get 1 free, then buy 2 more get 1 free)
* **Result:** Customer pays for 4 items, gets 2 free (same result in this case)
## Decision Guide
Use this setting as a business control:
| Goal | Recommended setting | Why |
| ------------------------------------------------------------------ | ---------------------- | --------------------------------------------------------------- |
| One discount per order, predictable cost | **Disabled** (default) | Controls margin impact and prevents accidental over-application |
| Let one order receive repeated benefit from the same offer | **Enabled** | Better for family/group carts and bulk purchase campaigns |
| Seasonal or acquisition campaign with intentionally generous value | **Enabled** | Improves conversion and perceived value |
| Tight budget or strict promotion caps | **Disabled** | Keeps total discount exposure easier to forecast |
Start with **Disabled**, then enable only for offers where repeat application is part of the campaign strategy.
## How to Configure
### Step 1: Navigate to Your Offer
1. Go to the Atom admin interface
2. Find the offer you want to configure
3. Click to edit the offer
### Step 2: Locate Discount Limits
1. Scroll down to the **Discount Limits** section
2. Look for the **"Allow Multiple Users Per Order"** setting
### Step 3: Configure the Setting
1. **Check the box** to enable multiple uses per order
2. **Leave unchecked** to limit to one use per order (default)
3. Save your changes
This setting is available for both automatic and code-based offers. The behavior applies regardless of how the discount is triggered.
## Business Impact
### Positive Impacts
* **Higher Customer Satisfaction:** Customers get more value from their purchases
* **Increased Average Order Value:** Customers may buy more to take advantage of multiple discounts
* **Better Customer Experience:** More generous discount policies can improve loyalty
### Potential Risks
* **Higher Discount Costs:** Multiple applications can significantly increase promotional expenses
* **Margin Erosion:** Excessive discounting can impact profitability
* **Budget Overruns:** May exceed planned promotional budgets
## Best Practices
### Testing Your Configuration
1. **Test with small orders** first to verify behavior
2. **Monitor discount costs** after enabling the setting
3. **Track customer behavior** to ensure the setting achieves your goals
### Monitoring Performance
* **Track discount usage** to understand how customers are using the feature
* **Monitor profit margins** to ensure the setting doesn't negatively impact profitability
* **Analyze customer satisfaction** to measure the impact on customer experience
### Strategic Considerations
* **Start conservative:** Begin with the setting disabled and enable only when needed
* **Set clear budgets:** Establish limits on total discount exposure
* **Regular reviews:** Periodically assess whether the setting is meeting your business goals
## Troubleshooting
### Common Issues
**Issue:** Discount isn't applying multiple times even when enabled
* **Solution:** Check that the offer is eligible for multiple applications and that all conditions are met
**Issue:** Unexpected high discount costs after enabling
* **Solution:** Review your discount configuration and consider adding additional limits or conditions
**Issue:** Customers reporting they can't use the discount multiple times
* **Solution:** Verify the setting is properly enabled and communicate the policy clearly to customers
## Related Topics
* [Exclude Items Already Used to Qualify for Another Offer](/discount-limits/qualifier-reuse) - Control shared qualifier behavior
* [Offer Priority and Stacking](/offers/priority-and-stacking) - How offers are evaluated
* [Creating Offers](/offers/creating-offers) - Learn to create effective offers
* [Discount Limits Overview](/discount-limits/overview) - Complete guide to discount limits
# Discount Limits
Source: https://docs.atomcommerce.io/discount-limits/overview
Control how discounts interact with each other and prevent excessive discount stacking
TL;DR
-
Multiple Users Per Order: Control whether the same discount can be applied multiple times in a single order
-
Shared Qualifier Exclusion: Control whether this offer excludes lines already used to qualify another offer
-
Margin Protection: Prevent excessive discount stacking that could erode profits
-
Customer Experience: Balance generous promotions with business sustainability
## What are Discount Limits?
Discount limits control how discounts interact with each other in your store. These settings help you balance customer satisfaction with business profitability.
## Key Concepts
### Multiple Users Per Order
Controls whether the same discount can be applied multiple times within a single order.
### Qualifier Reuse
Controls whether items that have already qualified for one offer can also qualify for other offers.
## Why Use Discount Limits?
Prevent excessive discount stacking that could erode your profit margins
Maintain predictable discount costs and avoid unexpected promotional expenses
Balance generous promotions with sustainable business practices
Fine-tune discount behavior for different business scenarios
## When to Use Each Setting
### Enable Multiple Users Per Order When:
* You want the same discount to apply multiple times in one order
* Multiple customers or use cases should benefit from the same promotion
### Enable Qualifier Reuse When:
* You want customers to receive multiple gifts from the same qualifying items
* You're running generous holiday campaigns or special promotions
### Keep Limits Disabled When:
* You need to protect profit margins from excessive discounting
* You want to maintain predictable promotional costs
## Getting Started
1. **Navigate to your offer** in the Atom admin interface
2. **Locate the Discount Limits section** on the offer configuration page
3. **Configure your desired settings** based on your business needs
4. **Test your configuration** to ensure it behaves as expected
## Related Topics
* [Allow Multiple Users Per Order](/discount-limits/multiple-users-per-order) - Detailed guide on managing multiple discount applications
* [Exclude Items Already Used to Qualify for Another Offer](/discount-limits/qualifier-reuse) - Complete guide to shared qualifier behavior
* [Offer Priority and Stacking](/offers/priority-and-stacking) - How offers are evaluated and applied
* [Creating Offers](/offers/creating-offers) - Learn how to create effective discount offers
## Best Practices
Start with conservative settings (limits enabled) and gradually relax them based on your business performance and customer feedback.
* **Test thoroughly** before launching new discount configurations
* **Monitor performance** to ensure limits are achieving your business goals
* **Consider your margins** when enabling more generous discount behaviors
* **Use analytics** to track the impact of your discount limit settings
# Exclude Items Already Used to Qualify for Another Offer
Source: https://docs.atomcommerce.io/discount-limits/qualifier-reuse
Control whether this offer can reuse lines that already qualified another offer
Quick Summary
-
Purpose: Controls whether this offer excludes qualifier lines already used by another offer
-
Default: Unchecked (shared qualifiers are allowed)
-
Business Impact: Balances customer satisfaction with margin protection
## What This Feature Does
This feature controls whether items that have already acted as **qualifiers** for one offer can also act as qualifiers for other offers.
This feature is controlled by the **"Exclude items already used to qualify for another offer"** checkbox in the Discount Limits section.
By default, this checkbox is **unchecked**, which allows qualifier reuse across offers.
Migration Note
-
Older documentation described this as "Allow items to qualify for multiple offers".
-
Current UI uses inverse wording: "Exclude items already used to qualify for another offer".
-
Equivalent mapping: Allow = Unchecked, Disallow = Checked.
### Key Concepts
* **Qualifier**: Items that trigger/activate a discount (e.g., items that meet the "buy X" requirement)
* **Target**: Items that receive the discount (e.g., the free gift or discounted item)
* **Qualifier Reuse**: Allowing the same item to qualify for multiple different offers
## How It Works
### When Unchecked (Default)
* The **"Exclude items already used to qualify for another offer"** checkbox is **unchecked**
* Items that qualified for Offer A **can also** qualify for Offer B
* Shared qualifier behavior is allowed
### When Checked
* The **"Exclude items already used to qualify for another offer"** checkbox is **checked**
* Items that qualified for Offer A **cannot** qualify for Offer B
* Prevents "double qualifying" scenarios for this offer
## Real-World Examples
### Example 1: Fashion GWP Offers
**Scenario:** Two Gift With Purchase offers
* **Offer A:** "Buy any dress, get free jewelry" (Priority 1)
* **Offer B:** "Buy any dress, get free handbag" (Priority 2)
**Customer Action:** Buys 1 dress (\$50)
* Dress qualifies for Offer A → Customer gets free jewelry
* Dress can also qualify for Offer B → Customer gets free handbag
* **Result:** Customer gets 2 gifts
* Dress qualifies for Offer A → Customer gets free jewelry
* Dress cannot qualify for Offer B → Customer does NOT get free handbag
* **Result:** Customer gets 1 gift
### Example 2: Beauty Product GWP Offers
**Scenario:** Multiple beauty gift with purchase offers
* **Offer A:** "Buy any skincare product, get free cleanser"
* **Offer B:** "Buy any skincare product, get free moisturizer"
**Customer Action:** Buys 1 skincare product (\$30)
* Skincare product qualifies for Offer A → Customer gets free cleanser
* Skincare product also qualifies for Offer B → Customer gets free moisturizer
* **Result:** Customer gets 2 free products
* Skincare product qualifies for Offer A → Customer gets free cleanser
* Skincare product cannot qualify for Offer B → Customer does NOT get free moisturizer
* **Result:** Customer gets 1 free product
### Example 3: Beauty Product Bundle Offers
**Scenario:** Multiple beauty GWP offers requiring multiple items
* **Offer A:** "Buy 2 skincare products, get free cleanser"
* **Offer B:** "Buy 2 skincare products, get free moisturizer"
**Customer Action:** Buys 2 skincare products
* Both offers apply
* Customer gets both free products
* Only highest priority offer applies
* Customer gets 1 free product
## When to Check This Setting
Prevent excessive discount stacking that could erode profits
Maintain predictable discount costs and avoid surprises
Avoid complex qualifying scenarios for straightforward promotions
Limit total discount exposure to stay within promotional budgets
## When to Leave It Unchecked
When you want customers to receive multiple benefits from the same qualifying items
Special occasions where extra gifts increase customer satisfaction
Competitive advantage through better value propositions
Move multiple product categories simultaneously
## How to Configure
### Step 1: Navigate to Your Offer
1. Go to the Atom admin interface
2. Find the offer you want to configure
3. Click to edit the offer
### Step 2: Locate Discount Limits
1. Scroll down to the **Discount Limits** section
2. Look for the **"Exclude items already used to qualify for another offer"** setting
### Step 3: Configure the Setting
1. **Check the box** to exclude shared qualifiers (items already used by another offer are not reused)
2. **Leave unchecked** to allow qualifier reuse across offers (default behavior)
3. Save your changes
This setting works with all offer types including BXGY, BMSM, GWP, Order Discount, and more. The priority system still applies - higher priority offers are evaluated first.
## Business Impact Analysis
### Positive Impacts
* **Higher Customer Satisfaction:** Customers receive more gifts and benefits
* **Increased Average Order Value:** Better value propositions encourage larger purchases
* **Inventory Movement:** Can help clear multiple product categories simultaneously
### Potential Risks
* **Higher Discount Costs:** Multiple offers applying to the same items increases promotional expenses
* **Margin Erosion:** Excessive discounting can impact profitability
* **Budget Overruns:** May exceed planned promotional budgets
## Best Practices
### Testing Your Configuration
1. **Test with simple scenarios** first to verify behavior
2. **Create test orders** with multiple qualifying items
3. **Verify expected outcomes** match your business goals
### Monitoring Performance
* **Track discount costs** after enabling the feature
* **Monitor checkout performance** for any slowdowns
* **Analyze customer behavior** to ensure the feature achieves your goals
### Strategic Planning
* **Start with conservative settings** and gradually enable more generous behavior
* **Set clear budgets** for total discount exposure
* **Regular reviews** to assess whether the feature is meeting business objectives
## Common Use Cases
### Fashion Retail
* Multiple GWP offers on the same qualifying items
* "Buy any dress" promotions that can stack with other dress offers
* Seasonal campaigns with overlapping qualifying criteria
### Beauty & Cosmetics
* Skincare product bundles with multiple free gifts
* Makeup offers that can combine with skincare promotions
* Holiday gift sets with multiple qualifying scenarios
### Electronics
* Accessory bundles with multiple free items
* Device offers that can stack with accessory promotions
* Seasonal sales with overlapping product categories
## Troubleshooting
### Common Issues
**Issue:** Items aren't qualifying for multiple offers
* **Solution:** Confirm this checkbox is **unchecked** and verify qualifying conditions are met for each offer
**Issue:** Unexpected high discount costs after enabling
* **Solution:** Review your offer configurations and consider adding additional limits or conditions
**Issue:** Performance issues during checkout
* **Solution:** Monitor system performance and consider the complexity of your offer configurations
### Debugging Steps
1. **Verify the setting** is properly enabled in the admin interface
2. **Check offer priorities** to ensure they're configured correctly
3. **Test with simple scenarios** to isolate the issue
4. **Review offer conditions** to ensure they're compatible with qualifier reuse
## Related Topics
* [Allow Multiple Users Per Order](/discount-limits/multiple-users-per-order) - Control multiple discount applications per order
* [Offer Priority and Stacking](/offers/priority-and-stacking) - How offers are evaluated and applied
* [Creating Offers](/offers/creating-offers) - Learn to create effective offers
* [Discount Limits Overview](/discount-limits/overview) - Complete guide to discount limits
## FAQ
**Q: Does this feature affect all offer types?**
A: Yes, this feature works with all offer types including BXGY, BMSM, GWP, Order Discount, and more.
**Q: How does priority work with qualifier reuse?**
A: Priority still applies - higher priority offers are evaluated first. The feature only affects whether items can qualify for multiple offers after the priority evaluation.
**Q: What does checked vs unchecked mean now?**
A: **Checked** means exclude lines already used as qualifiers by another offer. **Unchecked** means allow shared qualifiers.
**Q: Can I enable this for some offers but not others?**
A: Yes, this setting is configured per offer, so you can have different qualifier reuse policies for different offers.
**Q: What's the performance impact of enabling this feature?**
A: There may be a slight increase in processing time for complex cart scenarios, but it's generally minimal for most use cases.
**Q: How do I know if this feature is right for my business?**
A: Start with the default setting (**unchecked**, shared qualifiers allowed) if you want more generous stacking. Check it when you need tighter margin control and stricter qualifier isolation.
# Enable the Shopify Checkout Extension
Source: https://docs.atomcommerce.io/fulfillment/checkout-extension
Enable the Atom Commerce Shopify checkout extension so fulfillment exclusions and shipping-related discount rules can be enforced correctly at checkout.
The **Atom Checkout Extension** allows you to exclude some **fulfillment methods** from being eligible for discounts.\
For example, you can configure an offer to apply for **standard shipping**, but exclude **local pickup**.
Note: This extension adds no visible UI components to checkout — it only enables Atom Commerce to control when discounts apply based on the customer’s chosen fulfillment method.
## Steps to Enable
1. From your Shopify admin, navigate to **Settings → Checkout**.
2. Click **Customize** to open the checkout customization screen.
3. In the left sidebar, select **Apps**.
4. Make sure the **All** tab is selected to see all available extensions.
5. Locate **atom-checkout-delivery** and click the **(+)** icon to add it to Checkout.
6. The extension will appear at the top of the page. It has **no visible elements**, so its position does not matter.
7. Finally, click the **Save** button in the checkout editor to publish your changes.
## Example Use Case
* **Allowed**: Apply a discount when the customer selects *Standard Shipping*.
* **Not Allowed**: Prevent the same discount from applying when the customer selects *Local Pickup*.
This ensures discounts are only used with the fulfillment methods you intend, protecting margins and keeping promotional rules consistent.
## When You Need This Extension
You should enable this extension if you use:
* **fulfillment type exclusions**
* **shipping discounts with minimum cart value requirements**
* **free shipping promotions where local pickup or other methods should be excluded**
Without the extension, Atom Commerce cannot reliably enforce these fulfillment-based rules at checkout.
***
## Troubleshooting
Make sure the checkout extension is **installed and saved** in Shopify. Without it, Atom Commerce cannot evaluate fulfillment method conditions.
This is expected. The extension only runs logic behind the scenes and does not render UI in checkout.
Double-check that you clicked **Save** in the checkout editor after enabling the extension. Also, if you just enabled your discount, be sure to make a change to items in your cart to ensure the discount is applied.
# Fulfillment Type Exclusions
Source: https://docs.atomcommerce.io/fulfillment/overview
Learn how fulfillment type exclusions work in Atom Commerce and how to keep specific shipping, pickup, or delivery methods out of a promotion.
On the right-hand side of every discount configuration page, you’ll find a section called **Fulfillment Types**.
Use fulfillment type exclusions when a discount should only apply to specific checkout methods. By default, **all fulfillment methods** are supported.\
If you want to **exclude certain fulfillment methods** from receiving discounts, you can configure it here.
*The Fulfillment Types section appears on the right side of every discount configuration page, showing checkboxes for different fulfillment methods.*
***
## Requirements
The **Fulfillment Type Exclusions** feature is only available for merchants on **Shopify Plus**.
To enable this feature, you must also set up the **Atom Checkout Extension** in Shopify.\
Without the extension, exclusions cannot be enforced at checkout.
See [Checkout Extension Setup](/fulfillment/checkout-extension) for full setup instructions.
***
## How It Works
* If **no fulfillment types are selected**, the discount applies to **all methods**.
* If you **deselect a fulfillment type**, the discount will **not apply** to that method.
* This makes it easy to exclude specific channels (like *Pickup in Store*) while keeping others eligible.
## How Shipping Qualification Works
For shipping discounts, Atom Commerce checks whether the cart meets the shipping offer's qualifying conditions before the shipping benefit is applied. In practice, this means:
* the cart must satisfy the **minimum cart value** or other qualifier you configured
* only the items that are eligible for the promotion should count toward that qualification
* excluded fulfillment methods prevent the discount from applying, even when the cart otherwise qualifies
Think of shipping qualification as a two-step check: first the cart must qualify for the shipping offer, then the selected fulfillment method must still be allowed by the offer.
## Example: Minimum Cart Value with an Excluded Method
Imagine a merchant sets up:
* **Free Shipping over USD 75**
* **Pickup in Store excluded**
Customer cart:
* USD 80 of eligible products
* customer chooses **Pickup in Store**
Outcome:
* the cart qualifies for the free shipping threshold
* the selected fulfillment method is excluded
* the free shipping discount does **not** apply
If the same customer switches to an allowed shipping method, the discount can apply immediately because the cart already qualifies.
Fulfillment Type Exclusions let you fine-tune where discounts apply, ensuring promotions only impact the channels you want.
***
## Example
In this example, **Pickup in Store** is left **unchecked**, while **Shipping** and **Local Delivery** remain selected:
*The fulfillment types selection modal shows checkboxes for Shipping, Local Delivery, Pickup in Store, Shipping to Pickup Points, and None (for digital products).*
* ✅ **Shipping** — discount is valid.
* ✅ **Local Delivery** — discount is valid.
* ❌ **Pickup in Store** — excluded, discount will **not** apply.
***
## Available Fulfillment Types
* **Shipping** — Standard shipping methods.
* **Pickup in Store** — Local pickup at a retail location.
* **Local Delivery** — Hand-delivered by staff or courier.
* **Shipping to Pickup Points** — Delivery to lockers or pickup points.
* **None** — Non-physical items (e.g. digital products).
***
## Common Use Cases
* Exclude **in-store pickup** when a promotion is intended only for shipped orders.
* Encourage adoption of **local delivery** by excluding other fulfillment methods.
* Ensure **digital products** aren’t discounted by offers intended for physical inventory.
***
## Troubleshooting
Double-check that you clicked **Save** after selecting fulfillment types. If no types are saved, the default is "all".
Ensure that the **Checkout Extension** is enabled in Shopify settings. Without it, Atom Commerce cannot enforce fulfillment type exclusions during checkout.
See [Checkout Extension Setup](/fulfillment/checkout-extension) for details.
Check whether the customer is choosing an excluded fulfillment method or whether excluded products are affecting the eligible subtotal used for shipping qualification.
# LLM-Friendly Documentation
Source: https://docs.atomcommerce.io/getting-started/llm-documentation
Learn how to access Atom Commerce documentation in LLM-friendly formats including MCP server and text formats
## LLM-Friendly Docs
The Atom Commerce documentation is available in multiple LLM-friendly formats:
### MCP Server
The Atom Commerce docs are accessible via MCP! The server URL is `https://docs.atomcommerce.io/mcp`.
You can use the Atom Commerce MCP server to search and query our documentation directly from your LLM applications.
### Text Formats
The docs are also available in [llms.txt format](https://llmstxt.org/):
* [llms.txt](https://docs.atomcommerce.io/llms.txt) - A sitemap listing all documentation pages
* [llms-full.txt](https://docs.atomcommerce.io/llms-full.txt) - The entire documentation in one file (may exceed context windows)
Use those endpoints for LLM-friendly access. Individual docs pages are not exposed through a `.md` URL pattern in this Mintlify setup.
# Web Store Connection Setup
Source: https://docs.atomcommerce.io/getting-started/setup
Install Atom Commerce, enable the Shopify app embed, complete onboarding, and finish the required setup for live offers and checkout behavior.
Use this setup guide when you are installing Atom Commerce for the first time and need **Shopify offers working correctly** before launching anything live.
You are connecting a Shopify store, enabling the app embed, and preparing to launch your first offers
After setup, continue to [Offer Types](/offers/offer-types), [Creating Offers](/offers/creating-offers), and [Offer Priority and Stacking](/offers/priority-and-stacking)
## Overview
Complete these steps in order before testing or launching offers:
1. **Install the Atom Commerce app for Shopify**
Go to [Atom Commerce Connector on Shopify App Store](https://apps.shopify.com/atom-commerce-connector) and click **Add app**.
2. **Complete the onboarding survey and getting started page**
After installation, you'll be directed to a short survey and a getting started page. You can use the AI Assistant if you need help.
3. **Enable the Shopify App Embed**
Turn on the Shopify App Embed. Atom Commerce needs it to apply discounts in your store. Follow the prompts on the getting started page, or ask the AI Assistant if you need help.
4. **Open Atom Commerce from Shopify Admin**
Once installed, Atom Commerce will always be available under the **Apps** menu in your Shopify Admin. Click **Atom Commerce Connector** to open your Atom Commerce Dashboard.
## Recommended Next Steps
After installation, most merchants should do these next:
1. Walk through the [Quickstart Guide](/quickstart) to launch your first offer
2. Review [Types of Offers](/offers/offer-types) to choose the right offer structure
3. Read [Offer Priority and Stacking](/offers/priority-and-stacking) before combining multiple offers
4. If you use fulfillment exclusions, complete [Checkout Extension Setup](/fulfillment/checkout-extension)
5. Start with [Creating Offers](/offers/creating-offers)
## Expected Outcome
When setup is complete:
* Atom Commerce opens from the **Apps** menu in Shopify Admin
* The Shopify App Embed is enabled
* You can create and test offers without installation-related blockers
## Common Setup Pitfalls
In most cases, the Shopify App Embed has not been enabled yet. Complete that step before troubleshooting offer logic.
Fulfillment exclusions also require the Atom checkout extension. See [Checkout Extension Setup](/fulfillment/checkout-extension).
Start with [Product Discounts](/guides/product-discounts) or [Gift With Purchase](/guides/gift-with-purchase), then review [Offer Types](/offers/offer-types) for tradeoffs.
## Overview
This docs site is focused on merchant workflows in the Atom Commerce dashboard. If you are planning a custom storefront or backend integration, contact Atom Commerce first so you can get the current implementation guidance for your environment.
## Before You Start
Gather the following before requesting integration access:
* Your Shopify store URL
* A short description of the storefront or backend you are integrating
* The environments you need to support, such as staging or production
* Any timeline or launch constraints
## How to Proceed
1. Email [support@atomcommerce.io](mailto:support@atomcommerce.io) with your implementation details
2. Ask for the current API and authentication requirements for your integration
3. Confirm how offers will be tested before launch
4. Return to the merchant-facing docs for offer behavior, priority, and troubleshooting concepts
## Recommended Reading
1. Review [Types of Offers](/offers/offer-types) to choose the right offer structure
2. Read [Offer Priority and Stacking](/offers/priority-and-stacking) before combining multiple offers
3. Start with [Creating Offers](/offers/creating-offers)
4. Validate behavior in a staging environment before launch and contact [support@atomcommerce.io](mailto:support@atomcommerce.io) if implementation details are unclear
# How to Create Bundle Discounts on Shopify with Atom Volume & Gift Discounts
Source: https://docs.atomcommerce.io/guides/bundle-discounts
Create bundle discounts in Atom Volume & Gift Discounts using percentage, fixed-price, or advanced rules. Includes setup steps, clear examples, and launch checklist.
## Bundle Discounts at a Glance
Bundle discounts reward customers for buying a specific set or quantity of items together.
Common goals:
* Increase average order value
* Move related items together
* Turn slow inventory faster
* Make offers easier to understand with clear savings
Start with the app install, then create your first bundle offer from **Offers → Create New Offer**.
## Choose the Right Bundle Type
| Bundle type | Use it when | Example |
| --------------------------- | ---------------------------------------------------------- | ----------------------------------------------- |
| Percentage or Amount Bundle | You want simple savings on qualifying items | Buy 3 items from Summer Collection, get 15% off |
| Fixed Price Bundle | You want one clear price for a set | Shirt + Pants + Belt for USD 89.99 |
| Advanced Bundle | You need exact collection mix, exclusions, or more control | 2 shirts + 1 belt must be present |
For deeper details on each type, see [Offer Types](/offers/offer-types).
## Qualifiers vs Targets
* **Qualifiers**: items customers must add to unlock the offer
* **Targets**: items that actually get discounted
In many bundle setups, qualifiers and targets are the same items.
Example:
* Rule: Buy 3 shirts, get 15% off
* The same 3 shirts both qualify and receive the discount
## Bundle vs Other Offer Types
* **Bundle**: discount the items being purchased together
* **Buy X Get Y**: buy one set, receive a different item discounted
* **Buy More Save More**: discount based on quantity threshold, not a fixed mix
* **Gift With Purchase**: adds a gift after spend or quantity conditions are met
Related guides:
* [Buy More Save More](/guides/buy-more-save-more)
* [Gift With Purchase](/guides/gift-with-purchase)
## Setup Create a Bundle Discount
In Atom Commerce, go to **Offers → Create New Offer**, then choose **Bundles**.
Choose **Percentage/Amount**, **Fixed Price**, or **Advanced Bundle** based on the rule you need.
Add an internal name, discount name, schedule, and access method (Automatic, Discount Code, or Coupon Batch).
For most bundle offers, **Automatic** gives the cleanest customer experience.
Select products or collections and set required quantities.
Use **Specify Quantities Individually** when the mix matters.
Example: require `2 shirts + 1 belt`.
This blocks carts like `1 shirt + 1 belt + 1 hat` that meet total quantity but not the intended mix.
Configure the discount mode:
* **Amount off** or **Percent off** for standard bundles
* **Fixed Price** for one bundle price
* Advanced options for sale-item handling and discount strategy
Add usage limits, priority/stacking, channel constraints, fulfillment constraints, or budget limits as needed.
Verify several cart combinations, then save and activate.
## Clear Advanced Examples
### Example 1 Exact mixed-collection requirement
Use **Advanced Bundle** with **Specify Quantities Individually**.
* Requirement: `2 from Shirts + 1 from Belts`
* Qualifies: `2 shirts + 1 belt`
* Does not qualify: `1 shirt + 1 belt + 1 hat`
### Example 2 Fixed-price bundle with extra qualifying items
For fixed-price advanced bundles, use **Discount extra qualifying items at bundle price** only if you want items above base bundle quantity to keep fixed-price treatment on the final applicable use.
### Example 3 Multi-use behavior
With **Allow multiple uses per order**, complete bundle sets are priced first. When another full set cannot be formed, Atom treats the current pass as final and applies configured extra-item behavior for that pass.
## Best Practices
* Start with one simple bundle before adding complexity
* Use product combinations customers naturally buy together
* Make savings explicit in customer-facing copy
* Avoid too many overlapping bundle offers; use [Offer Priority and Stacking](/offers/priority-and-stacking) when overlap is unavoidable
* Track results weekly and adjust quickly
## What to Monitor
Track these metrics weekly:
* Bundle conversion rate
* Average order value (AOV) lift
* Inventory movement for bundled SKUs
* Margin impact
Run one bundle for 7 days, review metrics, then iterate one variable at a time (price, mix, or threshold).
## Troubleshooting
### Bundle is not applying
* Confirm products are in the selected collections
* Confirm required quantities are met
* Check schedule, channel, and usage limits
* Review priority if multiple offers could apply
### Pricing looks wrong
* Verify correct mode (Percent/Amount vs Fixed Price)
* Check sale-item handling and exclusions
* Test with carts that match exact intended bundle mix
### Shoppers are confused
* Use plain names (for example, "Buy 2 Shirts + 1 Belt")
* Show before/after pricing clearly
* Prefer automatic application over code entry when possible
## Launch Checklist
## Related Resources
* [Offer Types](/offers/offer-types)
* [Creating Offers](/offers/creating-offers)
* [Offer Priority and Stacking](/offers/priority-and-stacking)
* [Budgets Overview](/budgets/overview)
# How to Create Buy More Save More Offers on Shopify with Atom Volume & Gift Discounts
Source: https://docs.atomcommerce.io/guides/buy-more-save-more
Build Buy More Save More offers in Atom Volume & Gift Discounts using volume, tier, or advanced rules with clear examples and setup steps.
## Buy More Save More at a Glance
Buy More Save More (BMSM) offers reward higher quantities and are typically used to lift average order value.
Use BMSM when you want to:
* Incentivize larger carts
* Move inventory with predictable discount logic
* Offer progressive rewards by quantity
* Run bulk-friendly promotions without manual codes
## Choose the Right BMSM Type
| Type | How it discounts | Best for |
| --------------------------- | ----------------------------------------------------- | ------------------------- |
| Volume Discount | Same discount once threshold is met | Simple bulk incentive |
| Tier Discount | Different discounts by item position or quantity tier | Progressive reward ladder |
| Advanced Buy More Save More | Adds exclusions and more control | Complex campaigns |
For detailed behavior by template, see [Offer Types](/offers/offer-types).
## Volume vs Tier in Plain Terms
### Volume Discount
One rule applies uniformly after threshold.
Example: Buy 3+, get 15% off all qualifying items.
### Tier Discount
Different discount amounts apply across positions/tiers.
Example: 2nd item 10% off, 3rd item 20% off, 4th+ item 30% off.
## When Fixed Price BMSM Is Better
Use fixed price when a concrete number is easier to sell than a percentage.
Good use cases:
* Premium products where "USD 199 each" reads stronger than "35% off"
* Psychological pricing targets (USD 49.99, USD 99.99)
* Wholesale-style quantity pricing
* Flash campaigns where clear price points convert faster
## Setup Create a BMSM Offer
Go to **Offers → Create New Offer** in Atom Commerce.
Select **Volume Discount**, **Tier Discount**, or **Advanced Buy More Save More**.
Configure name, schedule, and activation method.
Use **Automatic** unless you need campaign-specific code gating.
Pick products/collections and define threshold quantities.
Configure one of:
* Percent off
* Amount off
* Fixed price
For tier offers, define each tier explicitly.
Add exclusions, strategy settings, usage limits, channel constraints, and budget limits if needed.
Test carts that hit each threshold, then save and activate.
## Clear Examples
### Example 1 Volume rule
* Rule: Buy 3+, get 10% off all qualifying items
* Cart: 4 items at USD 25 each
* Discounted total: USD 90
### Example 2 Tier rule
* Rule: 2nd item 10% off, 3rd item 20% off, 4th+ item 30% off
* Cart: 4 items at USD 25 each
* Discount differs by position, not a single flat rate
### Example 3 Fixed-price tier
* Rule: 1st item USD 59.99, 2nd USD 49.99, 3rd+ USD 39.99
* Use when you want explicit per-unit pricing at higher quantities
## Best Practices
* Keep thresholds simple at launch (for example, 2+, 3+, 5+)
* Make threshold messaging visible before checkout
* Avoid overly dense tier ladders that are hard to understand
* Align thresholds with margin targets and inventory goals
* Use [Offer Priority and Stacking](/offers/priority-and-stacking) when multiple offers can match
## What to Monitor
Track weekly:
* Quantity distribution per order
* AOV lift from BMSM carts
* Offer redemption rate
* Margin impact at each threshold
Change one variable at a time when optimizing: threshold, discount value, or product scope.
## Troubleshooting
### Offer not triggering
* Verify threshold quantity and qualifier selection
* Confirm offer schedule and channel constraints
* Check for higher-priority offers taking precedence
### Discount appears incorrect
* Verify whether the offer is volume or tier
* Confirm the expected tier was reached
* Re-test with clean carts for each threshold
### Too much complexity for shoppers
* Reduce number of tiers
* Use clearer customer-facing names
* Prefer fixed price when percentage math is confusing
## Related Resources
* [Offer Types](/offers/offer-types)
* [Creating Offers](/offers/creating-offers)
* [Offer Priority and Stacking](/offers/priority-and-stacking)
* [Budgets Overview](/budgets/overview)
# Gift With Purchase Offers on Shopify with Atom Commerce
Source: https://docs.atomcommerce.io/guides/gift-with-purchase
Learn how to build gift with purchase offers in Atom Commerce, including qualification rules, exclusions, qualifier sharing, fulfillment limits, and examples.
Use this guide when you want to build a **gift with purchase offer on Shopify** and need to decide how qualification, exclusions, and gift behavior should work.
## At a Glance
* **Best for**: campaigns that increase AOV, reward spend thresholds, and run seasonal gift promotions
* **Outcome**: configure a Shopify GWP offer with qualification rules, exclusions, and gift behavior
* **Time to set up**: \~10 to 15 minutes for a first offer
Continue with [Offer Priority and Stacking](/offers/priority-and-stacking), [Discount Upsells](/upsells/overview), [Fulfillment Type Exclusions](/fulfillment/overview), and [Checkout Extension Setup](/fulfillment/checkout-extension) to validate overlap behavior and storefront experience.
***
## Why Gift With Purchase Offers Work
Gift With Purchase (GWP) offers can increase average order value by as much as 20%. They're proven to:
* **Boost Average Order Value (AOV)**: Shoppers spend more to unlock a free or discounted gift.
* **Encourage Customer Loyalty**: Exclusive gifts delight buyers and encourage repeat purchases.
* **Clear Excess Inventory**: Pair slow-moving items as complimentary gifts to manage stock.
* **Differentiate Your Store**: Stand out from competitors with valuable promotions.
A compelling gift often motivates shoppers to add just one more item to their cart, converting browsers into buyers.
***
## Understanding Gift With Purchase Offers
A successful GWP offer has two main components:
1. **Qualifier**: The requirement a customer must meet (e.g., specific product, minimum spend) to unlock the gift.
2. **Gift**: The free or discounted item customers receive once they meet the qualifier.
For example:
* **"Spend USD 100 on skincare products, get a travel-sized moisturizer free."**
* **Qualifier**: Spending USD 100 on skincare
* **Gift**: Free moisturizer
***
## Why Atom Commerce Is Ideal for GWP on Shopify
Atom Commerce simplifies creating powerful promotions without technical hassle:
* **Easy Visual Builder**: Set up offers visually—no coding needed.
* **Flexible Conditions**: Qualify by products, collections, or minimum spend.
* **Customizable Gifts**: Select gifts easily and determine discounts.
* **Advanced Scheduling**: Plan promotions around specific dates, events, or sales.
* **Exclusion Rules**: Easily exclude specific items from qualifying or being discounted.
* **Real-time Analytics**: Track gift redemption rates and sales performance clearly.
* **Built-in Storefront UI Widgets**: Shoppers can easily select their preferred gift from a list, or have a gift automatically added to their cart—no extra setup required.
Unlike Shopify’s built-in discount tools, Atom Commerce provides deeper control, advanced scheduling, and precise targeting.
***
## Step-by-Step: Creating a Gift With Purchase Offer
### Step 1: Install Atom Commerce on Shopify
* Install the **Atom Commerce** app from the Shopify App Store.
* Follow prompts to authorize the app with your Shopify store.
### Step 2: Open the Offers Dashboard
* Navigate to your Shopify admin sidebar and select **Apps → Atom Commerce**.
* Choose **Offers** from the sidebar.
### Step 3: Create a New Offer
* Click **Create New Offer** (top right).
* Enter an easy-to-identify name like "Spring GWP: Free Tote Bag."
* Optionally, add a description for internal reference.
### Step 4: Choose Gift With Purchase Type
* Select **Gift With Purchase (GWP)** as your offer type.
### Step 5: Set Qualification Conditions
Clearly define the conditions:
* **Minimum Spend** (e.g., Spend USD 50)
* **Specific Products or Collections** (e.g., Buy 2 products from the “Summer Collection”)
> **Tip:** Simple conditions like "Spend USD 50" tend to have higher conversion rates.
### Step 6: Select Your Gift
* Choose the product or variant to offer as a gift.
* Set the discount level (e.g., 100% off for free).
> **Best Practice:** Ensure your gift complements the qualifier products to maximize appeal.
### Step 7: Configure Exclusions (Optional)
Exclude products, variants, or collections from qualifying criteria if needed:
* Avoid clearance or premium items triggering the promotion unintentionally.
> **Example:** Run a "Spend USD 50, get a free gift" offer, excluding "Clearance" products so they don't qualify for the offer.
### Step 8: Review Qualifier Sharing
Gift with purchase offers now default to allowing qualifying items to also qualify for other offers unless you explicitly turn that behavior off.
Use the default when:
* you want a qualifying line item to remain available for compatible promotions
* you want a more permissive experience across multiple offers
Turn it off when:
* the same qualifying item should be reserved for this gift offer only
* you want stricter control over how qualifiers are consumed across promotions
* you are troubleshooting overlapping promotions and need more predictable isolation
You can review how this interacts with other offers in [Offer Priority and Stacking](/offers/priority-and-stacking).
### Step 9: Schedule Your Promotion
Plan your timing effectively:
* Set clear **Start/End Dates and Times**.
* Confirm your store's time zone in **Settings → General**.
* Schedule around peak shopping seasons (e.g., holidays, weekends).
> **Example:** Schedule GWP promotions during major events like Black Friday to maximize sales impact.
### Step 10: Review & Activate
* Double-check all offer details.
* Click **Save Offer**, then toggle **Activate** to launch.
*(Upon activation, your offer immediately goes live and becomes trackable in Atom Commerce.)*
***
## Best Practices for GWP Offers
* **Relevant Gifts**: Match gifts logically to qualifier products (e.g., skincare products with cosmetic samples).
* **Tiered Gifting**: Offer better gifts for higher spending (e.g., spend USD 50, get Gift A; spend USD 100, get Gift A + Gift B).
* **Inventory Limits**: Control quantities to avoid overselling.
* **Seasonal Rotations**: Regularly refresh gifts for different seasons or sales events.
* **Promotion Visibility**: Use banners, emails, and pop-ups featuring relevant keywords like "Shopify GWP" to enhance visibility and SEO.
## How Qualifier Sharing Changes GWP Behavior
Gift with purchase offers rely on a **qualifier** and a **gift**. When qualifier sharing is allowed, the product that unlocked the gift may still be considered by other compatible offers later in evaluation.
### Example
* Offer A: **Spend USD 100, get a free tote**
* Offer B: **10% off outerwear**
* Customer cart: USD 110 of qualifying outerwear
If qualifier sharing is allowed:
* the cart can qualify for the tote gift
* the same cart items can still participate in the other compatible offer, subject to priority and stacking rules
If qualifier sharing is disabled:
* the qualifying items used to unlock the gift are treated more exclusively
* other offers that depend on the same qualifier may no longer apply the way the merchant expects
### Common Pitfall
If a merchant expects a gift qualifier to be "consumed" and isolated, but leaves the default on, the customer may still qualify for other compatible promotions. Review the qualifier-sharing setting whenever multiple offers depend on the same products or spend conditions.
***
## Monitoring & Optimizing Your GWP Promotions
Consistently track performance in Atom Commerce:
* **Redemption Rate**: Percentage of shoppers redeeming your gift.
* **Average Order Value Lift**: Revenue boost directly linked to your GWP.
* **Total Redemptions**: How often your gifts are claimed.
Review these metrics weekly, especially in the initial month, to quickly identify areas for improvement:
* Test different gift items or spending thresholds.
* Adjust promotional schedules or messaging based on customer response.
***
## Wrapping Up
You now have a repeatable GWP setup flow, define qualifiers, select the gift, check sharing behavior, schedule, then activate. After launch, review redemption and AOV metrics weekly and adjust thresholds or gift selection based on results.
# Order Discounts with Exclusions
Source: https://docs.atomcommerce.io/guides/order-discounts
Create order-level discounts with exclusions in Atom Volume & Gift Discounts, with clear behavior rules and practical cart examples.
Order discounts apply at the cart level. Exclusions let you keep specific collections at full price while still discounting eligible items.
## Core Concepts
* **Qualifying items**: items that satisfy offer conditions
* **Eligible items**: qualifying items not in excluded collections
* **Excluded items**: items in excluded collections that do not receive discount value
## Exclusion Behavior Rules
| Cart composition | Behavior |
| ---------------------------- | --------------------------------------- |
| All items excluded | Offer does not apply |
| Mix of eligible and excluded | Offer applies to eligible subtotal only |
Order discount value is calculated from eligible subtotal, not total cart subtotal.
## Example Order Discount with Exclusions
Offer setup:
* Offer: Buy 1, get 10% off order
* Excluded collection: New Snowboards
### Scenario 1 Eligible items only
* Cart: Snowboard USD 500 (eligible), Boots USD 200 (eligible)
* Eligible subtotal: USD 700
* Discount: USD 70
* Final total: USD 630
### Scenario 2 Excluded items only
* Cart: Snowboard USD 500 (excluded), Binding USD 200 (excluded)
* Eligible subtotal: USD 0
* Discount: USD 0
* Final total: USD 700
### Scenario 3 Mixed cart
* Cart: Snowboard USD 500 (excluded), Boots USD 200 (eligible)
* Eligible subtotal: USD 200
* Discount: USD 20
* Final total: USD 680
### Scenario 4 Multiple quantities
* Cart: 2 snowboards USD 500 each (excluded), 3 boots USD 200 each (eligible)
* Eligible subtotal: USD 600
* Discount: USD 60
* Final total: USD 1,540
## Setup Create an Order Discount with Exclusions
In Atom Commerce, go to **Offers → Create New Offer** and choose **Order Discount**.
Define the qualifying rule and discount value (for example, 10% off order).
Exclude collections that should never receive this order discount.
Confirm how this order discount should interact with active item-level discounts.
Test excluded-only, eligible-only, and mixed carts before enabling.
## Priority and Evaluation Order
Order discounts are evaluated after item-level discounts.
Evaluation sequence:
1. Item discounts
2. Order discounts
3. Shipping discounts
When multiple order discounts can apply, priority determines which one runs first.
See [Offer Priority and Stacking](/offers/priority-and-stacking).
## Edge Cases
### Gift-card-only carts
Gift cards alone do not satisfy physical-product qualification rules.
### Items in multiple collections
If an item belongs to any excluded collection, treat it as excluded for this offer.
### Zero-price items
Zero-price items can qualify by rule, but contribute no discount value.
## Troubleshooting
### Discount not applying
* Confirm at least one eligible physical product is present
* Confirm cart is not fully excluded
* Confirm offer is active and in schedule
* Check for higher-priority conflicts
### Discount amount is lower than expected
* Verify eligible subtotal versus total subtotal
* Confirm exclusion lists are correct
* Re-test mixed carts with known line items
### Unexpected stacking behavior
* Review priority configuration and stacking rules
* Temporarily isolate offer during testing to validate baseline behavior
## Related Resources
* [Offer Priority and Stacking](/offers/priority-and-stacking)
* [Creating Offers](/offers/creating-offers)
* [Offer Types](/offers/offer-types)
# How to Create Product Discounts on Shopify with Atom Volume & Gift Discounts
Source: https://docs.atomcommerce.io/guides/product-discounts
Create product and collection discounts in Atom Volume & Gift Discounts with clear setup steps, maxQuantity guidance, and practical examples.
## Product Discounts at a Glance
Use product discounts when you want a direct price reduction on specific products or collections.
What they are good for:
* Promoting a featured SKU
* Running category-level campaigns
* Clearing targeted inventory
* Testing pricing sensitivity with controlled exposure
## Choose the Right Product Discount Type
| Type | Use it when | Example |
| ----------------------- | ------------------------------------------- | --------------------------------------- |
| Single Product | You want to promote one product quickly | 20% off one featured product |
| Collection | You want one rule across a category | 15% off all winter jackets |
| Advanced Single Product | You need exclusions or purchase constraints | USD 50 off one-time purchase only |
| Advanced Collection | You want scale plus tighter controls | 25% off collection with maxQuantity = 3 |
For type-specific behavior, see [Offer Types](/offers/offer-types).
## Single Product vs Collection
Use **Single Product** when control at SKU level matters.
Use **Collection** when you want easier maintenance across many products. New products added to that collection can inherit the offer automatically.
## maxQuantity and Margin Control
`maxQuantity` limits how many qualifying items can receive the discount per order.
* `-1` means unlimited discounted quantity
* Any positive number limits discounted units to that count
### Example maxQuantity behavior
Offer: `20% off Premium T-Shirt collection`, `maxQuantity = 3`
Customer cart: 5 shirts at USD 30 each
* Shirts 1-3 discounted to USD 24
* Shirts 4-5 remain USD 30
* Discount applied to 3 units only
Use this when you want to keep promotions attractive without giving away too much margin on large carts.
## Setup Create a Product Discount
In Atom Commerce, go to **Offers → Create New Offer**.
Select **Single Product**, **Collection**, **Advanced Single Product**, or **Advanced Collection**.
Add an internal name, customer-facing discount name, schedule, and activation method.
Use clear names you can identify quickly in reporting, such as "Winter Coats 25%".
Select one:
* **Automatic** for frictionless checkout
* **Discount Code** for campaign-specific access
* **Coupon Batch** for distributed one-time codes
Pick products or collections that should trigger and receive the discount.
Configure one mode:
* **Amount Off** (for example, USD 10 off each item)
* **Percent Off** (for example, 20% off)
* **Fixed Price** (for example, USD 49.99 per item)
Fixed Price applies only when the fixed price is lower than the item's current price.
Set maxQuantity, exclusions, and optional constraints such as channel, budget, or fulfillment settings.
Validate behavior across multiple cart sizes and save.
## Clear Examples
### Example 1 Single Product flash promotion
* Rule: 25% off Product A
* Use when: launch campaign or short promo window
### Example 2 Collection campaign with margin guard
* Rule: 15% off Winter Collection
* maxQuantity: 3
* Use when: you want broad reach with controlled exposure
### Example 3 Fixed-price value framing
* Rule: Any qualifying hoodie at USD 49.99
* Use when: fixed pricing is easier for customers to evaluate than percent discounts
## Best Practices
* Start with one clear objective per offer
* Prefer collection-based rules when operating at scale
* Use `maxQuantity` for margin-sensitive categories
* Keep messaging customer-friendly and specific
* Review [Offer Priority and Stacking](/offers/priority-and-stacking) when multiple offers can match the same cart
## Troubleshooting
### Discount not applying
* Confirm offer is active and in schedule
* Confirm product/collection selection is correct
* Confirm channel and fulfillment constraints allow the cart
* Check priority conflicts with other offers
### Discount amount looks off
* Verify the configured discount mode
* Verify maxQuantity behavior for larger carts
* Test mixed-price carts if using fixed-price offers
### Unexpected overlap with other offers
* Review stacking settings and priorities
* Separate high-priority campaigns into distinct time windows when possible
## Related Resources
* [Creating Offers](/offers/creating-offers)
* [Offer Types](/offers/offer-types)
* [Offer Priority and Stacking](/offers/priority-and-stacking)
* [Budgets Overview](/budgets/overview)
# Offer Best Practices
Source: https://docs.atomcommerce.io/offers/best-practices
Strategies and recommendations for creating effective promotional offers that drive sales and enhance customer experience while protecting margins.
## Overview
This guide provides strategies and recommendations for creating effective promotional offers that drive sales and enhance customer experience.
Start with clear goals, then build offers that align with your business objectives. Test and iterate based on performance data.
## Strategic Planning
### Setting Clear Goals
Before creating any offer, establish clear objectives:
* Increase revenue
* Boost average order value
* Clear excess inventory
* Acquire new customers
* Reward loyal customers
* Encourage repeat purchases
### Timing Your Promotions
Strategic timing can significantly impact offer effectiveness:
* **Seasonal Offers**: Align with holidays and seasonal buying patterns
* **Competitive Timing**: Consider your competitors' promotional calendars
* **Customer Behavior**: Schedule based on when your customers typically shop
* **Product Lifecycle**: Time promotions with new product launches or inventory cycles
## Offer Structure Best Practices
### Buy X Get Y (BXGY) Offers
* **Value Perception**: Offering a free item often has better psychological impact than an equivalent discount
* **Complementary Products**: Pair products frequently bought together
* **New Product Introduction**: Use popular items to introduce customers to new products
### Volume Discounts
* **Tiered Thresholds**: Set realistic tier thresholds based on customer buying patterns
* **Increasing Value**: Ensure higher tiers offer noticeably better value
* **Clear Communication**: Make the tiered structure easy to understand
### Bundles
* **Logical Grouping**: Create bundles of products that naturally go together
* **Value Clarity**: Clearly show the savings compared to buying items separately
* **Flexibility**: Consider allowing some customization within bundles
### Gift With Purchase (GWP)
* **Gift Value**: Ensure the gift has perceived value to the customer
* **Relevance**: Make gifts relevant to the purchasing context
* **Exclusivity**: Use limited-edition or exclusive items as gifts for premium appeal
## Customer Targeting
* **Segmentation**: Target offers to specific customer segments for higher relevance
* **Personalization**: Use customer purchase history to personalize offers
* **First-Time vs. Repeat**: Create different strategies for new and returning customers
## Communication Strategies
* **Clear Terms**: Make offer conditions easy to understand
* **Highlight Benefits**: Focus on the value to the customer, not just the discount
* **Multiple Touchpoints**: Promote offers across channels (email, site banners, product pages)
* **Urgency**: Create a sense of urgency with limited-time offers
## Testing and Optimization
* **A/B Testing**: Test different offer structures with similar customer segments
* **Incremental Analysis**: Measure the incremental lift from promotions, not just raw sales
* **Iterative Improvement**: Use performance data to refine future offers
## Common Pitfalls to Avoid
* **Discount Dependence**: Avoid training customers to only buy when there's a sale
* **Margin Erosion**: Calculate the profitability impact of each promotion
* **Complexity**: Keep offer terms simple and straightforward
* **Brand Perception**: Ensure promotions align with your brand positioning
## Measuring Success
Key metrics to track for each promotion:
* Revenue impact
* Profit margin impact
* Average order value
* Customer acquisition cost
* Customer lifetime value
* Repeat purchase rate
## Next Steps
* Explore [Analytics & Reporting](../analytics/key-metrics) to measure your offer performance
* Learn about [Managing Active Offers](/offers/managing) to keep your promotional strategy organized after launch
# Creating Offers
Source: https://docs.atomcommerce.io/offers/creating-offers
Create an Atom Commerce offer from start to finish, including offer type, schedule, discount method, qualifiers, targets, exclusions, and launch checks.
Use this page when you are building a new offer in Atom Commerce and want the steps in the same order you will complete them in the dashboard.
## Before You Begin
* Confirm your store setup is complete in [Set Up Atom Commerce](/getting-started/setup)
* Decide whether the offer should apply automatically or require a code
* Know which products, collections, or customers should qualify
* If the offer includes gifts or discounted companion items, know which lines should be targets
## Step 1: Start a New Offer
Go to **Offers** in the Atom Commerce dashboard and click **Create New Offer**.
## Step 2: Choose the Offer Type
Pick the promotion structure that matches your goal:
Give a free or discounted product when customers buy something else.
Offer bigger discounts when customers buy more items.
Sell groups of products together at a special price.
Add a free or discounted gift to qualifying orders.
Take money off the whole order when certain conditions are met.
Reduce or remove shipping costs for your customers.
Not sure which to pick? Compare formats in [Offer Types](/offers/offer-types)
before you continue.
## Step 3: Set the Basics
Set the information customers and internal users will rely on:
* **Offer name**: Use a clear internal name so your team can find the offer later
* **Discount title**: For most offers, this is the title customers will see in cart or checkout
* **Priority**: Add this now if the offer may overlap with other promotions
* **Status**: Save as draft until your configuration and testing are complete
Buy More Save More Volume discount types allow you to choose a separate
discount title for each pricing tier. "Great Deal", "Super Discount", etc...
## Step 4: Set the Schedule
Choose when the offer starts and whether it should end automatically.
Scheduling lets you plan ahead for sales, holidays, or special events. Your
offer will turn on and off automatically.
The start and end dates of your offer will follow your browser’s current
time zone. For example, if you’re in New York and schedule your offer to
begin at midnight on June 1, it will start at midnight Eastern Time.
## Step 5: Choose How Customers Receive the Discount
Choose the delivery method that matches the campaign:
* **Automatic**: Best for most sitewide or always-on promotions
* **Discount code**: Best when customers should enter a code manually
* **Coupon batch**: Best for large outbound campaigns or unique-code distribution
You can also add usage limits when the offer should be capped.
For large campaigns, you can generate bulk coupon codes. This is especially
useful for distributing unique codes to many customers and tracking individual
redemptions.
## Step 6: Configure Qualifiers
Qualifiers are the products, collections, customers, or spend conditions that
make the offer eligible.
Choose which items or shoppers should count toward the offer:
* All products
* Specific variants
* Specific products
* Specific collections
* Customer or cart conditions, depending on the offer type
## Qualifiers vs Targets
Offers in Atom Commerce revolve around two key roles: **qualifiers** and
**targets**.
Qualifiers are the items customers must add to unlock the promotion.
Example: "Buy any 3 items from Boots collection, get 10% off."
The 3 Boots items are the qualifiers.
Targets are the items that actually get the discount.
Sometimes qualifiers and targets are the same. Sometimes they are different.
Example: "Buy 2 shoes, get 50% off 1 pair of socks."
Shoes are qualifiers, socks are targets.
The short version: qualifiers unlock the deal, targets get the discount.
## Step 7: Add Qualifier Exclusions When Needed
Use qualifier exclusions when some items should still be present in the cart but
should not help unlock the promotion:
* **Variants**: Exclude specific SKUs so they won’t trigger the discount condition.
* **Products**: Prevent entire products from qualifying.
* **Collections**: Omit whole collections (e.g., "Clearance") from counting toward the threshold.
Use exclusions to fine-tune your promotions. For example, you might run a
Spend \$50, Get 10% Off sale store-wide but exclude every product in the Apple
collection so those items don’t count toward the \$50 threshold.
### Order Discount Exclusion Behavior
For **Order Discounts**, exclusions work differently from item-level discounts:
* **If all items in the cart are excluded**: The discount will **not trigger** at all.
* **If some items are excluded and some are not**: The discount **will trigger** and apply only to eligible items (those not in excluded collections).
**Cart**: Only items from "Apple" collection (excluded)
**Result**: Discount does not apply
**Cart**: Items from "Apple" collection + other items
**Result**: Discount applies to non-Apple items only
For order discounts, the discount is calculated based on the total price of all **eligible items** (items not in excluded collections). Excluded items are not included in the discount calculation.
For detailed examples and troubleshooting, see our [Order Discounts Guide](/guides/order-discounts).
## Step 8: Define the Discount
Set the commercial details of the offer:
* **Discount type**: percent off, amount off, or fixed price where supported
* **Discount amount**
* **Target lines**: only needed when the discounted item is different from the unlock item
* **Quantity or maxQuantity limits** where supported
* **Sale-item behavior** and other advanced rules for the selected offer type
### BXGY: Configure Prorated Discount (Optional)
For eligible **Buy X Get Y** offers, you can enable **Prorated discount**.
1. In your BXGY offer, go to the discount action settings.
2. Find **Prorated discount**.
3. Choose the behavior you want:
* **Checked (enabled):** Discount value is shared across both Buy X and Get Y items based on relative item price.
* **Unchecked (disabled):** Full discount applies only to the Get Y side.
4. Save and test with a sample cart.
Example: Buy X item = USD 30, Get Y item = USD 70, total discount = USD 10.
- Prorated enabled: Buy X gets USD 3 off, Get Y gets USD 7 off.
- Prorated disabled: Buy X gets USD 0 off, Get Y gets full USD 10 off.
For "Get Y free" style offers, prorating can make the Get Y item partially discounted rather than fully free, because discount value is shared across qualifying and target items.
## Step 9: Define Targets for Targeted Offer Types
Some offer types, including **Buy X Get Y** and **Gift With Purchase**, allow
you to discount items that are different from the qualifiers. In those cases:
* choose the products or collections that should receive the discount
* choose how many target items can be discounted
* decide whether the discounted items can be the same lines that unlocked the offer
## Step 10: Add Target Exclusions If Needed
If specific items should never receive the discount, exclude them from the
target set even if they are otherwise eligible.
Target exclusions are for lines that should never receive the discount, even
if they would otherwise match your target rules.
For example, you might run a “Buy any two pairs of shoes, get 50% off socks”
promotion. Here, socks should receive the discount as targets, but they
should not count toward the two qualifying pairs of shoes.
## Step 11: Review, Save, and Test
Double-check your settings. When you're happy, click **Save Offer**. Your offer will appear in your Offers dashboard, where you can edit, duplicate, or activate it anytime.
Before launching, test any offer that overlaps with other promotions. Use
[Offer Priority and Stacking](/offers/priority-and-stacking) to validate
qualifier sharing, evaluation order, and threshold behavior.
## Expected Outcome
After saving, the offer should have:
* the correct offer type
* a clear method and schedule
* qualifiers and targets mapped to the intended products
* exclusions applied where needed
* a testing plan before activation
After creating offers, you can:
- View all active, scheduled, and expired offers
- Edit existing offers by clicking on them
- Duplicate offers to create similar promotions quickly
- Activate or deactivate offers as needed
- Monitor performance metrics for each offer
All of this is done from the Offers dashboard.
-
Learn about different [Types of Offers](/offers/offer-types) for more
promotional ideas
-
Understand [Scheduling Offers](/offers/scheduling) for future promotions
-
Explore [Best Practices](/offers/best-practices) for effective promotion
strategies
# Managing Active Offers
Source: https://docs.atomcommerce.io/offers/managing
Learn how to effectively manage active promotional offers in Atom Commerce, including monitoring performance and making adjustments.
This guide covers how to effectively manage your active promotional offers in Atom Commerce.
## Active Offers Dashboard
The Active Offers dashboard provides an overview of all currently running promotions:
1. Navigate to "Offers" in the main menu
2. Select the "Active" tab to view all currently running offers
3. The dashboard displays:
* Offer name and type
* Start and end dates
* Performance metrics
* Status indicators
## Monitoring Offer Performance
For each active offer, you can monitor real-time performance:
1. Click on an offer to view its details
2. The Overview tab shows:
* Usage count
* Revenue generated
* Average order value
* Conversion rate
3. The Analytics tab provides more detailed metrics and trends
## Making Quick Adjustments
You can make several adjustments to active offers without needing to create new ones:
### Extending or Shortening Duration
1. Select the offer you want to adjust
2. Click "Edit" and navigate to the "Schedule" section
3. Modify the end date/time
4. Save your changes
### Pausing an Offer
If you need to temporarily stop an offer:
1. Find the offer in the Active Offers list
2. Click the "Pause" button or toggle
3. The offer will remain in your system but won't be applied to any orders
4. You can resume it at any time by clicking "Activate"
### Ending an Offer Early
To permanently end an offer before its scheduled end date:
1. Select the offer from the Active Offers list
2. Click "End Now" or "Deactivate"
3. Confirm your action
## Duplicating Successful Offers
When an offer performs well, you might want to duplicate it:
1. Select the offer you want to duplicate
2. Click the "Duplicate" button
3. Make any necessary adjustments to the copy
4. Save as a new offer or schedule it for future activation
## Bulk Actions
For managing multiple offers simultaneously:
1. Use the checkboxes to select multiple offers
2. Use the "Bulk Actions" dropdown to:
* Pause selected offers
* Activate selected offers
* Delete selected offers
* Export offer data
## Best Practices
* Regularly review active offers to ensure they're performing as expected
* Consider ending underperforming offers early to focus on better strategies
* Avoid having too many similar offers active simultaneously
* Use tags to organize and categorize your offers
## Next Steps
* Learn about [Best Practices](/offers/best-practices) for effective promotions
* Explore [Analytics & Reporting](/analytics/key-metrics) to measure performance
# Atom Commerce Offer Types
Source: https://docs.atomcommerce.io/offers/offer-types
Quickly choose the right offer format, then open the dedicated page for setup details, examples, and edge-case guidance.
Use this page as the offer-type selector. Each offer type now has its own dedicated page so setup guidance stays clear and focused.
## Choose Your Offer Type
| Offer type | Best when | Dedicated page |
| -------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------- |
| Product Discount | You want direct discounts on products or collections | [Product Discount](/offers/types/product-discount) |
| Buy X Get Y | You want to reward one purchase with another item | [Buy X Get Y](/offers/types/buy-x-get-y) |
| Advanced Buy X Get Y | You need exact qualification, exclusions, and advanced controls | [Advanced Buy X Get Y](/offers/types/advanced-buy-x-get-y) |
| Buy More Save More | You want bigger discounts as quantity increases | [Buy More Save More](/offers/types/buy-more-save-more) |
| Bundles | You want curated sets sold at a better combined price | [Bundles](/offers/types/bundles) |
| Gift With Purchase | You want a free or discounted gift tied to spend or product conditions | [Gift With Purchase](/offers/types/gift-with-purchase) |
| Order Discount | You want to discount cart totals based on spend or purchase rules | [Order Discount](/offers/types/order-discount) |
| Shipping Discount | You want to reduce shipping friction at checkout | [Shipping Discount](/offers/types/shipping-discount) |
## Quick Routing
Start with [Product Discount](/offers/types/product-discount).
Choose [Buy More Save More](/offers/types/buy-more-save-more), [Bundles](/offers/types/bundles), or [Buy X Get Y](/offers/types/buy-x-get-y).
Use [Gift With Purchase](/offers/types/gift-with-purchase), [Order Discount](/offers/types/order-discount), or [Shipping Discount](/offers/types/shipping-discount).
Use [Advanced Buy X Get Y](/offers/types/advanced-buy-x-get-y) and validate behavior in [Offer Priority and Stacking](/offers/priority-and-stacking).
## Related
* [Creating Offers](/offers/creating-offers)
* [Offer Priority and Stacking](/offers/priority-and-stacking)
* [Scheduling Offers](/offers/scheduling)
* [Testing Offers](/offers/testing)
* [Offer Best Practices](/offers/best-practices)
# Offer Priority and Stacking
Source: https://docs.atomcommerce.io/offers/priority-and-stacking
Learn how Atom Commerce evaluates discounts by class and priority, how qualifier sharing works, and how overlapping offers affect gift, BXGY, and free shipping behavior.
-
Evaluation order: Item → Order → Shipping. Within each class,
higher priority runs first.
-
Ties (same class + same priority): Older offer evaluates first.
Prefer unique priorities for critical offers.
-
Qualifier sharing: Offer behavior depends on whether qualifying lines are allowed to participate in other offers after they unlock a discount.
-
Spend thresholds: Higher priorities see the original order total;
lower priorities see the current total.
## How Offer Priority Works
Offers are evaluated by class in this order:
Item → Order → Shipping. Within each class,
higher priority numbers are applied first.
One discount per product line. Within item discounts, higher priority applies first.
**Item discounts include**: Product Discounts, BXGY, BMSM, and Bundles
Applied after item discounts to the current order total. Within order
discounts, higher priority applies first.
Within shipping discounts, higher priority applies first.
### Key Terms
* **Order Total**: The original cart value before any discounts are applied (also called "cart total")
* **Current order total**: The cart value at the time an offer is evaluated (after earlier discounts in the sequence)
* **Final total**: The cart value after all applicable discounts have been applied
* **Minimum Order Value**: The minimum cart value required for an offer to be eligible (evaluated against order total or subtotal depending on priority)
* **Discount Class**: A category of discount that determines evaluation order (item, order, or shipping)
* **Item Discounts**: Discounts that apply to specific product lines (Product Discounts, BXGY, BMSM, Bundles). Only one item discount can apply per product line.
* **maxQuantity**: Feature in Product Discounts that limits how many items can receive a discount per order, protecting margins on bulk purchases
## Conflict Resolution
When multiple offers target the same line or total, Atom resolves conflicts using this sequence:
1. **Eligibility** – Only eligible offers are considered
2. **Class, then Priority** – Apply by discount class (item → order → shipping); within each class, apply higher-priority offers first
3. **Tie handling** – If two offers in the same class share the same priority, the older offer is evaluated first.
4. **Budget/Cap Checks** – If an offer hits a per-order cap or budget limit, the engine may proceed to the next eligible offer in that class
### Tie-Breaking Logic
When multiple offers have the same class and priority:
* **Current behavior**: If two offers have the same priority and the same class, the older offer is evaluated first.
* **What this means for you**: Do not rely on implicit tie-breaking for critical scenarios.
* **If you need a guaranteed tie-breaker**: Assign unique priorities to critical offers. If your team later configures an explicit tie-break rule (for example, newer first), that rule will control the order for equal-priority offers.
For critical offers, avoid relying on implicit tie-breaking when priorities
are the same. Prefer assigning unique priorities within each discount class to
guarantee evaluation order.
#### Examples
1. Two item discounts, both Priority 5:
* Result: The older item discount is evaluated first.
2. One item discount (Priority 5) and one order discount (Priority 5):
* Result: The item discount is evaluated first because item discounts run before order discounts. Having the same priority does not change the class order.
## Setting Offer Priority
To set the priority for an offer in the Atom admin interface:
1. Navigate to the offer you want to configure
2. On the right side of the offer page, locate the **Priority** card
3. Check the **"Set an offer priority"** checkbox to enable priority settings
4. Enter your desired priority value in the input field (higher numbers = higher priority)
5. Use the up/down arrow buttons to increment or decrement the value
Offers start with a default priority of 0 if none is specified. Discounts with
higher priority (higher numbers) will be applied first when multiple offers
are eligible for the same cart. Priority values range from 0-100.
## Offer Priority and Minimum Order Value
When an offer has a minimum order value (spend threshold), it applies only if the cart meets or exceeds that threshold. Priority determines which cart value the rule uses at evaluation time.
### How priority affects spend-based offers
Offers are evaluated in priority order (higher number = evaluated earlier). For spend thresholds, each offer reads the cart value at the moment it runs:
* **Higher-priority offers** evaluate against the original **order total** (pre-discount)
* **Lower-priority offers** evaluate against the **current order total** after higher-priority discounts have been applied
### Example: Priority Impact on Minimum Order Value
Let's say you have two offers:
1. **Spend USD 120, Get a Free Gift** (Priority 3 - higher priority)
2. **Buy More Save More: 30 percent off all items** (Priority 1 - lower priority)
**Customer's cart:** USD 150 worth of items
#### Scenario A: Current Priority Setup (Gift offer has higher priority)
1. **Gift offer evaluates first** -> Sees USD 150 **order total** -> **Qualifies** (at least USD 120) -> Free gift applied
2. **BMSM offer evaluates second** -> Sees USD 150 **order total** -> **Qualifies** -> 30 percent discount applied
**Result:** Customer gets both the free gift AND the 30 percent discount
#### Scenario B: Reversed Priorities (BMSM has higher priority)
1. **BMSM offer evaluates first** -> Sees USD 150 **order total** -> **Qualifies** -> 30 percent discount applied -> New **current order total**: USD 105
2. **Gift offer evaluates second** -> Sees USD 105 **current order total** -> **Does NOT qualify** (less than USD 120) -> No free gift
**Result:** Customer gets only the 30 percent discount, no free gift
### Strategic Priority Planning
**Use higher priorities (larger numbers) for offers you want to:**
* Apply to the original **order total**
* Ensure customers qualify for before other discounts reduce the total
* Maximize customer value (like free gifts or shipping)
**Use lower priorities (lower numbers) for offers that:**
* Can work with **order subtotals** (after higher-priority discounts)
* Are percentage-based discounts
* You want to apply after other promotions
### Quick Reference
| Priority Level | Spend threshold evaluated against | Best For |
| ---------------------------- | ------------------------------------------------- | ----------------------------------------------- |
| **Higher Priority (90-100)** | **Order total (original, pre-discount)** | Minimum spend offers, free gifts, free shipping |
| **Lower Priority (0-89)** | **Current order total (after earlier discounts)** | Percentage discounts, volume discounts |
## Qualifier Consumption Across Classes
Some offers use products in the cart as “qualifiers” to trigger a discount. When an item is used as a qualifier by an earlier-evaluated class, it may not be available to qualify another offer that runs later. Because Atom evaluates by class in this order — Item → Order → Shipping — item-level offers can consume qualifiers before order-level offers are evaluated.
## Qualifier Sharing and Discounted Lines
Some offers allow the same qualifying line to remain available for other offer checks, while others behave more exclusively. This matters most when a line both:
* helps qualify an offer
* receives a discount itself
* or participates in a second offer later in evaluation
### Quick Matrix
| Setting / outcome | What happens |
| ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Qualifier sharing allowed** | The qualifying line can still participate in later compatible checks, subject to class, priority, and combination rules |
| **Qualifier sharing not allowed** | The line behaves more exclusively and may no longer be available to trigger another offer |
| **Line both qualifies and discounts** | Final behavior depends on the offer type plus sharing setting; review this whenever the same SKU is central to multiple promotions |
### BXGY or GWP Example
* Offer A: **Buy 2 candles, get a mini candle free**
* Offer B: **10% off candles**
If qualifier sharing is allowed:
* the 2 candles can unlock the gift
* the same candle lines may still participate in the compatible discount flow
If qualifier sharing is disabled:
* the qualifying candles are treated more exclusively
* the merchant may see the gift offer apply while the secondary discount no longer qualifies as expected
### Shipping / Free Shipping Example
* Offer A: **Spend USD 100 on eligible merchandise to get free shipping**
* Offer B: **Product discount on jackets**
If higher-priority item discounts reduce the current qualifying subtotal or if the same lines are treated exclusively, a later shipping offer may see a lower effective qualifying amount than the merchant expects.
That is why free shipping behavior should always be checked together with:
* qualifier sharing rules
* offer class order
* minimum cart value logic
* fulfillment exclusions
See [Discount Upsells](/upsells/overview) and [Fulfillment Type Exclusions](/fulfillment/overview) for the customer-facing effects.
### Scenario: BXGY item discount and an order discount share the same qualifier
* Setup:
* Item discount (BXGY): “Buy 1 Tan Shirt, get Jeans 50% off.”
* Order discount: “Buy a Tan Shirt, get 10% off your order.”
* Both are automatic and have the same priority.
* What happens:
* Item discounts run before order discounts. The Tan Shirt is used as a qualifier for the BXGY offer.
* When the order discount evaluates, the Tan Shirt has already been used as a qualifier, so the order discount does not apply.
* Guidance:
* If you want both to apply, avoid competing for the same qualifier. Options include using different qualifying conditions, adjusting priorities, or adding exclusions so each offer uses different qualifiers.
While the example above uses a Buy X Get Y offer, the same qualifier
consumption behavior applies to any item-level discount type.
## Discount Combinations
For code-based offers, you can configure which types of discounts can be combined together. This allows customers to benefit from the best possible total discount based on their cart.
### Setting Discount Combinations
To configure discount combinations for a code offer:
1. Navigate to the offer you want to configure
2. On the right side of the offer page, locate the **Combinations** card
3. Check the boxes for the discount classes you want this offer to combine with:
* **Product discounts** - Apply to specific items or collections
* **Order discounts** - Apply to cart subtotals
* **Shipping discounts** - Modify shipping costs
### Types of Valid Combinations
There are five types of discount combinations:
1. **Order discounts with shipping discounts**
2. **Product discounts with shipping discounts**
3. **Product discounts with other product discounts**
4. **Product discounts with order discounts**
5. **Order discounts with other order discounts**
### How Combinations Work
* **Multiple discounts can apply** to the same order when combinations are enabled
* **Order discounts are applied** on the current order total after product discounts have been applied
* **Automatic discounts** always allow combinations
* **Code discounts** require explicit combination configuration
> **Related**: See [Priority and Order Value Calculation](/offers/priority-and-stacking#offer-priority-and-minimum-order-value) to understand how priority affects which order total each discount sees during evaluation.
### Customer Experience
When customers enter multiple discount codes during checkout:
* **Compatible codes**: The best discount or combination of discounts automatically applies
* **Incompatible codes**: The message "Discount couldn't be used with your existing discounts" displays
Discount combinations can only be selected for code discounts. Automatic
discounts allow discount combinations by default.
## Stacking Rules
**Advanced Stacking Rules Coming Soon**
Atom supports sophisticated stacking controls to protect margins and avoid double-discounting. While the basic stacking behavior is already working, advanced stacking rules will be available in the admin UI soon.
### Current Stacking Behavior
* A product line receives **at most one item-level discount** (see [Priority Resolution](#conflict-resolution) for how conflicts are resolved)
* **Order-level and shipping discounts may stack** with one item-level discount when allowed by configuration
* **Priority determines evaluation order** within each discount class (see [How Offer Priority Works](#how-offer-priority-works))
### Coming Soon: Advanced Stacking Rules
When this feature launches, you'll be able to:
* **Create stacking rule groups** to control which discounts can be combined
* **Set exclusive discounts** that prevent other discounts from applying
* **Configure combination rules** between different discount types
* **Define stacking hierarchies** to ensure the most valuable discounts are prioritized
This will give you fine-grained control over how discounts interact, helping you maximize customer value while protecting your margins.
### Examples
1. Buy X Get Y (item-level) + Free Shipping (shipping):
* Result: Both may apply if the cart qualifies for each rule
* **Cross-reference**: See [Discount Combinations](/offers/priority-and-stacking#discount-combinations) for configuration details
2. Two item-level discounts target the same SKU:
* Result: The higher priority offer applies; the other is skipped on that line
* **Cross-reference**: See [Conflict Resolution](/offers/priority-and-stacking#conflict-resolution) for priority resolution logic
3. Order-level percent-off plus item-level percent-off:
* Result: Item-level applies to discounted lines; order-level applies to the remaining **current order total**
* **Cross-reference**: See [Priority and Order Value Calculation](/offers/priority-and-stacking#offer-priority-and-minimum-order-value) for evaluation order
## Practical Guidance
### Recommended Priority Strategy
TL;DR (set priorities fast and safely):
* Item discounts: Use higher numbers for mission-critical offers; only one item discount applies per line. Avoid sharing qualifiers with order discounts.
* Order discounts: Thresholds evaluate after item discounts. If relying on a product as a qualifier, don’t compete with item discounts for the same product.
* Shipping: Runs last; use priority to pick the single shipping incentive if multiples qualify.
* Ties: Same class + same priority → older offer evaluates first. Prefer unique priorities for critical offers; don’t rely on implicit tie-breaks.
## FAQs
**Can two BXGY offers apply to the same cart line?**
No. A line receives at most one item-level discount. If multiple are eligible, the highest priority number (highest priority) applies.
**How do budgets affect priority?**
Budgets and per-order caps are enforced after selection. If a cap is hit, the engine can fall back to the next eligible offer based on priority.
## See Also
* [Types of Offers](/offers/offer-types)
* [Creating Offers](/offers/creating-offers)
* [Scheduling](/offers/scheduling)
# Scheduling Offers
Source: https://docs.atomcommerce.io/offers/scheduling
Learn how to schedule promotional offers to run at specific times and dates, including best practices for offer scheduling.
This guide explains how to schedule your promotional offers to run at specific times and dates.
## Understanding Offer Scheduling
Scheduling allows you to create offers in advance and have them automatically activate and deactivate at specific times. This is useful for:
* Seasonal promotions
* Holiday sales
* Limited-time offers
* Flash sales
* Special event promotions
## Setting Up Offer Schedules
### Basic Date Scheduling
1. During offer creation or editing, locate the "Active Dates" section
2. Configure the following settings:
* **Start Date**: When the offer will automatically activate (required)
* **End Date**: When the offer will automatically deactivate (optional - leave empty for an offer with no end date)
* **Time Zone**: Select the appropriate time zone for your business
### Recurring Scheduling (Daily and Weekly Windows)
Recurring scheduling lets you run offers on repeating time windows instead of a single start/end date range.
#### Recurring schedule features
* **Enable/disable recurring mode** with a dedicated toggle in the scheduling section
* **Time zone selection** per recurring schedule
* **Frequency options**: **Weekly** or **Daily**
* **Multiple repeat windows** using **Add repeat**
* **Weekly windows** with:
* **Start day** + **Start time**
* **End day** + **End time**
* **Daily windows** with:
* **Start time**
* **End time**
* **At least one window required** while recurring scheduling is enabled
* **Overnight time ranges supported** (for example, start late evening and end the next day)
* **Localized time display** in window summaries based on your locale and selected time zone
#### Set up a recurring schedule
1. Open your offer and go to **Scheduling**.
2. Turn on **Recurring Schedule**.
3. Select your **Time Zone**.
4. Choose **Frequency**:
* **Weekly** for day-based windows (e.g., Friday 9:00 AM to Saturday 2:00 AM)
* **Daily** for repeating every-day windows (e.g., 9:00 AM to 5:00 PM)
5. Configure the first window.
6. Use **Add repeat** to add more windows as needed.
7. Save your offer.
## Viewing Scheduled Offers
After creating scheduled offers, you can manage and monitor them in several ways:
### Offers Dashboard
1. Navigate to the Offers section in your admin panel
2. View the status column to see which offers are:
* **Active**: Currently running
* **Scheduled**: Set to start in the future
* **Recurring**: Uses a recurring schedule configuration (daily/weekly windows)
* **Expired**: End date has passed
* **Inactive**: Manually deactivated
**Recurring** indicates the offer is configured with recurring windows rather than
only a single date range. Recurring offers activate during their configured windows
in the selected time zone.
### Filtering Offers by Status
You can filter the offers list to focus on specific types:
1. Use the Status filter dropdown
2. Select "Scheduled" to see all future offers
3. Select "Active" to see currently running offers
4. Select "Recurring" to see offers configured with recurring windows
## Editing Scheduled Offers
You can modify the schedule of an existing offer at any time:
1. Find the offer in your offers list
2. Click on it to open the editing view
3. Navigate to the scheduling section
### Edit a date-based schedule
1. Open the **Active Dates** area.
2. Update your **start date**, **end date** (optional), or date-based timing.
3. Save your changes.
### Edit a recurring schedule
1. Turn on **Recurring Schedule** (if it is not already enabled).
2. Update the **Time Zone**.
3. Change **Frequency** (**Weekly** or **Daily**) if needed.
4. Update window values:
* Weekly: **Start day/time** and **End day/time**
* Daily: **Start time** and **End time**
5. Use **Add repeat** to add windows, or remove windows you no longer need.
6. Save your changes.
Switching frequency resets window structure to match that frequency. Re-check your
repeat windows before saving.
## Best Practices for Offer Scheduling
* **Plan ahead**: Schedule offers at least 24 hours in advance to ensure proper setup
* **Avoid overlaps**: Be careful with overlapping offers that target similar products
* **Consider time zones**: If you serve customers globally, choose the time zone that makes the most sense for your primary audience
* **Use date restrictions strategically**: Combine date and time restrictions for highly targeted promotions such as "Weekend Morning Specials"
* **Review regularly**: Periodically check your scheduled offers to ensure they align with your current marketing strategy
## Next Steps
* Learn about [Managing Active Offers](/offers/managing)
* Explore [Best Practices](/offers/best-practices) for effective promotions
# Testing Offers
Source: https://docs.atomcommerce.io/offers/testing
Learn how to test your discounts in the Atom Admin simulator, with AI assistance, or directly on your storefront.
Testing is a critical part of creating promotions. Atom Commerce provides three ways to verify that your offers work exactly as expected before they go live for all customers.
Test discounts manually in the built-in cart builder.
Let the AI Assistant build carts and verify results for you.
Preview offers on your actual live website in isolation.
## Admin Simulator (Local Testing)
The Admin Simulator allows you to build a test cart and see evaluation results instantly without affecting your live store.
### Using the Simulator
1. Navigate to **Test Offers** in the sidebar.
2. **Select Offers**: Choose the active or scheduled offers you want to test from the selection panel.
3. **Build your Cart**: Use the **Cart Builder** to add products from your catalog.
4. **Apply Coupons**: If your offer requires a coupon code, enter it in the coupon field.
5. **View Results**: The results panel shows:
* **Total Savings**: The total discount amount applied.
* **Applied Discounts**: A breakdown of which offers applied and how many times.
* **Line Item Details**: Detailed pricing for each item in the cart.
### Test Modes
You can choose between two test modes to control how your selected offers interact with other discounts:
* **Test Together with Active Offers (`ALL`)**: This mode includes all currently active offers in your store. Use this to see how your new offer stacks or conflicts with existing promotions.
* **Test in Isolation (`ISOLATION`)**: This mode only evaluates the offers you have explicitly selected. Use this to verify a new offer's behavior without noise from other active discounts.
Free gifts (Gift with Purchase) are automatically added to your simulator cart if the qualifying conditions are met.
## AI-Powered Testing
The **Test with Agent** feature leverages the Atom AI Assistant to automate and verify your testing workflows.
### How to use AI Testing
Click the **Test with Agent** button in the Test Offers scene to open the assistant with testing-specific instructions.
The AI Agent can:
* **Find Qualifying Products**: Ask "What products qualify for my 20% discount?" and the agent will list them.
* **Build Complex Carts**: Say "Add 3 shirts and 2 hats to my test cart."
* **Run and Explain Tests**: The agent will run the evaluation and explain why specific discounts applied (or why they didn't).
* **Verify Accuracy**: The agent automatically checks if the discount amount in the results matches your offer definition.
If you have a tiered discount (e.g., "Spend $100, save $10; Spend $200, save $25"), the AI Agent is particularly helpful for verifying that the correct tier is triggered at each price point.
## Storefront Testing
For the most realistic verification, you can preview your offers directly on your Shopify storefront.
### Enabling Test Mode
If an offer is **Scheduled** but not yet live, you must enable **Test Mode** to see it on the storefront:
1. In the **Test Offers** page, select the scheduled offer.
2. If the offer doesn't have a test code, the AI Assistant or the UI will prompt you to **Enable Test Mode**.
3. Enabling Test Mode generates a private test code that allows you to trigger the offer via a special link.
### Previewing on Storefront
1. Switch to the **Test on Storefront** tab.
2. Click **Open Storefront Test View**.
3. Your store will open in a new tab with a special `?atom_test_offer=...` parameter.
4. Browse your store and add items to your cart as a customer would. The selected offer will be active only for your session.
Storefront testing is for preview purposes only. While you can see the discounts, avoid completing actual transactions unless you are using a Shopify test payment gateway.
## Troubleshooting Conflicts
If an offer isn't applying as expected in the simulator, it might be due to a priority conflict.
### Offer Priority and Stacking
Atom Commerce evaluates discounts based on their **Rank** (Priority). If two offers cannot stack (e.g., two different 10% off coupons where stacking is disabled), only the higher priority offer will apply.
* **Higher Rank = Higher Priority**: An offer with Rank 10 will apply before an offer with Rank 0.
* **Qualifier Conflicts**: If a product is used as a "qualifier" for one offer, it may be unavailable for others depending on your [Discount Limits](/discount-limits/overview) settings.
### AI Troubleshooting
You can ask the AI Agent: "Why isn't my BOGO offer applying?" The agent will analyze the cart, check for priority conflicts, and can even help you **Change Offer Priority** directly through a confirmation dialog.
For more details on how priority works, see the [Offer Priority and Stacking](/offers/priority-and-stacking) guide.
# Advanced Buy X Get Y
Source: https://docs.atomcommerce.io/offers/types/advanced-buy-x-get-y
Use advanced BXGY when you need precise qualification rules, exclusions, order minimums, and strict discount targeting.
Advanced Buy X Get Y is for campaigns where simple BXGY is not strict enough.
## Best Use Cases
* Wholesale or B2B thresholds
* Mixed product requirements
* Minimum order total plus item-level minimums
* Precise targeting with exclusions and purchase-type constraints
## Key Controls
* X-side qualification:
* per-item minimum quantity or spend
* per-collection quantity requirements
* minimum order total
* one-time vs subscription constraints
* Y-side targeting:
* specific products or collections
* free, amount off, percent off, fixed price
* optional requirement that only fully qualified lines can be discounted
* Limit behavior:
* max discount per order
* multiple uses per order
## Example
Wholesale rule: cart must be at least USD 3,500, and each qualifying SKU must have 10+ units. Then apply 40% off only to those qualifying lines.
## Continue
* Build checklist: [Creating Offers](/offers/creating-offers)
* Conflict handling: [Offer Priority and Stacking](/offers/priority-and-stacking)
# Bundles
Source: https://docs.atomcommerce.io/offers/types/bundles
Sell curated product sets with percentage, amount, or fixed-price bundle logic, including advanced mix requirements.
Bundles let you sell product sets at a better combined value.
## Best Use Cases
* Outfit or kit bundles
* AOV growth through curated combinations
* Inventory balancing by pairing fast- and slow-moving items
## Variants
* Percentage or Amount Bundle
* Fixed Price Bundle
* Advanced Bundle (exact mix rules and advanced controls)
## Key Controls
* Required product/collection mix
* Fixed price or discount-based pricing
* Extra-qualifying-item behavior (for fixed-price bundles)
* Exclusions and on-sale handling
## Example
Buy any 2 shirts and 1 belt, get the full bundle for USD 89.99.
This is stricter than "buy any 3 items".
## Continue
* Deep setup guide: [Bundle Discounts Guide](/guides/bundle-discounts)
* Overlap planning: [Offer Priority and Stacking](/offers/priority-and-stacking)
# Buy More Save More
Source: https://docs.atomcommerce.io/offers/types/buy-more-save-more
Increase cart size with volume or tier pricing that rewards customers as they buy more units.
Buy More Save More rewards larger quantities with better pricing.
## Best Use Cases
* Lift average order value
* Move inventory faster with quantity incentives
* Offer wholesale-style pricing bands
## Variants
* Volume Discount: same discount once threshold is met
* Tier Discount: discount changes by item position or threshold
* Advanced BMSM: add extra conditions and controls
## Key Controls
* Threshold type: quantity, spend, or both
* Discount mode: amount off, percent off, fixed price
* Per-tier pricing design
* Product/collection scope and exclusions
## Example
Buy 3+ items, save 10% on all eligible units. At 5+ items, move to 15%.
## Continue
* Detailed playbook: [Buy More Save More Guide](/guides/buy-more-save-more)
* Planning overlaps: [Offer Priority and Stacking](/offers/priority-and-stacking)
# Buy X Get Y
Source: https://docs.atomcommerce.io/offers/types/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
* Limits: max discount per order, multiple uses per order
## Example
Buy any sweater, get one scarf free. Sweater unlocks the offer, scarf receives the discount.
## Continue
* 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)
# Gift With Purchase
Source: https://docs.atomcommerce.io/offers/types/gift-with-purchase
Add free or discounted gifts when customers hit spend thresholds or buy specific qualifying products.
Gift With Purchase (GWP) adds a reward item when conditions are met.
## Best Use Cases
* Promotional gifting at key spend thresholds
* Product launch sampling
* Seasonal gift campaigns
## Common Structures
* Spend X, get free gift
* Spend X, get discounted gift
* Buy X, get free gift
* Buy X, get discounted gift
## Key Controls
* Unlock rule: spend or product-based
* Gift item selection and quantity limits
* Qualifier-sharing behavior with other offers
* Exclusions and fulfillment/channel constraints
## Example
Spend USD 100, get a free tote. If cart total falls below USD 100 after another discount, gift behavior depends on priority and qualification settings.
## Continue
* Full merchant guide: [Gift With Purchase Guide](/guides/gift-with-purchase)
* Offer interactions: [Offer Priority and Stacking](/offers/priority-and-stacking)
# Order Discount
Source: https://docs.atomcommerce.io/offers/types/order-discount
Apply discounts at cart-total level with spend rules, product-based triggers, and exclusions for protected collections.
Order Discount applies savings to eligible cart totals rather than to specific item lines.
## Best Use Cases
* Spend-threshold promotions
* Cart-level conversion incentives
* Broad campaigns with exclusion controls
## Common Structures
* Spend X, get amount off
* Spend X, get percent off
* Buy X, get order-level discount
* Advanced order discount conditions
## Key Controls
* Cart threshold or product-trigger requirements
* Excluded collections (margin protection)
* Mixed-cart behavior (eligible vs excluded lines)
* Priority interplay with item-level discounts
## Example
Offer: buy 1, get 10% off order. "New Snowboards" excluded.
If cart contains only excluded items, discount does not trigger.
If cart is mixed, discount applies only to eligible items.
## Continue
* Full walkthrough: [Order Discounts Guide](/guides/order-discounts)
* Evaluation order: [Offer Priority and Stacking](/offers/priority-and-stacking)
# Product Discount
Source: https://docs.atomcommerce.io/offers/types/product-discount
Discount specific products or collections with controls like maxQuantity, exclusions, and on-sale handling.
Product Discount is the fastest way to lower price on specific products or collections.
## Best Use Cases
* Flash sales on one product
* Collection-wide promotions
* Inventory movement with margin controls
* Subscription-only or one-time-only discount behavior
## Variants
* Single Product Discount
* Collection Discount
* Advanced Single Product Discount
* Advanced Collection Discount
## Key Controls
* Discount mode: amount off, percent off, fixed price
* Scope: specific products or collections
* `maxQuantity`: cap discounted units per order
* Exclusions: skip products or collections
* On-sale handling: allow or block additional discounting
* Purchase type: one-time, subscription, or both (advanced)
## Example
Winter campaign: 25% off Winter Collection, `maxQuantity = 3`.
First 3 eligible winter items get the discount, extra units stay full price.
## Continue
* Full implementation guide: [Product Discounts Guide](/guides/product-discounts)
* Build workflow: [Creating Offers](/offers/creating-offers)
# Shipping Discount
Source: https://docs.atomcommerce.io/offers/types/shipping-discount
Reduce checkout friction with free shipping, discounted shipping, or flat shipping offers tied to spend or purchase conditions.
Shipping Discount improves conversion by lowering or removing delivery cost.
## Best Use Cases
* Reduce cart abandonment
* Raise AOV with free-shipping thresholds
* Run seasonal shipping promotions
## Common Structures
* Free shipping over spend threshold
* Percent off shipping
* Flat-rate shipping
* Advanced destination/condition-based shipping offers
## Key Controls
* Threshold: spend or purchase requirement
* Scope: channel, fulfillment type, destination constraints
* Priority with other shipping promotions
* Campaign scheduling windows
## Example
Free shipping on orders over USD 75. Customers below USD 75 can see exactly how much more to add for free shipping.
## Continue
* Setup workflow: [Creating Offers](/offers/creating-offers)
* Priority and overlap: [Offer Priority and Stacking](/offers/priority-and-stacking)
# Contextual Bandits for Personalized Offer Selection
Source: https://docs.atomcommerce.io/optimizations/contextual-bandits
Learn when to use contextual bandits in Atom Commerce, how personalized offer selection works, and which setup and analytics steps to review before launch.
Use contextual bandits when you want Atom Commerce to **personalize which offer a shopper sees** instead of showing the same promotion to everyone. This page explains when it fits, how it works, and what to review before activation.
Multiple valid offer variants, enough traffic to learn from results, and a clear goal such as conversion, AOV, or margin protection
Get your base offers, analytics, and promotion goals in place before you turn optimization on
Before using contextual bandits, make sure your base offers are already configured correctly. Start with [Creating Offers](/offers/creating-offers), [Offer Types](/offers/offer-types), and [Analytics Key Metrics](/analytics/key-metrics).
## Understanding Contextual Bandits
Contextual bandits extend the classic multi-armed bandit framework by incorporating customer-specific features when making decisions. They consist of two main components:
### Promotion Performance Predictor
Our Promotion Performance Predictor forecasts how well each discount or promotion option is likely to work by looking at key customer data:
* **Purchase history**
* **Average spend**
* **Engagement level** (e.g. email opens, clicks)
* **Browsing behavior**
* **Current cart contents**
* **Other behavioral signals**
By using these insights, Atom Commerce can estimate which discount will drive the best results for each shopper—so you can deliver smarter, more effective promotions without any guesswork.
### Exploration Strategy
Alongside exploitation (choosing the current best-known discount), the bandit occasionally explores other options to discover potentially better strategies. This exploration is balanced against exploitation to continually refine the system's choices.
## How Atom Commerce Applies Contextual Bandits
### Personalized Discount Optimization
Atom Commerce uses contextual bandits to evaluate a range of discount options and select the one most likely to be effective for each individual customer. By leveraging rich customer data, the system can predict how an individual will respond to a specific discount offer, leading to a tailored promotion strategy instead of a uniform discount applied across the board.
### Dynamic Learning from Customer Behavior
Every interaction with a discount offer—whether accepted or not—provides immediate feedback. The model uses this data to update its predictions continuously, ensuring that the promotion strategy adapts in real time. As a result, the system refines its choices and consistently prioritizes the best-performing offers.
### Efficient Handling of a Large Decision Space
Marketing promotions can vary along multiple dimensions, such as discount amount, type, timing, and delivery channel. Traditional A/B testing struggles as the number of combinations grows exponentially. In contrast, contextual bandits efficiently navigate this complex landscape by making one-to-one decisions for each customer rather than relying on aggregated group-level comparisons.
## Advantages Over Traditional A/B Testing
### Accelerated Learning
Traditional A/B testing splits traffic evenly among a few static variants and requires a long period to gather enough data for statistically significant results. In contrast, contextual bandits learn from every individual interaction in real time, requiring less data and time to converge on an optimal strategy.
### Individual-Level Customization
A/B testing generates aggregate data that may overlook important behavioral differences among customer segments. Contextual bandits make decisions at the individual level, ensuring that each customer receives the discount most likely to maximize their conversion or engagement.
### Scalability for Complex Marketing Campaigns
When multiple promotion dimensions are involved—such as discount type, messaging, timing, and channel—the total number of possible combinations becomes unmanageable with A/B testing. Contextual bandits efficiently manage this multi-dimensional decision space, scaling gracefully as complexity increases.
### Resource Efficiency
Faster convergence toward effective strategies reduces the risk and cost associated with prolonged experimentation. Marketers achieve better outcomes sooner, translating into improved conversion rates and higher overall return on investment.
## Using Offer Optimizations in Atom Commerce
To leverage contextual bandits for your promotions:
1. Create multiple offer variants (e.g., different discount amounts or types)
2. Navigate to "Offer Optimizations" in the main menu
3. Create a new optimization group containing your offer variants
4. Activate the optimization group
5. The system will automatically show the most appropriate offer to each shopper based on their profile and behavior
## How to Choose Good Variants
Strong optimization groups usually have:
* a **shared goal** such as increasing conversion rate or order value
* **meaningfully different offers**, not tiny variations
* a clear merchant reason to test one strategy against another
Good examples:
* 10% off order vs. free shipping
* gift with purchase vs. order discount
* different spend thresholds with different rewards
Weak examples:
* two nearly identical discount amounts
* variants that conflict because of priority or qualifier reuse problems
If multiple offers may interact, review [Offer Priority and Stacking](/offers/priority-and-stacking) before putting them into an optimization group.
## Monitoring Performance
Track how your personalized offers are performing:
1. Go to the "Offer Optimizations" dashboard
2. View real-time performance metrics for your optimization groups
3. See how different offers perform across various customer segments
4. Monitor overall lift compared to standard, non-personalized offers
Pick offer types that are genuinely different enough to teach the optimizer something useful
Review conversion, lift, and campaign performance after launch
## Best Practices
* Include diverse offer variants in your optimization groups
* Allow enough time for the system to gather sufficient data
* Use meaningful offer differences (e.g., 10% vs. 20% off rather than 19% vs. 20%)
* Review performance regularly but avoid making premature conclusions
* Consider seasonal factors that might influence customer behavior
# Optimization Overview
Source: https://docs.atomcommerce.io/optimizations/overview
Learn how Atom Commerce Offer Optimizations maximize promotional effectiveness through AI-driven personalization and advanced testing capabilities.
Atom Commerce's Offer Optimizations help you maximize the effectiveness of your promotional strategy through AI-driven personalization, data-driven insights, and advanced testing capabilities.
## What Are Offer Optimizations?
Offer Optimizations are tools and features that help you:
* Deliver personalized offers to individual shoppers based on their behavior
* Identify which promotions generate the best results for different customer segments
* Test different discount approaches against each other
* Refine your promotional strategy based on performance data
* Automate optimization for continuous improvement
* Make data-driven decisions about your discount strategy
## Key Optimization Features
### Personalized Offer Delivery
Our advanced [Contextual Bandits](/optimizations/contextual-bandits) system provides true 1:1 personalization:
* **Individual-Level Decisions**: Each shopper receives the offer most likely to convert based on their specific profile
* **Continuous Learning**: The system automatically improves over time as it learns from customer interactions
* **Dynamic Adaptation**: Offer selection adapts to changing customer behavior patterns
* **Multi-Variant Testing**: Test multiple offer variations simultaneously with efficient resource allocation
### Performance Analytics
Get insights into how your offers are performing:
* **Conversion Rate Analysis**: See which offers drive the most conversions
* **Revenue Impact Assessment**: Measure how offers affect your bottom line
* **Customer Behavior Tracking**: Understand how shoppers interact with offers
* **Trend Identification**: Spot patterns in offer performance over time
### Optimization Groups
Create groups of related offers for intelligent distribution:
* **Multiple Offer Variants**: Group similar offers with different parameters
* **Automated Distribution**: Let the system determine which offer to show each customer
* **Performance Tracking**: Compare how offers perform across different customer segments
* **Easy Management**: Control multiple offers as a single optimization unit
## Optimization Dashboard
The central hub for all your optimization activities:
* **Performance Overview**: Quick view of key optimization metrics
* **Active Optimizations**: Status of current optimization groups
* **Improvement Tracking**: Measure optimization impact over time
## Getting Started with Optimizations
### 1. Baseline Analysis
Before optimizing, establish your current performance:
1. Navigate to the Optimizations section
2. View the "Performance Baseline" dashboard
3. Note your current conversion rates, AOV, and revenue
4. Identify offers with potential for improvement
### 2. Creating Your First Optimization Group
Start personalizing your offers:
1. Create multiple offer variants (e.g., different discount amounts)
2. Go to "Offer Optimizations" in the left menu
3. Click "Create New Optimization Group"
4. Select your offers to include in the group
5. Configure the optimization settings
6. Activate your optimization group
### 3. Analyzing Results
Understand and apply your findings:
1. Monitor optimization progress in the Results dashboard
2. Review performance across different customer segments
3. Identify which offers perform best for specific customer types
4. Use these insights to refine your promotional strategy
5. Create additional optimization groups based on your learnings
## Optimization Best Practices
* **Include Diverse Offers**: Create meaningful variations between offers in an optimization group
* **Allow Learning Time**: Give the system enough time to gather sufficient data
* **Consider Multiple Metrics**: Look beyond just conversion rate to revenue impact and AOV
* **Seasonal Adjustments**: Account for seasonal variations in behavior
* **Continuous Improvement**: Use insights from one optimization to inform the next
## Advanced Optimization Capabilities
### Automatic Customer Segmentation
Unlike traditional approaches that require predefined customer segments, our contextual bandits algorithm:
* **Discovers Natural Segments**: Automatically identifies patterns in customer behavior without manual segmentation
* **Personalizes at Scale**: Delivers the right offer to each customer based on their unique characteristics
* **Reduces Manual Setup**: Eliminates the need to create and maintain customer segments
* **Finds Unexpected Patterns**: Discovers relationships between customer attributes and offer preferences that might not be obvious
### Adaptive Learning Over Time
Our bandit algorithms continually adapt to changing customer preferences:
* **Responds to Seasonal Changes**: Automatically adjusts to shifts in buying behavior during different seasons
* **Adapts to Trends**: Quickly identifies and responds to emerging trends and changing preferences
* **Balances Exploration and Exploitation**: Continuously tests new approaches while leveraging what's already working
* **Eliminates Outdated Assumptions**: Never gets stuck in outdated patterns as preferences evolve
This automatic adaptation is particularly valuable as consumer trends can change rapidly (consider how quickly TikTok trends come and go), ensuring your promotional strategy stays current without manual intervention.
# Atom Commerce Docs
Source: https://docs.atomcommerce.io/overview
Set up Atom Commerce, create offers, manage priority and stacking, and measure performance.
Use these docs to set up Atom Commerce, create offers, troubleshoot issues, and improve performance. Start with setup, offer types, priority and stacking, and analytics.
## Start Here
Use this path if you are launching Atom Commerce for the first time:
Install the app, enable Shopify App Embed, and confirm checkout extension behavior.
Follow [Web Store Connection Setup](/getting-started/setup).
Start with a product or collection discount, then move to bundles, BOGO, and gift with purchase once the basics are live.
Compare options in [Offer Types](/offers/offer-types).
Configure how offers combine before launch so the same cart always resolves predictably.
Use [Offer Priority and Stacking](/offers/priority-and-stacking) as your pre-launch checklist.
## What Atom Commerce Does
Atom Commerce helps you create and manage Shopify offers with more control over offer types, priority, and reporting:
Create BOGO, bundles, volume discounts, gift with purchase, and more with an intuitive interface
Apply discounts based on your offer rules, priority, and eligibility settings
Track performance, measure ROI, and optimize offers based on actual data
Works with Shopify so eligible discounts can apply without custom code
## Key Features
### Offer Management
Create and manage multiple offer types:
* **Product Discounts**: Direct discounts on products or collections with margin protection
* **Buy X Get Y (BXGY)**: Reward customers with free or discounted products
* **Buy More Save More (BMSM)**: Progressive discounts that encourage larger orders
* **Bundles**: Group complementary products at special prices
* **Gift With Purchase (GWP)**: Add free or discounted gifts to qualifying orders
* **Order Discounts**: Cart-level discounts based on spending thresholds
* **Shipping Discounts**: Reduce or eliminate shipping costs
### Advanced Capabilities
Control how multiple offers interact:
* Set offer priorities to determine evaluation order
* Configure discount stacking rules
* Protect margins with intelligent conflict resolution
* Understand how item, order, and shipping discounts work together
Learn more about [Offer Priority and Stacking](/offers/priority-and-stacking)
Fine-tune discount behavior:
* Control multiple uses per order
* Manage qualifier reuse across offers
* Set maximum discount amounts
* Protect margins with quantity limits
Explore [Discount Limits](/discount-limits/overview) for detailed controls
Maximize performance:
* Contextual bandits for offer selection and personalization
* Performance analytics and reporting
* A/B testing capabilities
* Revenue optimization strategies
See [Optimization Overview](/optimizations/overview) for advanced features
## Getting Started
Install the Atom Commerce app from the Shopify App Store and complete the quick setup process.
See [Web Store Connection Setup](/getting-started/setup) for detailed instructions.
Start with a simple product discount or collection sale to get familiar with the system.
Follow our [Quickstart Guide](/quickstart) for a step-by-step walkthrough.
Learn about different offer types and when to use each one.
Check out [Types of Offers](/offers/offer-types) for comprehensive information.
Use analytics to measure performance and create more sophisticated offers.
Review [Best Practices](/offers/best-practices) for proven strategies.
## Popular Use Cases
Run category-wide offers for holidays, end-of-season clearance, or special events. Use collection discounts with scheduling to automate your seasonal campaigns.
Clear overstocked items with targeted product discounts. Use maxQuantity limits to protect margins while moving inventory.
Create compelling first-time buyer offers using order discounts or gift with purchase offers to attract new customers.
Increase cart size with Buy More Save More offers, bundles, or volume discounts that reward customers for purchasing more.
Generate buzz for new products with limited-time discounts, BOGO offers, or introductory pricing strategies.
## Resources
Get up and running in minutes
Step-by-step guide to creating offers
Explore all available offer types
Learn how qualifiers, thresholds, and discount classes interact
Build GWP offers and understand gifting, exclusions, and qualifier sharing
See which offers perform best
## Support
Need help? We're here for you:
* **AI Assistant**: Use the AI Assistant in your dashboard for help
* **Email Support**: [support@atomcommerce.io](mailto:support@atomcommerce.io)
* **Documentation**: Browse our complete guides and references
Ready to get started? Head to your [Atom Commerce Dashboard](https://admin-us-central1.atomcommerce.io) or follow our [Quickstart Guide](/quickstart) to create your first offer.
# POS Settings
Source: https://docs.atomcommerce.io/pos/settings
Configure POS mode, apply order discounts, and check connection status from the Atom Commerce modal on your POS device.
All POS settings live on the **Settings** tab inside the Atom Commerce modal. Open it by tapping the Atom Commerce tile on your smart grid, then tapping **Settings**.
***
## PRO mode vs LITE mode
Atom Commerce POS has two discount modes. Which one you use depends on your Shopify POS subscription.
| Mode | Requires | How discounts apply |
| -------- | -------------------- | ------------------------------------------------------------ |
| **PRO** | Shopify POS Pro | Applies discounts natively through Shopify's discount system |
| **LITE** | Any Shopify POS plan | Applies discounts as line-item price adjustments |
**Which mode should I use?**
Use **PRO** if your store has Shopify POS Pro. PRO mode applies discounts through Shopify's native discount infrastructure, which means they appear correctly on receipts and in reports.
Use **LITE** if you're on a standard Shopify POS plan. LITE mode still applies discounts, but it does so by adjusting line-item prices directly. The discount is visible to the shopper and reflected in the cart total, but it shows differently in Shopify's reporting.
If you're not sure which plan you're on, check **Shopify Admin → Settings → Plan** or ask your Shopify account contact. Switching modes doesn't change your pricing — it only affects how Atom Commerce applies discounts.
### Switching modes
The current mode is shown in the **POS Mode** row. To switch:
1. Tap **Switch to PRO** or **Switch to LITE** (whichever appears)
2. The mode saves immediately
3. Tap **Clear Atom Session** to refresh the connection before your next sale
***
## Apply Order Discounts
Tap **Apply Order Discounts** to manually trigger Atom Commerce to evaluate the current cart and apply any qualifying order-level discounts.
This is useful when:
* A discount didn't apply automatically
* You just switched POS modes and want to refresh
* A staff member modified the cart in a way that may have skipped discount evaluation
***
## Maintenance actions
### Clear Atom Session
Clears the current session and re-establishes the connection between your POS device and Atom Commerce. Use this if:
* Upsells aren't appearing after adding items
* You switched POS modes
* You're seeing stale data from a previous cart
***
## Network status
The **Network Status** row shows whether your POS device can reach Atom Commerce.
| Status | What it means |
| ------------------------- | ---------------------------------------------------------------------- |
| **Online** (green) | Connected. Upsells and discounts are live. |
| **Slow Network** (orange) | Connected but response times are high. Upsells may be delayed. |
| **Offline** (grey) | No connection. Upsells are unavailable until connectivity is restored. |
The latency number (e.g. `142ms`) is the last measured round-trip time to the Atom Commerce API. Values below 500ms are normal. Above 1000ms, you may see the tile switch to the slow network state.
***
## Next steps
* [POS Upsells](/pos/upsells) — how staff use the upsells modal at the register
* [POS Setup](/pos/setup) — add the Atom Commerce tile to your smart grid
# POS Setup
Source: https://docs.atomcommerce.io/pos/setup
Learn how to configure Atom Commerce discounts for Point of Sale (POS) devices in Shopify
## TL;DR
Set up the Atom Commerce smart grid tile in Shopify Admin, then confirm POS mode on the device. When setup is complete, staff can apply Atom Commerce discounts directly from POS.
## Prerequisites
Before you start, make sure you have:
* An active Atom Commerce account
* Shopify POS installed and set up on your device (supports both POS PRO and POS LITE)
* You can log into your Shopify store as an admin
* Your POS device is available during setup
## Shopify Admin Configuration
First, enable the Atom Commerce Discounts app in Shopify POS settings.
### Step 1: Navigate to POS Settings
1. In your Shopify admin, go to **Sales channels** > **Point of Sale**
2. Click **Settings** in the left sidebar
### Step 2: Access POS Apps
1. In the **General** section, click **POS apps**
2. You'll see a list of installed POS applications
### Step 3: Configure Atom Commerce Discounts
1. Find **Atom Commerce Discounts** in the app list
2. Click on **Atom Commerce Discounts** to open its settings
3. In the **Customize this app** section, check that **Smart grid tile** shows **Added** with a green checkmark
4. If it shows **Remove** instead, click the **Add** button to turn on the smart grid tile
The smart grid tile adds a button on your POS device. Your staff can tap this
button to use Atom Commerce discounts.
## POS Device Configuration
After enabling the smart grid tile in Shopify Admin, validate and configure settings on the POS device.
### Step 1: Find the Atom Commerce Tile
1. On your POS device, open the smart grid (the main screen with buttons)
2. Look for the **Atom Commerce Ready** tile (it shows the Atom Commerce logo with circles)
3. You should see this tile on your smart grid screen with your other POS buttons
### Step 2: Open Atom POS Configuration
1. Tap the **Atom Commerce Ready** tile
2. This opens the **Atom POS Configuration** screen
### Step 3: Verify POS Mode
1. In the **Atom Commerce Connector** section, find **POS Mode**
2. Confirm that the displayed mode matches your Shopify POS subscription:
* If you have **POS PRO**, it should show **PRO**
* If you have **POS LITE**, it should show **LITE**
3. If the wrong mode is displayed, switch to the correct mode:
* Click the **Switch to PRO** button (if you need PRO mode)
* Or click the **Switch to LITE** button (if you need LITE mode)
* Once selected, the mode will be saved and you can close the POS configuration screen
* Clear your POS cart and try again using the new mode
If you're having trouble setting the correct mode, contact
[support@atomcommerce.io](mailto:support@atomcommerce.io) for assistance.
### Step 4: Clear Atom Session (If Needed)
If you just switched modes, or discounts are not applying:
1. Scroll to the bottom of the **Atom POS Configuration** screen
2. Click **Clear Atom Session**
3. This refreshes the connection between your POS device and Atom Commerce
## Verification
After you finish the setup, check that everything is working:
1. **Shopify Admin**: Make sure the Smart grid tile is set to "Added" for Atom Commerce Discounts
2. **POS Device**: Check that the "Atom Commerce Ready" tile shows up in your smart grid
3. **POS Mode**: Verify that POS Mode shows the correct mode (PRO or LITE) matching your Shopify POS subscription
4. **Test a Discount**: Try using an Atom Commerce discount on a test sale on your POS device
## Troubleshooting
### Smart Grid Tile Not Appearing
If the "Atom Commerce Ready" tile doesn't show up on your POS device:
* Check that the Smart grid tile is set to "Added" in Shopify admin POS settings
* Refresh your POS device or close and reopen the POS app
* Make sure you have the latest version of the Atom Commerce Connector installed
### POS Mode Not Correct
If POS Mode doesn't match your Shopify POS subscription:
* Click **Switch to PRO** or **Switch to LITE** in the POS configuration screen to match your subscription
* Click **Clear Atom Session** to refresh the connection
* If you're unable to set the correct mode, contact [support@atomcommerce.io](mailto:support@atomcommerce.io) for assistance
### Discounts Not Applying
If discounts aren't working on POS sales:
* Make sure POS Mode matches your Shopify POS subscription (PRO or LITE)
* Check that your offers are set up to work with POS channels
* Go to ATOM POS Configuration and click "Apply Order Discounts" to refresh the discounts in your POS cart
* Make sure your offers are active and the dates are correct
* Use the [AI Assistant](/ai-assistant/overview) to help you confirm your offers are working correctly
* See the [Managing Channels](/channels/managing) guide for help with channel settings
## Next Steps
Now that POS is configured, you can:
* [POS Upsells](/pos/upsells) — see how staff use the upsells modal at the register
* [POS Settings](/pos/settings) — configure PRO vs LITE mode and apply order discounts
* [Managing Channels](/channels/managing) — set up offers for POS
* [Creating Offers](/offers/creating-offers) — make discounts that work with POS
# POS Upsells
Source: https://docs.atomcommerce.io/pos/upsells
Show your staff which Atom Commerce offers are available in the current cart, and let them add qualifying products with a single tap.
Atom Commerce adds a tile to your Shopify POS smart grid. When there are active offers that apply to the current cart, staff tap the tile to see what's available and add items directly from there.
***
## Where it appears in Shopify
The Atom Commerce tile sits on the POS smart grid — the main screen with your other action buttons. Tapping it opens a modal with two tabs: **Upsells** and **Settings**.
***
## What staff see
### The tile
The tile shows the current state of the cart session at a glance.
| Tile state | What it means |
| ----------------------------------- | ----------------------------------------------------------------------------- |
| **Session Active** | Cart is connected to Atom Commerce. No qualifying offers in the current cart. |
| **N upsells** with badge | There are N offers the shopper could unlock. Tap to see them. |
| **Slow Network** with warning badge | The connection is slow. Upsells may be stale. |
| **Offline** with grey badge | No connection. Atom Commerce can't evaluate the cart. |
### The Upsells tab — product offers
When the shopper's cart qualifies for Buy X Get Y, bundles, or volume discounts, staff see a card for each qualifying product.
Each card shows:
* The product name and variant
* The price (or "Free" for qualifying complimentary items)
* A progress message — how many more items or how much more spend is needed
* A **+ Add** button to add the item to the cart
Tapping **+ Add** adds the item immediately. A toast notification confirms the addition.
### The Upsells tab — shipping discounts
When the cart is working toward a free shipping threshold, staff see the progress without any product to add.
***
## How offers appear
Atom Commerce evaluates the cart and shows offers based on what's in it. Offers appear when:
| Offer type | Appears when |
| ------------------------- | ---------------------------------------------------------------------- |
| Buy X Get Y | Cart has qualifying items and a free or discounted item could be added |
| Bundles | Cart contains items that are part of a bundle deal |
| Volume / tiered discounts | Cart quantity is below the next tier threshold |
| Spend threshold | Cart total is below the discount threshold |
| Free shipping | Cart total is below the free shipping threshold |
The tile badge count reflects the total number of qualifying offers across all active offers. Once a shopper has achieved an offer — for example, they've added enough items to trigger Buy 3 Get 1 Free — that offer is removed from the modal automatically.
***
## Staff workflow
Staff should glance at the Atom Commerce tile before tapping **Charge**. If there's a badge, there are offers available.
Tap the tile to open the modal. The **Upsells** tab opens by default.
Tap **+ Add** on any offer to add the item to the cart. The cart updates immediately. Close the modal and proceed to checkout.
***
## Next steps
* [POS Settings](/pos/settings) — configure PRO vs LITE mode and apply order discounts
* [POS Setup](/pos/setup) — add the Atom Commerce tile to your smart grid
* [Managing Channels](/channels/managing) — control which offers are active on POS
# Quickstart: Create Your First Offer
Source: https://docs.atomcommerce.io/quickstart
Get started with Atom Commerce in minutes. Connect your Shopify store, create your first offer, and learn the next docs to use for setup and optimization.
## Welcome to Atom Commerce
Atom Commerce helps Shopify merchants create, manage, and optimize offers. This quickstart guide helps you connect your store and launch your first offer in just a few steps.
You will connect your store, launch one production-safe offer, and know which guide to use next.
Time required: setup (5-10 minutes), first offer (5 minutes), total (\~15 minutes).
## Step 1: Connect Your Shopify Store
Before creating offers, you need to connect Atom Commerce to your Shopify store.
Go to the [Atom Commerce Connector on Shopify App Store](https://apps.shopify.com/atom-commerce-connector) and click **Add app**.
After installation, you'll be directed to a short survey and getting started page. You can use the AI Assistant if you need help.
Turn on the Shopify App Embed. Atom Commerce needs it to apply discounts in your store. Follow the prompts on the getting started page to enable it.
Once installed, Atom Commerce will always be available under the **Apps** menu in your Shopify Admin. Click **Atom Commerce Connector** to open your dashboard.
For detailed setup instructions, see [Web Store Connection Setup](/getting-started/setup).
## Step 2: Create Your First Offer
Now create a simple product discount to get familiar with the workflow.
1. Open your Atom Commerce Dashboard
2. Click **Offers** in the left menu
3. Click **Create New Offer** in the top right corner
For your first offer, we recommend starting with a **Product Discount**:
* **Simple**: Easy to understand and set up
* **Flexible**: Works with single products or entire collections
* **Effective**: Direct discounts drive immediate sales
Select **Product Discount** or **Collection Discount** from the offer type options.
* **Name**: Give your offer a clear name (e.g., "Summer Sale - 20% Off")
* **Method**: Choose **Automatic** (applies automatically) or **Discount Code** (requires code entry)
* **Discount**: Set your discount amount (e.g., 20% off or \$10 off)
* For **Product Discount**: Select specific products
* For **Collection Discount**: Select one or more Shopify collections
* **Start Date**: When the offer begins
* **End Date**: When the offer expires (optional)
1. Review your offer settings
2. Click **Save Offer**
3. Toggle **Activate** to launch your offer
Your offer is live. If you chose Automatic, eligible customers will see the discount at checkout. If you chose Discount Code, customers must enter the code.
## What's Next?
Now that you've created your first offer, explore these resources to get the most out of Atom Commerce:
Compare offer types and choose the right one
Learn about qualifiers, targets, exclusions, and scheduling
Strategies for creating effective offers
Understand how multiple offers work together
Learn how gifting, qualifier sharing, and exclusions work
See which offers perform best
## Common First Offers
Here are some popular first offers to try:
**Type**: Collection Discount\
**Discount**: 20% off\
**Collection**: Choose a seasonal collection (e.g., "Summer Apparel")\
**Why**: Easy to set up, works immediately, great for seasonal offers
**Type**: Product Discount\
**Discount**: \$50 off\
**Product**: Select a featured or new product\
**Schedule**: 24-48 hours\
**Why**: Creates urgency, drives quick sales, perfect for testing
**Type**: Buy More Save More (BMSM)\
**Tiers**: Buy 2 items, save 10%; Buy 3+ items, save 15%\
**Why**: Encourages larger orders, increases average order value
## Need Help?
* **AI Assistant**: Use the AI Assistant in your dashboard for help
* **Support**: Email us at [support@atomcommerce.io](mailto:support@atomcommerce.io)
* **Documentation**: Browse our [complete documentation](/overview) for detailed guides
Ready to create more advanced offers? Check out our [Creating Offers Guide](/offers/creating-offers) for detailed step-by-step instructions.
# Free Shipping Progress Bar
Source: https://docs.atomcommerce.io/upsells/free-shipping-bar
Show shoppers how close they are to qualifying for free shipping with a progress bar in your store's header or cart drawer.
The free shipping bar shows shoppers how much more they need to spend to unlock free shipping. It appears as a banner at the top of your store, inside the cart drawer, or both — and updates automatically as the cart changes.
***
## Where it appears in Shopify
The bar can appear in three places:
* **Top bar** — a sticky banner fixed to the top of every page (or cart page only)
* **Minicart** — inside the cart drawer, above the cart lines
* **Both** — top bar and minicart at the same time
Set this with the **Display Location** setting in the Atom Commerce Connector theme block: **Online Store → Themes → Customize → Atom Commerce Connector → Free Shipping Bar**.
***
## What shoppers see
### In progress — shopper hasn't qualified yet
### Qualified — shopper has met the threshold
A screenshot of the bar inside the cart drawer (minicart location) is not yet available.
***
## What it requires
The free shipping bar reads from a **free shipping offer created in Atom Commerce** with a spend threshold. It does not connect to Shopify's native free shipping rates or any other discount system.
If no active free shipping offer exists, the bar hides automatically — unless you set an **Initial Message**, in which case it shows that text instead.
**Does it affect checkout?** No. The bar is a display element only. Whether a shopper actually qualifies for free shipping is determined at checkout by Atom's discount logic.
***
## Eligible subtotal vs cart total
The bar tracks the shopper's **eligible cart subtotal** — not the raw cart total. This matters when your free shipping offer excludes certain products or fulfillment methods.
**Example:**
* Offer: Free shipping on orders over \$100
* Excluded: gift cards, Pickup in Store
* Cart: $50 t-shirt + $50 hoodie + $30 gift card = $130 visible total
* Eligible subtotal: \$100 (gift card excluded)
* Bar shows: \$0 remaining — shopper qualifies if they choose standard shipping
If the shopper selects Pickup in Store at checkout, the free shipping discount won't apply — that fulfillment method is excluded from the offer.
If your free shipping bar appears to show the wrong amount remaining, check whether any products in the cart are excluded from the offer, or whether the shopper's selected fulfillment method is excluded.
***
## Basic setup
Turn on **Enable Free Shipping Bar**.
Set **Display Location** to **Top Bar**, **Minicart**, or **Both**.
Use **Top Bar** for store-wide visibility — it's the most prominent placement. Use **Minicart** if you want the message close to checkout without affecting the rest of the site. Use **Both** for maximum visibility.
Leave **Progress Message** and **Success Message** blank to use Atom's defaults.
If you customize, use `[AMOUNT]` for the remaining spend and `[DISCOUNT]` for the offer name:
```
Only [AMOUNT] away from [DISCOUNT]
```
Shopper sees: Only \$15.00 away from Free Shipping
Add an **Initial Message** to show the bar even when no free shipping offer is active — for example, to announce your free shipping threshold before a shopper starts adding items.
Leave it blank to hide the bar entirely when there's no active offer.
***
## Messages
The bar has four message slots. Only `[DISCOUNT]` and `[AMOUNT]` tokens are supported — the `**bold**` emphasis syntax used in cart upsell pills is not available here. The amount is automatically styled using the **Amount Color** setting.
| Setting | When shown | Available tokens |
| -------------------- | ------------------------------------------------- | ------------------------ |
| **Progress Message** | While the shopper is working toward the threshold | `[DISCOUNT]`, `[AMOUNT]` |
| **Success Message** | After the shopper qualifies | `[DISCOUNT]` |
| **Initial Message** | When no active free shipping offer exists | — |
| **Additional Text** | Always, as a second line below the main message | — |
**Additional Text** is useful for small-print notes, for example:
```
*excludes fine art & posters*
```
***
## Styling
### Top bar appearance
| Setting | Default | What it controls |
| -------------------- | ----------- | -------------------------------------------------- |
| **Background Type** | Solid Color | Choose between a solid color or a full-width image |
| **Background Color** | `#e8f5e9` | Fill color (when background type is solid color) |
| **Background Image** | — | Image (when background type is image) |
| **Text Color** | `#333333` | Message text |
| **Display Pages** | All Pages | Show on all pages, or cart page only |
### Amount styling
The remaining spend amount uses separate styling from the rest of the message text.
| Setting | Default | What it controls |
| ---------------------- | ----------------- | -------------------------- |
| **Amount Color** | `#008a5e` (green) | Color of the spend amount |
| **Amount Font Weight** | 600 | Weight of the spend amount |
***
## Behavior
These settings are optional. Most stores don't need them.
| Setting | Default | What it does |
| ----------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Shipping Details Page URL** | — | Makes the bar a clickable link to a page of your choice (e.g. your shipping policy) |
| **Enable Shipping Bar Delay** | Off | Waits before showing the bar; the timer resets if the user moves their mouse. Use this to avoid content shifting while a shopper is actively interacting with the page. |
| **Delay Duration** | 2000 ms | How long to wait before showing the bar (0–9900 ms) |
| **Animation Duration** | 0 s | How long the slide-down animation takes (0–2 s). Leave at 0 for no animation. |
# Cart Upsells
Source: https://docs.atomcommerce.io/upsells/overview
Atom cart upsells show shoppers how close they are to qualifying for a deal — and what to add or spend to get there. Learn what they are, what triggers them, and how to turn them on.
When a shopper's cart is close to qualifying for an offer, Atom can show them a message explaining exactly what to add or spend. These messages appear in the cart drawer or cart page, in real time, as the shopper updates their cart.
***
## Where it appears in Shopify
Cart upsells appear in two places:
* **Cart drawer** — the slide-out panel that opens when a shopper adds an item
* **Cart page** — the full `/cart` page
Both are enabled together by the **Enable Upsells** setting in the Atom Commerce Connector theme block.
The upsell messages are controlled through your Shopify theme editor, not the Atom dashboard. Go to **Online Store → Themes → Customize → Atom Commerce Connector** to configure them.
***
## What shoppers see
Upsell messages appear in one of two layouts, depending on how you configure the block.
### Inline
The message appears directly below the cart line that relates to the offer. Best for offers tied to a specific product.
### Accordion
All active upsells are grouped together in a collapsible section at the top of the cart. Best when your store runs several offers at once.
### Completed state
When a shopper qualifies for an offer, Atom can show a confirmation message. This is off by default — turn it on with **Show Completed Upsells**.
***
## What triggers an upsell
Atom evaluates every active offer against the cart on each update. When the cart is within qualifying range, an upsell fires. There are five trigger types:
| Trigger | When it fires | Example message |
| ---------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------- |
| **Add more qualifier items** | Shopper has some but not all required items | "Add 2 more to unlock Buy 3 Get 1 Free" |
| **Add target items** | Shopper has met the qualifier, but hasn't added the discounted item yet | "You qualify — add 1 more item to get it free" |
| **Spend more** | Cart total is below the spend threshold | "Spend \$15 more to unlock 10% off" |
| **Complete a bundle** | Shopper has started a bundle but hasn't finished it | "Add 1 more item to complete your bundle and save" |
| **Reach the next tier** | Shopper has unlocked one tier and is close to the next | "Add 2 more items to reach tier 3" |
Atom selects the message type automatically based on the offer structure and what's already in the cart. You don't configure this per offer.
***
## How to enable
Turning on upsells requires two steps.
**Step 1 — Enable closeness qualifiers on the offer**
In the Atom dashboard, open the offer you want to show upsells for. Make sure **Closeness Qualifiers** (also called upsell nudges) are enabled for that offer. If this is off, Atom won't generate upsell messages for that offer even if the theme block is on.
**Step 2 — Enable upsells in the theme block**
In Shopify, go to **Online Store → Themes → Customize → Atom Commerce Connector** and turn on **Enable Upsells**.
Both steps are required. The theme block controls whether upsells are displayed — the offer setting controls whether they're generated.
***
## Next steps
* **Set up layout, messages, and styling** → [Cart Upsell Settings](/upsells/settings)
* **Add a free shipping progress bar** → [Free Shipping Bar](/upsells/free-shipping-bar)
# Cart Upsell Settings
Source: https://docs.atomcommerce.io/upsells/settings
Configure layout, messages, styling, and advanced placement for Atom inline and accordion cart upsells.
This page covers setup and configuration for **inline** and **accordion** upsells — the messages that appear in the cart drawer or cart page. For the free shipping progress bar, see [Free Shipping Bar](/upsells/free-shipping-bar).
All settings are in **Online Store → Themes → Customize → Atom Commerce Connector**.
***
## Most stores only need these settings
To get upsells working, most stores only need to:
1. Turn on **Enable Upsells**
2. Choose **Inline** or **Accordion** layout
3. Optionally customize the message text
4. Optionally adjust the pill colors
Everything under [Advanced theme placement](#advanced-theme-placement) and [Custom theme selectors](#custom-theme-selectors) is for stores where upsells appear in the wrong position. Leave those sections alone unless something looks broken.
***
## Basic setup
Turn on **Enable Upsells**. Off by default.
This enables upsell messages in both the cart drawer and cart page.
Set **Upsell Layout Mode** to **Inline** or **Accordion**.
Not sure which to choose? See [Which layout should I use?](#which-layout-should-i-use) below.
Set a **Progress Message** if you want something other than Atom's default. Leave it blank to use the auto-generated message.
See [Message templates](#message-templates) for ready-to-use examples.
Under the inline pill color settings, adjust the background, border, and emphasis color to match your brand.
The most impactful setting is **Inline Pill Emphasis Text** — the accent color on the key phrase like "2 more items".
***
## Which layout should I use?
| Layout | Choose when | What shoppers see |
| ------------- | ------------------------------------------------------------------------------------ | ----------------------------------------------- |
| **Inline** | The offer relates to a specific product — Buy X Get Y, bundles, quantity-based deals | Message directly below the qualifying cart line |
| **Accordion** | Your store runs several offers at once, or you want all upsells grouped in one place | Collapsible section at the top of the cart |
If you're not sure, start with **Inline**. It feels contextual and works well for most product-based offers. Switch to **Accordion** if you have more than two or three active offers running at the same time.
To see how each layout looks, visit [Cart Upsells](/upsells/overview#what-shoppers-see).
***
## Message templates
Atom generates a default message for each offer type. Use these as starting points for custom messages.
### Buy X Get Y
```
Add **[PROGRESS_VALUE] more** to unlock [DISCOUNT]
```
Shopper sees: **Add 1 more item** to unlock Buy 3 Get 1 Free
### Spend threshold
```
Spend **[AMOUNT] more** to unlock [DISCOUNT]
```
Shopper sees: **Spend \$15.00 more** to unlock 10% Off
### Next tier (tiered discounts)
```
Add **[PROGRESS_VALUE] more** to reach tier [NEXT_TIER] of [DISCOUNT]
```
Shopper sees: **Add 2 more items** to reach tier 3 of Volume Saver
### Success message
Shown when the shopper qualifies. Only visible when **Show Completed Upsells** is on.
```
You got **[DISCOUNT]**!
```
Shopper sees: You got **Buy 3 Get 1 Free**!
***
## Message tokens
### The two you need
For most offers, you only need:
| Token | Resolves to |
| ------------------ | ---------------------------------------------------------------------- |
| `[PROGRESS_VALUE]` | Remaining quantity or amount, chosen automatically based on offer type |
| `[DISCOUNT]` | Offer name (e.g. "Buy 3 Get 1 Free") |
Use `[PROGRESS_VALUE]` as your default. It formats as a quantity for item-based offers and a currency amount for spend-based offers — you don't need to know which.
### Emphasis styling
Wrap any text in `**double asterisks**` to highlight it in your accent color:
```
Add **[PROGRESS_VALUE] more** to get [DISCOUNT]
```
Without `**...**`, Atom auto-highlights the "N more" phrase in default server-generated messages:
### Advanced tokens
Use these when you need precise control over the message format.
| Token | Resolves to | Use when |
| ---------------- | ------------------------------------------ | ----------------------------------------------------------- |
| `[AMOUNT]` | Currency amount remaining (e.g. "\$15.00") | Spend-based offers, when you specifically want the amount |
| `[QUANTITY]` | Item count remaining (e.g. "2") | Quantity-based offers, when you specifically want the count |
| `[CURRENT_TIER]` | Current tier number | Tiered offers only |
| `[NEXT_TIER]` | Next tier number | Tiered offers only |
***
## Styling inline pills
These settings only apply when **Upsell Layout Mode** is **Inline**. Accordion upsells use your theme's existing typography and colors.
### Colors
The four color settings that matter most:
| Setting | Default | What it controls |
| ----------------------------- | --------- | ------------------------------------------------- |
| **Inline Pill Emphasis Text** | `#c1307a` | The accent color on highlighted text — start here |
| **Inline Pill Background** | `#f8f2f6` | Pill background fill |
| **Inline Pill Border** | `#e7c2d8` | Pill border |
| **Inline Pill Text** | `#3c3c3c` | Regular message text |
Most stores only need to change **Inline Pill Emphasis Text** to match their brand color.
### Typography
| Setting | Default | Range | What it controls |
| --------------- | ------- | -------- | ---------------------------------------------------------- |
| **Font Scale** | 92% | 80–120% | Size relative to surrounding cart text — adjust this first |
| **Font Size** | 13 px | 11–18 px | Absolute size override |
| **Font Weight** | 500 | 300–900 | Weight for regular text |
Start with **Font Scale** — it keeps the pill proportional to your theme's text rather than setting an absolute size.
### Shape
| Setting | Default | Range |
| ----------------- | ---------------------- | -------- |
| **Border Width** | 2 px | 0–6 px |
| **Border Radius** | 999 px (fully rounded) | 0–999 px |
### Offer name
| Setting | Default | What it does |
| ---------------------------------- | ------- | ------------------------------------------- |
| **Show Offer Name In Inline Pill** | Off | Prepends the offer title before the message |
| **Bold Offer Name In Inline Pill** | On | Bolds the offer title when shown |
Most stores leave these off. Turn on **Show Offer Name** if you run multiple offers and shoppers need to know which deal the message relates to.
***
## Advanced theme placement
Most stores should leave these settings alone. Only change them if upsells are appearing in the wrong position. Incorrect values can prevent upsells from appearing entirely.
These settings control how Atom inserts upsell elements into your cart's HTML. If your theme uses non-standard cart markup, the default detection may not place upsells correctly.
### Cart row identity strategy
In inline mode, Atom matches each offer to the correct row in your cart's HTML. The default works for most Shopify themes.
| Value | When to use |
| --------------------------- | ----------------------------------------------- |
| **Line Item Key** (default) | Most themes — Shopify's standard row identifier |
| **Variant ID** | Theme doesn't expose line keys on cart rows |
| **Product Handle** | Theme uses product handle as the row identifier |
| **Title Fallback** | Last resort — matches by visible product title |
### Inline position
| Value | Description |
| ------------------------------- | ------------------------------------------------ |
| **Inside row footer** (default) | Pill sits inside the row's footer area |
| **Between rows** | Pill inserted as a separate element between rows |
### Inline row placement
Only applies when **Inline Position** is **Between rows**.
| Value | Description |
| ------------------------------- | --------------------------------------------- |
| **Below matched row** (default) | Pill directly after the qualifying cart line |
| **Above matched row** | Pill directly before the qualifying cart line |
### Cart drawer insert mode
Controls how accordion upsells attach to the drawer container.
| Value | Description |
| -------------------------- | -------------------------------------------- |
| **Default** | Atom picks the insertion point automatically |
| **Top of container** | Prepended to the top of the drawer |
| **Before target selector** | Before a CSS selector you specify |
| **After target selector** | After a CSS selector you specify |
***
## Custom theme selectors
Leave these blank unless you know what you're doing. Incorrect selectors will stop upsells from appearing.
If Atom can't locate your cart drawer or cart rows automatically, you can provide CSS selectors as JSON objects in the **Drawer DOM Overrides** and **Cart Page DOM Overrides** fields.