WooCommerce CRO Technique

How to handle out-of-stock products in WooCommerce with alternatives, back-in-stock alerts and honest backorders

This technique turns an out-of-stock WooCommerce product page from a dead end into a recovery path by matching three actions to the stock situation: show genuinely comparable alternatives, offer a back-in-stock signup, and use backorders or pre-orders only when you can state a credible availability date.

Summary

Bottom Line: In WooCommerce, do not leave an out-of-stock PDP as a dead end: if stock is coming back soon, allow a backorder or pre-order with a truthful date; if not, keep the page useful with closely matched alternatives and a back-in-stock capture.

  • For temporary stock-outs, Baymard’s research supports letting customers still buy with a later delivery date rather than relying on “email me” alone; Baymard says 68% of sites still do not allow this, and its testing found that when shoppers only see “out of stock”, around 30% are likely to leave and look elsewhere.
  • In WooCommerce, variation-level stock is the hinge point for sane OOS handling: it lets you manage stock and backorders per variation and, if needed, hide only the dead-end variants from dropdowns.
  • Credible alternatives matter more than generic cross-sells. WooCommerce Product Recommendations supports Product-page engines, stock and category filtering, and a Relative Price filter, which is useful for keeping substitutes comparable rather than manipulative.
  • Back-in-stock alerts work best when you do not notify too early. Official WooCommerce Back In Stock Notifications includes a minimum stock quantity trigger so you can wait until inventory is stable enough to fulfil demand.
  • In the UK, availability and urgency claims must be truthful. Do not manufacture scarcity, do not imply shoppers must rush when replenishment is imminent, and do not run preorder or backorder messaging without a real expected shipping date.

How To Implement

  • Split stock-outs into three states before you change the page

    Use one rule for “temporarily out of stock but replenishable”, one for “uncertain restock date”, and one for “discontinued”. Baymard’s guidance is clear: temporary stock-outs should still offer a buying path where possible, while discontinued products should push alternatives hard and be labelled clearly.

  • Set stock at variation level where the shopper decision is variant-specific

    In Products → Edit product → Product data → Variations, open each variation, tick Manage stock?, set Stock quantity, Allow backorders? and Low stock threshold, then Save changes and Update. WooCommerce supports product-level, variation-level, or mixed stock management, but OOS handling is usually cleaner when the real constraint is the selected size/colour/option rather than the parent product.

  • Hide only the dead-end variations, not every out-of-stock path

    WooCommerce can hide out-of-stock variations from dropdowns when WooCommerce → Settings → Products → Inventory → Hide out of stock items from the catalog is enabled, and the variation is managed at variation level, has quantity 0 or status Out of stock, and has backorders disabled. This is useful where an impossible option genuinely wastes clicks. Measurement note: do not switch this on globally until you have checked what it does to your alert capture, because the official Woo back-in-stock extension cannot collect signups for products or variations that are hidden from the catalogue.

  • For temporary stock-outs, prefer an honest backorder or pre-order over “notify me” as the only option

    In core WooCommerce, set Allow Backorders? at product or variation level and make the lead time explicit in the buy box copy. If you want lightweight preorder messaging with a visible date, Easy Pre-Orders uses WooCommerce → Settings → Easy Pre Orders for global defaults and Product Data → Easy Pre-Orders per product for the enable flag, label, button text, availability date and extra information. If you need formal preorder release handling, fees or “pay later”, WooCommerce Pre-Orders adds Product Data → Pre-Orders with Availability Date/Time and When to charge options, but that extension applies pre-orders at product level, not per variation; Woo’s own docs point you back to core backorders for variation-specific temporary stock-outs.

  • Add comparable alternatives on the out-of-stock PDP

    With WooCommerce Product Recommendations, go to WooCommerce → Recommendations → Engines → Create new, choose a Product engine, then add filters so the alternatives stay genuinely similar, for example category, stock status and price range. Woo’s docs specifically call out a Relative Price filter for Product engines, which is useful for keeping substitutes within a believable range instead of sending the shopper to unrelated accessories or much more expensive items. Then deploy the engine to a product-page location such as After Add-To-Cart Button, After Product Meta, Before Tabs or After Tabs.

  • Handle classic themes and block themes differently

    On classic themes/templates, you can place custom OOS messaging or alternative modules around the buy box using hooks such as woocommerce_after_add_to_cart_button, woocommerce_after_single_product_summary, or woocommerce_after_single_variation. On block themes / Site Editor, edit Appearance → Editor → Templates → Single Product and move or add blocks there. Important caveat: WooCommerce’s own Product Recommendations documentation says the extension is not yet optimised for block themes, so test on staging before using it as the main alternative module on a Site Editor build.

  • If you want native WooCommerce back-in-stock capture, use Back In Stock Notifications carefully

    After installing, go to WooCommerce → Settings → Stock Notifications and configure: – Require double opt-inMinimum stock quantityDisplay opt-in checkboxCatalog sign-up prompt – email templates under WooCommerce → Settings → Emails The plugin supports Simple, Variable, Product Bundles, and Woo Subscriptions product types; it stores selected variation attributes; and it only shows the signup form when the product or variation is Out of stock, not On Backorder. Per product, you can disable it in Products → Edit product → Inventory → Stock Notifications.

  • Only notify once inventory is stable enough to fulfil

    In the Woo extension, use Minimum stock quantity so alerts do not fire the moment one or two units land. That matters most for scarce or batch-restocked products where an early blast just recreates frustration. The extension also uses Action Scheduler and loopback requests, so check Tools → Site Health → Status if notifications do not send.

  • If the store runs Omnisend, you can build the alert and follow-up there

    Omnisend documents a WooCommerce back-in-stock flow: create the form in Forms → Create Form → “Gather interest in out-of-stock”, set targeting to Show on out-of-stock product pages, add a Legal Consent block if you want contacts to become subscribers rather than non-subscribers, and then create the workflow in Automation → Create Workflow → Back in Stock. For embedded forms on WooCommerce, Omnisend says to paste the embed code into the product short description or description. If you add SMS, Omnisend notes that its back-in-stock SMS cannot use dynamic event data such as specific product names, so keep SMS copy general and use it only where speed matters enough to justify the channel.

  • If the store runs Klaviyo, treat WooCommerce BIS as a custom integration unless the current app stack documents a native

    Klaviyo documents back-in-stock for some native integrations and provides guides for custom platform integrations, custom events and custom catalog feeds. I did not find a current official turn-key WooCommerce back-in-stock setup guide equivalent to Omnisend’s Woo guide during this research, so the safe assumption for planning is: capture on-site with your Woo/plugin layer, then sync subscribers, events and catalogue entities into Klaviyo via documented integration or API routes.

  • Keep availability truthful everywhere the shopper and Google can see it

    Your PDP copy, structured data and Merchant Center feed should agree on stock state. Google’s merchant documentation says out-of-stock products may show clear text such as “sold out” or a disabled/greyed-out buy button; if there are variants, you may disable only the unavailable options in the selection grid; and for preorder or backorder items, the page must display the expected shipping date. That dovetails with CMA and ASA guidance against misleading scarcity or urgency claims.

  • Before launch, baseline the out-of-stock journey and test it on staging

    Record what happens today when a shopper lands on an OOS PDP, selects an OOS variation, joins an alert, returns from a restock email, or buys a backordered item. If you use order-related extensions, confirm HPOS compatibility in WooCommerce → Settings → Advanced → Features, because Woo will block switching if incompatible extensions are active.

