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

# Connect your Shopify store

> Connect Shopify to Eva so your agent sells with your real products, prices and stock, and answers order questions inside the conversation.

Once your Shopify store is connected, your agent stops guessing: it searches your real products, quotes the published price, checks stock and answers where an order is. You connect the store from the agent, on the **Tools** tab.

## What you will achieve

A customer asks "do you have this jacket in black?" and your agent answers with the product from your store, its price, its availability and a link to pay for it.

## Before you start

* An agent created in Eva.
* Access to your store as the owner, or as a staff member allowed to install and develop apps.
* Your store's `.myshopify.com` domain. If you use your own domain, that Shopify domain still exists, under Settings → Domains.
* Shopify enabled on your Eva account. If it is not, the connector says "Shopify isn't available on your account yet. Contact us to turn it on."

## Two ways to connect

The connection window has two tabs. Pick one; both end in the same connection.

|                        | **OAuth (recommended)**                      | **Use Custom App token**                                     |
| ---------------------- | -------------------------------------------- | ------------------------------------------------------------ |
| How you authorize      | Shopify shows the permissions and you accept | You create an app in your store and paste its token into Eva |
| What you need first    | The install link Eva prepares for your store | Owner permission to develop apps                             |
| Customer personal data | Included with the permissions you grant      | Only on Shopify's Grow, Advanced or Plus plans               |
| Changes in your store  | Reach Eva within minutes                     | Reach Eva once a night                                       |

<Note>
  **OAuth (recommended)** is the normal path. Start by contacting us: we prepare your store's install link and send it to you. That link always comes first: if you start from **Connect Shopify** before opening it in Shopify, Shopify answers that the install link is not valid and the connection never reaches Eva.
</Note>

## Steps

<Steps>
  <Step title="Open your agent's tools">
    In the side menu, go to **AI Agents**, open your agent and go to **Tools**.
  </Step>

  <Step title="Start the connection">
    On the **Shopify** card, select **Connect Shopify**. **Connect your Shopify store** opens with the two tabs.
  </Step>

  <Step title="Pick the tab">
    Select **OAuth (recommended)** or **Use Custom App token**. The window changes with your choice.
  </Step>

  <Step title="If you go with OAuth">
    Install the link we sent you in Shopify first. Then come back to this window, type your store's **Shopify domain** and select **Continue to Shopify**. Shopify shows the permissions and you accept them.
  </Step>

  <Step title="If you go with the token">
    Select **Show setup instructions** and follow the seven steps inside your Shopify Admin: create the app, tick the permissions, install it and reveal the Admin API token. Shopify shows that token only once. Paste the **Shopify domain** and the token, then select **Connect store**.
  </Step>

  <Step title="Decide whether to bring your customers">
    **Import your Shopify customers with their city and consent** is on by default. They join Contacts without being messaged, and you can turn it off before connecting.

    The import needs the customers permission. If you did not grant `read_customers`, nobody is imported and the Shopify card says so: "Shopify customers: the store has not granted the customers permission (read\_customers)".
  </Step>
</Steps>

## What Shopify will ask for

Shopify asks for permissions, one for each thing you want the agent to do. The first two are required: without them Eva cannot read your catalog.

| What you enable in Eva                                       | Permission you grant                 |
| ------------------------------------------------------------ | ------------------------------------ |
| Product search and checkout links (required)                 | `read_products` and `read_inventory` |
| Stock by store or location                                   | `read_locations`                     |
| Order status and tracking                                    | `read_orders`                        |
| Customer profile, and importing your customers into Contacts | `read_customers`                     |
| Create draft orders and email the invoice                    | `write_draft_orders`                 |

<Warning>
  On the **Use Custom App token** tab, the customer's email, phone, name and address only arrive if your store is on Shopify's Grow, Advanced or Plus plan. On Basic or Starter those fields arrive empty and order answers do not work. The window repeats this under **Before you start, confirm**, next to **Shopify plan**.
</Warning>

A permission you did not grant does not break the connection: the action that needs it stays on and answers that the permission is missing. To add it, go back to the app's permissions in Shopify and tick it; the token does not change.

## After connecting

The six Shopify actions turn on by themselves, and you see them under **What can the agent do?** in **Tools** → **Shopify**:

* **Send checkout link**
* **Look up customer orders**
* **Check inventory by location**
* **Look up customer info**
* **Create draft order**
* **Track orders**

Turn off any you do not want. That decision is respected: if you later disconnect and connect again, what you turned off by hand stays off.

The product import starts at the same time. Open it on the agent's **Catalog** tab: while it works, the card says **Syncing catalog**. In a store with few products it takes minutes; in a large catalog the first import can approach an hour.

Eva imports only the active, published products from your store. Drafts, archived products and unpublished ones stay out, even if you edit them later.

Once imported, the catalog keeps itself current. Connected through OAuth, the card says **Updates automatically within minutes when your store changes**. Connected with a token, it says **Updates once a night; use Sync Now for changes you need right away**.

<Note>
  Products that come from Shopify are read-only in Eva. You edit them in Shopify and they arrive on the next sync.
</Note>

## How to know it worked

The Shopify card in **Tools** says **Connected** and shows **Shop:** with your domain. On **Catalog**, the source appears as **Shopify · Connected store** with the product count.

The real proof is asking. Open **Test** and ask your agent for a product you know exists, price included.

## If something goes wrong

<AccordionGroup>
  <Accordion title="Shopify says the install link is not valid">
    That message appears when the install started from Eva instead of from the link we prepared for your store. Open that link first. If you already did and it still fails, close the Shopify tabs, sign in as the store owner in an incognito window and open the link again.
  </Accordion>

  <Accordion title="An action answers that a permission is missing">
    The permission that action needs was not granted. Go back to the Admin API permissions in your Shopify app, tick the missing one and save. The token you already pasted still works: the agent picks up the new permission on its next call to Shopify.
  </Accordion>

  <Accordion title="The agent answers with old products or prices">
    Check the last sync date on the **Catalog** tab. With a token connection changes arrive once a night, so for something urgent use **Sync Now**.
  </Accordion>

  <Accordion title="The connection shows an error">
    Eva tells you when Shopify stopped accepting its access, or when it needs you to authorize again. In both cases your products and your stock stop updating until you authorize again from the Shopify card. Messages that already arrived stay visible in the Inbox.
  </Accordion>
</AccordionGroup>

## Disconnect and reconnect

On the Shopify card, select **Disconnect**. The status becomes **Disconnected** and the six actions turn off: your agent stops querying the store.

Your products are not deleted. They stay exactly so that reconnecting does not have to import everything from scratch again.

To come back, select **Reconnect** and repeat the path you were already using. The actions turn back on, except the ones you had turned off by hand.

## Next steps

<Columns cols={2}>
  <Card title="Recover abandoned carts" href="/en/automations/abandoned-cart" />

  <Card title="Check how your catalog turned out" href="/en/your-agent/catalog" />
</Columns>
