Shopware is an eCommerce platform powering storefronts globally. The Flxpoint integration uses Shopware's Admin API (OAuth2 client_credentials) to import the catalog, sync products + inventory, publish new listings with multi-image upload + sales-channel configuration, import orders with custom-field support via the cf_ prefix, and sync shipments back with partial-shipment support.
How to Connect
- Search for and select Shopware as your channel type.
- Proceed to the next step to open the Shopware channel setup form.
- Sign in to your Shopware admin panel.
- Open Settings > System > Integrations.
- Click Add integration and give it a clear name (e.g., "Flxpoint Integration").
- Grant the integration administrator-level access so it can read and write products, orders, and shipments.
- Save the integration. Shopware will display a Client ID and a Client Secret.
- Copy the Client Secret immediately, as it is shown only once.
- Connection Name — A descriptive label (e.g., "My Shopware Store").
- Store URL — The base URL of your Shopware storefront (e.g., https://yourstore.com).
- Client ID — Paste the Client ID generated in Shopware.
- Client Secret — Paste the Client Secret generated in Shopware.
- Choose Create Only to import and link listings based on SKU, creating new Flxpoint listings if no match is found.
- Choose Create & Overwrite Existing to import, link, and overwrite existing Flxpoint listings with Shopware data.
- Enable Set New Listings to Paused to pause new imports for review before going live.
- Choose a single Sales Channel ID in the Integration Configuration to publish all listings to one storefront, OR
- Provide multiple Sales Channel IDs (comma-separated) in the Publish mapping template to publish a listing to several storefronts at once.
- Order Status — Choose which Shopware order statuses to import (e.g., open, in progress, completed, cancelled).
- Payment Status — Filter by payment state (open, paid, cancelled) so you only pull orders ready to be fulfilled.
- Get Orders Created within the last X Days — Define the lookback window for new order retrieval.
- In Shopware, review your existing shipping method names so you can mirror them in Flxpoint.
- In Flxpoint, ensure shipment methods are named so they match (case-sensitive) what Shopware expects.
- Add markups (e.g., 20% over cost) or set specific pricing rules.
- Set minimum prices to protect your margins.
- Limit quantities shown to reduce the risk of overselling.
- Import Listings — Manually import existing Shopware listings (cannot be scheduled).
- Sync Listings — Update price, quantity, and status changes (e.g., every hour).
- Publish Listings — Push new or updated listings to Shopware.
- Get Orders — Pull new orders (every 15–30 minutes recommended).
- Sync Orders — Send tracking and shipment data back to Shopware (every few hours).
- Run each process manually first to test.
- Verify that a few products sync correctly.
- Check that test orders process properly.
- Then enable automation when everything looks good.
Shopware stores product dimensions in millimeters and weight in kilograms. Flxpoint normalizes dimensions to centimeters on import (rounded to 2 decimal places) and uses kilograms for weight without conversion.
Listings are linked between Flxpoint and Shopware using the product number (SKU). Keep SKUs unique and consistent to avoid broken links.
- Delisting removes the product from Shopware; you can re-list it later via Sync or Publish.
- Hide and Unhide actions temporarily change visibility without removing the product.
- Custom field keys from Shopware can be mapped on orders using the
cf_prefix (see the Get Orders section). - Contact support@flxpoint.com for any issues.
Listing Operations
Import Listings pulls existing products into Flxpoint. Sync & Link Listings links catalogs and syncs price/qty/status. Publish Listings creates new products in Shopware with multi-image upload and multi-sales-channel support.
Shopware — Import Listings pulls product listings from your Shopware store into Flxpoint in batches of 100. Each batch fetches top-level Parent products with their nested variants, manufacturer, categories, and media. The integration includes resilient fallback logic for variant data (variant first; fall back to parent for missing fields).
- 1Connect Shopware: Enter your client-id and client-secret (issued from your Shopware store's Integrations section). OAuth2 token generation is handled automatically.
- 2Configure Settings: Set the schedule for Import Listings. Daily is typical.
- 3Select Mapping Template: Choose Shopware Import Listings.
| Shopware Field | Flxpoint Field | Notes |
|---|---|---|
| id | Parent / Variant External ID | Direct mapping. |
| productNumber | SKU | Direct. |
| name | Title | Variant first; fallback to parent name if blank. |
| description | Description | Direct. |
| active | Status | If false, status set to HIDDEN. |
| media → url | Images | Iterates media list, extracts valid image URLs. |
| manufacturer → name | Brand | Mapped when manufacturer object + name exist. |
| categories[0..2] | Category 1, 2, 3 | First 3 category names sequentially. |
| customFields map | Custom Fields | Mapped to internal custom fields. |
| stock | Quantity | Fallback: child stock; if null, parent stock. |
| ean / manufacturerNumber | UPC / MPN | Fallback: child first, then parent. |
| weight | Weight | Fallback: child first, then parent. Unit forced to KILOGRAM. |
| width / height / length | Dimensions | Unit conversion: Shopware sends MM; divided by 10 and rounded to 2 decimals to produce CM. |
| price[0].gross / .net | Price / Cost | First price object: gross → Price; net → Cost. |
| options array | Variant Options | Extracts Option Group name (e.g., "Size") + Option Value (e.g., "Large"). |
- Auth failed: Verify client-id + client-secret in your Shopware Integrations admin.
- Dimensions are 10x too large / 10x too small: Shopware sends MM; Flxpoint converts to CM. If your downstream channel expects MM, add a transformation rule.
- Variant fields missing: Confirm the parent product has the field populated — fallback uses parent value when variant is blank.
-
Custom fields not capturing: Confirm field exists in
customFieldsmap on the Shopware product.
Shopware — Sync & Link Listings links existing Shopware products to your Flxpoint catalog and syncs price, quantity, and status updates. It fetches up to 100 parent products with variants per page, applies inheritance logic for variant active status, and supports product lifecycle actions (hide / unhide / delist).
- 1Re-use the OAuth2 connection from Import Listings.
- 2Configure the sync schedule (hourly is typical for price + qty).
- 3Select Shopware Sync & Link Listings mapping template.
| Shopware Field | Flxpoint Field | Notes |
|---|---|---|
| id (parent & variant) | External ID | Direct mapping — alphanumeric Shopware ID. |
| productNumber | SKU (parent & variant) | Direct mapping. |
| 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 a variant's active field is null in Shopware, Flxpoint inherits the parent's visibility. Rule logic:
- Check Variant Status First.
-
Explicit Status: If
activeis explicitlytrueorfalse, use that. -
Inherited Status (Fallback): If
activeisnull, take the parent product's status.
- Sync price, quantity, and status updates to the store.
- Support product lifecycle actions: hide / unhide products; delist products from the store.
-
Variants showing wrong visibility: Confirm the variant's
activefield in Shopware. If null, parent's status is inherited. - Sync runs slow: The integration paginates 100 products per page; reduce mapping complexity if individual sync runs are timing out.
-
Listings not linking: Confirm SKU matches between Shopware
productNumberand your Flxpoint listing SKU.
Shopware — Publish Listings creates regular and parent-child products on your Shopware store. Supports multi-image upload, visibility/sales-channel configuration (single or multiple channels), and automated cover-image assignment based on position.
- 1Re-use OAuth2 connection.
- 2Sales Channel configuration: Set a single Sales Channel ID via Integration Configuration, OR configure multiple Sales Channel IDs in the mapping template (comma-separated).
- 3Select Publish Listings mapping template.
| Flxpoint Field | Shopware Field | Notes |
|---|---|---|
| SKU | productNumber | Required. |
| Title | name | Required. |
| Description | description | Optional. |
| Brand | manufacturer | Resolved to manufacturer object by name. |
| Categories | categories | Mapped to category UUIDs in Shopware taxonomy. |
| Price / Cost | price (gross / net) | Currency from store config. |
| Quantity | stock | Per variant. |
| Weight / Dimensions | weight / width / height / length | Unit conversion: Flxpoint sends in CM/KG; Shopware converts internally to MM where required. |
| Images | media | Multi-image upload; first position becomes cover. |
| Visibility / Sales Channel IDs | visibilities | Single ID from config, or comma-separated multiple from template. |
| Custom Fields | customFields | Direct mapping. |
| Variant Options (Size, Color, etc.) | options | Option group + value pairs. |
- Storefront Sales Channels (for selection)
- Configured Currencies in the store
- Configured Taxes in the store
- Product publishes but doesn't appear on storefront: Check the Sales Channel ID(s) in your mapping. Use the Integration Configuration fetch to confirm the correct UUIDs.
- Cover image is wrong: Cover assignment is based on image position. Reorder images in Flxpoint to control the cover.
- Currency / Tax incorrect: Use the fetched Currency / Tax options from Integration Configuration; manual UUIDs are error-prone.
- Galleries bloating after re-sync: The "Wipe and Replace" strategy prevents this. If you see bloat, confirm you're on the latest integration version.
Order Operations
Get Orders imports orders by status / payment / age filters with cf_-prefix custom field mapping. Sync Orders sends shipment + tracking back as new deliveries with partial-shipment support.
Shopware — Get Orders imports orders from your Shopware store into Flxpoint based on configured status + payment + age filters. Custom fields can be mapped using the cf_ prefix convention.
- 1Re-use OAuth2 connection.
-
2Configure filters:
-
multi-order-status —
open, in_progress, completed, cancelled -
multi-order-payment-status —
open, paid, cancelled - fetch-order-last-x-days — orders created within X days
-
multi-order-status —
- 3Select Get Orders mapping template.
Shopware custom fields are received as key-value pairs in the response. To map a specific custom field, reference it using:
Format: cf_<custom_field_key>
-
cf_is a required prefix indicating the value comes from Shopware custom fields. -
<custom_field_key>is the actual key of the custom field in Shopware.
Example: If the custom field key in Shopware is customfield_key, the mapping value should be cf_customfield_key.
| Shopware Field | Flxpoint Field |
|---|---|
| id / orderNumber | Order Number |
| orderDateTime / createdAt | Order Date |
| amountTotal / amountNet | Total / Subtotal |
| billingAddress | Billing Address |
| deliveries[0].shippingOrderAddress | Shipping Address |
| lineItems | Order Items (SKU + qty + price) |
| transactions[0].paymentMethod | Payment Method |
| customFields → cf_* | Custom Fields (via cf_ prefix) |
-
Orders missing: Check your status / payment / age filters. Older orders may be excluded by the
fetch-order-last-x-dayssetting. -
Custom field not mapping: Confirm the
cf_prefix is present in the mapping value and the underlying key exists on the Shopware order. -
Cancelled orders importing: Update the
multi-order-statusfilter to excludecancelled. - Order won’t import even though filters look right: First confirm the order exists in Shopware and check its current order status and payment status there — only orders matching your status and payment filters are pulled. Then verify the order’s shipping method name maps to a Flxpoint shipment method; a missing or mismatched Shipping Method Name can stop an order from importing. Re-run Get Orders after any filter or mapping change to test.
- Still not importing? If an order matches every filter and status but still doesn’t come through, contact Flxpoint support with the Shopware order number — some cases need a closer look at how that order’s data is mapped.
Shopware — Sync Orders sends shipment + tracking data back to Shopware as a new delivery on the order. Supports partial shipments (multiple deliveries per order). Shipping method matching falls back to the primary delivery method if no match is found.
- 1Re-use OAuth2 connection.
- 2Map Flxpoint shipping method names to Shopware shipping method names (Flxpoint fetches the store's available methods automatically).
- 3Select Sync Orders mapping template.
- Fetch order details (existing deliveries, line items, shipping methods).
- Retrieve available shipping methods from the store and cache name + ID pairs.
- Identify line items to ship — supports partial quantities and multiple line items per shipment.
-
Create the delivery:
- Match Flxpoint's shipping method name to Shopware's shipping method name. If matched, use the corresponding
shippingMethodId. - If no match, fall back to the order's primary delivery shippingMethodId.
- Set State ID to Partially Shipped; populate shippingCost; store carrier in a custom field; copy shippingOrderAddressId from the primary delivery.
- Match Flxpoint's shipping method name to Shopware's shipping method name. If matched, use the corresponding
- Add delivery positions for each shipped item: orderLineItemId, orderLineItemVersionId, quantity, unitPrice.
-
Update delivery status via state transition:
ship(mark as shipped) /cancel/reopen.
- Shipment created with wrong carrier / shipping method: Verify shipping method names align between Flxpoint and Shopware. Use the auto-fetched shipping method list in Integration Configuration.
-
Shipment state stuck on "Partially Shipped": Send the
shipstate transition after creating the delivery; this marks the delivery as fully shipped. -
Tracking codes not appearing: Map tracking codes in your Sync Orders template — they're stored in the
trackingCodesarray on the delivery.
Troubleshooting
Common issues and solutions for the Shopware integration.
What's happening
client-id or client-secret is invalid, or the integration user is disabled in Shopware.
How to fix it
- Go to your Shopware admin → Integrations and regenerate the credentials.
- Confirm the user has API access permissions.
- Update the connection in Flxpoint with the new credentials.
What's happening
Shopware stores dimensions in MM. Flxpoint divides by 10 to produce CM. If your downstream channel expects MM, double-conversion is happening.
How to fix it
- Add a transformation rule on the downstream channel to multiply by 10 if needed.
What's happening
Shopware leaves variant active as null when it matches parent. Flxpoint inherits parent status in that case.
How to fix it
- If you want explicit per-variant control, set
activetotrue/falseexplicitly on the variant in Shopware.
What's happening
Shopware custom fields require the cf_ prefix in the mapping value.
How to fix it
- Prefix the field key: e.g.,
cf_customfield_key— not justcustomfield_key. - Confirm the field exists in Shopware's
customFieldsobject on the order.
What's happening
If Flxpoint can't match your shipping method name to a Shopware shipping method, it falls back to the order's primary delivery method.
How to fix it
- Align shipping method names between Flxpoint and Shopware exactly.
- Use Integration Configuration to fetch the Shopware shipping methods list.