How To Measure

The main KPI here is OOS-page recovery rate, with secondary KPIs of alternative CTR, restock-alert signup rate, restock-alert conversion rate, and recovered revenue. In GA4, keep the standard ecommerce events live — at minimum view_item, select_item, add_to_cart, begin_checkout and purchase — and add custom event parameters or custom events for the OOS journey, for example stock_status=oos, variation_id, oos_pdp_view, restock_alert_signup, restock_alert_confirmed, and restock_alert_click. Register the relevant custom dimensions in GA4 so you can segment OOS sessions cleanly. Read the results in an Exploration or filtered ecommerce report for sessions where the PDP view carried stock_status=oos, and separately for recommendation clicks where item_list_name or a custom parameter identifies the module as an OOS alternative block. Success looks like more purchases and higher RPV from OOS PDP sessions, higher alternative CTR, more qualified alert signups, and measurable revenue from restock-alert traffic. The guardrails are: do not worsen overall PDP conversion rate, do not drag down AOV with poor substitutes, do not spike unsubscribe or complaint rates from alert emails/SMS, and do not hurt PDP LCP/INP/CLS with heavy widgets or popups. Google defines good Core Web Vitals as LCP within 2.5 seconds, INP at 200 ms or less, and CLS at 0.1 or less.

Pitfalls

  • Mistake: hiding all OOS variations and then wondering why waitlists fall. WooCommerce’s own rules for hiding OOS variations depend on variation-level stock and no backorders, but the Woo Back In Stock Notifications extension explicitly says customers cannot sign up if out-of-stock products or variations are hidden from the catalogue. Use hiding selectively, not reflexively.
  • Mistake: “alternatives” that are really accessories, complements or much pricier products. Baymard’s recommendation is to show alternatives, not supplementary suggestions, and Woo Product Recommendations gives you the filtering tools to enforce that. If the substitute would feel like a bait-and-switch to a reasonable buyer, it is the wrong substitute.
  • Mistake: alerting on the first unit back in. Official Woo BIS includes a minimum stock quantity trigger for a reason. If you notify faster than you can fulfil, you convert interest into frustration and train subscribers not to trust the alert.
  • Mistake: using urgency or scarcity copy that is not inventory-backed. CMA guidance says scarcity or “act fast” claims can be misleading where stock is actually available, where replenishment is imminent, or where the claim creates a false need to rush. ASA guidance says advertisers must make a reasonable estimate of demand, make limitations clear, and must not falsely claim limited availability.
  • Myth: “Email me when back in stock” is enough on its own. Baymard’s research does not support using email alerts as the primary answer for temporary stock-outs; where you have a credible replenishment date, the stronger primary move is often to let the customer commit to the order with an honest delay.
  • Myth: SMS is automatically better than email for restocks. SMS can be worth testing for scarce, fast-moving restocks, but the published evidence base here is thin and platform-heavy. Omnisend also notes that its BIS SMS cannot use dynamic product event data, which limits how specific the message can be.

Examples

FAQs

Sources & Further Reading

Want us to implement this for you?

We run measured CRO consultancy for WooCommerce. If you want help prioritising, testing & implementing these improvements, tell us about your store.

Book Pilot

About This Page

  • Written By: Eliot Webb – Founder & WooCommerce CRO Consultant
  • Last Reviewed: 17 Jun 2026
  • Last Updated: