> ## Documentation Index
> Fetch the complete documentation index at: https://docs.textyess.com/llms.txt
> Use this file to discover all available pages before exploring further.

# WooCommerce compatibility requirements

> How to verify that your WooCommerce store meets the technical requirements for TextYess abandoned-cart recovery, with three independent compatibility checks.

The TextYess abandoned-checkout feed reads in-progress carts directly from WooCommerce's `checkout-draft` orders. These are the records WooCommerce itself writes when a shopper opens the modern block-based checkout but doesn't complete the purchase.

If your store uses the modern **Checkout block**, everything works automatically. If your store still uses WooCommerce's older **classic** checkout shortcode, no draft records are created and the abandoned-checkout feed will be empty.

This page explains how to tell which one you have, and how to verify your setup before going live with TextYess.

## Requirements

For abandoned-checkout recovery to work end-to-end, your store must meet all of the following:

* **WooCommerce 8.3 or later.** The block-based checkout is the default for new installs from 8.3 onwards. Earlier versions can still use it, but it must be enabled manually.
* **The `/checkout/` page must use the WooCommerce Checkout block**, not the legacy `[woocommerce_checkout]` shortcode.
* **The TextYess for WooCommerce extension is installed and activated.**
* **Your store is reachable from the public internet.** The TextYess backend polls your store's REST API, so local development environments and sites behind a firewall will not work.
* **The WordPress REST API is enabled.** It is enabled by default, but some security plugins disable it.
* **A WooCommerce REST API key with read access**, generated during the TextYess connection flow.

<Note>
  **HPOS (High-Performance Order Storage)** is fully supported and recommended. The TextYess extension automatically detects which storage mode your store uses — no configuration needed.
</Note>

## Three ways to verify compatibility

Any one of the checks below is enough to confirm whether your store is compatible. They are ordered from easiest to most technical — pick whichever suits you best.

### 1. From your WordPress admin

No technical skills needed. Just a look inside the block editor.

<Steps>
  <Step title="Open the Checkout page for editing">
    Log into your WordPress admin at `/wp-admin`, go to **Pages**, click **Checkout**, then click **Edit**.
  </Step>

  <Step title="Look at the page content">
    * If you see a **Checkout** block in the editor — a block with fields like Email, Shipping Address, and Payment — you are on the modern checkout.
    * If you see the text `[woocommerce_checkout]` inside a **Shortcode** block (or a **Classic** block), you are on the legacy checkout.
  </Step>
</Steps>

<Check>**Modern Checkout block.** TextYess will work — you can move on to the onboarding guide.</Check>

