SnugWell (snugwell.com.au) November 3, 2026 Upsell fit analysis

One pillow store, one clear lever

72.3% of SnugWell orders contain a single item, and one product, the Therapeutic Pillow, is in 84.6% of them. The growth lever is the 1-to-2-pillow transition, and Kaching Bundles already owns that mechanic with a live 2-for-15% deal. So the Upnova build goes where Kaching is not: a cross-product Recovery Kit bundle builder and a free-gift threshold. Two offers built and parked inactive; the second-pillow BXGY was built, then rejected and archived. Nothing is live.

Orders analyzed3,436Last 90 days, Online Store
Native AOVA$79.85Median order: A$64.95, exactly one pillow
Single-item orders72.3%Case A signal, but Kaching owns the volume mechanic
Pillow share of orders84.6%2,423 of 2,865 sampled orders

Sitewide offer check: the 50% off is the price, not a promo

The storefront runs a permanent "Spring Sale 50% Off + Free Delivery" announcement bar, but the mechanics live in compare-at pricing: the pillow sells at A$64.95 against a A$129.90 compare-at on every variant. There is no sitewide discount code to replace or stack against. The email capture ("Enter your email and get 10% OFF") is a list incentive, not a sitewide offer. Verdict: Upnova offers compete on top of the marked-down prices above, and no replacement decision is needed.

Existing deals inventory

Kaching Bundles is live and doing real volume. Quantity-break deals per SKU, read from the live storefront config:

SKU familyTiers liveEvidence it works
Therapeutic Pillow2 for 15% off, 3 for 20% off, each with a free gift430 orders used the "2 Pillows" discount in 90 days
Massager2 for 10% off, with a free gift268 orders used the "1 Massager" discount
Cushion2 for 10% off, 3 for 20% off7 orders used "2 Cushions"
Belt2 for 10% off, 3 for 20% offSmall: 1 order
Bamboo Align Pillow2 for 10% off, 4 for 20% off2 orders
Eye Mask2 at a set price, 3 at a set price plus a free gift2 orders
Sciatica ebookAttached free to pillow and massager deals717 orders carried it at A$0.08 net

Upnova state on the store: the cart drawer (cart-winston) is already installed and heavily styled to the brand, and one automatic product-recommendation widget (bottom of cart, flow 9873) is active from an earlier session. All three earlier offers were switched off before this analysis.

Order size decides the offer type

Counting actual items per order across 2,865 sampled orders (83.4% of all orders, two date windows): 2,071 contain one item. The store is Case A, which points to Buy X Get Y as the lead play.

Items per order, 2,865 sampled orders

Nearly three quarters of orders are single-item. Source: ShopifyQL sales grouped by order and product title, Aug 5 to Nov 3, 2026.

Order value distribution, 3,210 sampled orders

The distribution peaks exactly at one pillow: A$58.46 with WELCOME10, A$64.95 without. The next cluster sits near A$95 to A$130, which is pillow plus an add-on. Native AOV A$79.85.

X is unambiguous: the Therapeutic Pillow

Chosen by order count, not revenue. The pillow appears in 2,423 of 2,865 sampled orders; the next real product (the massager) appears in 252. And 16.0% of pillow orders already contain two or more pillows, driven by the Kaching 2-for-15% deal. That 16% is the free-rider floor any second-pillow offer inherits.

What else is in the cart on pillow orders

Share of the 2,423 pillow orders containing each other product. The ebook is a free Kaching add-on, so the only paid attach that matters is the pillow cover at 7.4%.

Discount inventory and stacking

Discount usage over the last 90 days, from ShopifyQL:

Discount usage by title, 90 days

WELCOME10 alone touched 55% of all orders. The Kaching quantity-break titles are the next block.
DiscountStatusCombines with product discounts
WELCOME10 (code, 10% off)Active, no end dateYes: product-discount combination is enabled, so it stacks with Upnova BXGY
Kaching quantity breaks (2 Pillows, 1 Massager, etc.)Active, automaticPrice-rule style discounts; stacking with an Upnova BXGY on the same units must be tested before both run

No popular code blocks product-discount combination, so nothing needs to be reconfigured before Upnova offers go live. The one real stacking risk is Kaching's own "2 Pillows 15%" bar versus the Upnova second-pillow offer, covered in the verdict below.

Brand style detection

Read from the live DOM, not theme CSS guesses: product titles render in Figtree (computed style on the pillow PDP h1), the buy button is #2488ea, and the theme's radius tokens are 14px on buttons and inputs, which is a rounded aesthetic. The installed cart-winston template is the correct rounded variant, the brand color is already stored in cart settings, and the merchant's custom CSS already pulls Figtree into widget titles. No style changes are needed.

The offers, built and parked

Status: two offers are inactive, one was built and then rejected and archived. Nothing is live. Review links are in Upnova admin under each offer.

Offer 1: Recovery Kit bundle builder (offer 1795)

