> For a complete page index of the Captain API documentation, fetch https://docs.captain.dev/llms.txt?excludeSpec=true

# Install and connect

> Connect a Shopify store to Captain so its catalog and orders import.

Connect your store from the Captain console, approve the app in Shopify, and the first import starts on its own.

**You'll need:** a Shopify store on the Online Store sales channel, an invitation to install Captain Search, and a Captain Product Search tenant.

## Before you start

* A Shopify store on the Online Store sales channel.
* A Captain Product Search tenant with the Shopify integration switched on. Captain switches it on per tenant.
* An invitation to install the Captain Search app on the store. Ask the Captain team on Slack or by email.
* Shopify staff permission to approve app installs and edit the theme.
* An owner of your Captain organization, to create the storefront key later. You can also create that key through the API, on a server, with a write key for every index or the admin key.

## Connect the store

The connection uses Shopify's standard app approval (OAuth). Captain never asks for a Shopify password or an access token.

### Open the Shopify card

In the Captain console, open **Developers**, then **Integrations**. On the **Shopify** card, select **Connect**.

### Name the connection

In **Name**, enter a name for the connection, such as the store's name.

### Name the catalog

In **New catalog name**, keep `shopify-products` or enter a name no other catalog uses. You'll paste this exact name into the storefront key and the theme setting later.

### Choose how often to resync

In **Sync every**, choose 1, 6, 12 or 24 hours. This is how often Captain re-reads the whole catalog. The default is 6 hours.

### Enter the store domain

In **Store domain**, enter the store's `myshopify.com` address, for example `your-store.myshopify.com`.

### Approve the app in Shopify

Select **Connect with Shopify**. In Shopify, review the permissions and approve the install.

### Check the connection

Shopify sends you back to the Captain console. A green message reads "Shopify is connected. Your first import starts in a few minutes."

The first sync starts on its own. The connection shows its status, product count and last sync in the console.

Each new connection creates a new catalog. Captain refuses a name that an existing catalog already has.

Next: [turn on storefront search](/guides/product-search/shopify/storefront-search).

## Permissions

The app asks for exactly these seven permissions. It doesn't ask for customer records (`read_customers`), and it asks for no write access to products, orders or themes.

| Permission             | Why Captain needs it                                                                                                                              |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `read_products`        | Import products and variants, and receive product create, update and delete notifications.                                                        |
| `read_inventory`       | Store stock levels and availability with each variant.                                                                                            |
| `read_orders`          | Measure revenue from search. Captain reads new orders and the last 60 days of order history.                                                      |
| `read_publications`    | Reserved. The current release checks Online Store publication from each product's publish date.                                                   |
| `read_themes`          | Reserved for theme setup checks. The current release doesn't read themes.                                                                         |
| `write_pixels`         | Install the Captain web pixel, which reports page views, add-to-cart and completed checkouts. This is the only write permission the app asks for. |
| `read_customer_events` | Shopify requires it to run a web pixel.                                                                                                           |

Order access is protected customer data in Shopify. Captain requests order data without names, email addresses, postal addresses or phone numbers.