DocsShopify
Integration guide
Shopify merchant setup
Install Pico on a Shopify store with OAuth, sync your real catalog, and enable the floating assistant through a theme app embed. No manual theme file edits are required.
What Pico needs
Pico uses Shopify’s GraphQL Admin API for catalog sync and a theme app embed for the storefront widget. Admin API tokens never appear in the browser.
| Item | Where | Used for |
|---|---|---|
| Shop domain | your-store.myshopify.com | OAuth install and shop identity |
| OAuth approval | Shopify install screen | Encrypted offline access token in Pico |
| Catalog scopes | read_products (+ inventory when granted) | Product, variant, price, availability sync |
| Theme app embed | Theme Editor → App embeds | Loads the public Pico widget script |
Install and authorize in Pico
- Open Integrations
In the Pico dashboard, open Integrations and use Connect Shopify.
- Enter your shop domain
Use the canonical *.myshopify.com domain (for example acme.myshopify.com).
- Approve scopes in Shopify
Shopify asks you to approve catalog read access. Pico stores the token encrypted and never shows it again.
- Return to onboarding
After approval you land back in Pico with connection status and setup steps. Connected does not mean the catalog sync is finished.
Catalog sync
- Initial sync queues automatically
After a successful install Pico queues a catalog sync. Track progress under Catalog.
- Review products
Confirm titles, images, prices, variants, and URLs match Shopify for a sample of products.
- Retry if needed
Failed syncs can be retried from Catalog. Temporary Shopify rate limits are retried with backoff.
Enable the theme app embed
Pico ships as a Shopify theme app embed (floating assistant). Merchants turn it on in the Theme Editor—no manual Liquid edits.
- In Pico Integrations, open the Theme Editor deep link for your shop (or Theme Editor → App embeds).
- Enable Pico Assistant.
- Paste your public widget ID (starts with pw_) and the Pico API base URL into the embed settings.
- Save, open the storefront, and confirm the widget loads once.
<script
src="https://YOUR_PICO_API_HOST/pico-widget.js"
data-public-widget-id="pw_..."
data-api-url="https://YOUR_PICO_API_HOST/api/v1"
defer
></script>On the Online Store, add-to-cart uses Shopify’s Ajax cart so the shopper’s cart drawer stays in sync. Prefer the theme app embed over pasting this script by hand.
This guide’s languages
This merchant setup guide is available in every Pico site language. Use the language switcher in the site header to change it.
| Code | Language |
|---|---|
en | English |
ar | العربية (Arabic) |
de | Deutsch (German) |
el | Ελληνικά (Greek) |
Assistant widget locales
The shopper-facing Pico assistant currently ships these locale packs. Set the store default in Assistant settings.
| Code | Language |
|---|---|
en | English |
el | Ελληνικά (Greek) |
API (headless)
Shopify stores are created through OAuth, not by posting credentials to POST /stores. Typical merchant flow:
POST /api/v1/integrations/shopify/install
{ "shop": "your-store.myshopify.com" }
# Follow authorize_url, then Shopify redirects to the Pico callback.
GET /api/v1/integrations/shopify/{storeId}/status
POST /api/v1/stores/{storeId}/test
POST /api/v1/catalog/{storeId}/syncMVP limits
- Catalog sync, grounded discovery, variant selection, and add-to-cart are supported.
- No Shopify checkout extensions, discounts, or order/customer APIs in this guide.
- Pico does not write product data back to Shopify.
- App Store listing and Shopify Billing are separate launch steps.
Official Shopify references
Verify current auth, scopes, and theme extension steps in Shopify’s docs: