Skip to main content

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.

Shopware
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.
The Shopware connector follows the standard integration model — see how integrations work for the shape of Connection, Channels, and Data Feeds. This page covers the Shopware-specific pieces: the plugin install, the onboarding hand-off, the channel and feed details, and the data shape after normalization.

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

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.

Find the Frontic plugin

Search for Frontic in the store and open the listing.

Install and activate

Install and activate the plugin in Shopware’s extension overview.

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.

Done — the first sync starts

The plugin creates Data Feeds for products, categories, and CMS pages and triggers an initial backfill. From here on, Shopware changes flow to Frontic on every entity write.

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.
FailureWhat it meansHow 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_errorFrontic 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.
Without the plugin, Frontic will not be notified of any data changes. You have to trigger updates manually.

Open Integrations

In Shopware admin, go to Settings → System → Integrations and click Add integration.

Name the integration

Enter frontic-sync (or anything you’ll recognize later).

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.

Copy the access keys

Save the integration, then copy the Access Key ID (SWIAMG…) and Secret Access Key (dXhZQ2…) — you’ll paste them into Frontic next.
In Frontic admin, Integrations → Add → Shopware asks for the host URL plus those two keys. With manual setup, you also build out the project (scopes/regions/locales) yourself in Project Settings — see Multi-Channel & Multi-Region — and create channels and feeds manually as covered below.

Connection settings

Name
string
required
Display name for the integration in Frontic. Use something recognizable when you have multiple Shopware integrations (e.g. Shopware Production, Shopware Staging).
Host URL
string
required
The URL of your Shopware instance, e.g. https://shopware.demo-shop.com. The connector talks to the Admin API at this host.
API Key
string
required
The Access Key ID of a Shopware Integration account (SWIAMG…). Created automatically by the plugin onboarding, or manually via Shopware Settings → System → Integrations.
API Secret
string
required
The Secret Access Key paired with the API key (dXhZQ2…). Stored encrypted and redacted in logs.
The settings panel shows a Connection Status indicator. When the connection is broken, it surfaces the reason returned by the Shopware API (with sensitive details redacted) — so you can tell whether credentials are missing, the host is unreachable, or the keys were rejected. Update credentials here and re-test after rotating keys in Shopware.

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.
Channel Name
string
required
A label for the channel in Frontic (e.g. Storefront, Headless, Wholesale).
Available Translations
multiselect
required
Locale keys this channel covers. Validated against the languages the chosen Shopware sales channel actually serves; populated from the connector’s reference data.
Fallback Translation
select
required
The locale used as fallback when a record is missing a value in another translation.
Sales Channel
select
required
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
multiselect
required
Currencies (from the chosen sales channel) the connector pulls in. Product prices are pre-filtered to these currencies before they reach the Data Sync.
The Refresh button on the channel detail re-fetches sales channels, languages, and currencies from your Shopware instance — use it after you’ve added one of those on the Shopware side. For how channels become project scopes and locales at sync time, see Data Sync mapping in the overview.

Data Feeds

The Shopware connector exposes three feed types:
FeedWhat it pullsWebhook events
ProductsCatalog including all variants and their pricesproduct.written, product.deleted
CategoriesThe category tree, including SEO and assetscategory.written, category.deleted
CMS PagesShopping Experiences and Landing Pagescms_page.written, cms_page.deleted, landing_page.written, landing_page.deleted
The standard Settings → Updates → Schema setup wizard applies — see Data Feeds in the overview. For Shopware specifically:
  • 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.
Need an association that isn’t on this list? Get in touch.

Variants

A product with options is denormalized: the parent record carries the shared fields, each variant is a separate record linked back via parentId. 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 the prices 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 the categoriesRo 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.

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.