Using Raspberry with Shopify
Raspberry AI connects directly to your Shopify storefront so approved imagery reaches your product pages the moment it is ready. Choose a product and attach images as product media, or send them to Content Files for reuse across themes, pages, and posts — a single image or a full batch at once.
E-commerce Platform Hosted storefront and product catalog platform

Shopify is a hosted e-commerce platform that powers a large share of DTC brands' storefronts — product catalog, variants, media, and checkout all live behind the Shopify admin. If your organization runs on Shopify, the integration lets you push newly generated imagery from Raspberry AI directly onto the right product, or into your store's Content Files, without leaving Raspberry.
Think of it as a one-way bridge from Raspberry into your storefront. Instead of exporting a design, opening the Shopify admin, finding the product, and uploading images one at a time, you pick the destination from inside Raspberry and one click sends it over.
Send images to a specific product's media, or to Content Files where they are reusable across theme sections, pages, and blog posts. Pick based on where you actually want the imagery to appear.
Multi-select anywhere it is supported and every image uploads in a single submit. Batch Apply and Batch Recolor carry their full output through automatically, so an entire colorway run reaches the product in one action.
The product picker streams your catalog from Shopify's Admin GraphQL API and filters by title as you type, so the right product is a few keystrokes away even in a large catalog. Draft and archived products are included.
The Export To menu appears in the Create Module, the Library, on Board nodes, and throughout the Editor — the generation footer, layer menu, Batch Apply, and Batch Recolor.
Images are sent at full quality.
An admin connects the store once and every member of the organization can export to it. No per-user setup, no credentials for individual designers to manage.
Shopify Admin API tokens do not expire by default, so the connection stays live until the app is uninstalled or explicitly disconnected.
Team
How they use the integration
Design
Push approved imagery onto live products without a handoff step
E-commerce
Keep product media current with the latest visuals as soon as they are generated
Marketing
Load campaign and lifestyle imagery into Content Files for use across the storefront
Cross-functional
Work from one connection so creative output reaches the storefront without a queue





















.png)
.png)
.png)




























.png)
.png)
.png)

























