
On this page
- Key takeaways
- Why discovery sets deserve their own build
- Step 1: Requirements (the questions to answer before anyone builds)
- Which format are you selling?
- What does the set lead to?
- The full requirements list
- Step 2: Setup
- Fixed sets: Shopify's free Bundles app is often enough
- Pick-your-own sets: you need a mix-and-match builder
- Help shoppers choose without a quiz
- Step 3: The credit toward a full-size bottle
- Rules that keep the credit honest
- How to issue the code on Shopify
- Price the set so the credit makes sense
- Step 4: Edge cases to design for
- Shipping: perfume isn't like other samples
- Step 5: Tests before launch
- Step 6: Handoff
- What to measure after launch
- Common mistakes
- A worked example
- FAQ
Short answer: A fragrance discovery set on Shopify works best when it's built as a small, rule-based bundle. Decide whether shoppers pick their own scents or buy a fixed set. Track every vial as stock. Give buyers a single-use credit toward a full-size bottle that expires. Then test sold-out scents, gift orders and returns before launch. Shopify's free Bundles app handles fixed sets. A pick-your-own set needs a mix-and-match app such as Push Bundle.
Nobody can smell a website. That's the whole reason discovery sets exist. A shopper who would never spend $150 on a perfume they've only read about will happily spend $25 to try six of them on their own skin, at home, for a week.
But a discovery set only works if two things happen. The sample box has to be easy to buy. And the box has to lead somewhere: to a full-size bottle, bought from you, not from a department store down the road.
This guide is for fragrance brands and the Shopify developers and agencies who build their stores. It follows the order a real project should follow: requirements, setup, edge cases, tests and handoff. It also covers the parts most discovery set guides skip, such as what happens when one scent sells out, how the "credit toward full size" code actually works, and why your shipping settings matter more for perfume than for almost anything else you sell.
Key takeaways
A discovery set is a conversion tool, not a product line. Design it around the full-size purchase that should follow.
Pick one of three formats first: a fixed set, a pick-your-own set, or a scent-family set. The format decides which Shopify tools you need.
Shopify's free Bundles app supports fixed bundles. It doesn't support mix-and-match, and bundles can't include subscriptions or pre-orders (Shopify Help Center).
Track vials as inventory. If one 2 ml vial runs out, the whole set has to know.
The credit toward a full-size bottle should be a single-use code with an expiry date, issued to the buyer, not a public code anyone can share.
Alcohol-based perfume is a flammable liquid for carriers. Check your shipping rules before you promise express delivery on samples.
Why discovery sets deserve their own build
It's tempting to treat a discovery set as one more product. Add a product called "Discovery Set", set a price, upload a photo, done.
That works for about a week. Then the questions start.
A customer wants to swap the woody scent for the floral one. Another bought the set as a gift and wants the full-size credit to go to the recipient. The 2 ml vials of your best seller run out on a Thursday, but the set keeps selling because Shopify has no idea those vials are inside it. Someone posts the "SAMPLE20" credit code on a coupon site, and suddenly people who never tried a sample are getting $20 off your full-size bottles.
None of these are rare. They're what happens when a sample box is set up like a single product.
Real brands handle the credit part in different ways. Phlur's discovery set contains eight 2 mL samples and, at the time of writing, unlocks a $20 credit toward a full-size fragrance. &Horace's discovery kit gives $10 off the smaller full size or $15 off the larger one. Multi-brand perfume retailers like Ministry of Scent, which runs on Shopify, sell pre-made sample sets ranging from five vials to well over thirty.
Different setups, same idea: the sample is the first date, and the full-size bottle is the relationship.
Step 1: Requirements (the questions to answer before anyone builds)
Most discovery set problems are decided in the first meeting, not in the theme code. If you're an agency, run these questions with the brand before you quote. If you're the brand, have answers ready before you brief anyone.
Which format are you selling?
There are three common formats, and each one needs different tools.

Fixed set. Everyone gets the same vials, usually the whole collection. Simple to sell, simple to pack. Works well for brands with eight to twelve scents.
Pick-your-own set. The shopper chooses, say, five scents out of fifteen. More personal, more work. This is the format that breaks most often.
Scent-family set. Pre-built mini sets, such as "fresh", "warm" or "woody". A middle ground: still fixed for packing, but the shopper feels guided.
If you have more than a dozen scents, a pick-your-own set is usually worth the extra setup. Nobody wants to pay for vials of a gourmand vanilla they already know they'll hate. If you have six scents, a fixed set is cleaner, and the shopper doesn't have to make choices they're not ready for. They came to the set because they didn't know what to pick.
What does the set lead to?
Write down the next purchase you want. Usually it's one of these:
A full-size bottle, with a credit from the set.
A travel size, for buyers who aren't ready to spend on a full bottle.
A second discovery set from a new collection.
This decision shapes the credit code (Step 3), the follow-up emails and the thank-you page. If you skip it, the set becomes a cheap product that sells well and leads nowhere.
The full requirements list
Agree on all of these in writing:
Question | Example answer |
|---|---|
Format | Pick 5 of 14 scents |
Vial size | 2 ml spray |
Price | $28 |
Can the shopper pick the same scent twice? | No |
Credit toward full size | $28 back as a single-use code, valid 60 days |
Who gets the code on gift orders? | The buyer, with an option to forward |
What happens when a scent sells out? | Hidden from the builder; set stays on sale if 5 or more scents are left |
Sold at the shop counter too? | Yes, through Shopify POS |
Shipping | Ground only for samples, see shipping notes |
Returns | Sample sets are final sale; credit code is cancelled if the set is refunded |
The last row tends to cause arguments. That's good. Better to argue in a meeting than over a refund email.
Step 2: Setup
Fixed sets: Shopify's free Bundles app is often enough
If every buyer gets the same vials, start with Shopify's own Bundles app. It's free and it builds fixed bundles from existing products. The key part for discovery sets is inventory. According to the Shopify Help Center, the component with the lowest stock decides how many bundles can be sold. Each component's available stock is divided by the quantity one bundle needs, and the result is rounded down.
So if your set holds one vial of each of eight scents and you have 40 vials of seven scents but only 12 of the eighth, you can sell 12 sets. Not 40. That's exactly the behaviour you want.
Know the limits before you commit:
The Shopify Bundles app doesn't support mix-and-match bundles.
Bundles aren't compatible with purchase options such as subscriptions, pre-orders and try-before-you-buy.
Bundles can't contain other bundles.
Bundles don't have their own shipping profiles. Rates come from the products inside.
Bundles can't be imported, exported or bulk edited.
For a deeper breakdown, our Push Bundle team has a full post on Shopify native bundle limitations.
Pick-your-own sets: you need a mix-and-match builder
A "pick 5 of 14" set needs rules Shopify Bundles doesn't have: a minimum and maximum number of picks, a rule on duplicates, and a live count as the shopper builds. That's the job of a mix-and-match or build-a-box app.
Push Bundle is one option. Its Growth plan ($14 a month at the time of writing, with a 14-day free trial) includes Build-a-Box and Mix & Match bundles, min and max quantity and variant limits, and a multi-step builder. The App Store listing says bundles show in the cart as a single product with inventory synced, and that they work in Shopify POS, which matters if you sell sets at a shop counter or a pop-up.

A sensible build for a "pick 5" set:
Create each sample vial as its own product (or one product with a variant per scent). Turn on inventory tracking.
Hide the vial products from search and collections, so shoppers can't buy a single vial by accident unless you want them to.
Create the discovery set in your bundle app with a minimum and maximum of 5 picks.
Set the duplicate rule. Most brands allow one of each scent, because the point is discovery.
Show the scent notes inside the builder, not on a separate page. Shoppers choose on notes, so put them where the choice happens.
Set the bundle price. A fixed price per set is easier to understand than a sum of vial prices.
Whatever app you use, check it against the edge cases in Step 3 before you sign off. Our post on why mix-and-match bundles don't convert, written for Push Bundle, lists the usual design mistakes, such as hiding the progress count or making shoppers scroll back to check what they've picked.
Help shoppers choose without a quiz
Many fragrance brands think they need a scent quiz before the builder. Some do. Most need something simpler first: clear notes, written the way people talk.
"Bergamot, pink pepper, vetiver" means a lot to a perfumer and very little to someone buying their first niche fragrance. Pair the notes with a plain-language line. "Fresh and peppery, like a clean shirt on a hot day" tells the shopper what they'll actually experience. It's specific, and they can picture it.
Three small additions help more than a long quiz:
Scent family tags on every vial: fresh, floral, woody, warm, gourmand.
A "start here" preset of five, so undecided shoppers can accept a sensible default and still swap one or two.
A short line on how to test, such as "spray on skin, wait 20 minutes, check again after two hours". It sets up a better first experience, and a better experience means fewer "they all smelled the same" reviews.
If your brand also teaches through content, shoppable beauty tutorials from our EmbedUp team show how to let readers buy straight from a how-to post. A "how to test a perfume sample" article with the set embedded is a natural fit.
Step 3: The credit toward a full-size bottle
This is where discovery sets either pay for themselves or quietly lose money. The credit is the bridge from a $28 box to a $140 bottle, so build it carefully.

