Shopify
Shopify Integration
Publish your AI-generated content directly to Shopify as blog articles, static pages, or both. Connect your Shopify store and push content with one click.
What You Can Do
- One-click publish articles to your Shopify blog
- Create static pages for landing pages and evergreen content
- Publish as draft or live: you control the default
- Featured images are included automatically
- Auto-publish articles as soon as they’re generated
- Bulk export entire projects to Shopify at once
- Choose content type: blog article, page, or both simultaneously
Prerequisites
Before connecting, you’ll need:
- A Shopify store with admin access
- An app created in the Shopify Dev Dashboard (see setup below)
- A Cuppa account on Power plan or higher
Step 1: Create an App in the Shopify Dev Dashboard
As of January 2026, Shopify requires new apps to be created in the Dev Dashboard instead of the Shopify admin.
- Go to dev.shopify.com/dashboard and sign in
- Click Create app
- Name it something like “Cuppa Publishing”
- Under Configuration, create a new App version
- Add the following Admin API scopes:
write_content(for blog articles and pages)read_content
- Save the version
Install the App on Your Store (Required)
This step is easy to miss, but the integration will not work without it.
- In the Dev Dashboard, go to your app’s Overview page
- Click the “Install app” button (top right)
- Select your store and confirm the installation
- You should see Installations: 1 (or more) on the Overview page
Important: If the app is not installed, Shopify will reject all API requests with a 400 error. You must install the app before connecting in Cuppa.
Copy Your Credentials
- Go to your app’s Settings page in the Dev Dashboard
- Copy the Client ID and Client Secret
Tip: Unlike legacy custom apps, Dev Dashboard apps use OAuth with rotating tokens. Cuppa handles the token refresh automatically. You just need the Client ID and Client Secret.
Step 2: Connect in Cuppa
- Go to Team Settings > Integrations
- Find Shopify and click Connect
- Enter your:
- Store URL: Your
mystore.myshopify.comdomain - Client ID: From your Dev Dashboard app
- Client Secret: From your Dev Dashboard app
- Store URL: Your
- Click Test Connection to verify
- Click Load Blogs to select which blog to publish to
- Configure your defaults (see Step 3)
- Click Connect
Step 3: Configure Defaults
After connecting, set your preferences:
Content Type
| Option | What It Does |
|---|---|
| Article | Creates blog articles (requires selecting a blog) |
| Page | Creates static pages |
| Both | Creates both an article and a page from the same Cuppa content |
Blog Selection
If publishing as articles, select which Shopify blog to publish to. Cuppa loads your available blogs automatically.
Publish Status
- Draft: Content saved as draft in Shopify (recommended to start)
- Published: Content goes live immediately
Auto-Publishing
- ON: Articles auto-publish to Shopify when generated
- OFF: Manual publishing only
Publishing Content
Single Article
- Open any article in Cuppa
- Click Send to > Shopify
- Content publishes with your configured defaults
From a Project
- Open your project
- Use the Publish options to send to Shopify
- Choose which articles to publish
Bulk Export
- Select multiple articles
- Choose Export to Shopify
- Articles are processed in the background (15 at a time with rate limiting)
- Track progress in the bulk publishing status
What Gets Published
| From Cuppa | To Shopify Article | To Shopify Page |
|---|---|---|
| Title | Article title | Page title |
| Content | Article body (HTML) | Page body (HTML) |
| Slug | URL handle | URL handle |
| Excerpt | Article excerpt | N/A |
| Featured Image | Article image | N/A |
| Author | Article author (if configured) | N/A |
Rate Limiting
Shopify’s GraphQL API uses cost-based throttling. Cuppa handles this automatically:
- Single publishes: instant
- Bulk exports: processed in chunks of 15 with 1.5-second delays
- Progress is tracked and visible during bulk operations
Legacy Custom Apps
If you connected Shopify before January 2026 using a static Admin API access token from a custom app created in the Shopify admin, your connection will continue to work. No action is needed.
If you need to reconnect or set up a new connection, use the Dev Dashboard flow described above. The legacy token option is still available in Cuppa under “Using a legacy custom app with a static token?” in the connection dialog.
Note: Shopify no longer allows creating new legacy custom apps in the admin panel as of January 1, 2026.
Troubleshooting
”Request failed with status code 400”
This almost always means the app is not installed on your store.
- Go to your app in the Dev Dashboard
- Check the Overview page for Installations
- If it shows 0, click “Install app” and select your store
- Try connecting again in Cuppa
”Connection failed”
Check your store URL:
- Use your
.myshopify.comdomain (e.g.,mystore.myshopify.com) - Don’t include
https://or a trailing slash - Don’t use a custom domain
Check your credentials (Dev Dashboard app):
- Verify the Client ID and Client Secret are correct
- Make sure the app is installed on your store (see above)
- Confirm the app has
read_contentandwrite_contentscopes
Check your credentials (legacy custom app):
- Copy the complete access token (it’s only shown once when created)
- Make sure the custom app is still installed
- Verify the token hasn’t been revoked
”Publishing failed”
- Verify your app has
write_contentscope - Check that the selected blog still exists in Shopify
- Very long articles may hit Shopify’s API limits
- Ensure featured images are publicly accessible URLs
Articles not appearing in Shopify
- Check Blog posts > Drafts (may be saved as draft)
- Verify the correct blog is selected in Cuppa settings
- Check Online Store > Pages if publishing as pages
Bulk export seems slow
- Shopify rate limits are handled automatically
- 15 articles per chunk with pauses between
- Large exports (100+ articles) may take several minutes
- Progress updates are shown during the export
FAQ
Can I publish to multiple Shopify stores? Each Cuppa team connects to one Shopify store. If you manage multiple stores, set up separate teams.
Does it update existing articles? Currently creates new content. Delete in Shopify and republish to update.
Can I use this with Shopify’s blog SEO features? Content publishes as standard blog articles/pages. Shopify’s built-in SEO fields (title, description) use the content you’ve set in Cuppa.
Does it work with Shopify themes? Articles and pages publish as standard Shopify content. Your theme controls how they’re displayed.
What about product descriptions? This integration is for blog articles and pages. Product content is not supported at this time.
Can I schedule posts? Posts publish with your configured status (draft or published). Use Shopify’s built-in scheduling for timed releases.
What’s the difference between OAuth and legacy token auth? Dev Dashboard apps (Jan 2026+) use OAuth with auto-rotating tokens that Cuppa refreshes automatically. Legacy custom apps use a static token that never expires but can no longer be created for new apps.
Disconnecting
- Go to Team Settings > Integrations
- Click Disconnect on Shopify
Your existing content remains in Shopify. You can optionally delete the app from the Shopify Dev Dashboard.
Related Docs
- WordPress Integration
- Ghost Integration
- Webflow Integration