Shopware as a Channel
Summary
Shopware is an eCommerce platform widely used across Europe. Flxpoint connects through Shopware's Admin API using OAuth2 client credentials and supports the full channel workflow: import and sync/link listings, publish new listings with multi-image and multi-sales-channel support, import orders (with custom-field mapping), and sync shipments back with partial-shipment support. Because it uses OAuth2 rather than a simple API key, you first create a dedicated integration user in your Shopware admin.
In Flxpoint go to Channels → + Add Channel, select Shopware, then complete the setup form. First generate an integration in your Shopware admin (Settings → System → Integrations) to obtain the Client ID and Client Secret.
| Field | What to enter |
|---|---|
Connection NameSetting | A descriptive label for this connection in Flxpoint (e.g.
Flxpoint-side label only; it does not affect authentication.My Shopware Store). |
Store URLRequired | The base URL of your Shopware storefront (e.g.
Use your live storefront's base URL.https://yourstore.com). |
Client IDRequired | The Client ID generated by your Shopware integration under Settings → System → Integrations.
Generated in Shopware; paste it exactly. |
Client SecretRequired | The Client Secret paired with the Client ID. Shopware shows it only once at creation, so copy it immediately.
If lost, create a new integration in Shopware and re-enter both values in Flxpoint. |
Client Secret is shown only once in Shopware: save it immediately
When you create an integration in Shopware under Settings → System → Integrations, the Client Secret is displayed only at the moment of creation. If you leave the page without copying it, you must create a new integration and re-enter the credentials in Flxpoint. Store the Client Secret securely before leaving the Shopware admin.
Shopware stores dimensions in millimeters: Flxpoint converts to centimeters
Shopware sends product dimensions in millimeters. On import Flxpoint divides by 10 to produce centimeters (weight stays in kilograms, no conversion). If a downstream channel or carrier expects millimeters, add a transformation rule that multiplies dimensions back by 10.
Order custom fields require the cf_ prefix in mapping
Shopware order and line-item custom fields arrive as key-value pairs. To map one in Get Orders, reference it as cf_<custom_field_key>: e.g. a Shopware key of customfield_gift_note maps as cf_customfield_gift_note. Without the cf_ prefix the field is not captured.
Shipping-method matching is case-sensitive and name-based
When Sync Orders writes a shipment back, Flxpoint matches your shipping method name to a Shopware shipping method name exactly. If they don't match, Flxpoint falls back to the order's primary delivery method. Use the Integration Configuration fetch to retrieve the exact Shopware shipping method names before mapping.
Pulls existing Shopware products (parents with nested variants, manufacturer, categories and media) into Flxpoint in batches of 100.
| Shopware Field | Maps To: Notes |
|---|---|
| id | → Parent / Variant External ID. Direct mapping. |
| productNumber | → SKU. Direct mapping; also the linking key between Flxpoint and Shopware. |
| name | → Title. Variant value first; falls back to the parent name if the variant name is blank. |
| description | → Description. Direct. |
| active | → Status. If false, the listing status is set to HIDDEN. |
| media → url | → Images. Iterates the media list and extracts valid image URLs. |
| manufacturer → name | → Brand. Mapped when the manufacturer object and name exist. |
| categories[0..2] | → Category 1, 2, 3. The first three category names, in order. |
| customFields | → Custom Fields. Mapped to Flxpoint internal custom fields. |
| stock | → Quantity. Uses the variant (child) stock; falls back to parent stock when null. |
| ean / manufacturerNumber | → UPC / MPN. Child value first, then parent. |
| weight | → Weight. Child first, then parent; unit forced to kilograms. |
| width / height / length | → Dimensions. Shopware sends millimeters; Flxpoint divides by 10 (rounded to 2 decimals) to store centimeters. |
| price[0].gross / .net | → Price / Cost. From the first price object: gross → Price, net → Cost. |
| options | → Variant Options. Extracts the option group name (e.g. "Size") and option value (e.g. "Large"). |
Links Shopware products to your Flxpoint catalog by product number and syncs price, quantity and status (hide / unhide / delist).
| Shopware Field | Maps To: Notes |
|---|---|
| id (parent & variant) | → External ID. Direct mapping of the alphanumeric Shopware ID. |
| productNumber | → SKU (parent & variant). Direct mapping; this is the linking key. |
| ean (parent & variant) | → UPC. European Article Number. |
| manufacturerNumber (parent & variant) | → MPN. Direct. |
| active (parent & variant) | → Hidden Status. Inverts the boolean: active=true → hidden=false; active=false → hidden=true. When active is null, the variant inherits the parent's visibility. |
Creates new products in Shopware with multi-image upload and single- or multi-sales-channel configuration.
| Flxpoint Field | Maps To Shopware: Notes |
|---|---|
| SKU | → productNumber. Required. |
| Title | → name. Required. |
| Description | → description. Optional. |
| Brand | → manufacturer. Resolved to the Shopware manufacturer object by name. |
| Categories | → categories. Mapped to category UUIDs in the Shopware taxonomy. |
| Price / Cost | → price (gross / net). Currency comes from your store config. |
| Quantity | → stock. Per variant. |
| Weight / Dimensions | → weight / width / height / length. Flxpoint sends CM/KG; Shopware converts internally to MM where required. |
| Images | → media. Multi-image upload; the first position becomes the cover. |
| Visibility / Sales Channel IDs | → visibilities. A single ID from Integration Configuration, or comma-separated IDs from the mapping template. |
| Custom Fields | → customFields. Direct mapping. |
| Variant Options | → options. Option group + value pairs (e.g. Size, Color). |
Imports orders filtered by order status, payment status and age, with custom-field support via the cf_ prefix.
| Shopware Field | Maps To: Notes |
|---|---|
| id / orderNumber | → Order Number. |
| orderDateTime / createdAt | → Order Date. |
| amountTotal / amountNet | → Total / Subtotal. |
| billingAddress | → Billing Address. |
| deliveries[0].shippingOrderAddress | → Shipping Address. |
| lineItems | → Order Items (SKU, quantity, price). |
| transactions[0].paymentMethod | → Payment Method. |
| customFields → cf_* | → Custom Fields. Reference each field as cf_<custom_field_key>. |
cf_ prefix, e.g. cf_customfield_key.Sends shipment and tracking data back to Shopware as a new delivery, with partial-shipment support.
ship state transition marks it fully shipped. Map tracking codes in your template: they're stored in the trackingCodes array on the delivery.OAuth2 authentication fails: the connection test fails after entering credentials
Product dimensions look 10x too large or 10x too small after import
Published product appears in the Shopware admin but not on the storefront
Orders aren't importing even though the filters look correct
fetch-order-last-x-days window to cover the order's creation date. Also verify the order's shipping method name maps to a Flxpoint shipment method: a missing or mismatched name can silently block import. Re-run Get Orders after any change.Listings aren't linking: the Flxpoint SKU doesn't match the Shopware product
productNumber (Shopware's SKU). Confirm the Flxpoint listing SKU exactly matches the Shopware productNumber: the match is case-sensitive. Also check the SKU wasn't changed after the initial Import Listings run, which would break the existing link.Shipment written back with the wrong shipping method or carrier name
How do I generate API credentials for the Shopware integration?
How do I publish listings to multiple Shopware Sales Channels (storefronts)?
How does variant visibility work when a Shopware variant has no explicit active status?
active field null when its visibility matches the parent. Flxpoint detects this and inherits the parent's status for that variant. If a variant shows unexpected visibility, set active explicitly to true or false on the variant in Shopware rather than leaving it null: explicit values always take precedence.Does Sync Orders support partial shipments?
Can I control which image becomes the cover (thumbnail) when publishing?
What it does
To successfully sync inventory, pricing, and orders with Shopware, Flxpoint must authenticate with your specific store instance. This connection requires a unique Store URL rather than a generic endpoint, allowing Flxpoint to communicate with your user-specific domain.
Connection requirements
Before beginning the setup in Flxpoint, ensure you have generated API credentials within your Shopware administration panel. You will need the following three values:
Field | Description |
|---|---|
Store URL | The full base URL of your Shopware store (e.g., https://your-store-name.net/). |
Client ID | The unique identifier for your API integration. |
Client Secret | The private key used to authorize the connection. |
Step 1: Configure the connection
Navigate to the Channels tab and select your Shopware channel.
Go to the Channel Settings and locate the connection configuration section.
Enter your Store URL. Ensure this includes the protocol (https://) and matches your domain exactly.
Enter your Client ID and Client Secret into the respective fields.
Click Save.
Step 2: Test the connection
After saving your credentials, you must verify the link between systems:
Locate the Test Connection action within the channel settings.
Run the test to ensure Flxpoint can reach your Shopware API.
If the test passes, you may proceed to enable your automated sync jobs (Get Inventory, Publish Listings, etc.).
Troubleshooting
Connection fails or returns an authentication error?
The most common cause of failure is a blank or incorrect Store URL. Ensure the URL is not hardcoded to a generic Shopware address and does not contain trailing spaces. Verify that the Client ID and Secret have not expired or been deleted in your Shopware admin settings.
Note: If you are migrating an older Shopware connection, you may need to update the Store URL field manually, as previous versions of the integration used a hardcoded authentication path that is no longer supported.
