Pico DocsSandbox

DocsShopware 6

Integration guide

Shopware 6 merchant setup

Connect a standard Shopware 6 shop to Pico with Admin API and Store API credentials. No custom plugin or database access is required.

Tested on 6.6.xNo plugin required

What Pico needs

CredentialWhere in ShopwareUsed for
Shop base URLSales channel domainPrefix for /api and /store-api
Integration access key ID + secretSettings → System → IntegrationsAdmin API OAuth (client_credentials)
Sales channel access keySettings → Sales Channels → your channel → API accessStore API header sw-access-key

Create an Admin API integration

  1. Sign in to Shopware Admin (/admin).
  2. Open Settings → System → Integrations.
  3. Create an integration (admin access recommended for catalog read).
  4. Copy the Access key ID and Secret access key immediately. The secret is shown once.
Shopware Admin: Create integration dialog with name, administrator toggle, roles, access key ID, and secret access key
Create integration. Name the app, grant Administrator (or a role), then copy both keys before saving. Shopware docs
Shopware Admin: Integrations list with permissions and context menu
Integrations overview. Open an entry to edit, or use the context menu to edit or delete. Shopware docs
Shopware Admin: Edit integration screen with regenerate API access key
Edit integration. The secret is hidden after save. Use Regenerate API access key if you need new credentials. Shopware docs

Copy the sales channel access key

  1. Open Settings → Sales Channels (or the Sales Channels item in the admin sidebar).
  2. Select the storefront channel Pico should use.
  3. Copy the Access key from the API access section.
  4. Confirm a domain on that channel matches the base URL you will enter in Pico.
Shopware Admin: Sales channel API access section with API access key and copy button
Sales channel API access. Copy the API access key for Store API calls. Creating a new key invalidates the previous one. Shopware docs
Shopware Admin: Sales channel Domains section listing storefront URLs
Sales channel domains. The URL you enter in Pico must match a domain configured on this channel. Shopware docs

Connect in Pico

  1. Open Integrations

    Dashboard → Integrations → platform Shopware 6.

  2. Enter credentials

    Base URL, Admin key ID/secret, and optional sales channel key.

  3. Test connection

    Pico checks Admin OAuth + version, then Store API context when a sales channel key is present.

  4. Sync catalog

    Catalog → Sync imports parent products (variants, prices, stock, media, categories when present) through the Admin API.

  5. Embed the widget

    Use the store’s public_widget_id on the storefront (below).

Widget embed

Pico does not require a Shopware plugin for the pilot. Add the public script to the active storefront theme (the compiled theme path may be a Composer package under vendor/…, not only custom/static-plugins).

Theme embed
<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>

Add the shop origin to Pico API FRONTEND_URLS. Clear Shopware/HTTP cache after theme changes.

API (headless)

Create store + sync
POST /api/v1/stores
{
  "name": "My Shop",
  "platform": "shopware6",
  "credentials": {
    "base_url": "https://shop.example.com",
    "access_key_id": "SWIA...",
    "secret_access_key": "...",
    "sales_channel_access_key": "SWSC...",
    "storefront_url": "https://shop.example.com"
  }
}

POST /api/v1/stores/{storeId}/test
POST /api/v1/catalog/{storeId}/sync

Update credentials later with PATCH /api/v1/stores/{storeId}.

Milestone limits

  • Catalog connection, sync, and product discovery are supported.
  • Add to cart / order writes are disabled even if a sales channel key is configured.
  • Pico does not require custom fields or merchant-specific plugins for the baseline integration.
  • Failures surface as connection/sync errors. Configured Shopware stores never silently fall back to mock catalog data.

Screenshot sources

Admin UI screenshots are from Shopware’s official documentation: