E-commerce
June 28, 2026
"Do you have the blue jacket in M?" The customer reads "Out of stock" under the selector. They close the tab. Or worse: they open the chat, receive "consult our catalog", and leave for a competitor.
Zipchat estimates that a well-configured alternatives assistant can recover 35 to 50% of sales lost due to out-of-stock items by recommending 2-3 substitutes in stock with a clear reason (Zipchat, OOS assistant 2026). Kn8 reminds us that a storefront agent checks live inventory before any recommendation, unlike a static chatbot (Kn8, e-commerce agents 2026).
This guide #245 covers the AI chatbot for unavailable product alternatives: conversational recommendation when the requested SKU is out of stock. Complements restocking times (#167) (human support ETA) and back-in-stock alerts (#48) (email capture): here, immediate substitute + waitlist in the same flow.
Summary
Why use an alternatives bot on out-of-stock pages?
An out-of-stock PDP concentrates purchase intent without the possibility of conversion. The alternatives bot transforms this dead end into a guided choice.
Three jobs of the OOS bot
Confirm: Exact SKU/variant unavailable (not a vague "out of stock")
Substitute: 2-3 in-stock alternatives with reasoning
Capture: Back-in-stock alert if the customer prefers to wait
Market signal
Storebeep notes that OOS pages without contextual alternatives lose the majority of visitors; a well-designed page captures 10 to 20% in alert sign-ups (Storebeep, OOS Shopify 2026). Denser AI insists on real-time inventory queries via RAG to never recommend a substitute that is also out of stock (Denser, sync stock 2026).
DTC fashion example
Bestselling dress size M out of stock, 420 OOS PDP sessions/week. Without bot: 78% bounce rate. OOS bot + 2 mapped substitutes: 64% chat engagement, 19% alternative conversion, 14% alert sign-ups.
How does it differ from neighboring content?
Five stock contents, five distinct roles.
Restock times (#167)
Restock (#167): agent macros, ETA ops, promise management. #245: bot automation of alternatives + waitlist without tickets.
Back in stock alerts (#48)
Alertes (#48): Notify Me widget, Klaviyo flow. #245 integrates the alert into the conversation after proposing a substitute.
Discontinued products (#243)
Discontinued (#243): product will not return. Bot OOS: temporary out-of-stock or variant-only, not permanent discontinuation (unless flagged no_restock).
Cross-sell (#152)
Cross-sell (#152): cart addition. #245: functional substitute of the unavailable SKU, not an accessory.
Limited editions (#222)
LE (#222): definitive drop sold-out. Standard OOS bot: restock possible, ETA to be communicated if known.
Promise #245
Out-of-stock typology, substitute mapping, bot flow, triggers, stock sync, waitlist combo, KPI, playbooks.
What types of breakups should the bot distinguish between?
The intent bot rupture changes the response: substitute, waitlist, or range redirect.
Six OOS scenarios
oos_variant: parent product live, size/color OOS
oos_sku_full: all variants sold out, restock planned
oos_sku_norestock: end of life, see #243
oos_preorder: future sale, not a stockout
oos_cart: cart item became unavailable
oos_channel: online OOS, store stock (BOPIS)
Tags and routing
stock_oos, sub-tags by scenario. Bot route: oos_variant → same product other size/color + substitutes; oos_sku_full → range substitutes + waitlist; oos_norestock → discontinued branch.
Required ops data
Shopify metafield restock_eta, no_restock, replacement_skus. Without ETA: bot does not promise a date. Without replacement_skus: auto catalog matching (section 4).
How to map substitutes by SKU?
The OOS substitutes database powers the bot. Two levels: manual mapping + auto matching.
Manual mapping (priority)
OOS-MAP Sheets: SKU_oos | substitute_primary | substitute_secondary | reason | price_delta | same_use_case. Merchandising validates the top 50 high-traffic OOS SKUs. Example reason: "same cut, similar color, −€5".
Auto matching (fallback)
Identical product_type + tags
Price range ±15%
Attributes: waterproof, vegan, compatible with X
inventory > 0 mandatory before recommendation
Quality rule
Storebeep: contextual alternatives (same usage, same price range), not a generic "you might also like" carousel. Maximum 2 substitutes + "other size/color" option on the same PDP if applicable.
Incentive code
Zipchat: OOS5 to OOS15 code on configurable substitute. Activate only if margin allows, not systematic (prevents inducing expectation of promos).
How to structure the alternative bot flow?
The OOS bot flow consists of 4 branches, taking less than 90 seconds on mobile.
Conversational tree
Detect OOS: SKU page or customer question → inventory API
Confirm: "[Product] in [variant] is unavailable. Restock: [ETA or unscheduled]."
Branch A substitute: suggest primary + secondary + reason + add-to-cart link
Branch B waitlist: "Prefer to wait? Alert me: [email/one-click]"
Branch C variant: if oos_variant, suggest adjacent size/color in stock
Substitute response template
"The [blue jacket M] is out of stock. Two options in stock: 1) [Navy jacket M]: same fit, darker shade, delivery in 2-3 days; 2) [Sky blue jacket M]: same model, lighter shade. Or I can alert you as soon as the blue M is back: [button]."
OOS Cart
Oos_cart intent: identify line item, suggest swap variant or substitute, preserve cart promo code if applicable.
Which triggers should be activated on the PDP and cart?
The out-of-stock trigger bot intercepts before the bounce, without annoying the browsing visitor.
PDP OOS Triggers
Page load OOS: add-to-cart button disabled + 0 stock (Zipchat: 60-70% proactive engagement)
Click add-to-cart OOS: immediate message offering substitutes
Dwell 15 s on OOS variant selector
Chat question: "in stock?", "size M?", "available?"
Standard proactive message
"This item is temporarily unavailable in [variant]. I can suggest 2 in-stock alternatives or alert you when it returns."
Cart triggers
Webhook inventory < 1 between add and checkout: chat notification "[SKU] has just gone out of stock. Substitute or alert?"
Exclusions
Do not trigger on collection, search results, or in-stock SKUs. Mono-variant full OOS: more direct message pointing to range substitutes.
How to synchronize stock and secure recommendations?
The OOS stock bot guardrail prevents the embarrassment of presenting an out-of-stock substitute.
Real-time sync
Shopify Webhook inventory_levels/update → bot cache 30-60 s
API query before each recommendation, not just at the session start
Hourly batch insufficient during promotions or product drops (Branch8, Denser)
Non-negotiable rules
Newegg 2026: RAG on live catalog, never invent stock or price. If primary is OOS at the moment of click: switch to secondary automatically. If both are OOS: waitlist only, not a vague "come back later".
Multi-warehouse / BOPIS
If oos_channel and store stock > 0: offer in-store pickup with address and confirmed stock.
How to combine alternatives and back-in-stock alerts?
The substitute + waitlist combo does not force a choice: both options coexist.
In-chat waitlist flow
Customer refuses substitutes or hesitates
Bot collects email or uses account email if logged in
Saves exact variant_id (not just the parent product)
Confirms: "Alert activated for [SKU variant]. Estimated time: [ETA]."
Shoply integrates alert registration directly into the chat when a variant is OOS (Shoply, back-in-stock chat 2026). Storebeep points out that external AI agents (ChatGPT Shopping) do not have a Notify Me button: your site bot + PDP remain the demand capture channel (Storebeep, agentic commerce 2026).
PDP Link
The bot can redirect to the page's Notify Me widget if the app integration (Klaviyo, SC Back in Stock) is more robust than chat capture alone.
Post-restock
Auto variant-specific email upon stock receipt. History bot: if the customer returns, "Your [SKU] is back" + direct link to the variant.
What are the alternative bot anti-patterns?
Five OOS bot errors turn help into frustration.
Off-topic alternative
Sandals suggested for waterproof trail shoes. Validate OOS-MAP or strict matching.
Stale stock
Recommendation based on 24 h cache. Webhook + API re-query mandatory.
Entire catalog
"Browse our products" without curation. Max 2 reasoned alternatives.
Waitlist without variant_id
Parent product alert when only size M is missing = useless email upon return of size S.
Forgetting no_restock
Promising back-in-stock on discontinued SKU. Metafield flag → branch #243, not waitlist.
Which KPIs measure the impact of the alternative bot?
Measure the OOS bot ROI by out-of-stock SKU and by flow path.
Conversion KPIs
OOS recovery rate: substitute orders / OOS PDP sessions
OOS chat engagement: % of OOS sessions opening the bot
Substitute accept rate: substitute add-to-cart / suggestions
Waitlist capture rate: sign-ups / OOS sessions
Waitlist → purchase: conversion post-email alert
Support KPIs
"In stock?" tickets / 100 OOS PDP sessions. Goal: −40% vs without bot. Zipchat cites −40 to −55% OOS cart abandonment on configured pilots.
A/B Method
50% of OOS PDP pilot traffic with bot triggers, 50% without. 4 weeks, min. 800 sessions/path per SKU.
How does Qstomy offer alternatives during stockouts?
Qstomy detects OOS, recommends verified in-stock substitutes, and captures the waitlist in a single flow.
Alternative OOS Features
Intent oos_*: variant, SKU full, cart, norestock
Shopify inventory sync webhook + pre-reco query
OOS-MAP + hybrid auto-matching
2 substitutes + reason + in-chat add-to-cart
Waitlist variant_id + ETA metafield
Optional OOS code on substitute
Quantified DTC Scenario
Outdoor brand, 12 top-traffic SKUs with recurring OOS, 1,900 OOS PDP sessions/month, bounce rate 81%, 34 tickets/week ask "is this available?". Deployment of Qstomy OOS flows + 12-line OOS-MAP + section 6 triggers. After 7 weeks (A/B 50/50): recovery rate 22%, waitlist capture 16%, stock tickets −47%, waitlist→purchase 38%, substitute revenue +€11,400/month.
Explore Shopify integration, AI customer support, or request a demo.
Which operational playbooks should be deployed?
Playbook 1: SKU OOS audit (1 day)
Export GA4 sessions PDP + inventory=0 90 days. Top 15 SKUs by OOS traffic. Prioritize mapping.
Playbook 2: OOS-MAP (4 hours)
Fill in substitute_primary/secondary + reason for top 15. Validate live stock. Test 10 scenarios.
Playbook 3: bot flow (2 days)
Configure tree section 5, templates, guardrails section 7. Shadow mode 1 week.
Playbook 4: triggers + waitlist (1 day)
Activate triggers section 6. Connect Klaviyo or BIS app for post-restock. QA variant_id.
Playbook 5: pilot A/B + review (4 weeks)
KPI section 10. Adjust OOS-MAP if substitute has low acceptance rate. Document wins.
Useful linking
An out-of-stock situation is not the end of the journey: it is a moment when the customer still wants to buy from you. When the bot proposes the right alternative at the right time, the stockout becomes a redirected sale, not an open door to the competitor.

Enzo
June 28, 2026