Rules that keep the credit honest
One code per set, single use. A shared public code ends up on coupon sites within days.
Issued to the buyer. Send it by email after the order is fulfilled, not on the order confirmation. Sending after delivery gives the shopper time to actually test.
An expiry date. 30 to 90 days is common. Long enough to test and decide, short enough to keep the decision warm.
Limited to full-size products. The code shouldn't work on another discovery set, or the shopper can loop credits forever.
Cancelled on refund. If a set is refunded, the code should stop working.
How to issue the code on Shopify
There are two practical ways.
Unique codes, sent by email. Many email tools that connect to Shopify, Klaviyo among them, can create a unique Shopify discount code for each person in a flow. Trigger the flow on fulfilment and the buyer gets their own code. This is the most common setup.
A discount app with personalised codes or order-history targeting. For example, DiscountRay lists bulk and personalised discount codes on its Growth plan ($14 a month), and personalised customer discounts and order history-based targeting on its Pro plan ($29 a month). That lets you build an offer only for customers who've bought the discovery set. Test it with a real order before launch, and check it against your other promotions.
The last point matters in Q4. If your store runs a sitewide 20% offer and the discovery set credit at the same time, decide whether they combine. Shopify only stacks discounts that are set to combine, and the rules differ for product, order and shipping discounts. Our DiscountRay post on Shopify discount stacking explains the combinations in detail.
Price the set so the credit makes sense
A common pattern is "the set pays for itself": the full credit comes back as money off the full-size bottle. It's an easy promise to understand, and it removes the shopper's main objection, which isn't "I don't like samples". It's "I'll spend $28 and still not know what to buy, so that's $28 wasted."
The full-credit model isn't free, though. Do the margin maths before you announce it. Our Push Bundle team's guide to Shopify bundle profit margin has a simple way to check a bundle's best and worst case. A partial credit, like &Horace's $10 or $15, is a perfectly good middle ground.
Step 4: Edge cases to design for
Every one of these will happen in your first busy month. Decide the answer now and write it into the build.

One scent sells out. In a pick-your-own set, hide or grey out the sold-out vial and keep the set on sale as long as there are enough scents left to fill it. In a fixed set, the whole set stops, so set a low-stock alert on vials well above zero. Two weeks of sample stock is a reasonable minimum for a best seller.
A new scent launches. Add it to the builder on launch day. Discovery sets are the cheapest way to get a new scent onto skin, so a launch is also a good moment to email past set buyers.
Gift orders. The buyer and the person testing aren't the same. Send the credit to the buyer with a forwardable note: "If this was a gift, forward this code to the person who's testing." Simple, and it avoids guessing at recipient emails.
The same customer buys three sets. Decide whether each set earns a credit. Most brands say yes, as long as each code is single use.
A set is refunded after the credit was used. Decide your policy now. Most brands make sets final sale, because opened vials can't be resold.
Shop counter and pop-ups. If you sell sets in person through Shopify POS, check that stock comes out of the same vial inventory, and that POS buyers get a credit code too.
Subscriptions. If you want a monthly "scent of the month" sample, remember that Shopify Bundles aren't compatible with subscriptions. Check compatibility with your subscription app before you promise it.
AI shopping agents. According to our Shopify Fall '26 Edition roundup, bundles don't yet work in Google's agent checkout. Keep a plain product page for the set with the full scent list in text, so agents and search engines can still read what's inside.
Shipping: perfume isn't like other samples
A box of six 2 ml vials looks harmless. To a carrier, alcohol-based perfume is a flammable liquid. USPS, for example, has specific rules for mailing ethanol-based products by air, including an authorization number and package markings, and limits on how much liquid each container and each parcel can hold. The Compliance Center summarises the USPS air rules, and the official rules are in USPS Publication 52.
Practical takeaways:
Don't promise express or air delivery on sample sets until you've confirmed your carrier and service allow it.
Check international shipping separately. Rules change by country and carrier.
Pack vials so they can't rattle or leak. A snug insert is cheaper than a reshipment.
If you're unsure, ask your carrier rep or 3PL directly. This is one area where "we've always shipped it like that" isn't a good enough answer.
Step 5: Tests before launch
Run every test as a shopper, on a phone, with real products and a real discount code. Don't test only in the theme editor.

