A gift product isn't showing in the GWP widget
The Gift with Purchase widget renders, but one specific gift product is missing or the gift list looks short — find the filter or status hiding it.
Your Gift with Purchase (GWP) widget appears in the cart, but a particular gift you added to the offer isn't there — or the list of gifts looks shorter than it should. This is almost always a single product being filtered out by status, inventory, or one of the "Additional settings" toggles, not a broken widget. Work through the checks below in order; they're sorted most-common-first, so you'll usually find the culprit in the first step or two.
Use this page when the GWP widget itself shows up but a specific gift product is missing (or the gift list is short). If the entire widget never renders — no gifts at all, no offer block — that's a different problem. Start with Upsell widget not showing instead, then come back here once the widget is on the page.
Diagnostic checklist
1. Check the gift's product status
The most common cause is the gift's product status in Shopify. The Gift with Purchase editor shows a status badge next to every offer product so you can spot the problem without leaving the app. There are four badges:
| Badge | What it means | Shows in the widget? |
|---|---|---|
| Active | Published and available on the Online Store sales channel | Yes |
| Draft | The product is still a draft in Shopify | No — never renders |
| Unpublished | Not published to your Online Store sales channel | No — never renders |
| Archived | The product is archived in Shopify | No — never renders |
Only products that are Active (or Unlisted and published to the Online Store sales channel — see step 2) display to shoppers. Draft, Unpublished, and Archived gifts are stored on the offer but never reach the storefront. The campaign list also raises a red health warning next to any active campaign whose offer products are unavailable or unpublished — see Campaign statuses, limits & health warnings.
Open the offer and read the badge
Open your Gift with Purchase campaign and look at the Offer Products list. The badge next to the missing gift tells you exactly why it isn't showing.
Fix the status in Shopify
Depending on the badge:
- Draft → open the product in Shopify and set its status to Active, then publish it to the Online Store sales channel.
- Unpublished → publish the product to the Online Store sales channel (Shopify product page → Sales channels and apps → check Online Store).
- Archived → unarchive the product in Shopify, set it Active, and republish it.
Re-check the badge
Return to the offer list and confirm the badge now reads Active. The storefront may take a few minutes to catch up — see The caching gotcha below.
A product can look fine in your catalog and still be Unpublished to the Online Store specifically. Being "active" in Shopify is not the same as being published to the Online Store sales channel — a gift only renders when it's published there. This is covered again in step 5.
2. "Hide unlisted products" is on while the gift is Unlisted
An Unlisted product is one that's published to your Online Store sales channel but kept out of search and collection listings. By default, GWP shows unlisted gifts — they appear in the widget just like Active products. But there's a toggle that can filter them out by design.
Look at Customize → Additional settings → Hide unlisted products:
| Toggle | Default | Effect when ON |
|---|---|---|
| Hide unlisted products | Off | Any gift whose product is Unlisted is removed from the widget. Active products are unaffected. |
If your missing gift is Unlisted and this toggle is on, the widget is hiding it exactly as configured.
Confirm the toggle
Open the Customize page for your GWP campaign and find Additional settings → Hide unlisted products.
Choose a fix
- To show the unlisted gift: turn Hide unlisted products off and save.
- To keep the toggle on: change the gift product to Active in Shopify so it's no longer treated as unlisted.
If you have a campaign whose offer is built entirely from unlisted products and Hide unlisted products is on, the widget can render with no gifts at all — it looks empty even though the offer is configured correctly. Turn the toggle off, or make at least one gift Active.
For more on how unlisted gifts behave, see Use unlisted or hidden products as gifts.
3. "Hide out-of-stock products" is on and the gift is out of stock
The second "Additional settings" toggle filters gifts by inventory:
| Toggle | Default | Effect when ON |
|---|---|---|
| Hide out-of-stock products | Off | A gift is hidden when its selected variant has 0 inventory and is not set to continue selling when out of stock. |
If the gift's chosen variant is at zero stock — and that variant doesn't allow overselling — and this toggle is on, the gift is filtered out.
Fixes:
- Restock the gift's variant so it has inventory greater than 0.
- In Shopify, allow the variant to continue selling when out of stock (the gift then shows even at 0 inventory).
- Turn Hide out-of-stock products off if you want out-of-stock gifts to remain visible.
This check is per variant, not per product. A multi-variant gift can have other variants in stock yet still be hidden because the specific variant attached to the offer is the one at zero inventory. Confirm the exact variant on the offer. See Gift variants, inventory & out-of-stock handling.
4. "Hide offers already added" is on and the gift is in the cart
The third "Additional settings" toggle controls whether a gift stays visible after the shopper claims it:
| Toggle | Default | Effect when ON |
|---|---|---|
| Hide offers already added | Off | A gift disappears from the widget once it's already in the cart, and reappears when the shopper removes it. |
If your "missing" gift is already sitting in the test cart and this toggle is on, it's hidden on purpose. Remove the gift from the cart and it returns to the widget. This is expected behavior, not a fault — if you'd rather the gift always show, turn the toggle off.
5. The product isn't published to the Online Store sales channel
A gift renders only when its product is published to the Online Store sales channel — whether the product is Active or Unlisted. If it isn't published there at all, the gift can never appear, regardless of every toggle above.
To fix it, open the product in Shopify, go to Sales channels and apps, and make sure Online Store is checked. Then re-check the badge in your offer list (step 1) and give the storefront a few minutes to refresh.
6. A free gift with no purchasable variant
A gift discounted to free (or near-free) still needs a real, available variant to add to the cart. If the only variant tied to the offer is unavailable — out of stock with no overselling, unpublished, or removed in Shopify — there's nothing for the widget to display, so the gift drops off the list.
Confirm the gift has at least one purchasable variant that's available on the Online Store, then re-check the offer.
7. Per-product or total gift limits already reached
Gift with Purchase lets you cap how many gifts a shopper can claim with two limits:
- Product Limit — the maximum quantity of a single gift product.
- Total Limit — the maximum across several gift combinations.
Once the cart has already reached the relevant limit, the offer is suppressed so the shopper can't exceed it — which can look like a gift "disappearing." Review what's already in the cart, remove a claimed gift, or raise the cap. For the full behavior, see Gift limits: per-product & total caps.
8. The offer's own conditions aren't met
In a multi-offer campaign, each offer carries its own conditions. A gift that belongs to an offer whose conditions the current cart doesn't satisfy won't appear — even though another offer in the same campaign is showing its gifts fine. This is easy to mistake for "one product is missing" when really it's "one offer hasn't qualified yet."
Open the campaign, find the offer the missing gift lives in, and confirm your test cart meets that offer's conditions specifically.
For tiered, staged, or multi-rule offers, see Managing multiple offers and Complex conditions & recipes.
The caching gotcha
After you change a product's status or inventory in Shopify, the storefront can keep showing the old data for up to about 5 minutes. Product data for the GWP widget is cached with a roughly 5-minute time-to-live (TTL), so an edit you just made may not be reflected on the page immediately.
If you've fixed the status or restocked the gift and it still isn't showing:
Wait out the cache
Give it about 5 minutes after the change in Shopify, then reload.
Force a fresh check
Open the storefront in an incognito/private window so you're loading an uncached page, and reload there.
Re-sync the campaign
If it's still stale, trigger a manual re-sync of the campaign from the campaign list to republish the latest data to your store, then reload.
Don't conclude a fix "didn't work" within the first few minutes. A correct change can look like it failed simply because the ~5-minute cache hasn't expired yet. Re-test in incognito before troubleshooting further.
For the full picture of how and when gift product data refreshes, see How gift product data loads & caching.
"It works in preview but not on the storefront" (and vice versa)
The Customize preview is a close approximation of the live widget, but it doesn't perfectly mirror every storefront filter — in particular, the Hide unlisted products filtering may not behave identically in preview. So you can see a gift in the preview that's filtered out live, or the other way around.
When the two disagree, trust the real storefront: open your store in an incognito window, add the qualifying items to the cart, and check what the shopper actually sees. The live storefront is the source of truth; the preview is a design aid.
Worked scenarios
A few combinations come up often. Match your situation to one of these before going further.
Quick reference
| Symptom | Most likely cause | Fix |
|---|---|---|
| Gift badge shows Draft / Unpublished / Archived | Status never renders | Set the product Active and publish to Online Store |
| Unlisted gift missing | Hide unlisted products is on | Turn the toggle off, or set the product Active |
| Gift missing at 0 stock | Hide out-of-stock products is on and variant is out of stock | Restock, allow overselling, or turn the toggle off |
| Gift vanishes after being claimed | Hide offers already added is on | Expected — remove it from the cart, or turn the toggle off |
| Gift never appears, any toggle | Not published to Online Store sales channel | Publish to Online Store |
| Free gift won't show | No purchasable/available variant | Ensure one available variant on Online Store |
| Gift "disappears" mid-cart | Product Limit / Total Limit reached | Review the cart or raise the limit |
| One offer's gifts missing, others fine | That offer's conditions aren't met | Match the test cart to that offer's conditions |
| Fixed it but still missing | ~5-minute cache | Wait ~5 min, reload in incognito, or re-sync |
When to contact support
If you've worked through every check — confirmed the gift is Active and published to the Online Store, ruled out all three "Additional settings" toggles, waited out the ~5-minute cache, and tested in incognito — and the gift still won't show, contact support. Include:
- Your store URL.
- The campaign name (and which offer within it, if it has several).
- The specific gift product's handle and its current status badge.
- A screenshot of the GWP widget on the live storefront (incognito) showing the gift missing, plus a screenshot of the offer list showing the gift and its badge.
Related
Free Gift with Purchase
Set up gifts, discounts, limits, unlisted products, and the Additional settings toggles.
Upsell widget not showing
When the whole GWP widget never renders, start here first.
Campaign statuses, limits & health
Read the red health warnings that flag unavailable or unpublished offer products.
Variant offers & quantity limits
Per-variant offers, Product Limit, and Total Limit behavior.
Managing multiple offers
How each offer carries its own conditions in a multi-offer campaign.
Use unlisted products as gifts
How GWP-only and hidden SKUs behave as gifts, and the Hide unlisted products toggle.
Gift limits: per-product & total caps
When a gift is suppressed because Product Limit or Total Limit is reached.
How gift product data loads & caching
Why a status or inventory change takes a few minutes to reach the storefront.
Complex conditions & recipes
Diagnose offers that won't qualify because their conditions aren't met.
Upsell widget not showing
Why a pre-purchase or gift-with-purchase widget might not render on your storefront, and how to get it showing again.
Discount not applying at checkout
Why a discount might not show up at checkout and how to fix it — stacking limits, unmet conditions, and Shopify discount conflicts.
