E-commerce
July 1, 2026
"You knew it was going to run out, why was I able to order?" "The stockout was announced on Instagram, not on the product page." "I've been waiting for an alternative for a week, and no one is responding." Three messages where an ill-prepared anticipated stockout turns an ops plan into a customer service crisis.
E-commerce pre-announced stockout customer support aligns ops, merchandising, and customer service: T-14 timeline, PDP communication, pre-validated alternatives, agent macros, and a priority queue before stock hits zero.
This #404 guide covers the PLAN-STOCK policy, PLAN-FLOW flow, and the planned_oos KPI. Distinct from reactive stock incidents (#320) and general stockout questions (#106)
Summary
Why does an announced outage generate so many tickets?
An announced out-of-stock support issue occurs when ops, purchasing, or production know that the SKU will be unavailable in X days, but the site continues to sell it or incorrectly displays the status.
Five typical customer pain points
Late order: customer buys D-1 before stockout, package gets stuck
Fragmented communication: info on Instagram, silent PDP
Unclear alternative: agent proposes a non-equivalent SKU
Waiting for restock: promised date not met (#167)
Mixed cart: 1 out-of-stock SKU blocks the entire shipment (#357)
Opensend estimates that 69% of shoppers abandon if the item is unavailable, and that stockouts represent about 20% of cart abandonments (Opensend, stockout stats 2026). Gorgias observes that brands without a planned stockout playbook see 40-55% of OOS tickets turn into refund disputes or chargebacks (Gorgias, customer service stats 2026).
Angle #404 vs related content
General Stockout #106: daily customer service workflow. #404 = preparation before the stockout happens.
Stock Incident #320: reactive oversell, webhook. #404 = anticipated stockout, not a negative quantity surprise.
Display Errors #319: incorrect PDP stock. #404 = deliberate communication for end-of-line products.
Restock #167: ETA back in stock. #404 = window before stockout + during unavailability.
Pre-order Bot #405: future limited queue. #404 = stockout without structured pre-order.
DTC Example
Skincare brand, bestseller serum at the end of its production run. Without STOCK-PLAN: 89 tickets in 10 days, OOS CSAT 2.8/5. After playbook: planned_oos_ticket_rate -52%, alternative_accept_rate 41%, OOS chargebacks 0.
Planned Stockout vs Incident
Planned: date is known, last batch is limited, reformulation coming up. Incident: oversell, sync bug, warehouse error. Two distinct playbooks.

Convert over 2,000 customers on average per month with Qstomy.
The world’s 1st Shopify AI dedicated to customer conversion



Empowering 200+ e-commerce merchants
How does preparation differ from reactive disruption?
Three out-of-stock phases, three support responsibilities.
Phase → playbook matrix
#404 PLAN-STOCK: T-14 to T+7, announced out-of-stock
#320 STOCK-INC: oversell detected, urgent resolution
#106 OOS general: current out-of-stock without plan context
Four planned out-of-stock triggers
End of series: discontinued product, no restocking
Last production batch: MOQ reached, 4-8 weeks remaining stock
Reformulation: V2 in preparation, V1 depleted
Seasonal end of collection: clearance sales then permanent stop
Preparation advantage
14 days before out-of-stock: PDP banner, macros ready, merchandising-validated alternatives, CS queue tagged planned_oos. Support shifts from reactive to orchestrated.
Promise #404
PLAN-STOCK Policy, T-14 timeline, ALT-MAP alternatives matrix, PLAN-FLOW flow, PLAN-* macros, KPI.
Which planned_oos_* typologies should be mapped?
Twelve announced stockout ticket typologies for consistent support routing.
Twelve planned_oos scenarios
planned_oos_pre_purchase: "still available?" before purchase
planned_oos_last_units: "how many are left?"
planned_oos_post_order_hold: order paid, stock depleted before shipping
planned_oos_alternative_request: customer requests equivalent substitute
planned_oos_wait_restock: prefers to wait (end of line = no)
planned_oos_cancel_refund: cancellation + refund requested
planned_oos_mixed_cart: 1 OOS line blocks multi-SKU order
planned_oos_reformulation: "when is V2 coming out?"
planned_oos_loyalty_vip: loyal customer, access to last batches
planned_oos_wholesale_b2b: pro order, remaining volume insufficient
planned_oos_communication_gap: "no one informed me"
planned_oos_partial_ship: ship available, hold OOS line
Helpdesk Tags
planned_oos, oos_sku_[ref], oos_phase_pre|during|post, oos_alt_offered, oos_alt_accepted, oos_fin_serie, oos_reformulation. Distinct stock_incident, oos_reactive.
Mining before playbook launch
History of similar end-of-line SKU: ticket volume, top verbatim, alternative acceptance rate. Calibrate staffing T-0 to T+7.
Prioritization of typologies
planned_oos_post_order_hold and planned_oos_cancel_refund = P1 (financial decision). planned_oos_pre_purchase = bot tier 0 (#245). planned_oos_alternative_request = agent script ALT-MAP.
What is the T-14 timeline before the breakup?
The T-14 stockout preparation timeline synchronizes ops, marketing, and customer service.
Milestones T-14 to T+7
T-14 ops: confirm stockout date, remaining qty, end of series or long-term restocking
T-12 merchandising: validate 2-3 alternatives ALT-MAP section 5
T-10 support: draft policy PLAN-STOCK + macros PLAN-*
T-7 PDP: "Last units · End of series [date]" banner + low stock badge
T-5 marketing: early access VIP email or last chance (optional)
T-3 bot: activate planned_oos intents on SKU (#245 alternatives)
T-0 stockout: sold out PDP, redirect alternatives, disable add-to-cart
T+1 to T+7: planned_oos priority queue, daily ticket review
Slack Coordination #planned-oos
Temporary channel: ops daily qty, support ticket count, merchandising alt stock check. Closed at T+14 post-backlog resolution.
Shopify actions T-0
Inventory 0, continue selling OFF, metafield oos_type=planned_fin_serie, collection redirect to hero alternative. Sync marketplaces if multichannel.
Restocking communication
If V2 planned: PDP estimated timeframe, Klaviyo wait
Which ALT-MAP matrix to use for proposing alternatives?
The ALT-MAP stockout alternative matrix avoids inconsistent substitutes proposed by agents under pressure.
Four criteria for a valid alternative
Functional equivalence: same customer use (e.g., hydrating serum → other serum with same active ingredient)
Confirmed stock: qty > 30 days forecast or secured MOQ
Price ±15%: no visible downgrade without a gesture
Merchandising validated: written sign-off at T-12
Three alternative levels
Direct Alt A: same range, same price tier (priority)
Upgrade Alt B: higher range, -10% gesture if price gap
Bundle Alt C: 2 complementary products = equivalent value
End of series with no alt
Full refund or credit +15% on future order. Do not invent an out-of-stock alt. Macro PLAN-NOALT-01 section 7.
Post_order_hold order
Contact customer within 24 hours: Alt A proposed + refund option. No partial shipping without agreement if complete ship policy (#357 documented exception).
Bot link #245
Pre-purchase bot proposes Alt A/B from ALT-MAP. Agent executes swap order or post-purchase refund.
How to write the PLAN-STOCK policy in eight rules?
The announced PLAN-STOCK shortage policy documents decisions before T-14.
Eight PLAN-STOCK rules
Shortage type: end_of_series | last_batch | reformulation | seasonal
T-0 Date: inventory 0 planned, 48-hour margin if production uncertainty
PDP communication: banner T-7 minimum, sold out T-0
ALT-MAP: 2-3 alternatives signed off by merchandising or no-alt policy
post_order_hold: contact within 24 hours, alt or refund, no silence
Commercial gesture: -10% alt upgrade or +15% credit for end of series
SLA planned_oos: FRT 4 business hours during phase, 2 hours post_order_hold
Escalation: chargeback threat → head support + immediate refund if hold > 48 hours
Notion publication + training
SKU sheet: photo, remaining qty, ALT-MAP, macros, T-0 date. 30 min agent briefing at T-5. Link to playbook #118 stock module.
Pre-order distinction
If restocking confirmed < 60 days: switch to pre-order playbook (#187) or future bot #405. PLAN-STOCK = no firm delivery date.
Post-mortem review T+14
Ticket volume vs forecast, alternative_accept_rate, communication_gap verbatim. Archive Notion sheet for next SKU.
Which PLAN-* macros and touchpoints should be configured?
Eight announced shortage agent macros and website/email touchpoints.
PLAN-PRE-01 (pre-purchase, last units)
"There are [qty] units of [SKU] remaining. End of line planned for [date]. Recommended alternative: [Alt A link]."
PLAN-HOLD-01 (post_order_hold contact)
"Your order #[X] includes [SKU] which became unavailable before shipping. We offer: (1) [Alt A] shipped within 48 hours, (2) refund for the line item or full order. Please reply within 72 hours."
PLAN-ALT-01 (alternative accepted swap)
"We have replaced [SKU] with [Alt A] in your order #[X]. Estimated shipping [date]. 10% gesture applied if upgraded."
PLAN-REFUND-01 (refund post hold)
"Refund of [amount] initiated for [SKU]. Bank processing time 5-10 business days (#370). 15% discount code for future order: [CODE]."
PLAN-REFORM-01 (reformulation V2)
"[SKU] is replaced by [V2] scheduled for [range]. Waitlist sign-up: [link]. You will be notified with priority (#48)."
PLAN-NOALT-01 (end of line without substitute)
"[SKU] will not be restocked. Full refund or +15% store credit: your choice."
Website touchpoints
PDP banner T-7 "Last units"
Cart drawer alert if qty < 5 and SKU planned_oos
Sold out page with Alt A hero + waitlist if reformulated
Checkout note if SKU tagged planned_oos_last_lot
Klaviyo flow post-purchase hold alert ops
Proactive post_order_hold email
Auto-send PLAN-HOLD-01 within 4h detection unfulfilled + inventory 0. Reduces incoming tickets by 35-45% based on Gorgias DTC benchmarks.
How to apply the eight-step PLAN-FLOW?
The PLAN-FLOW framework structures the processing of announced stockout tickets.
Eight steps PL-1 to PL-8
PL-1 Identify SKU: tag planned_oos, lookup inventory + order line
PL-2 Classify typology: section 3 planned_oos_*
PL-3 Read ALT-MAP: validated alternatives or no-alt policy
PL-4 Propose option: alt swap | refund | wait (if applicable) | partial ship
PL-5 Execute: Shopify edit order, refund, or split fulfillment
PL-6 Confirm with customer: macro PLAN-ALT or PLAN-REFUND
PL-7 Tag outcome: oos_alt_accepted | refund | waitlist | escalated
PL-8 Document: note SKU, remaining qty hold, verbatim pattern
PL-2 priority routing
post_order_hold P1 queue. pre_purchase → bot #245 if configured. communication_gap → empathy + link banner PDP screenshot.
PL-5 Shopify edit order
Remove line OOS, add Alt A, adjust total, partial refund if downgrade. Or full refund + cancel if customer refuses alt.
Mixed cart PL-4
Option A: ship available lines, hold OOS (customer agreement). Option B: wait all. Option C: remove OOS + refund line, ship rest. Document choice policy PLAN-STOCK rule 5.
PL-8 Escalation
Hold > 48 h with no customer response: 2nd email + SMS if phone. Hold > 72 h: proactive refund + ops note.
Which planned_oos KPIs should be measured?
The announced stockout KPIs drive the playbook and continuous improvement.
Eight key metrics
planned_oos_ticket_rate: planned SKU tickets / total period T-7 to T+7
post_order_hold_count: orders blocked before shipping
hold_contact_sla: % customer contact under 24 hr hold
alternative_accept_rate: alternative accepted / alternative proposed
planned_oos_refund_rate: refund / post_order_hold
communication_gap_rate: "not notified" tickets / total planned_oos
planned_oos_csat: satisfaction of tickets tagged planned_oos
planned_oos_chargeback: period SKU chargebacks (target 0)
DTC Benchmark
alternative_accept_rate 35-45%, hold_contact_sla > 95%, communication_gap < 8%, planned_oos_csat > 4.0/5, chargeback 0 if hold SLA respected.
Dashboard T-7 to T+14
Daily ticket count, typology breakdown, alt vs refund split, verbatim tag cloud communication_gap.
Comparison with/without playbook
Previous end-of-series SKU without PLAN-STOCK vs current SKU: delta ticket rate and CSAT. Justifies T-14 ops effort.
Ops alert
post_order_hold > 10 without 24 hr contact: Slack #planned-oos P0 alert.
Which anti-patterns should be avoided regarding planned disruptions?
Ten announced stockout anti-patterns to banish.
1. Selling to negative qty without a plan
Last batch without disable continue selling = incident #320, not planned.
2. Banner at T-0 only
Customer orders at D-3 without info. communication_gap explosion.
3. Merchandising-unapproved alternative
Agent suggests SKU outside ALT-MAP, incorrect asset or also out of stock.
4. Silence post_order_hold
48 hours without contact = chargeback. Mandatory auto PLAN-HOLD-01.
5. Promising restock on end-of-line
Agent says "back soon" on discontinued item. Loss of trust.
6. Mixing incident and planned playbooks
Oversell webhook #320 on planned SKU = double confusion of macros.
7. Partial ship without agreement
Customer expects complete order. Documented ship hold policy.
8. No priority queue during
planned_oos tickets drowned in standard backlog. Dedicated tag + queue.
9. Forgetting marketplaces sync
Amazon still selling while DTC is sold out. Cross-channel tickets.
10. Skipping post-mortem T+14
Repeated errors on next SKU. Mandatory Notion archive.
11. Bot #245 not configured at T-3
pre_purchase tickets useless if alternatives bot is inactive on SKU.
How does Qstomy help prepare for the announced disruption?
What is the checklist for deploying PLAN-STOCK?
PLAN-STOCK Checklist (12 steps)
Confirm out-of-stock type + date T-0 with ops/procurement
Validate ALT-MAP 2-3 merchandising alternatives T-12
Draft PLAN-STOCK policy 8 rules Notion SKU sheet
Create PLAN-* macros section 7 in helpdesk
Configure PDP banner T-7 + sold out T-0
Activate bot planned_oos intents T-3 (#245)
Setup post_order_hold alert + auto email PLAN-HOLD-01
Brief agents PLAN-FLOW 30 min T-5
Open Slack #planned-oos + daily standup T-7 to T+7
Queue priority tag planned_oos during phase
Dashboard KPI section 9 daily
Post-mortem T+14 archive + lessons learned
At a glance
#404 = planned stockout, not a reactive incident (#320)
T-14 timeline: ops → alt → support → PDP → T-0
ALT-MAP: alternatives validated before ticket pressure
post_order_hold: 24h contact, alt or refund
KPI alternative_accept_rate: measures playbook success
FAQ
Difference with stockout #106?
#106 = daily customer service OOS. #404 = preparation 14 days before known stockout.
What if restocking is confirmed within 30 days?
Switch to preorder playbook #187 or bot #405. PLAN-STOCK = no firm date.
post_order_hold: refund or alt first?
Offer alt A first (PLAN-HOLD-01). Refund if refused or end of series with no-alt.
Relation to incident #320?
Planned = anticipated. Incident = surprise oversell. Two flows, a SKU can switch to incident in case of oversell.
Should sales be cut before T-0?
No, if the last batch is sold intentionally. Yes, disable "continue selling" at exact inventory 0.
Go further
This week: identify the next end-of-series SKU, start the T-14 timeline, validate the ALT-MAP with merchandising, publish the PLAN-STOCK Notion sheet.
Share this #404 guide with ops and head of support: an announced stockout is not bad news if customer service is ready before the last parcel.
Can we sell on preorder during planned OOS?
If V2 or dated replenishment: yes via playbook #187/#405. Permanent end of series: waitlist #48, no preorder.

Enzo
July 1, 2026


