Documentation Index
Fetch the complete documentation index at: https://docs.frontic.com/llms.txt
Use this file to discover all available pages before exploring further.
The Shopware connector pairs your Shopware 6 store with Frontic via a Frontic plugin you install in your Shopware admin. The plugin handles the hand-off both ways: it pushes catalog and content changes to Frontic via webhooks, and at install time it calls back into Frontic to provision a project that mirrors your store’s sales channels, currencies, and languages — feeds, storages, and syncs included.
Auth
API Key + Secret
Update method
Trigger
Resources
Products, Categories, CMS
What you get
Products
Every variant as its own record, parent links preserved, prices resolved to the currency.
Categories
Power category pages, attach category context to other records, drive navigation.
CMS Pages
Shopping Experiences and Landing Pages with their section/block/element structure intact.
Install and setup
The plugin is the same either way — pick how you’d like to load it into Shopware, then run the onboarding to provision your Frontic project.Install the plugin
- From the Shopware Store
- Manual upload
Open the Store
In Shopware admin, go to Extensions → Store. You’ll need a Shopware Account connected — Shopware prompts you to connect one if you haven’t.
Run the onboarding
With the plugin active, you can start the onboarding wizard on the plugin’s configuration page to provision your Frontic project end-to-end: it sets up the integration’s connection settings, creates one Channel per Shopware sales channel (with the matching currencies and translations), creates Data Feeds for Products, Categories, and CMS Pages, and seeds matching Data Storages and Data Syncs. On the project side it also creates one scope per sales channel, one region per channel/currency pair, and one locale per channel language. Before any of that runs, the wizard tests the Shopware connection from Frontic — if the keys are wrong or the host can’t be reached, it stops on a Connection-Test failed screen instead of provisioning a broken setup. See Troubleshooting the onboarding for the failure modes.Open the onboarding
In Extensions → My extensions, click the Frontic row’s three-dot menu and choose Configure. Start the Onboarding wizard with the Start Onboarding button.
Sign in to Frontic
The wizard opens a Frontic auth window. Sign in or create the account that should own the new project, then approve the plugin’s permission request.
Confirm the project layout
Review the proposed scopes, regions, currencies, and locales mapped from your sales channels, then click Create project.
Troubleshooting the onboarding
When the connection check fails, the wizard shows a Connection-Test failed screen with the message Shopware returned and a failure type. Match it against the table below to find the fix — once the test passes, the wizard continues to provisioning automatically.| Failure | What it means | How to fix it |
|---|---|---|
invalid_credentials (401) | Shopware rejected the keys the wizard generated. | Restart the wizard so it can issue fresh keys. If that still fails, fall back to the manual Integration account flow. |
insufficient_permissions (403) | The Integration account exists but is missing read permissions. | Open the Integration in Shopware and assign the role described in Create an Integration account in Shopware. |
api_not_found (404) | The host URL doesn’t point at the Shopware Admin API. | Use the Shopware admin URL (the one you use to log in), not a storefront URL or a custom subpath. |
network_error | Frontic couldn’t reach the host from the public internet. | Make the Shopware host publicly reachable. Local-only or IP-allowlisted instances can’t be onboarded automatically. |
rate_limited (429) | Shopware throttled the verification request. | Wait a moment and retry the wizard. |
shopware_unavailable (502/503/504) | Shopware returned a temporary error — often a deploy or upstream outage. | Wait until the instance is healthy, then retry. |
Without the plugin
If you can’t install the plugin in your Shopware environment — for example a managed setup where you can’t load custom extensions — you can connect manually using a Shopware Integration account.Create an Integration account in Shopware
Create an Integration account in Shopware
Open Integrations
In Shopware admin, go to Settings → System → Integrations and click Add integration.
Assign read permissions
Assign a role with read access on: Product, Category, Sales channel, Currency, Language, Media, Manufacturers, Properties, Shopping Experiences, Landing Pages, Delivery times, Essential Characteristics, Scale Units, Tags, Tax. Plus read on the
*_translation detailed privileges for product, media, manufacturer, property group, property group option, unit, delivery time, cross-selling, and feature set.Connection settings
Display name for the integration in Frontic. Use something recognizable when you have multiple Shopware integrations (e.g.
Shopware Production, Shopware Staging).The URL of your Shopware instance, e.g.
https://shopware.demo-shop.com. The connector talks to the Admin API at this host.The Access Key ID of a Shopware Integration account (
SWIAMG…). Created automatically by the plugin onboarding, or manually via Shopware Settings → System → Integrations.The Secret Access Key paired with the API key (
dXhZQ2…). Stored encrypted and redacted in logs.Channels
A Shopware channel in Frontic maps a Shopware sales channel to the currencies and translations Frontic should pull from it. The plugin onboarding seeds one Frontic channel per sales channel; you can add more from Channels → Add.A label for the channel in Frontic (e.g.
Storefront, Headless, Wholesale).Locale keys this channel covers. Validated against the languages the chosen Shopware sales channel actually serves; populated from the connector’s reference data.
The locale used as fallback when a record is missing a value in another translation.
Which Shopware sales channel this Frontic channel reads from. The dropdown is populated from your Shopware instance — hit Refresh if you’ve added a new sales channel since the integration last fetched.
Currencies (from the chosen sales channel) the connector pulls in. Product prices are pre-filtered to these currencies before they reach the Data Sync.
Data Feeds
The Shopware connector exposes three feed types:| Feed | What it pulls | Webhook events |
|---|---|---|
| Products | Catalog including all variants and their prices | product.written, product.deleted |
| Categories | The category tree, including SEO and assets | category.written, category.deleted |
| CMS Pages | Shopping Experiences and Landing Pages | cms_page.written, cms_page.deleted, landing_page.written, landing_page.deleted |
- Updates step — Shopware supports the Trigger update method (the plugin pushes webhooks). Scheduled polling and the Ingest API are not used; the plugin’s webhook stream is the source of real-time updates.
- Manual refresh — every Shopware feed exposes a Refresh action that re-runs the feed against the source. Use it when something changed on the Shopware side that didn’t reach Frontic, or to recover from a webhook gap. Configuration changes — Value Composer, storage schema, sync mappings — don’t need a refresh; they revalidate automatically.
What the data looks like
Associations pulled along
The connector fetches more than just the entity’s own fields — it pre-loads the associations a typical storefront needs, so your Data Sync doesn’t have to chase them.Product associations
categoriesRo, cover.media, crossSellings, crossSellingAssignedProducts, deliveryTime, featureSet, manufacturer.media, prices, media, options.group, properties.group, tags, unit, visibilities.Category associations
media, tags.Variants
A product with options is denormalized: the parent record carries the shared fields, each variant is a separate record linked back viaparentId. Either side can drive a Detail Block — product-level for grids, variant-level for cart and detail views. See Product Models for the full picture.
Currency-resolved prices
For products, the connector pre-filters theprices array to the currencies declared on the channel and stamps every price element with currencyCode and currencyPrecision. Map those into the Price composite and you’re done — no per-region price-picking logic in your Value Composer needed.
Translations
All translatable fields are resolved at the connector level for every locale on the channel. Use the base field in your Data Sync (name, description) — not translated.name. Frontic’s Request Context picks the right localized value at response time. For categories, breadcrumb arrays are also de-indexed so the translated breadcrumb path is a clean list rather than a 0:..., 1:... map.
Auto-delete reconciliation
When a feed runs (refresh, full backfill), the connector diffs Shopware’s current state against what Frontic has on the feed and emits deletes for products, categories, or CMS pages that have disappeared on the Shopware side. Your storage doesn’t accumulate orphan records when items are removed in Shopware.Category relations
From thecategoriesRo association, the connector also extracts a flat list of category IDs and stamps them onto the feed record under the reserved $rel namespace as $rel.categoryIds. Category-link blocks (or any sync that just needs the IDs without the full association payload) can map this directly in the Value Composer — no need to walk categoriesRo to pluck IDs out yourself.
Good to know
- No scheduled polling. Shopware sync relies entirely on plugin webhooks. If the plugin is disabled or your instance can’t reach Frontic, changes won’t be pushed — fix connectivity, then hit Refresh on each feed to backfill.
- Webhook delivery retry is on the plugin side. The Frontic plugin queues outbound webhooks in Shopware and retries delivery — events older than Shopware’s retention can’t be replayed and need a manual feed Refresh to reach Frontic.
- Batch size. Records are fetched in batches to keep Shopware’s API response size small enough for catalogs with large associations.
Related
Product Models
How Shopware’s parent products and variants compose at the API layer.
Shopify
Shopify’s commerce-platform connector — direct API, four resource types.