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.

commercetools
The commercetools connector syncs your products and categories from a commercetools project into Frontic. Master and variant SKUs are denormalized into separate records with parent links preserved, and prices are pre-filtered to the currencies on each channel — so your Data Sync receives clean, currency-resolved payloads.
Auth
OAuth 2.0 (client credentials)
Update methods
Polling
Resources
Products, Categories

What you get

Products

Master products with variants split into separate records by SKU, parent links preserved, prices pre-filtered per currency.

Categories

Power category pages, attach category context to other records, drive navigation.
The commercetools connector follows the standard integration model — see how integrations work for Connection, Channels, and Data Feeds. This page covers the commercetools-specific configuration and data shape.

Set up the API client

Before adding the integration in Frontic, create a dedicated API client in commercetools Merchant Center:

Open API clients

In Merchant Center, go to Settings → Developer settings → API clients and click Create new API client.

Pick the read-only scopes

Under Scopes, select View for these resources — Frontic only reads from commercetools, so view scopes are enough:
  • View project settings
  • View stores
  • View tax categories
  • View products
  • View published products
  • View attribute groups
  • View product selections
  • View categories
  • View standalone prices
  • View types
  • View key-value documents
The connector uses Manage scopes for none of these. Don’t grant write scopes the integration won’t use.

Save and copy the credentials

After creating, commercetools shows the credentials once. Copy the project key, client ID, client secret, API URL, and auth URL — you’ll paste them all into the Frontic connection form. If you lose the secret you’ll need to create a new client.

Connection settings

Project Key
string
required
Your commercetools project key. Visible at the top of Merchant Center and on the API client credentials screen.
Client ID
string
required
The API client’s ID created above.
Client Secret
string
required
The client secret paired with the Client ID.
API URL
string
required
The commercetools API endpoint for your project’s region (e.g. https://api.europe-west1.gcp.commercetools.com).
Auth URL
string
required
The OAuth token endpoint for your project’s region (e.g. https://auth.europe-west1.gcp.commercetools.com).
The connection populates the channel’s currency dropdown from your commercetools project’s enabled currencies.

Channels

A commercetools channel in Frontic carries the locales and currencies the connector pulls per record.
Channel Name
string
required
A label for the channel in Frontic.
Available Translations
multiselect
required
commercetools locale codes the connector pulls per record.
Fallback Translation
select
required
The translation used when a value is missing in another locale.
Currencies
multiselect
required
Currencies (from your commercetools project’s enabled set) the connector pulls. Product prices are pre-filtered to these.
The Refresh button re-fetches commercetools currencies and locales — use it after enabling new ones in commercetools.

Data Feeds

The commercetools connector exposes two feed types:
FeedWhat it pulls
ProductsMaster products as parents and variants as separate records (one per SKU), with prices and translations resolved per channel.
CategoriesThe full category tree, parent links preserved.
The standard Settings → Updates → Schema setup wizard applies — see Data Feeds in the overview. For commercetools specifically:
  • Updates step — Polling is supported.
  • Manual refresh — every commercetools feed exposes a Refresh action that re-runs the feed against the source.

What the data looks like

Variants

A commercetools product with multiple variants becomes a parent record + one record per variant SKU, linked via parentId. A simple product (single variant) is emitted as a self-parented record. See Product Models for how this shape composes at the API layer.

Currency-resolved prices

Product prices are pre-filtered to the currencies declared on the channel. Variants inherit the per-currency price layout, so map them into the Price composite without per-region picking logic in your Value Composer.

Attributes split into options and properties

commercetools attributes arrive as { name, value } pairs in the source payload. The connector’s attribute extractor unwraps the envelope and splits attributes by role, stamping each list onto the feed record under the reserved $-prefix namespace:
  • $options — variant-defining attributes (the ones flagged as “constraint: SameForAll” or used as variant selectors)
  • $properties — descriptive attributes that don’t drive variant selection
Map either list straight into your storage’s Option and property fields in the Value Composer, instead of unwrapping commercetools’ name/value structure per field.

Product type caching

Product types are cached on the integration’s Instance — large catalogs sync faster because attribute definitions aren’t refetched per record.

Good to know

  • Read-only. The commercetools connector pulls from commercetools; it doesn’t push back. Edits happen in the Merchant Center.
  • Custom attribute groups. commercetools attribute groups come through on the raw payload. Map them in your Data Sync if you need them as first-class fields.

What isn’t supported today

Commercetools has several segmentation and pricing primitives the connector doesn’t currently use. The data still comes through on the raw record where commercetools includes it, but the connector doesn’t filter or resolve by these dimensions:
  • Stores. The connector pulls products from the project root, not via the Store-scoped endpoints. Records that exist in only some stores arrive un-filtered. Use Frontic scopes and a base query on your listings to segment instead.
  • Inventory channels and distribution channels. Channel-specific prices (priceChannel) and channel-specific stock (distributionChannel) aren’t applied during ingest. The connector pulls the master prices and filters by the channel’s currencies; channel-tier-specific prices show up on the raw payload but aren’t unwrapped.
  • Complex pricing. Customer-group prices, country-specific prices, and validity-windowed prices on top of currency aren’t resolved. The Price composite Frontic stores reflects the master / fallback price for each currency on the channel.
If your storefront depends on any of these dimensions, get in touch — we’re actively collecting use cases to shape native support and your scenario helps us prioritise.

Product Models

How commercetools master products and variants compose at the API layer.

Akeneo

Akeneo’s connector — same $options / $properties split.