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

# Shopify

> Connect your Shopify store with one click to send order updates, confirm COD orders, and win back abandoned checkouts on WhatsApp.

## What is this?

The **Shopify** integration connects your store to your workspace. When an order is created or its payment status changes, Shopify tells the platform, and an automation sends the right WhatsApp template to the customer — for example *Order confirmed* when an order is **Paid**.

You connect with **one click**. You enter your store name, approve access in Shopify, and choose your templates. There are no API keys or tokens to copy.

\[SCREENSHOT: shopify-provider-page — The Shopify page showing the Connect button and the list of connected stores]

<Info>
  Your platform administrator adds the Shopify app credentials once, in Integration Settings. Until they do, this page shows "Connecting Shopify isn't set up for this platform yet" instead of the **Connect** button.
</Info>

## What can I do here?

* Connect one or more Shopify stores to a channel
* Send a WhatsApp template for each order status
* Ask cash-on-delivery customers to **confirm or cancel** on WhatsApp — see [COD Confirmation](/workspace/integrations/cod-confirmation)
* Send **abandoned cart** reminders — see [Abandoned Cart Recovery](/workspace/integrations/abandoned-cart)
* Look up and update orders inside your own flows with the [Shopify order steps](/workspace/automation/steps/integrations)
* Check that webhooks are registered, and review every request Shopify sent

## How to use it

### Connect a store

<Steps>
  <Step title="Open the Shopify page">
    Go to **Integrations** and click **Shopify**. Click **Connect** — or **Add another store** if you already have one.
  </Step>

  <Step title="Enter your store name">
    Type your store's Shopify address, for example `yourstore.myshopify.com`. The page lists what happens next: an automation is created, webhooks are registered on your store, each new event runs the automation, and you can edit the flow any time.
  </Step>

  <Step title="Approve access in Shopify">
    Click **Continue to Shopify**. Shopify asks you to approve read and write access to orders, then sends you back.
  </Step>

  <Step title="Choose your messages">
    On **Finish Shopify setup**, pick a WhatsApp template for each order status you want to notify about:

    | Status                          | When it applies                                 |
    | ------------------------------- | ----------------------------------------------- |
    | **Pending**                     | The order was placed but payment isn't complete |
    | **Authorized**                  | Payment was authorized                          |
    | **Partially paid**              | Only part of the order is paid                  |
    | **Paid**                        | The order is paid                               |
    | **Partially refunded**          | Part of the order was refunded                  |
    | **Refunded**                    | The order was refunded                          |
    | **Voided**                      | The payment was voided                          |
    | **COD (awaiting confirmation)** | An unpaid cash-on-delivery order                |

    Leave a status empty to send nothing for it.
  </Step>

  <Step title="Set up and activate">
    Click **Set up and activate**. You'll see "Integration configured."
  </Step>
</Steps>

\[SCREENSHOT: shopify-finish-setup — The Finish Shopify setup page with the status-to-template mapping list]

<Note>
  If a template contains variables such as the customer name or order total, the page shows "variable(s) to check." After saving, open the automation in the builder and choose the value for each one. Until then the message may fail to send.
</Note>

### Manage a connected store

Click a store on the Shopify page to open it. It has five tabs:

| Tab                | What's in it                                                                                                                                                          |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Overview**       | Connection status, when it was connected, the last event, whether deliveries are signature-verified, and **Verify on Shopify** to confirm the webhooks are registered |
| **Messages**       | The status-to-template mapping (read-only — edit the flow in the automation builder)                                                                                  |
| **Abandoned cart** | Turn abandoned-cart reminders on and choose their templates and timing                                                                                                |
| **Activity**       | Every request Shopify sent for this store, including duplicates                                                                                                       |
| **Settings**       | Disconnect the store                                                                                                                                                  |

\[SCREENSHOT: shopify-connection-overview — A connected store's Overview tab with webhook status and the Verify on Shopify button]

Use **Open automation** to change the flow in the builder — templates, extra steps, or conditions.

### Disconnect a store

Open the store, go to **Settings**, and click **Disconnect**. The webhooks are removed from your store and the automation is switched off. You can reconnect later.

## Things to know

* **Repeats are ignored.** Shopify often sends a "created" and an "updated" message for the same order, and retries. If the status hasn't changed, the customer isn't messaged twice. These show as **Duplicate (ignored)** in Activity.
* **Deliveries are verified.** Requests are checked against a signature, so only genuine Shopify events run your automation.
* **Older connections.** A store connected earlier with a pasted admin token keeps working, but its deliveries aren't signature-verified. Disconnect and reconnect to switch to one-click and enable verification.
* **COD and abandoned cart need write access.** If a store was connected before write access was requested, you'll see a notice to disconnect and reconnect and approve the new access.

## Troubleshooting / Technical Notes

* **"Connecting Shopify isn't set up for this platform yet."** Ask your platform administrator to add the Shopify app credentials in Integration Settings.
* **"Authorization failed."** The connection wasn't completed in Shopify. Try connecting again.
* **Orders don't trigger messages.** Open the store and click **Verify on Shopify**. If any webhook shows **Missing**, disconnect and reconnect to register them again. Also check the store is **Connected** and that a template is chosen for that status.
* **"Setup incomplete."** You haven't chosen templates yet. Click **Finish setup** on the Overview tab.
* **A customer wasn't messaged.** The order needs a phone number. Also check the status has a template, and the message template is approved.

## Related docs

* [Integrations Overview](/workspace/integrations/overview)
* [COD Confirmation](/workspace/integrations/cod-confirmation)
* [Abandoned Cart Recovery](/workspace/integrations/abandoned-cart)
* [Integration steps in the builder](/workspace/automation/steps/integrations)
* [Templates](/workspace/whatsapp/templates)