Shopify is a premium integration gated by Raspberry's connector-token system. Enabling it costs 1 connector token from your organization's quota.
Shopify uses OAuth 2.0. You enter your shop domain in a Raspberry modal, sign in via a popup, and grant Raspberry the requested scopes. There are no API keys to copy.
Go to Organization Settings → Integrations
Find Shopify and click Connect
Enter your shop domain. Anything Raspberry can normalize to {shop}.myshopify.com works: my-store, my-store.myshopify.com, or the full URL. Find it in your Shopify admin under Settings → Domains — look for the .myshopify.com one, not your custom domain
A Shopify login window opens — sign in with your Shopify account
Approve the scopes Raspberry requests: read_products, write_products, and write_files
Shopify redirects back with a signed callback, Raspberry verifies it and stores the token
The popup closes automatically and the card flips to Connected
Note: Connecting is an admin action, and the admin needs Shopify's Apps and channels permission. Once an admin connects the organization's store, all members of the org can export to it.
One store per organization. Every export goes through the shop the admin signed in as. If you run multiple storefronts — for example US and EU expansion stores — you will need to choose which one this Raspberry org is bound to. Multi-store support is not currently available.
To disconnect, return to Organization Settings and click Disconnect. This removes Raspberry's stored token. To also uninstall the app on Shopify's side, go to your Shopify admin → Settings → Apps and sales channels → Raspberry → Uninstall.
If you try to export before connecting, the Export To menu opens the connect modal first and then automatically re-opens the export modal with your image loaded, so you do not lose the click.
You can export from anywhere the Export To menu appears:
From the Create Module — right-click any generated image → Export To → Shopify
From the Library — select one or more images → Export → Shopify (multi-select triggers a bulk export)
From the Board — right-click any image node → Export To → Shopify
From the Editor — use the generation footer, layer menu, Batch Apply, or Batch Recolor Export To menu → Shopify (batch flows carry all generated images through as a bulk export)
The Export to Shopify modal has a single Destination dropdown at the top with two options.
Destination: Products (default)
The product picker streams the first page of your products
Type into the search box to filter by title
Scroll or load more to paginate
Select the product you want and click Export
Every image in the selection is uploaded and attached as product media on that product — added to the end of the media list, non-featured by default
A confirmation appears, with the count reflecting how many images landed
The images are visible in your Shopify admin under Products → [the product] → Media
Destination: Files
Switch the Destination dropdown to Files — the product picker disappears, since Files exports do not need one
Click Export
Every image in the selection lands in Content → Files (Settings → Files in older admin layouts), reusable anywhere in Shopify but not attached to a product
A confirmation appears with the same count treatment
Product media vs Content Files: product media is scoped to and visible on a single product. Content Files are reusable across the storefront. Pick based on where you want the images to show up.
Filenames are auto-derived. There is no filename field on the export modal — the name comes from the source image. If Shopify already has a Content File with that exact name, that upload can fail; rename the source in Raspberry or delete the existing file in Shopify.
All images in a bulk export go to the same destination. You cannot mix Products and Files in one submit — run two exports.
Shopify's Admin API uses a specific search syntax, and the export modal wraps your input as a wildcard title query — searching denim becomes title:*denim*.
Search is case-insensitive and matches anywhere in the title
The characters *, :, (, ), ", and \ are stripped from your input before the query runs, because they have special meaning in Shopify's syntax
Boolean-looking words in your term, like SHORTS or PANTS, are preserved as literal text
An empty search returns all products, paginated
Store ({shop}.myshopify.com)
├── Products
│ ├── Product A
│ │ └── Media ← Destination: Products
│ └── Product B
├── Collections
└── Content → Files ← Destination: Files
└── (flat — no folders)
Products are the primary catalog unit and each has its own media list. Content Files are a flat, shared media pool for anything not attached to a specific product.
Shopify Admin API access tokens do not expire by default. You should not need to reconnect unless an admin uninstalls the Raspberry app from the Shopify admin, the store is closed, paused, or transferred to a new owner, Raspberry adds a new required scope, or you explicitly click Disconnect. If you see "Shopify authorization expired" or a 401 error, reconnect from Organization Settings.
Shopify's Admin GraphQL API uses a calculated-cost bucket per shop — 1,000 cost points refilling at 50 per second on standard plans, and 10,000 points refilling at 500 per second on Shopify Plus. A single-image export sits well within these limits. A very large bulk export against one shop can reach the ceiling, which shows up as a "Rate limit exceeded" or throttling error. Wait a few seconds and retry.
Problem
What to try
Connect button is disabled or hidden
Your org may be over its connector-token quota, or the integration is gated for your account. Contact your Raspberry representative.
Shop-domain step rejects your input
Use the {shop}.myshopify.com format — for example my-store.myshopify.com, or just my-store. Do not use your custom domain.
OAuth popup opens then closes with an error
The signed-in user may not be a staff member with the right permissions. Sign in as the store owner, or a staff account with the Apps and channels permission, and retry.
"HMAC verification failed" on callback
This is a configuration issue on the Raspberry side, or a network intermediary stripping query parameters. Contact your Raspberry representative — it is not user-fixable.
"Integration not found" inside the export modal
Disconnect and reconnect Shopify from Organization Settings.
Product picker is empty
Your catalog may be empty or all products archived. Also confirm the connected store is not a dev or test store you did not mean to attach.
Search does not find a product you know exists
Search matches title only, with wildcard prefix and suffix. Try a shorter substring. Draft and archived products are included by default.
Search silently returns nothing for a term with special characters
*, :, (, ), ", and \ are stripped from your input to protect the query. If your term relied on those characters, they will not match.
"Rate limit exceeded" or throttling error
You have hit Shopify's cost bucket. Wait a few seconds and retry; break large batches into smaller ones if it recurs.
Bulk export succeeds but the count is lower than what you selected
Some files may have been rejected server-side — for example a duplicate filename in Content Files, or an unsupported format. Check the destination in Shopify to see which landed.
Export succeeds but the image is not on the product
Refresh the product page — Shopify processes images asynchronously and new media can take a few seconds to appear. Check under Products → [the product] → Media.
Two exports of the same image fail on the second
Shopify rejects duplicate filenames in Content Files. Delete the first upload or rename the source in Raspberry. Product media tolerates duplicates more forgivingly.
I want to pull products from Shopify into Raspberry
Not supported. The product list inside the export modal chooses where to send an image; it never copies products into Raspberry.
Can I connect two Shopify stores?
Not today — one store per Raspberry org. Contact your Raspberry representative if you need multi-store or expansion-store support.
Custom domain is not accepted in the connect flow
Only the {shop}.myshopify.com domain works. Find it under Settings → Domains.
.
Shopify
Best for
Brands running their storefront on Shopify that want generated imagery to land directly on the right product
How you connect
Enter your .myshopify.com shop domain → OAuth popup → approve scopes
Who can enable
Org admins with Shopify Apps and channels permission
Cost
1 connector token from your org's quota
Per-user setup
None — the org shares a single connection
Import supported
No — export only
Export supported
Yes — to product media or Content Files, from Create, Library, Board, and Editor
Destinations
Products (attach as product media) or Files (Content Files), selected on the export modal
Product picker on export
Yes — searchable and paginated, shown when Destination is Products
Bulk export
Yes — multi-image selection uploads in one submit, same destination for the whole set
Filename customization
No — auto-derived from source
File types
PNG, JPG, WebP, GIF
Token expiry
Tokens do not expire — persistent until app uninstall or disconnect
API
Admin GraphQL API
Rate limits
1,000 cost points refilling at 50/sec (standard); 10,000 at 500/sec (Plus)
Multi-store
Not supported — one store per Raspberry org
Yes. The integration connects to your existing Shopify store. If you do not have an active Shopify plan, contact their sales team directly.
Yes. Once an admin connects the organization's store, all members of the org can export to it. There is no per-user setup.
Not currently. One store per Raspberry organization. If you run expansion stores, you will need to choose which one this org is bound to.
Product media is scoped to and visible on one product — use it for imagery that belongs on a specific product page. Content Files are reusable across themes, pages, and blog posts — use them for campaign and lifestyle imagery.
No. Shopify is export only. The product list inside the export modal is a destination picker, not an importer. If you need imagery from a Shopify product back in Raspberry, download it and upload it.
Yes. Bulk export is supported anywhere multi-select is available. All images in a bulk export go to the same destination.
Not today. The filename is derived from the source image automatically.
No. Only the images you explicitly export are sent. Nothing is shared in the background.
Yes. Credentials are encrypted at rest and are never exposed in the interface after initial setup.
Yes. Go to Organization Settings → Integrations, find Shopify, and click Disconnect. Your stored token is deleted immediately. To also uninstall the app on Shopify's side, do that from the Shopify admin.