> For the complete documentation index, see [llms.txt](https://docs.shopperos.stackline.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.shopperos.stackline.com/selling-and-checkout/shopify-integration.md).

# Connect your Shopify store

Connect your Shopify store so ShopperOS can import your products and keep them in sync. ShopperOS can then also work with your store's orders and inventory. You approve one private app in Shopify, and the import starts by itself.

```mermaid
flowchart LR
  A["Connect Shopify"] -->|Authorize with Shopify| B["Shopify: approve the app"]
  B --> C["Shopify approved the app — connecting…"]
  C --> D["Connecting Shopify and importing your products…"]
  D --> E["Products in Catalog"]
```

*You act only in the first two boxes. ShopperOS does the rest, usually in a few minutes.*

## The connection imports products and syncs changes

ShopperOS connects through a private **ShopperOS app** on your store. After you approve it:

* Your **active** products are imported into your ShopperOS catalog. Draft and archived products are skipped.
* Product, inventory, and order changes in Shopify sync to ShopperOS automatically.
* Your Shopify store orders show in **Commerce → Orders**, beside the orders of your ShopperOS checkout. A cancel or a refund in Shopify shows there too. See [Orders](/selling-and-checkout/orders.md#changes-in-the-sales-channel).
* ShopperOS store pages can be served from your store under `your-store.com/a/sos/…`. Examples are the concierge chat and shopper account pages.

Connecting the store does not turn on any other feature by itself. You switch on checkout, fulfillment, and the concierge on their own screens.

## Before you start

| You need                                    | Why                                                                                                       |
| ------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| A Shopify store you can sign in to as staff | You approve the app in Shopify.                                                                           |
| Your store address                          | Your `.myshopify.com` address, your Shopify admin link (`admin.shopify.com/store/…`), or your own domain. |
| The ShopperOS app for your project          | <mark style="color:purple;">Stackline team</mark> Your Stackline team creates and deploys it.             |

{% hint style="warning" %}
**Stackline team step: give our Shopify account staff access.** Your Stackline team creates the ShopperOS app in your store's Shopify organization. For this, they ask you to add their Shopify account as staff. Give it the **Themes** and **Manage and install apps** permissions, and app developer access. Your Stackline contact tells you which account to add.
{% endhint %}

## Step 1: Connect from the catalog setup

Start on **Catalog**, or on **Settings → Catalog → Source**. A new project opens on **Configure your catalog to get started**.

{% stepper %}
{% step %}

### Open the catalog source

Open **Catalog**. A catalog with no products shows **Configure your catalog to get started**.

If the catalog has no source, open **Settings → Catalog → Source**, and click **Add source**.
{% endstep %}

{% step %}

### Choose Shopify

Choose **Shopify**: *Sync your live Shopify catalog through this project's Shopify app.* **Connect Shopify** opens.
{% endstep %}

{% step %}

### Select your app

On **Connect Shopify**, in **Shopify app**, select your project's app.
{% endstep %}

{% step %}

### Enter your store

In **Your Shopify store**, paste your admin URL, your `.myshopify.com` address, or your store's domain.
{% endstep %}

{% step %}

### Authorize the app

Click **Authorize with Shopify**. Shopify opens.
{% endstep %}

{% step %}

### Sign in to Shopify

Sign in to Shopify as a staff member of the store. Shopify shows the app's permissions.
{% endstep %}

{% step %}

### Approve the app

Review the permissions, and approve the app. Shopify sends you back to ShopperOS.
{% endstep %}

{% step %}

### Wait for the import

You see **Shopify approved the app — connecting…**, then **Connecting Shopify and importing your products…**

The import usually takes a few minutes. You can keep working.
{% endstep %}
{% endstepper %}

Done. Your products appear in **Catalog** when the import finishes. Next, check the connection.

## Step 2: Check the connection

Open **Settings → Shopify**. It shows whether your store is connected and which features can use it.

![Settings → Shopify with a connected store](https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-5567ee132faf0e5682e664554d4083668e0722bb%2Fsettings-shopify.jpg?alt=media)

| Section                    | What you see                                                                                                                                                                                                               |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Store**                  | Your store address with a <mark style="color:green;">Connected</mark> badge, and the date the ShopperOS app was installed. **Open Shopify admin** opens your store's admin.                                                |
| **What can use the store** | Each feature that can use the store, with an **Open** link to its own settings screen: **Catalog source**, **Concierge on the store**, **Main link**, **Fulfillment**, **Checkout**, and **Coupons in Shopify Discounts**. |
| **ShopperOS app**          | The app details. <mark style="color:purple;">Stackline team</mark> Only your Stackline team can deploy, update, or revoke the app.                                                                                         |

To copy your ShopperOS coupon codes into Shopify Discounts, see [Sync coupons to Shopify](/growth/growth.md#sync-coupons-to-shopify).

## Step 3: Choose where shoppers land

**Settings → Hosting → Main link** decides where shared links and published pages open.

![Settings → Hosting](https://489913050-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FblcXcPwOUg5osGsERflQ%2Fuploads%2Fgit-blob-94ca612cc6ff6ab90b658db3fcf23cad917ea6e0%2Fsettings-hosting.jpg?alt=media)

| Option               | Use it when                                                                                  |
| -------------------- | -------------------------------------------------------------------------------------------- |
| **ShopperOS domain** | You do not use a Shopify storefront, or you want pages on a domain ShopperOS manages.        |
| **Shopify store**    | Shoppers browse on your Shopify store. Choose this to show the concierge chat on your store. |

Under **Domains**, you see each address your project is served on and its status. To serve from a domain you own, see [Domains and hosting](/pages-studio/hosting.md).

## Step 4: Set up the theme

Turn on the ShopperOS theme blocks in the Shopify theme editor, so ShopperOS features appear on your store. You work in **Shopify admin → Online Store → Themes**.

{% stepper %}
{% step %}

### Open the theme editor

In Shopify admin, open **Online Store → Themes**, and click **Customize** on your theme.
{% endstep %}

{% step %}

### Turn on the app embed

Open **App embeds**, and turn on the ShopperOS embed. The concierge chat bubble then shows on your store.
{% endstep %}

{% step %}

### Add the product page block

On your product page template, add the ShopperOS block where you want it.
{% endstep %}

{% step %}

### Save

Click **Save**.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
A storefront password hides your store from shoppers and blocks ShopperOS pages. Do not go live with it. Remove it in Shopify admin under **Online Store → Preferences**.
{% endhint %}

Done. Your store shows the concierge chat bubble and the ShopperOS product page block. Next, [turn on checkout and payments](/selling-and-checkout/checkout-and-payments.md).

## Troubleshooting

Find the message you see, then do the action in its row.

| Message                                                                     | What to do                                                                                                 |
| --------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| **This project has no Shopify app yet. Ask a superuser to create one.**     | Ask your Stackline team to create the ShopperOS app for your project.                                      |
| **… cannot open … Ask the merchant to add … as staff …**                    | Add the Stackline Shopify account as staff, with the permissions in [Before you start](#before-you-start). |
| **Authorization could not be matched to this session. Authorize again.**    | Click **Authorize with Shopify** again, from the same browser tab.                                         |
| **… products were skipped because they are drafts or archived in Shopify.** | Set those products to **Active** in Shopify, then click **Reimport** in **Settings → Catalog → Source**.   |
| **The import from … finished, but it found no products to add.**            | Check that your store has active products, then click **Retry import**.                                    |

## What if…?

<details>

<summary>What if I already have an Admin API token?</summary>

Your store can have its own custom app under **Settings → Apps → Develop apps** in Shopify. In that case, click **Already have a shpat\_ token? Paste it instead**. Paste the token that starts with `shpat_`, and click **Connect Shopify**.

</details>

## Next step

{% content-ref url="/pages/lF2rehaIqtG80GDxx8Gx" %}
[Turn on checkout and payments](/selling-and-checkout/checkout-and-payments.md)
{% endcontent-ref %}
