Every kind of offer. One editor.
Freebies Engine runs 8 kinds of offers from 26 templates, with a live storefront preview, checks at checkout and a clear read on what each offer earns. Experiment Engine tests which version earns more profit per visitor.
- Trigger
- 2Gift
- 3Review
Gifts
Gift with purchase, BOGO, buy X get Y, free samples and gift tiers. A gift costs what the item costs you, not a slice of every order. Shoppers pick their gift, or it's added for them.
Included from Free Gift tiers start on Growth.
Gift selector or auto-add
Let shoppers choose from the gifts you allow, or add one gift for them.
The selector shows only gifts that are in stock and allowed by the offer.
Gift tiers
Spend more, get more: $50 gets one gift and $100 gets two.
Shoppers see the next tier as they add to the cart.
Fallbacks, stock protection and limits
If a gift sells out, a fallback gift takes its place. If every gift is out, Freebies Enginewarns you instead of promising a gift.
The limit counts how many times the gift set is granted, and it never duplicates when a cart re-qualifies.
Gift and inventory rules
Choose a limit per order and per customer, and decide what happens when stock runs low. A gift that runs out is replaced by its fallback, or not promised.
Limits count how many times the gift set is granted, and a cart that re-qualifies never gets a second copy.
Templates · 6
What Shopify checks for you
Set up in the editor · 7 steps
Bundles
Classic bundles, mix and match, and a step-by-step bundle builder, priced as a percentage off, an amount off or a fixed price. Bundles work on a phone, and your team can see them on the order.
Included from Growth The bundle builder page is on Pro.
Bundle saving: $8.70
Cart grouping
Bundle lines stay together in the cart, and the bundle price shows as one saving.
If a shopper removes one item, the bundle price goes away with it.
Mix and match tiers
Let shoppers pick any 3 essentials and save 10%, any 5 and save 15%.
The tier they reach shows as they add items.
2 picked · save 10%
Bundle builder page
One page where shoppers build a box step by step and watch the price update.
Available on Pro.
Templates · 3
Labeled on the order
Every line in a bundle carries a visible Bundle label. When the order reaches your admin, you can see which items were sold together, so packing does not have to guess.
Inventory stays on the products. A bundle changes the price, not your stock.
The variant the shopper chose
Bundles and Frequently Bought Together add the size and color the shopper selected on the product page. A sold-out variant is never swapped in.
Built for mobile
The bundle builder shows a step indicator, clear empty states and tap targets sized for thumbs, so the build-a-box flow works on a phone as well as a laptop.
Multipack: choose your pack
Sell a 1-, 3- or 6-unit pack from one product page. The Multipack block shows a “Choose your pack” picker with one choice per pack size, such as “1 unit” and “3 units”, and an “Add 3 to cart” button.
For a product with variants, the shopper picks a variant for each unit. The units are normal cart lines, so inventory and reports stay accurate, and the discount counts them together.
One-click add-on
A checkbox on the product page adds a related item, such as a travel case or an extra warranty, with one tap. No new page, no pop-up.
What Shopify checks for you
Set up in the editor · 6 steps
Upsells
Frequently bought together on product pages, an extra item inside checkout, and a card on the order confirmation page. Pick the products yourself, or let your own orders choose.
Included from Growth Checkout and thank-you upsells are on Pro. Checkout upsells need Shopify Plus.
Save 10% when you add both
Frequently bought together
Show the matching item on the product page, with a saving for taking both.
Shoppers add the pair in one click.
Checkout upsell
Add one more item inside checkout, where shoppers are already paying.
Available on Pro, and it requires Shopify Plus.
Thank-you page upsell
A card on the order confirmation page shows one product with your discount. A tap on View offer opens the product page; nothing is added to the order they just placed.
Available on Pro.
Automatic: bought together
Turn on Automatic (bought together) and the product page shows what customers most often buy with the product they are viewing. It learns from your paid orders as they come in.
A product is suggested only after at least 3 orders include it with the viewed product. Until then the block shows the fallback products you chose. Only in-stock items are shown.
Frequently Bought Together and volume discounts read the variant the shopper selected, including from ?variant= links.
Templates · 3
What Shopify checks for you
Set up in the editor · 6 steps
Discounts
Volume discounts, cart tiers and cheapest-item deals, with rules you can read, a schedule that fits your week, and totals Shopify calculates at checkout.
Included from Free Cart tiers and cheapest-item deals start on Growth.
Volume and cart tiers
Buy 2, save 10%. Buy 3, save 20%. Or spend $100 and save 5%.
A live table shows the tiers exactly as shoppers see them.
How offers combine
The stacking order says which offer applies first, and combinations say which can apply together.
You can read the result in the cart simulator before you publish.
Weekly schedules
Run an offer only on certain days and times: a Friday happy hour, a weekend sale, a Monday restock. Pick the days, then all day or a time window, in your store's time zone, daylight saving included.
Outside the window the offer stays live in your list, but shoppers do not see it and it does not apply. Cart and checkout switch within about a minute of each start and end.
Every setting does something
Limits per order and per customer, markets with an exact amount for each currency, which products an offer applies to, and when a gift is allowed to run. If a setting is on the page, it is enforced at checkout.
Works with discount codes
Offers can stack with a shopper's code. The review step says whether yours does.
Templates · 3
What Shopify checks for you
Set up in the editor · 6 steps
Codes
One code, thousands of unique codes, or a code that works only from a campaign link. Switch a code to automatic whenever you want, and your codes are kept.
Included from Free Single codes are on every plan, bulk unique codes on Growth, campaign codes on Pro.
One code, many codes, or a campaign link
One code, such as SUMMER10; thousands of unique codes for creators; or a campaign code that works only from your link.
Choose whether shoppers type the code at checkout or the discount applies on its own. If you switch a code offer to automatic, your codes stay saved and are paused until you switch back.
Works with discount codes
Many offer apps block every other code. Yours does not have to. For each offer you choose which kinds of code can stack with it: product, order or shipping. The review step shows Works with discount codes before you publish.
Shopify treats your offers as one app discount, so the most restrictive offer sets the rule for all of them. We tell you which one that is.
Bulk codes
Create a batch of unique codes with a prefix, a length and a character set, then export them as a CSV for creators or a mailing. Each code can be limited to one use per customer and to a date range.
Templates · 3
What Shopify checks for you
Shipping
Free-shipping tiers, and shipping offers for landing pages and quiz bundles. Show the same threshold in an announcement bar, so shoppers see it before the cart.
Included from Growth Landing page and quiz shipping need a developer setup.
Templates · 3
Subscriptions
Reward subscribers box by box, with pricing and shipping that change each cycle. Subscription offers use your store's currency. Prices and thresholds are set in that currency, so a subscriber never sees a number in the wrong one.
Included from Pro Skio shipping per cycle requires Skio.
Templates · 2
Offer launchers, bars and badges
Theme blocks that tell shoppers about your offers before the cart: a launcher that lists today's offers, a progress bar toward the next reward, an announcement bar, an offer badge and a crossed-out price. Each one matches your theme.
Included from Growth
Announcement bar
Say what is on, in one line, on every page. The bar sits at the bottom of the screen so it does not push your header around. Turn it on in the offer's Display step and switch it on in the app embed.
Offer badge
A badge on the product page, such as “Buy 2, save 10%”, for offers that cover the product, a collection or the whole store. Add the Offer badge block to your product template.
Crossed-out price
Show the price before the offer and the price after it, next to each other, on the product page. Shoppers see the saving before they add to cart.
Match my theme
Widgets read your theme's colors, fonts and corner radius, so a launcher or a bar looks like part of your store. Pin any single value if you want a specific color; everything else keeps following the theme.
If your theme is unusual, a small fallback reads the page's computed styles instead.
Templates · 2
Analytics
See what each offer earns, and how orders with an offer compare with orders without. Revenue, orders and average order value, in your store's currency and time zone. An order counts when one of your offers applied at checkout.
Included from Free Per-offer analytics and the comparison start on Growth.
Orders with an offer, orders without
A headline compares the two groups: revenue, order count and average order value. Until there are enough orders on both sides, the page says so instead of showing a number that means little.
This is a comparison, not proof. Shoppers who get an offer can differ from shoppers who do not. To prove an offer is what changed behavior, run it as a test in Experiment Engine.
The attribution definition
An order counts when one of your offers applied at checkout.
We state that definition next to every number, so you know what you're reading.
Share of attributed revenue
Revenue by offer type
See which kinds of offers bring in the most, with direct labels instead of a noisy line.
Switch to a table to read the exact numbers.
Per-offer funnel and attributed orders
For each offer: qualified, added, ordered. Then the list of orders it touched, ready to export as a CSV.
Orders and export are for Admins and Owners.
What Shopify checks for you
Integrations
Send offer events to the tools you already use, and use the data they send back. Nothing here needs a developer unless you want a custom storefront.
Included from Pro Flow, Klaviyo and webhooks are on Pro.
Shopify Flow
Two Flow triggers come with Freebies Engine: Offer applied to an order and Gift added to an order. Use them to tag an order, notify your team or start a loyalty action.
For loyalty, Flow is the bridge. Any loyalty app with a Flow action can receive the event, for example to add points when a customer earns a gift.
Klaviyo
Send gift added, offer qualified and attributed order events to Klaviyo, then build flows and segments on them. Connect with a private API key.
Webhooks
Send the same events to a webhook URL for your email, SMS or support tools.
Cart drawers and page builders
Offers re-check whenever a cart drawer changes the cart. The Diagnostics page lists the drawers and page builders it finds on your home page.
Building
Control
Storefront, theme and checkout
Works with your theme and your cart drawer
Freebies Engine works with Online Store 2.0 themes and with the cart your theme ships. It also re-checks your offers whenever a cart drawer changes the cart, so a gift appears and a progress bar updates without a page reload.
Common cart drawers and page builders are covered through the cart events they publish. We have not tested every app, so the app includes a Diagnostics check that lists the drawers and builders it finds on your home page and tells you what to verify.
If a custom drawer draws its own copy of the cart, it may need one theme block placed in its template. The help guide lists the known limits.
Cart drawers and page builders guide
For developers and headless storefronts
Use Freebies Engine from a Hydrogen or other custom storefront, without a theme. Your storefront sends a cart; the API tells it what the cart qualifies for. It is the same evaluation the theme gets.
Two kinds of key.
A storefront key (starts with mlfp_) is safe in a browser and can only evaluate carts. An admin key (mlfs_) stays on your server and can only read your offers.
Your keys, your control.
Create and revoke keys in Settings, API keys. A key is shown once and stored only as a hash. Each store can hold up to 10 live keys of each kind.
Limited to your domains.
A storefront key lists the store addresses it works from.
Honest about customers.
A browser key cannot prove who the customer is, so offers that depend on the customer (tags, spend, location, one use per customer) are evaluated as for a visitor you cannot identify. Shopify's checkout still applies the right rules.
Team and tools
Experiment Engine by Log Studio Lab
Find the version that earns more per visitor. Run tests on prices, discounts, shipping offers, page templates, checkout and content, with up to five versions at a time. Experiment Engine is a separate Shopify app that runs in your Log Studio Lab account and is billed by Shopify on its own.
| Variant | Visitors | Conversion | Profit / visitor |
|---|---|---|---|
| Control | 4,210 | 3.1% | $1.84 |
| Free tote over $75 | 4,188 | 3.6% | $2.26 |
Test what shoppers actually see.
Example · Discounts test
Compared by profit per visitor.
Split traffic, then trust the result.
- Choose what share of traffic enters the test, and split it between a control and variants.
- Each visitor keeps the same variant every time they come back.
- Results say how sure they are, and a test with too little data says so instead of picking a winner.
- Mutual exclusion groups keep two tests from touching the same visitor.
Choose who enters the test.
- Everyone, or only new visitors, only returning visitors, or visitors from some markets.
- Narrow it to a campaign (UTM), customer tags or specific pages.
- Schedule a start and an end in store time.
Profit per visitor, not just conversion.
- Product cost, taken from Shopify or imported from a spreadsheet.
- Your real shipping cost and payment fees.
- One number to compare: profit per visitor.
Profit tracking starts on Experiment Engine Growth.
What the app does for you.
What you can test
Price: change what shoppers pay for a product, in the cart and at checkout, without editing the price in Shopify.
Templates and content: try a different product page layout, headline, image or button.
Checkout: test content and trust blocks in checkout (Shopify Plus stores).
Discounts and shipping: compare a percentage off with free shipping, or two thresholds.
Offers: test a Freebies Engine offer against another one.
Up to five versions, and a baseline
Test your original against up to four changes at once. Hold back a share of visitors as a baseline who never see any change, so you can tell whether a change helped or whether the audience was just having a good week.
Test several changes at once (multivariate)
What it is. Change two or three things on a page together, such as the headline, the image and the button text, and let the app try the combinations, up to eight in all.
Why it helps. You see which single change matters most and which combination wins, in one test instead of three in a row.
Good to know. It works for content tests, and it needs more visitors than a simple A/B test, because the traffic is split across more versions. Start with one change if your store has modest traffic.
Send more traffic to the leader (optional, off by default)
What it is. By default every test uses a fixed split, such as 50/50. If you prefer, switch a test to “send more traffic to the leader”: the app gradually sends more new shoppers to the version that is winning. Every version keeps at least 10% of traffic, so the test keeps learning.
Why it helps. Fewer sales are lost to a weaker version while the test runs. It suits a short sale or a busy season, when earning during the test matters more than a clean answer.
Good to know. It is not a controlled comparison, because the split changes as the test goes. If you want a clean, defensible answer, keep the fixed split.
Measure what you care about
Add your own events, such as a quiz finished or a sample requested, and use them as the goal. Results show profit per visitor after product cost, shipping and fees.
Safe for Google Shopping and ads
Price tests never change the price in Shopify, so your Google Merchant Center and Meta feeds keep sending the original. Search and ad crawlers, including Googlebot and the shopping and ads crawlers, are never put in a test. They see your original page and price.
Privacy built in
The app waits for your shopper's consent before it sends assignment events to your data layer. Shoppers who have not accepted analytics see the original and are not tracked. Data requests and deletions from Shopify are handled for you.
Apply the winner, and keep measuring
When a template, price or checkout version wins, apply it to everyone from the results page, with the steps to make it permanent in your theme. After you apply it, a panel compares the version during the test with the same version since the rollout, and says plainly that it is not a controlled test. A winning discount is created for you; to run an offer or discount every day, build it in Freebies Engine.
Share and get alerted
Send a read-only results link to a teammate, a client or an agency. Links expire, can be revoked at any time, and show results only. Get an alert by email or in Slack when a test needs attention.
Start from a playbook
Not sure what to test first? Start from a playbook: a ready-made test for a common goal, such as a free-shipping threshold or a price change. Filter your tests by goal to see what you have already tried.
Connect your analytics
GA4: every shopper who enters a test is pushed to your data layer with the test and version, so you can build an audience in GA4. The app can also send assignments to GA4 directly.
Klaviyo: send an “Experiment Viewed” event to Klaviyo so you can segment by version.
Results API: a read-only API and token give your scripts, dashboards and agency reports the same numbers the results page shows.
Session recordings: tag Microsoft Clarity or Hotjar recordings with the version, so you can watch how shoppers use each one.
Check the price on every page
Prices drawn by other apps, such as quick view, search or recommendations, can show the wrong number. Before a price test starts, a readiness check lists the places we cannot cover and what to do about them.
Built so a test can't hurt the store.
Experiment Engine measures. Freebies Engine runs.
Once a test shows a winner, apply it. For a template, price or checkout test, that ships the winning version to everyone from the results page. To run an offer or discount every day with a stacking order and schedules in store time, build it in Freebies Engine from a template. You can use either product on its own.
Experiment Engine plans
Prices in USD, billed through Shopify.
Every feature by plan
See which plan includes what.