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

# Shopify

> Connect one or more Shopify stores to Perform.AI so orders and shipments import automatically, for teams without an API integration.

**Available to all Perform.AI customers.**

## Summary

The Shopify integration connects one or more Shopify stores to a single Perform.AI organization and imports their orders and shipments automatically. You create a small app in your Shopify store, give Perform.AI its credentials, and from then on every fulfilled order arrives in Perform.AI without any upload or API work.

## Who it’s for

E-commerce and operations teams on Shopify who want tracking, notifications and reporting on their shipments without building an API integration. It is the fastest way to get shipment data into Perform.AI when your orders already live in Shopify.

## Key benefits

* **No code to write.** The connection runs on a Shopify app you create in your store’s Dev Dashboard. Perform.AI reads the orders, fulfilments and product images it needs and never writes data back to your store.
* **Several stores, one account.** Connect multiple Shopify stores to one Perform.AI organization. Each store carries its own display name and tags, so you can tell them apart in Shipment Overview.
* **Shipments are ready for the rest of the platform.** Imported shipments can be linked to one of your Tracking Pages, so shoppers get your branded tracking and your notifications from the first order.
* **History can be re-pulled on demand.** If you need to import shipments from before the connection, or re-sync a period, choose a sync window and start a manual sync.

## How it works

### Store credentials

The integration authenticates with an app you create in your Shopify store. Three credential fields identify the store and the app.

| Field | Required for | What to enter |
| - | - | - |
| Store URL | Saving and activating | The store part of your `myshopify.com` address. For `https://northwind-apparel.myshopify.com`, enter `northwind-apparel`. |
| API Key | Activating only | The **Client ID** of the Shopify app you create for Perform.AI. |
| API Secret Key | Activating only | The **Secret** of that app. |

Perform.AI uses the key and secret to access the Shopify API for your store. To change a credential after saving, enter the full value again.

### Store details

| Setting | Required | What it does |
| - | - | - |
| Store Display Name | No | By default Perform.AI uses the store name from Shopify as the integration name and adds it to every imported shipment. Enter a value to override it. |
| Tracking Page | No | Links every imported shipment to the selected Tracking Page for shopper notifications and tracking links. Choose from the Tracking Pages in your account. |
| Store Tag | No | Tags entered here are added to every shipment imported from this store. |
| Manual Sync Duration | Activated integrations only | Perform.AI receives and processes shipment data from Shopify automatically. To re-pull data, choose how far back to query (**Today**, **Last week**, **Last month** or **Last three months**) and select **Sync**. |

### Access scopes

The Shopify app must grant these read scopes. Without them the integration does not work. Perform.AI requests no write access.

| Scope | Used for |
| - | - |
| `read_orders` | Order and shipment information |
| `read_products` | Line item product images |
| `read_assigned_fulfillment_orders` | Fulfilment order information |
| `read_fulfillments` | Fulfilment information |

Set the app’s webhook API version to the oldest version Shopify offers. Shopify retires versions on a quarterly cycle and falls forward to the oldest supported version automatically, so the integration keeps working without you updating the setting.

### Integration status

| Status | Meaning |
| - | - |
| Draft | The integration is saved but not active. The store URL is enough to save; the API Key and API Secret Key are needed to activate. |
| Activated (Connected) | **Activated** is the state of the integration in Perform.AI. **Connected** is the status of the Shopify app as reported by Shopify. Shipments are importing. |

While an integration is active you can change the store details, such as the display name or Tracking Page. To change the store credentials, deactivate the integration first. You can delete a saved integration from the configuration panel.

### Checkout apps for Shopify

