The storefront-side of Upsell Offers (the PDP panel, cart-drawer carousel, free-gift progress bar, slot meter, and the JS that wires them up) is bundled inside Glood’s app embed. The merchant flips one toggle in the Theme Editor and every page on the store can render upsell offers — no theme code required. This page walks through the activation steps and how to verify it.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.
Step 1 — Enable the app embed
The app embed loadsglood-upsell.js + glood-upsell.css on every storefront page and emits the window.glood.upsell.* namespace the theme blocks (and the mini-cart adapter) read.
- From your Shopify admin go to Online Store → Themes.
- Find your live theme, click Customize to open the Theme Editor.
- In the bottom-left of the navigation panel, click Theme Settings.
- Select App embeds.
- Find Glood.AI Recommendations in the list and toggle it ON. This is the master switch for every Glood feature (recommendations, search, bundles, upsell).
- Click the embed name to expand its settings panel. Tick the Enable upsell offers checkbox. This is the feature-specific gate that injects the upsell asset bundle (
glood-upsell.js,glood-upsell.css, thewindow.glood.upsell.*inline payload, and thegloodSwiperbundle) into every storefront page. With the main toggle ON but this checkbox OFF, no upsell panel renders even if the theme blocks are placed. - Click Save in the top right.
The app embed must be enabled for ANY Glood feature to work — recommendations, search, bundles, and upsell offers all share the same embed. If you switch themes later, you’ll need to re-enable the embed AND re-tick Enable upsell offers on the new theme.
Quick verification
After saving, open any product page on your storefront and check the browser console:'undefined', re-check both the master toggle and the Enable upsell offers checkbox, then hard-refresh the page (Cmd+Shift+R) — Shopify caches the storefront HTML.
What the embed loads
| Asset | Purpose |
|---|---|
glood-upsell.js | Renders the pick panel, free-gift progress, and mini-cart carousel. Auto-listens to theme [name="id"] / [name="quantity"] form events. |
glood-upsell.css | Base styling for the panels — themes can override via CSS or pass classNames through Glood.upsell.miniCart.hydrate(...). |
app-embed.liquid payload | Emits window.glood.upsell.cartPickOffers, window.glood.upsell.cartPickProductHydration, and window.glood.upsell.cartFreeGiftOffers — the inline data the storefront JS reads (no Storefront API round-trip required). |
gloodSwiper bundle | Powers the mini-cart carousel. Loaded synchronously alongside the upsell asset. |
Step 2 — Drop the theme blocks
The embed gives you the data and the script; the blocks are what actually render the panel on a specific surface.PDP block
- In the Theme Editor, open a Product template.
- In the section that should host the upsell (usually Product information below the price/description), click Add block → Glood Upsell for PDP.
- Save.
Cart block
- Open the Cart drawer section AND the
/cartpage section. - Add block → Glood Upsell for Cart.
- Save.
- Free-gift progress and “Auto-added” / ”✓ In cart” states.
- Pick offers triggered by the cart contents but not yet redeemed.
Optional — mini-cart adapter (theme-owned cart drawers)
If your theme’s cart drawer is theme-owned (hand-rolled, custom vendor, Dawn-customised) and doesn’t expose a Section block slot, drop a marker<div> per cart line instead:
hydrate() options, callbacks, and atomic-swap details — lives in the developer reference.
If the theme’s cart drawer is built from a Section block slot (e.g., Dawn’s default), you only need the Glood Upsell for Cart block — no marker divs. The mini-cart adapter is for themes where the Cart block can’t be dragged in.
Step 3 — Verify
- Visit a PDP for a product that’s a trigger for one of your active offers. The pick-offer panel should render below the price/description.
- Pick a gift, click Add to cart — the gift should appear in the cart with the configured price (e.g.,
+€1). - Cross a free-gift threshold (add enough to cart). The gift should auto-add at €0.
- Open the cart drawer — the trigger product should show an “Add gifts” pill that expands into a carousel; redeemed gifts should show a “Reselect” CTA.
- Confirm the app embed is ON in the Theme Editor and you Saved.
- Confirm an active offer exists in the Glood dashboard and its trigger matches the product you’re viewing.
- Open the browser DevTools console and look for
[Glood.upsell]warnings — the storefront logs actionable messages when offers are misconfigured or block placements are missing. - Hard-refresh the page (Cmd+Shift+R / Ctrl+Shift+R) — Shopify caches the storefront HTML with the embed’s script src baked in.