Pick pool8 products: pillow, massager, cushion, belt, eye mask, power bank, pillow cover, bamboo align pillow
TiersBuy 2, save 10%; Buy 3, save 15%
HeadlineRichtext, verified in the isolated preview: bold 28px "Build Your Recovery Kit" with the full deal in the subheadline, "Any 2 items save 10%, any 3 save 15%"
Why it fitsIt is the only surface Kaching does not own. Kaching runs per-SKU quantity breaks; the bundle builder sells cross-product kits (pillow plus massager, pillow plus cover), which is where the co-purchase data points next
ReachDedicated bundle page plus entry widgets; new surface, so reach builds from zero
StackingCross-product bundles do not collide with the per-SKU Kaching tiers. Only a shopper bundling multiple units of one SKU would touch both systems
StateOffer 1795 inactive. The first build (1794) had a flat one-line headline and is superseded, its title now says so
BlockerThe bundle builder page template does not exist in the Shopify theme yet. Upnova flags this at creation; the theme template must be added before this offer can go live

Interactive preview, bundle page (real products, draft config)

Bundle builder preview: bold Build Your Recovery Kit headline, full deal subheadline, product grid with prices, Your Bundle sidebar with tier unlocks
Rendered from the isolated bundle-builder preview route with the exact offer config: 8 products, both tiers live in the sidebar (2 more for 10% off, 3 for 15%).

Offer 2: Free Eye Mask over A$95 (offer 2338)

ThresholdA$95. A single-pillow order (A$64.95) crosses it by adding one pillow cover (A$32.95): A$97.90
GiftSnugWell Therapeutic Eye Mask, A$22.95, 3.5% of the threshold, the cheapest real gift SKU that is not already given away free by Kaching
StateOffer 2338 inactive
ReachCart drawer surface: the progress bar renders for every cart session
Free-rider25.2% of orders already sit at A$95 or above and would claim the gift anyway; 74.8% get the nudge to add more. Under the 30% gate
PreviewNo interactive preview surface exists yet for the free-gift offer type (tooling gap, not a store problem). Config above is verbatim from the created offer

Rejected: Buy X Get Y, 20% off a 2nd pillow (offer 3020, archived)

The single-item majority points at a second-pillow BXGY, and one was built as offer 3020 with a linked PDP widget. Then the overlap check killed it: Kaching already runs 2-for-15% on the pillow, used by 430 orders in 90 days, and a 2-for-20%-on-the-second Upnova offer on the same units would stack with it and regress the customer's existing deal (A$116.91 versus the Kaching A$110.42 for two). The mechanic is proven here, which is exactly why Upnova must not duplicate it. Offer 3020 is archived; nothing references it.

Preview of the rejected build, kept as the record

Upnova cart drawer preview of the rejected 20% off a 2nd pillow offer Upnova cart drawer preview: pillow card at A$64.95 against A$129.90 with Add button
The surface worked; the mechanic was the problem. Sample cart holds a massager because the widget correctly suppresses a suggestion already in the cart.

Not built: Order Volume

A A$150 tier would qualify 10.8% of orders. Kept out of the standing stack, campaign use only, to avoid training customers to wait for discounts. Per-SKU volume stays with Kaching.

How the Kaching overlap is resolved

Division of labour, not competition: Kaching keeps per-SKU quantity breaks on every SKU family, Upnova takes the two surfaces Kaching cannot do, cross-product bundles and a threshold gift in the Upnova cart. WELCOME10 combines with product discounts and stacks cleanly on both. No pillow volume offer goes live from Upnova unless Kaching's pillow deal is retired first, and that is a separate decision.

Decision chart, confirmed tier

Four-panel offer-fit decision chart
Order value distribution, multi-unit signals, gift SKU scan, items-per-order. ShopifyQL, Aug 5 to Nov 3, 2026.

What ships next

  1. Add the bundle builder page template to the Shopify theme (prerequisite for offer 1795).
  2. Activate the bundle builder and free gift briefly, verify rendering and discount logic in a real cart, deactivate immediately.
  3. Merchant go-ahead, then activate for real. Store traffic is about 1,400 sessions a day at a 3.7% conversion rate, so signals arrive within days.

Sources and method

Order data: ShopifyQL sales dataset via the Upnova merchant MCP for shop krqjui-nb.myshopify.com, Aug 5 to Nov 3, 2026. AOV: native average_order_value with Online Store channel and excludes_post_order_adjustments filters. Items-per-order and co-purchase: sales grouped by order name and product title in two windows (2,865 of 3,436 orders captured; proportions stable across windows). Order values: gross sales plus discounts per order, 3,210 rows. Store prices: AU-market storefront JSON (the shop's primary market, AUD). Brand style: computed style from the live pillow PDP (Figtree titles, #2488ea buttons, 14px radii). Kaching config: window.__kachingCartBundlesDeals from the live storefront. Reach is the share of SHOPPERS the offer is EXPOSED to (widget placement times how many orders touch that surface), independent of how many qualify. Free-rider is the share of qualifying orders that would trigger anyway.