Upsell Offers are merchant-controlled promotions that surface alongside the trigger product on the product detail page (PDP) and inside the cart drawer / cart page. They’re powered by Shopify Functions — one Discount Function per offer type plus a shared Cart Transform Function — so the discount and the auto-added gift line both survive checkout authoritatively, even if the customer reloads the page or completes the order on a different device. Two offer types are supported. Both live in the same merchant dashboard, share the same display configuration, and use the same theme blocks — what changes is the trigger condition and how the discount/gift is applied.Documentation Index
Fetch the complete documentation index at: https://docs.glood.ai/llms.txt
Use this file to discover all available pages before exploring further.
The two offer types
Pick Offer (Buy X Get Y)
Trigger by a specific product or variant. When the customer adds X to their cart, they can pick 1+ items from a curated pool — each at a flat price, percent off, or fixed-amount off the regular price.
Free Gift (cart-value tiers)
Trigger by the cart’s subtotal crossing one or more thresholds. The gift variant is auto-added at €0 by the Cart Transform Function — no manual selection, no checkout step.
- Glood Pick Offer (Buy X Get Y)
- Glood Free Gift
Pick offers
A pick offer says “buy this product, and you can add up to N items from this pool at a special price.”| Setting | What it does |
|---|---|
| Trigger | Product- or variant-level. The offer surfaces only when the trigger appears on the PDP or in the cart. |
| Pool | One or more “slots.” Each slot is a pool of candidate products/variants the customer can pick from. The customer picks one from each slot. |
| Pricing | Offer-level default — flat price (e.g. +€1), percent off, or fixed-amount off. Each pool item can override the offer-level price. |
| Slot budget | slotsPerMainQty × mainQty, capped at maxSlots. A trigger added at qty=3 with slotsPerMainQty=1 unlocks 3 slots; the customer picks 3 gifts (one per main unit, or fewer). |
What the customer sees
- On the PDP — a panel below the price/description with the offer title, a slot meter (“1 / 2 Selected”), and gift cards rendered as checkboxes with thumbnails, prices, and qty steppers. Picks are committed to the cart together with the main product when the customer clicks Add to cart.
- In the cart drawer / cart page — a collapsed “Add gifts” pill on the trigger line that expands into a swipeable carousel of pool items. A “Reselect” CTA on already-redeemed gift lines lets the customer swap one gift for another without leaving the drawer.
How the pricing is applied
The Glood Discount Function reads the cart-line attributes the storefront writes (__glood_uo_external_id, __glood_uo_role: 'pick', __glood_uo_slot_index) and applies the configured per-pool-item price. Each picked variant gets its own line in the cart with the adjusted price; the Cart Transform Function groups them visually under the trigger product so the customer sees a “bundle.”
Free-gift offers
A free-gift offer says “spend more, get this gift free.”| Setting | What it does |
|---|---|
| Trigger | Cart subtotal crossing a configured threshold. Scope can be cart-wide or item-only (excludes shipping/tax). |
| Tiers | One or more thresholds in ascending order. Each tier has its own gift variant. |
| Stacking | cumulative (every qualifying tier grants its gift) or exclusive (only the highest qualifying tier wins; lower tiers’ gifts are swapped out as the customer crosses thresholds). |
| Eligibility exclusions | Tag-based — exclude products by tag, or skip the cart subtotal contribution from already-discounted lines. |
What the customer sees
The same theme block surfaces a multi-tier progress panel:- Locked tier — “Spend €X more to unlock
{gift name}.” - Auto-added — the gift is qualified but the Cart Transform Function hasn’t injected the line yet (rare; sub-second).
- ✓ In cart — the gift is in the cart at €0.
0.00 directly into the cart, and the line stays as long as the subtotal stays above the tier’s threshold. Cross back below the threshold and the line is removed.
For tiers configured with multiple variants (e.g., “free t-shirt — customer picks the size”), the panel renders a <select> + Add button instead of auto-adding; the customer commits the variant explicitly.
Where the offers surface
Both offer types use the same two theme blocks:| Block | Where the merchant drops it | What it renders |
|---|---|---|
| Glood Upsell for PDP | Product template — typically below the price/description | Pick-offer panel, free-gift progress, slot meter, Add-to-cart-bundled commit |
| Glood Upsell for Cart | Cart drawer section AND/OR /cart page section | Same panels, scoped to the cart contents |
<div> per cart line lets the theme dev drop the carousel/CTA into ANY theme-owned cart drawer (Dawn, custom, hand-rolled). See the developer reference for the integration contract.
Enable Upsell Offers from the app embed
Even after the app is installed, the storefront upsell pipeline stays inert until the merchant flips one switch inside the Glood app embed. This single toggle controls whetherglood-upsell.js, glood-upsell.css, the inline window.glood.upsell.* payload, and the gloodSwiper bundle get injected on every storefront page. With it off, no PDP panel, no mini-cart carousel, no free-gift progress — even if you’ve placed the theme blocks.
Step-by-step
- From your Shopify admin, go to Online Store → Themes.
- Find your live theme, click Customize to open the Theme Editor.
- In the bottom-left navigation, click Theme Settings.
- Select App embeds.
- Find Glood.AI Recommendations in the list and toggle it ON (if it isn’t already — this is the master switch for ALL Glood features).
- Click the embed name to expand its settings. Scroll to the Enable upsell offers checkbox and tick it.
- Click Save in the top right.
The Enable upsell offers checkbox is independent of the embed’s main ON/OFF toggle. The main toggle controls all Glood features (recommendations, search, bundles, upsell); the Enable upsell offers checkbox specifically gates the upsell asset bundle. Both must be on for the panels to render.
Verify the embed is active
After saving, visit any product page on your storefront and open DevTools → Console. Type:- Returns
'object'→ the embed is loaded and the upsell payload is in place. Continue to “Quick activation” below to add the theme blocks. - Returns
'undefined'→ the embed didn’t load. Re-check the toggle is ON and the Enable upsell offers checkbox is ticked, then hard-refresh (Cmd+Shift+R).
Quick activation
Once the embed is enabled, three more steps to a live offer:- Install the app — the Cart Transform Function and Discount Functions deploy automatically.
- Drop the blocks — drag Glood Upsell for PDP into your product template and Glood Upsell for Cart into your cart drawer / cart page sections.
- Create the offer — in the Glood admin dashboard, create a Pick or Free Gift offer; assign trigger products / tier thresholds; save.
How the pieces fit together
Next steps
- Enable the app embed → — turn on the storefront-side scripts and styles
- JS triggers & developer hooks → — register callbacks, drive selections programmatically, integrate with custom themes
- Existing block placement guide → — auto-listener behaviour, custom variant pickers, linked vs standalone modes