<Warning>**Legacy shortcode checkout.** TextYess will not capture abandoned carts on this page until you migrate. See [Migrating from the legacy checkout](#migrating-from-the-legacy-checkout) below.</Warning>

### 2. From your browser

About 30 seconds, no admin access needed. You just need to be able to visit the store as a shopper.

<Steps>
  <Step title="Add a product to your cart">
    Open your store in a normal browser tab and add any product to your cart.
  </Step>

  <Step title="Open the checkout page">
    Navigate to your checkout page.
  </Step>

  <Step title="Open developer tools">
    Open your browser's developer tools — usually by pressing **F12** — and switch to the **Network** tab.
  </Step>

  <Step title="Refresh and inspect">
    Reload the checkout page with developer tools open. In the Network tab, look for a request whose URL contains `wc/store/v1/checkout`.
  </Step>
</Steps>

<Check>**You see a `wc/store/v1/checkout` request.** You are on the modern checkout — TextYess will work.</Check>

<Warning>**No `wc/store/v1/...` requests anywhere.** Your store is using the legacy checkout. See [Migrating from the legacy checkout](#migrating-from-the-legacy-checkout) below.</Warning>

### 3. Using the WooCommerce REST API

For developers. Requires a WooCommerce REST API consumer key and secret, which you can create in **WooCommerce → Settings → Advanced → REST API**.

Run the following from a terminal, replacing the placeholders with your own credentials and store URL:

```bash theme={null}
curl -u "ck_xxx:cs_xxx" \
  "https://your-store.com/wp-json/wc/v3/orders?per_page=5&_fields=id,created_via"
```

Look at the `created_via` field on the returned orders:

| `created_via` value                                   | What it means                                                                                                                          |
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `store-api`                                           | Modern block-based checkout. **Compatible** — TextYess will work.                                                                      |
| `checkout`                                            | Legacy classic checkout. **Not compatible** — TextYess will not capture abandoned carts.                                               |
| `admin`, `subscription`, `rest-api`, or anything else | Order was created outside the customer-facing checkout flow. Not relevant for abandoned-cart recovery — check the rest of your orders. |

<Tip>
  If your store has no recent customer orders to check, you can create a draft yourself. Open your store in an incognito window, add a product, go to the checkout page, fill in a few fields, then close the tab without completing the purchase. Wait about 30 seconds, then run the same `curl` command, replacing the query string with `?status=checkout-draft&per_page=5`. If at least one row comes back, your checkout is generating drafts correctly.
</Tip>

## Migrating from the legacy checkout

If your store is on the legacy `[woocommerce_checkout]` shortcode, the fastest path forward is to migrate the Checkout page to the WooCommerce **Checkout block**. WooCommerce has been encouraging this migration since version 7.8 and provides a built-in editor flow.

The short version:

<Steps>
  <Step title="Open the Checkout page in the block editor">
    In **wp-admin → Pages**, click **Checkout** to open it in the block editor.
  </Step>

  <Step title="Remove the old block">
    Delete the existing **Shortcode** block (or **Classic** block) containing `[woocommerce_checkout]`.
  </Step>

  <Step title="Insert a Checkout block">
    Add a new **Checkout** block in its place. WooCommerce provides this block out of the box.
  </Step>

  <Step title="Publish and verify">
    Click **Update**, then re-run any of the three checks above to confirm the new checkout is live.
  </Step>
</Steps>

On a stock WooCommerce installation this takes about five minutes.

<Warning>
  If your checkout has been customized — by a page builder such as Elementor, Divi, or WPBakery; by a third-party checkout plugin such as CartFlows or FunnelKit; or by theme code — the migration may take significantly longer, because those customizations need to be reapplied as block extensions. Budget accordingly and test on a staging environment first.
</Warning>

For the full, canonical procedure, refer to WooCommerce's official documentation on upgrading from the classic checkout to the Checkout block (search "WooCommerce Checkout block migration" in WooCommerce's own docs for the latest guide). Once your checkout has been migrated and the page is published, new abandoned carts will start appearing in TextYess automatically within minutes. No action is needed in the TextYess dashboard.

## Headless or decoupled WooCommerce stores

If your storefront is built as a headless or decoupled site — for example using Next.js, Gatsby, Faust, Frontity, or any custom frontend — with WooCommerce only as a backend, whether abandoned-cart recovery works depends on how your frontend implements checkout:

* **If your frontend uses the WooCommerce Store API** (`wc/store/v1/checkout`) to drive checkout, abandoned-cart capture works exactly the same as it does for a stock block-checkout store. **Compatible**.
* **If your frontend posts the final order submission to WooCommerce's classic AJAX endpoint** (`?wc-ajax=checkout`), typically for payment-gateway compatibility reasons, WooCommerce does not write draft records on this path and the standard abandoned-cart feed will be empty. **Not compatible out of the box.** This is a limitation of WooCommerce itself, not of the TextYess extension.

<Note>
  If you are running a headless store on the classic AJAX endpoint, please [contact TextYess Support](https://textyesssupport.zendesk.com/hc/en-us). We offer an opt-in JavaScript snippet that lets your frontend send abandoned-cart events to TextYess directly.
</Note>

***

Once you have confirmed your store is compatible, follow the [WooCommerce onboarding guide](/woocommerce-onboarding) to connect it. If something isn't working after connection, see the [WooCommerce troubleshooting guide](/woocommerce-troubleshooting) or reach out to [TextYess Support](https://textyesssupport.zendesk.com/hc/en-us).
