Summary
This mapping documentation describes how individual (non-company) Customer records are transferred from Shopware to iPaaS.com, together with each customer's addresses. The parent Add/Update Shopware Customer TO iPaaS.com collection receives a Shopware webhook (or a Manual Sync request), retrieves the full customer record, and dispatches it to iPaaS.com; the child Add/Update Shopware Customer Address TO iPaaS.com collection moves the customer's addresses as part of the same transfer. Business-to-business company records are handled separately by the Add/Update Shopware B2B Company TO iPaaS.com collection.
ID Format
Manual Sync ID Format
Customers can be transferred from the iPaaS.com Manual Sync page by entering the Shopware customer ID. The value is the Shopware internal customer identifier, for example 01915630e5db7214ab1ab2dc71608955. Entering a customer ID transfers that specific customer along with its child addresses. The child Add/Update Shopware Customer Address TO iPaaS.com collection cannot be triggered from Manual Sync on its own — transferring the parent customer moves its addresses.
External ID Format
After a customer is transferred, it is linked in iPaaS.com so that subsequent transfers update the same record. The customer is identified by its CustomerNumber, which carries the Shopware customer number (falling back to the Shopware internal customer ID when the customer number is empty). Each child address is linked using a composite external ID built from the Shopware address ID and its parent customer ID, so addresses stay associated with the correct customer across transfers.
Deleted Record Support
This family transfers Customer creates and updates only. There is no Customer delete collection in this family, so customer or address deletions in Shopware are not propagated to iPaaS.com by default. Removing a customer or address from iPaaS.com when it is deleted in Shopware must be handled separately.
Custom Field Support
This integration can read Shopware customer custom field values for use in the iPaaS.com Customer transfer using the GetValueFromCustomField conversion function. Add a mapping of type Dynamic Formula whose formula calls GetValueFromCustomField with the customer's custom fields and the technical name of the Shopware custom field to read. The function returns the value of the first custom field whose technical name matches; when no field matches, it returns nothing. The value can be sent as-is to an iPaaS.com custom field or used inside a larger formula that transforms or combines it before transfer. The C5_Custom_Customer mapping in the parent collection is a worked example — it reads the Shopware custom field whose technical name is customer comments. The child address collection additionally retains the raw Shopware Country ID and Country State ID on iPaaS.com custom fields alongside the resolved Country and Region names.
Mapping Collection Status
Add/Update Shopware Customer TO iPaaS.com (parent): Enabled
Add/Update Shopware Customer Address TO iPaaS.com (child): Enabled
Trigger Events
The parent collection is triggered by the following Shopware webhook events when subscribed on the Inbound Data Flows (External Webhooks) page:
checkout.customer.register: a registered customer is created.
checkout.customer.guest_register: a guest customer is created.
checkout.customer.changed-payment-method: a customer changes their payment method.
The parent collection can also be triggered manually from the iPaaS.com Manual Sync page. The child address collection has no independent trigger; it runs whenever its parent customer is transferred.
Duplicate or Conflicting Mappings
These mapping collections transfer Customers and Customer Addresses from Shopware to iPaaS.com. The following mapping collections operate on the same records in the opposite direction:
Add/Update Shopware Customer FROM iPaaS.com: Creates or updates customers in Shopware from iPaaS.com data.
Add/Update Shopware Customer Address FROM iPaaS.com: Creates or updates customer addresses in Shopware from iPaaS.com data.
Before enabling these inbound collections alongside the outbound "From iPaaS.com" collections, subscribers or their MiSP should review and customize the mapping collection filters to prevent circular updates, and define clearly which system is the source of truth for customer and address data. If both directions are active with default mappings, changes may propagate back and forth between systems.
Unmapped Field Overwrite Risk
The iPaaS.com API performs a full record replace when updating records, and these collections handle both Add and Update. The following standard fields are not mapped in the default template mappings. Any existing value in such a field on the iPaaS.com record is overwritten with an empty value each time an Update transfer runs, unless an additional mapping is added to preserve it:
Add/Update Shopware Customer TO iPaaS.com: the Comment field.
Add/Update Shopware Customer Address TO iPaaS.com: the Type field.
To preserve such values, split the combined Add/Update collection into separate Add and Update collections and, in the Update collection, add a Dynamic Formula mapping that uses the DestinationValue function to carry the existing iPaaS.com value forward — for example, DestinationValue.Comment mapped to the iPaaS.com Comment field, or DestinationValue.Type mapped to the iPaaS.com Type field. The DestinationValue function reads the current value from the iPaaS.com destination record before the replace and writes it back into the outgoing record, so the value is preserved. This is simpler than adding source-side mappings and works for every field, including those that originate in iPaaS.com and have no Shopware equivalent.
Supported Child Collections
Add/Update Shopware Customer Address TO iPaaS.com: Transfers the customer's addresses as part of the customer transfer. Each address is linked in iPaaS.com using a composite external ID built from the Shopware address ID and its parent customer ID, so addresses stay associated with the correct customer. An address is flagged IsPrimaryBilling or IsPrimaryShipping when it is the customer's billing or shipping address.
Shopware Caveats
Webhook workflow actions require Enterprise Shopware: The automatic-transfer workflows described under Setup Requirements can only be created on Enterprise editions of Shopware. Subscribers on other editions should rely on Manual Sync or order-driven customer transfers instead.
Country and Region resolution: On the child address collection, the Country and Region names are resolved from Shopware's country and country-state IDs and depend on those IDs existing in Shopware. The names are returned in the parent customer's language when available, falling back to the default language. If an ID cannot be resolved, the corresponding name is left empty.
iPaaS.com Caveats
Customer group linking for Categories: The Categories mapping only resolves to an iPaaS.com category when the corresponding Shopware customer group has already been linked between the two platforms. Customer groups that are not linked are omitted from the transferred categories rather than created on the fly.
Duplicate prevention by email: When a Shopware customer is transferred and is not already linked to an iPaaS.com customer, the integration looks for an existing iPaaS.com customer with the same email address and links to it instead of creating a duplicate. Keep customer email addresses accurate in Shopware so this matching works as intended.
Child collection runs only with its parent: The address collection runs only as part of a parent customer transfer. It cannot be triggered independently from the Manual Sync page; transfer the parent customer to move its addresses.
API throttling on large jobs: The subscription exposes configurable API throttle limits. Subscribers should stagger large manual jobs and rely on the configured throttle limits when transferring many customers at once.
Integration-Specific Caveats
Automatic customer transfer during order transfer: When an order is transferred from Shopware to iPaaS.com, a customer transfer occurs automatically to capture the customer on the order — even if customer webhooks are disabled. For a business customer, a B2B company transfer occurs instead. To prevent customer records from being created or updated during order transfers, disable the customer transfer mapping collections. This behavior applies at the time this documentation was written.
Setup Requirements
For automatic transfer, subscribers or their MiSP must subscribe to the Shopware customer events on the Inbound Data Flows (External Webhooks) page of the Shopware subscription in iPaaS.com. Webhooks do not activate automatically — the relevant events must be subscribed before automatic transfers occur. Subscribing creates a workflow in Shopware that sends a webhook to iPaaS.com after the corresponding event; clearing the Inbound Data Flow toggle removes that workflow. The supported events are checkout.customer.register, checkout.customer.guest_register, and checkout.customer.changed-payment-method.
Webhook workflow actions are only available on Enterprise editions of Shopware. On non-Enterprise editions, use Manual Sync (or transfer customers as part of an order transfer) instead.
Integration Flow
A subscribed Shopware customer event (checkout.customer.register, checkout.customer.guest_register, or checkout.customer.changed-payment-method) fires a webhook to iPaaS.com, or a subscriber starts a Manual Sync by entering the Shopware customer ID.
The integration retrieves the full Shopware customer record.
The parent collection's filter is evaluated — only non-company (individual) customers continue; B2B company records are skipped here and handled by the Add/Update Shopware B2B Company TO iPaaS.com collection.
The customer fields are transformed: core identity fields are mapped, tag IDs are resolved to readable tag names, the customer group is resolved to a linked iPaaS.com category when available, and selected Shopware values are stored on iPaaS.com custom fields.
The customer is written to iPaaS.com. If it is not already linked, the integration matches on email address to an existing iPaaS.com customer and links to it rather than creating a duplicate.
Each of the customer's addresses is processed through the child Add/Update Shopware Customer Address TO iPaaS.com collection and linked using a composite external ID built from the Shopware address ID and its parent customer ID.
The customer record is linked in iPaaS.com by its CustomerNumber so that subsequent transfers update the same record.
Mappings
Add/Update Shopware Customer TO iPaaS.com
Mapping Filter
!IsCompany
Filter Description. The filter !IsCompany allows only Shopware customers that are not companies (individual customers) to pass. When IsCompany is true, the record is skipped by this collection and is instead transferred by the separate Add/Update Shopware B2B Company TO iPaaS.com collection. The filter does not throw an exception on a skipped record; company records simply do not pass.
Description: Transfers individual (non-company) Customer records from Shopware to iPaaS.com, including core identity fields and selected Shopware values retained as iPaaS.com custom fields.
Mapping Type | Source Field (Shopware) | Destination Field (iPaaS.com) | Description |
Dynamic Formula |
| CustomerNumber | required — Supplies the iPaaS.com Customer number from the Shopware customer number, falling back to the Shopware internal customer ID when empty. Key identifier for duplicate detection, record linking, and the value entered on Manual Sync. |
Field | FirstName | FirstName | recommended — Maps the Shopware customer first name to the iPaaS.com Customer first name for proper identification. |
Field | LastName | LastName | recommended — Maps the Shopware customer last name to the iPaaS.com Customer last name for proper identification. |
Field | EmailAddress | required — Maps the Shopware customer email to the iPaaS.com Customer email. The primary human-readable identifier; if the Shopware customer has no email, the transfer is rejected. | |
Field | Company | Company | recommended — Maps the Shopware customer company name; populated for business customers, left empty for individuals without a company. |
Field | GroupId | Shopware Customer Group Id | optional — Stores the Shopware customer group ID on an iPaaS.com custom field, retained for later mapping logic such as the Categories mapping. |
Field | SalesChannelId | Shopware Sales Channel Id | optional — Stores the Shopware sales channel ID the customer belongs to on an iPaaS.com custom field for sales-channel-specific handling. |
Dynamic Formula | Read customer custom field (see formula below) | C5_Custom_Customer | optional — Reads a Shopware customer custom field value by technical name using GetValueFromCustomField and stores it on an iPaaS.com custom field. Worked example of the custom-field pattern. |
Dynamic Formula | Resolve tag names (see formula below) | Shopware Tags | optional — Resolves the customer's Shopware tag IDs to readable names using GetTagNames and stores them as a comma-separated list. |
Dynamic Formula | Resolve linked category (see formula below) | Categories | optional — Converts a single Shopware customer group ID to a linked iPaaS.com category using ConvertShopwareCategoryToiPaaS; unlinked groups are omitted rather than created. |
Dynamic Formula | Capture B2B parent company ID (see formula below) | Shopware B2B Parent Company Id | optional — When the transfer contains a B2B company employee, captures the Shopware parent company ID on an iPaaS.com custom field for later employee-specific logic. |
// C5_Custom_Customer return await GetValueFromCustomField(CustomFields, "customer comments");
// Shopware Tags return await GetTagNames(TagIds);
// Categories return await ConvertShopwareCategoryToiPaaS(GroupId);
// Shopware B2B Parent Company Id
if (!string.IsNullOrEmpty(BusinessPartnerCustomerId)){
return BusinessPartnerCustomerId;
} else {
return null;
}Placeholder value — replace during implementation: In the C5_Custom_Customer formula, "customer comments" is an example Shopware custom field technical name. Replace it with the technical name of the custom field you want to transfer, or remove this example mapping if it is not needed.
Add/Update Shopware Customer Address TO iPaaS.com
Description: Child collection that transfers each of the customer's addresses to iPaaS.com as part of the parent customer transfer, including resolved Country and Region names and the raw Shopware identifiers.
Mapping Type | Source Field (Shopware) | Destination Field (iPaaS.com) | Description |
Field | FirstName | FirstName | recommended — Maps the recipient first name on the Shopware address to the iPaaS.com Customer Address first name. |
Field | LastName | LastName | recommended — Maps the recipient last name on the Shopware address to the iPaaS.com Customer Address last name. |
Field | Street | Address1 | recommended — Maps the Shopware street to the iPaaS.com Customer Address first street line for deliverable addresses. |
Field | AdditionalAddressLine1 | Address2 | optional — Maps the Shopware additional address line 1 to the iPaaS.com Customer Address second street line. |
Field | AdditionalAddressLine2 | Address3 | optional — Maps the Shopware additional address line 2 to the iPaaS.com Customer Address third street line. |
Field | City | City | recommended — Maps the Shopware city to the iPaaS.com Customer Address city. |
Field | ZipCode | PostalCode | recommended — Maps the Shopware zip code to the iPaaS.com Customer Address postal code for deliverable addresses. |
Dynamic Formula | Resolve region name (see formula below) | Region | recommended — Resolves the state/province name from the Shopware Country ID and Country State ID using StateNameFromId, in the parent customer's language with fallback to default; empty if unresolved. |
Dynamic Formula | Resolve country name (see formula below) | Country | recommended — Resolves the country name from the Shopware Country ID using CountryNameFromId, in the parent customer's language with fallback to default; empty if unresolved. |
Field | Company | Company | optional — Maps the company name on the Shopware address to the iPaaS.com Customer Address company, typically for business addresses. |
Field | PhoneNumber | PhoneNumber | optional — Maps the Shopware address phone number to the iPaaS.com Customer Address phone number. |
Field | IsPrimaryShipping | IsPrimaryShipping | optional — Flags whether this address is the customer's primary shipping address. |
Field | IsPrimaryBilling | IsPrimaryBilling | optional — Flags whether this address is the customer's primary billing address. |
Field | CountryId | Country ID | optional — Stores the raw Shopware Country ID on an iPaaS.com custom field, retained alongside the resolved Country name. |
Field | CountryStateId | Country State ID | optional — Stores the raw Shopware Country State ID on an iPaaS.com custom field, retained alongside the resolved Region name. |
// Region
var state = await StateNameFromId(CountryId, CountryStateId, Parent.LanguageId);
if(!string.IsNullOrEmpty(state))
return state;
return await StateNameFromId(CountryId, CountryStateId);// Country var country = await CountryNameFromId(CountryId,Parent.LanguageId); if (!string.IsNullOrEmpty(country)) return country; return await CountryNameFromId(CountryId);
Error Handling
EmailAddress missing: A Shopware customer with no email address is rejected by the iPaaS.com Customer API because EmailAddress is required. Ensure customers have an email configured in Shopware before transfer. Errors surface in Dashboard / Integration Monitoring / Error Logs.
Shopware API temporarily unavailable: If the Shopware API is unavailable when a transfer is triggered, the transfer fails and an error appears in Dashboard / Integration Monitoring / Error Logs. The record can be retried by triggering a new webhook event or by using Manual Sync; for addresses, re-trigger the parent customer transfer.
Testing & Validation
Test Scenarios
Create a new individual customer in Shopware (or trigger checkout.customer.register) and confirm the customer is created in iPaaS.com with the expected CustomerNumber, name, email, and company.
Update an existing customer in Shopware and confirm the linked iPaaS.com customer is updated rather than duplicated.
Transfer a customer with no email address and confirm the transfer is rejected with an error in Dashboard / Integration Monitoring / Error Logs.
Run a Manual Sync using a Shopware customer ID and confirm the customer and its child addresses transfer together.
Transfer a customer with multiple addresses and confirm each address is created in iPaaS.com with resolved Country and Region names, retained Country ID and Country State ID, and correct primary billing/shipping flags.
Transfer a B2B company customer and confirm it is skipped by this collection (handled by Add/Update Shopware B2B Company TO iPaaS.com instead).
Transfer a customer whose email already exists on an unlinked iPaaS.com customer and confirm the integration links to the existing record rather than creating a duplicate.
Validation Checklist
Confirm the three customer webhook events are subscribed on the Inbound Data Flows page (Enterprise Shopware) before relying on automatic transfer.
Confirm CustomerNumber and EmailAddress are populated on every transferred customer.
Confirm Shopware tag IDs resolve to readable names in the Shopware Tags custom field.
Confirm the Categories mapping resolves only for customer groups that are linked between the two platforms, and that unlinked groups are omitted.
Confirm each child address links by the composite external ID and stays associated with the correct customer across repeated transfers.
Confirm Country and Region names resolve in the parent customer's language where available and fall back to the default language otherwise.
If running Add/Update, confirm whether the unmapped Comment (customer) or Type (address) values need to be preserved with a DestinationValue mapping before enabling the Update path.
Additional Notes
Business-to-business company records are out of scope for this family and are transferred by the Add/Update Shopware B2B Company TO iPaaS.com collection.
Customer and address deletions are not propagated by this family.
These limitations are inherent to the current design of the integration and the capabilities of the Shopware API, and they apply to all subscribers at the time this documentation was written.