# | Test | Pass looks like |
|---|---|---|
1 | Pick 5 scents and add to cart | One set line in the cart with all 5 scents listed |
2 | Try to pick a 6th scent | Builder stops at 5 with a clear message |
3 | Try to pick the same scent twice | Blocked, if duplicates aren't allowed |
4 | Set one vial to 0 stock | Scent shows as sold out; set still sells with enough scents left |
5 | Set stock so only 4 scents remain | Set can't be completed, with a message saying why |
6 | Buy the set and fulfil the order | Credit code arrives at the agreed time |
7 | Use the code on a full-size bottle | Correct amount off, once |
8 | Use the same code again | Refused |
9 | Use the code on another discovery set | Refused |
10 | Combine with a sitewide offer | Matches your stacking decision |
11 | Refund a set | Code stops working |
12 | Sell a set at POS | Vial stock goes down; buyer gets a code |
Also check the order in the admin. The packer should see every scent in the set, clearly, without opening the app. A pick list that says "Discovery set x1" and nothing else will produce wrong boxes during a rush.
Step 6: Handoff
If you're an agency, the project isn't done when the builder works. It's done when the brand's team can run it without you. Hand over:
A scent and vial map. Every scent, its vial product, its SKU and its full-size product.
The rules sheet. Picks per set, duplicates, sold-out behaviour, credit amount and expiry.
A how-to for new scents. The five steps to add a scent to the builder and the vial to inventory.
A code report. How to see codes issued, codes used and revenue from full-size bottles bought with a code.
A reorder trigger. The stock level at which someone orders more vials.
The code report is the one most teams forget. Without it, nobody can answer the only question that matters: are discovery sets turning into full-size sales?
What to measure after launch
Track three numbers each month:
Set-to-full-size rate. Of the customers who bought a set, how many bought a full-size bottle within 90 days?
Credit redemption rate. How many codes were used before they expired?
Which scents get picked versus which get bought. A scent that's picked often but rarely bought in full size may need better notes, or it may simply be a great sample and a hard full-size sell. Either way, you'll learn something you couldn't learn from a store without sets.
If you're comparing this kind of build with other beauty projects, our eFoli post on Shopify agencies that understand skincare routines covers how agencies approach routine builders, which have similar rules but a different end goal.
Common mistakes
Using a public code for the credit. It gets shared. Use single-use codes.
Not tracking vial stock. The set sells on after a scent runs out, and someone has to email the customer.
Asking shoppers to choose without notes. Nobody knows what "Opus 7" smells like.
Too many choices. Picking 5 from 40 isn't discovery. It's homework. Use scent-family presets for big ranges.
Sending the credit too early. Before delivery, the shopper hasn't tested anything yet, and the code feels like spam.
Forgetting the counter. POS sales that don't draw from the same vial stock make your online stock wrong.
A worked example
This is a made-up but typical setup. An independent fragrance house has 14 scents and sells online and at weekend markets.
Format: pick 5 of 14, plus three presets (Fresh, Floral, Warm) for undecided shoppers.
Price: $28 for five 2 ml sprays.
Credit: $28 off any 50 ml bottle, single use, sent five days after the set is fulfilled, valid 60 days.
Stock rule: a vial alert at 60 units. The set stays on sale while at least 8 scents are in stock.
Shipping: ground only for orders that contain only sample sets.
POS: sets sold at markets through Shopify POS, from the same vial stock.
After the first two months, the team noticed that one woody scent was picked in almost a third of sets but rarely bought in full size. They rewrote its notes from "oud, saffron, leather" to "smoky and dry, like a wood fire the morning after", and moved it out of the "start here" preset. Whatever you change, the point is that a well-built discovery set gives you feedback you can act on.
FAQ
What is a fragrance discovery set?
Can I sell a discovery set with Shopify's free Bundles app?
How do I let customers choose their own samples on Shopify?
How should the credit toward a full-size bottle work?
How many samples should a discovery set have?
Can I ship perfume samples by air?
What happens when one scent in the set sells out?
Do discovery sets work with subscriptions?
Anika Anamta Mehnaz
This article is written by Anika Anamta Mehnaz, a Content Writer and Content Marketing Strategist specializing in Shopify, eCommerce, and SaaS. With over four years of content writing experience, she creates SEO and AI search-optimized content that helps Shopify merchants make better business decisions through practical, research-backed insights. Her work covers Shopify apps, product variants, bundles, discounts, B2B commerce, and conversion-focused strategies. Outside of work, Anika enjoys watching anime, reading John Grisham novels, and discovering new ideas in digital marketing and e-commerce. If you enjoy discussing Shopify, content marketing, or online growth, feel free to connect with her. Twitter: https://x.com/mehnaz2201 Medium: https://medium.com/@mehnaz_78932
Keep reading
View all articles →
The Customer Bought the Tent. Who Remembered the Sleeping Bag?
November 13, 2026 • 18 min read

The Embedded Commerce Playbook for Brands With Reseller Websites
November 13, 2026 • 17 min read

The Roses Are Gone. The Orders Keep Coming. Why Florists Oversell on Shopify
November 13, 2026 • 18 min read