Docs
Integrations

Shopify

Connect a Shopify store and sync its products, collections, pages, blogs and menus into Capa as entries.

View as Markdown

Capa can copy your Shopify store's catalogue and content into your project, as entries you read through the same API as the rest of your content. The sync runs one way: from Shopify into Capa.

You need the Admin or Developer role.

Before you start

Capa connects with an Admin API access token from a custom app in your Shopify store.

  1. In Shopify, go to Settings > Apps and sales channels > Develop apps and create an app.
  2. Give it read access to what you want to sync: products and collections, online store pages, blogs and articles, and navigation menus.
  3. Install the app and copy its Admin API access token. It starts with shpat_.

Keep the token safe. Anyone who has it can read your store's data.

Connect your store

  1. Choose Integrations in the sidebar, then the Available tab.
  2. On Shopify, choose Add Integration.
  3. Enter your Shop Domain, such as northpeak-outdoor.myshopify.com. Leave out https://.
  4. Paste the token into Shopify Access Token.
  5. Turn on what you want to sync: Product, Collection, Page, Blog, Article, Menu and Menu item.
  6. Choose Add Shopify Integration.
The Sync Shopify Models dialog with a shop domain filled in and the models to sync turned onThe Sync Shopify Models dialog with a shop domain filled in and the models to sync turned on

Capa checks the token with Shopify before it saves anything. If the check fails, you see "Failed to add Shopify integration": check the domain and the token's access.

The store now shows on the Connected tab.

What Capa creates

Connecting adds these models to your project:

ModelHolds
shopify_productProducts
shopify_product_variantEach product's variants, up to 100 per product
shopify_collectionCollections
shopify_pageOnline store pages
shopify_blogBlogs
shopify_articleBlog articles
shopify_menuNavigation menus
shopify_menu_itemMenu items, up to three levels deep

Read them like any other model:

curl -G https://cdn.capacms.com/api/entries/shopify_product \
  -H "x-api-key: $CAPA_KEY" -H 'Capa-Version: 2026-10-01' \
  --data-urlencode 'select=title' --data-urlencode 'limit=10'

How the sync works

  • Shopify wins. Each sync overwrites the fields that come from Shopify. Edit those in Shopify, not in Capa.
  • Your fields are kept. Fields you add to these models yourself, such as a longer description or a hero image, survive every sync.
  • New items arrive published, so your site can read them straight away.
  • Items deleted in Shopify are deleted in Capa on the next sync.

After you connect, choose Manage on the store's card and run the first sync with Sync Now. After that, Capa syncs the store every hour. You can also run Sync Now up to five times an hour.

Manage or remove the connection

Choose Manage on the store's card to see its status and sync it.

To disconnect, choose Remove Integration and confirm. Removing stops the sync. The Shopify models and their entries stay in your project.

The card's badge says how the store stands: Connected, Syncing, Pending or Failed.

Known limits

  • Capa syncs the store every hour. A change in Shopify shows in Capa after the next sync, or straight away with Sync Now.
  • Metaobjects, customers and orders are not synced.
  • A product brings at most 100 variants. Menus are read three levels deep.

Who sees the token

Admins and developers manage the connection. Only the project owner sees the full token. Everyone else sees it masked, such as shpat_****1234.