Perform.AI also provides Shopify checkout apps that put the [Checkout EDD Widget](https://developers.perform.ai/products/checkout/checkout-edd-widget.md) and the [Pick-Up Point Selector](https://developers.perform.ai/products/checkout/pick-up-point-selector.md) inside Shopify’s checkout. These are separate from the store integration described on this page and are available on request. They are Shopify Checkout UI Extensions distributed to your store through a custom install link, and the checkout-step placement requires a Shopify Plus plan. After installing, you add the app block in the Checkout Editor and, if you use accelerated checkout, authorize the app for Shop Pay. Contact your account team to set them up.

## Set up in the portal

Go to **Integrations** and select **Add Store** on the Shopify tile.

1. Enter the **Store URL** and any store details you want (display name, Tracking Page, store tag). Select **Save**. The integration is created in Draft status.
2. In your Shopify store, create an app in the Dev Dashboard, grant the four read scopes, set the webhook API version, release the version and install the app. The step-by-step Shopify side is in the Developers guide: [Shopify integration setup](https://developers.perform.ai/integrations/shopify.md).
3. Copy the app’s **Client ID** into the **API Key** field and its **Secret** into the **API Secret Key** field in Perform.AI, then select **Save**.
4. Select **Activate**. The status changes to Activated (Connected), and the integration shows as Activated in the Integration Overview table.

> [!TIP]
>
> Selecting **Cancel** before **Save** discards everything you entered in the panel.

## Use via API and MCP

The Shopify integration is configured in the portal. For a code-level integration with your own systems, use the Public API instead: see [Create a shipment](https://developers.perform.ai/guides/create-shipment.md).

Through the Perform.AI MCP, your AI assistant can read the store connections in your organization with the `list_integration_types` and `list_integration_connections` tools: which store, which integration it runs on, its status and how far each sync reaches. See [MCP tools](https://developers.perform.ai/mcp/tools.md).

## FAQ

### Can I connect more than one Shopify store?

Yes. You can connect several stores to one Perform.AI organization. Each store is its own integration with its own display name, tags and Tracking Page, and each needs its own Shopify app.

### Does Perform.AI change anything in my Shopify store?

No. The app only reads orders, fulfilments and product images. The scopes it asks for are all read scopes.

### Why do I need a Shopify Plus plan?

You do not need it for the store integration. Shopify Plus is only required for the separate checkout apps when they are placed in the checkout step, because Shopify restricts checkout-step extensions to Plus stores.

### How do I import orders from before I connected the store?

Open the activated integration, choose a **Manual Sync Duration** and select **Sync**. Perform.AI queries Shopify for that period and imports the shipments.

### Do I have to update the webhook API version when Shopify releases a new one?

No. Set it once to the oldest available version. When Shopify retires that version it moves to the next oldest automatically, and the integration follows.

## Troubleshooting

| Symptom | Cause | Fix |
| - | - | - |
| The integration saves but will not activate | API Key or API Secret Key is missing | Copy the app’s Client ID and Secret from the Shopify Dev Dashboard into the two fields, save, then activate. |
| Orders are not importing after activation | The app is missing one of the required read scopes | In the Shopify app configuration, add `read_orders`, `read_products`, `read_assigned_fulfillment_orders` and `read_fulfillments`, then release the app version again. |
| You cannot edit the API Key or API Secret Key | The integration is active | Select **Deactivate**, change the credentials, save and activate again. |
| Imported shipments are not on your Tracking Page | No Tracking Page is selected on the integration | Open the integration, select a Tracking Page under store details and save. Store details can be changed while the integration is active. |
| Details entered in the panel are lost | **Cancel** was selected instead of **Save** | Re-enter the values and select **Save** before leaving the panel. |

## Related

* [Shopify integration setup (Developers guide)](https://developers.perform.ai/integrations/shopify.md)
* [Checkout EDD Widget](https://developers.perform.ai/products/checkout/checkout-edd-widget.md)
* [Pick-Up Point Selector](https://developers.perform.ai/products/checkout/pick-up-point-selector.md)
* [Tracking Page](https://developers.perform.ai/products/post-purchase/tracking-page.md)
* [Integrations overview](https://developers.perform.ai/products/integrations/overview.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.