Free gift progress
Chapter 11 of the Peel user guide.
Free gift progress turns "how much more for the free one?" into a bar. A sentence and a chunky bar sit at the top of the bag drawer and in the cart page's summary, with a die-cut marker for each reward: "Spend $10 more for a free sticker." When the bag reaches the amount, the marker flips to a tick, the gift appears in the bag by itself as a line tagged Free gift, and the sentence moves on: "Spend $11.50 more for free shipping. Free sticker added." If the bag drops below the amount, the gift quietly leaves again.
Peel adds and removes the gift. It can't make the gift free. That takes a Shopify discount, which you create once. Until you do, a gift line carries its real price, with no Free gift tag, and the shopper is charged for it.
The bar is on in every preset, promising a reward with no gift product behind it, so it says "Free sticker unlocked" and nothing goes in the bag. Finish this chapter before you publish, or turn off Theme settings › Free gift progress › Show the free-gift bar.
Set it up
Step 1: create the gift product.
- In admin, go to Products and add a product: the sticker you're giving away. Give it a real price, such as $3.00, and one variant. If it has more than one, the theme adds the first one in stock.
- Set its stock, and track it if you want the gift to run out when you do.
- Add the tag
free-gift, so step 2 can leave it out. - Make sure it's published to your Online Store sales channel.
- In the Status section, choose Unlisted and Save. An Unlisted product can be sold, but it doesn't show up in search, collections or recommendations, so nobody browses to it and it stays out of your grids.
Step 2: create a collection of what counts towards the gift.
The discount needs a list of products to measure the spend against, and it has no "all products" choice. So make one collection of everything you sell, with the gift left out:
- In admin, go to Products › Collections and create a collection. Call it "Counts towards the free gift".
- Add a condition, so new products join by themselves: Tag does not include
free-gift. - Save. You don't need to add it to a menu.
Step 3: create the discount.
- In admin, go to Discounts and click Create discount.
- Choose Buy X get Y.
- Under Method, choose Automatic discount, and give it a Title, such as "Free sticker". Shoppers see this at checkout.
- Under Customer buys, choose Minimum purchase amount and enter the same number as Spend this much, such as 20.00. Under Any items from, choose collections and add the collection from step 2.
- Under Customer gets, set the quantity to 1. Under Any items from, choose products and add your gift. Under At a discounted value, choose Free, which is 100% off.
- Tick Set the maximum number of uses per order and enter 1.
- Under Eligibility, leave All customers.
- Under Combinations, tick any discount classes it should work alongside, such as the shopper's discount codes.
- Set Active dates to start today, with no end date, and Save.
Step 4: tell the theme. In Theme settings › Free gift progress, set Spend this much to the same amount, choose your Gift product under First reward, and rewrite Reward name and the two messages if your gift isn't a sticker.
Step 5: test it. Open your store in a private window and add products up to the amount.
| The gift line in the bag shows | What it means |
|---|---|
| Free gift and Free | It's working. Check that the total at checkout agrees. |
| A price, and no Free gift tag | The discount isn't applying, and the shopper will be charged. There's no Remove on a gift line, so they can't take it out. Check the discount's minimum, its collection and its gift. |
| No gift line, and the bar says "Free sticker unlocked" | No Gift product is chosen, or the gift can't be sold: check its status and that it's published to the Online Store. |
Then take the bag back under the amount and check that the gift leaves.
The gift's own price, and the minimum
Three numbers have to agree, and the gift's price is the one that catches people out.
The bar never counts the gift. It adds up the line prices of everything else in the bag, so a $3 gift can't pay for itself. With $18 of stickers, the bar stays at $18, and no gift is added.
The discount counts what's in its collection, at full price. With the gift left out of the collection, the minimum is simply your Spend this much: 20.00 for a $20 reward. That's why step 1 tags the gift and step 2 leaves it out.
If the gift is in the collection, its price counts. The minimum would then be reached by $17 of stickers plus a $3 gift, by anyone who adds the gift by hand through its direct link. If you can't keep it out, set the minimum to Spend this much plus the gift's price: 23.00 for a $20 reward with a $3 gift.
Don't use Amount off products at 100% on the gift. It looks like the obvious choice, but Shopify measures that discount's minimum against the selected products only. With only the gift selected, the bag's other products don't count, a minimum of 20.00 can never be reached, and every shopper pays for their gift.
If you run other product discounts, the two counts can drift apart in a few cases. The bar counts lines after their discounts, so a sale can keep a bag under the amount even when Shopify's full-price count is over it: there's no gift, and no harm done. The other way round, Shopify doesn't count an item in the minimum if a combinable product discount is already on it, so a bag can reach the bar's amount and get the gift line while the discount doesn't apply. Test a sale before you run it, as in step 5.
Second reward and free shipping
Second reward works the same way, with its own gift, amount and discount. The rewards sort themselves by amount, so you can enter them either way round, and a shopper who reaches both keeps both gifts. Set the minimum of each discount to its own amount.
A milestone with nothing added is a reward with no Gift product: the bar shows it and the bag adds nothing. Use it for something you handle yourself. When it's reached, the bar says "[Reward name] unlocked" and leaves out Message once it is reached, because nothing was added.
Free shipping joins the bar as the last step when Theme settings › Commerce › Free shipping over is above 0, with a truck for a marker: "Spend $11.50 more for free shipping", then "Free shipping unlocked". That amount, and those words, only change the theme's messages: set the real free shipping rate in Settings › Shipping and delivery. To reword it, go to Edit default theme content (chapter 2).
What shoppers see
| Where | What it says |
|---|---|
| The bag (drawer and cart page) | The sentence, the bar with its markers, and labels under them: "$20 free sticker", "$35 free shipping". Markers are evenly spaced, so two close amounts never collide on a phone, and the fill reaches each marker exactly at that amount. |
| The product page | The nudge under the add button: "Add this and you're $14.50 away from a free sticker." It counts the bag plus this variant against the next reward, and takes the reward's name from your message, after "[amount] more for". A message written another way shows whole. |
| The gift line | The product, a Free gift tag and Free, with no stepper and no Remove, because the bag adds and takes it. With no discount it shows its real price and no tag. |
The sentence is the next reward's Message before it is reached, then the latest reached reward's Message once it is reached, or "[Reward name] unlocked" if there's no gift in the bag to go with it. With everything reached, it's every "reached" message in order. With an empty bag, or no rewards set, there's no bar. In the theme editor the bar shows a sample at 62%, and the gift is never added while you're editing.
Limits
- Buy it now and accelerated checkout skip the bag, so those shoppers get no gift. To send everyone through the bag, turn off Show accelerated checkout buttons in the Buy buttons block.
- Only shoppers paying in your store's currency see the bar or get the gift, because the amounts can't be converted reliably (chapter 14). A gift already in a bag leaves if the shopper changes currency.
- Without JavaScript the bar shows but no gift is added.
- The gift's stock is real. A sold-out gift can't be added, and the bar reads "Free stickers are all gone for now" while it still fills. That sentence is fixed text: to reword it, for a washi sample say, go to Edit default theme content (chapter 2).
- The bag counts the gift in its item count, because it's a real thing in the bag. It also counts for shipping weight, so give it a realistic weight.
- Turning the bar off stops gifts being added or removed. A gift already in a bag becomes an ordinary line, with a stepper and a Remove.