Summary
This documentation describes how iPaaS.com writes order delivery and shipment data — including the delivery state, shipping method, shipping costs, expected arrival dates, and tracking numbers — back into Shopware. The family covers the full lifecycle of an order delivery: an Add collection that creates the delivery on a Shopware order, an Update collection that maintains it, a Delete collection that removes it, and an Order Delivery Status Update child collection that writes forward-delivery status and tracking onto an order as part of an order update. Partial-shipment behavior throughout this family relies on the Shopware Partial Delivery extension.
ID Format
Manual Sync ID Format
The standalone Add, Update, and Delete collections are triggered for a single record by entering the iPaaS.com order delivery and tracking record identifier for the transfer. That tracking record identifier carries a transaction segment before a | separator (for example 12345|67890); the transaction segment is the portion used to resolve the Shopware order the delivery belongs to. The Order Delivery Status Update child collection is not synced on its own — it transfers as part of its parent Update Shopware Order FROM iPaaS.com transfer.
External ID Format
When the Add collection creates a delivery in Shopware, the integration stores the Shopware order delivery identifier as the external id linking the iPaaS.com tracking record to its Shopware delivery. The Update, Delete, and Status Update collections rely on that stored link to locate the correct delivery — Update and Status Update can reuse an existing single delivery in place, and Delete removes the delivery identified entirely by the stored link.
Deleted Record Support
Inbound delete is supported for this entity. The Delete Shopware Order Delivery FROM iPaaS.com collection is present in this family: when an order delivery and tracking record is deleted in iPaaS.com, the integration removes the matching Shopware delivery using the external-id link that was stored when the delivery was created. The delete is a delete-by-link operation with no field mappings — the Shopware delivery is identified entirely by its stored link, so the delivery must have been created previously by the Add collection. If no link exists for the deleted record, there is nothing for the integration to remove and the delete completes without effect.
Custom Field Support
This family reads several values from iPaaS.com custom fields using the GetCustomFieldValue helper. The shipping unit price is read from Shopware Order Delivery Unit Price, the earliest and latest shipping dates from Shopware Earliest Shipping Arrival Date and Shopware Latest Shipping Arrival Date, and the shipping quantity from Shopware Order Delivery Quantity. The Status Update child collection additionally reads Line Item Id and Quantity to gate partial-versus-full delivery handling, and Partial Deliveries for the per-package partial-delivery detail. When a custom field is empty, the date and unit-price mappings apply soft defaults described in the Mappings section below.
Mapping Collection Status
All four collections in this family are Enabled.
Trigger Events
Add / Update / Delete (standalone): Transferred from iPaaS.com to Shopware when an iPaaS.com order delivery and tracking record (or its delete event) targets this Shopware subscription through an Outbound Data Flow, or when triggered manually by entering the iPaaS.com tracking record identifier.
Order Delivery Status Update (child): Transferred only as part of its parent Update Shopware Order FROM iPaaS.com transfer; it is not triggered independently.
Duplicate or Conflicting Mappings
The Add, Update, Delete, and Status Update collections are complementary parts of the same FROM flow — delivery and tracking data moves from iPaaS.com into Shopware through this lifecycle, and there is no distinct opposite-direction "TO iPaaS.com" order delivery flow paired with it.
Add Shopware Order Delivery FROM iPaaS.com creates the Shopware delivery and establishes the external-id link the other collections rely on.
Update Shopware Order Delivery FROM iPaaS.com maintains the delivery the Add collection created.
Delete Shopware Order Delivery FROM iPaaS.com removes the delivery using the stored external-id link.
Update Shopware Order Delivery Status FROM iPaaS.com writes forward-delivery status and tracking onto the order as a child of an order update.
Because the Add and Update collections both write delivery data into Shopware, subscribers or their MiSP should decide which system is the source of truth for delivery and tracking data and configure the collections accordingly, so that the same delivery is not created and then repeatedly overwritten in conflicting ways. The Status Update child collection is one of two near-identical children of Update Shopware Order FROM iPaaS.com; its sibling, Update Shopware Order Return FROM iPaaS.com, writes the return-delivery (return shipping) tracking and status rather than the forward shipping delivery. To drive forward-delivery status from the Status Update child collection, leave the order-header-level Order_Delivery_Status mapping null or unmapped so the header-level status and the child collection do not compete to set the same delivery status.
Supported Child Collections
The Update Shopware Order Delivery Status FROM iPaaS.com collection is a child of the Update Shopware Order FROM iPaaS.com collection, not of the standalone Add/Update/Delete collections in this family. It runs only as part of an order update transfer and writes forward-delivery (shipping) status and tracking onto an existing Shopware order delivery, keyed per shipped portion on a line item and quantity so that partial and full shipments are both supported. Its external-id link reuses the Shopware order delivery identifier on the parent order, allowing an existing single default delivery to be updated in place.
Shopware Caveats
A delivery can only be created or updated against an existing Shopware order that already carries a shipping address. The order, its shipping address, and the named shipping method must all exist and be linked before the delivery is transferred.
If a delivery's quantity, total price, or unit price does not meet Shopware's requirements, Shopware may accept the record but not display the delivery in its admin.
The delete relies on the stored external-id link to the Shopware delivery. A delivery that was created outside this integration, or one whose link is missing, cannot be matched and removed.
Partial-delivery handling and updating an existing default delivery in place rely on the Shopware Partial Delivery extension behavior. Subscribers or their MiSP should validate partial-shipment behavior in a staging environment before relying on it in production.
The Status Update child collection does not create the order; the order must already exist in Shopware and be linked to the iPaaS.com transaction. Order creation is handled by the parent Update Shopware Order FROM iPaaS.com transfer.
iPaaS.com Caveats
This family transfers delivery and tracking data into Shopware. The earliest and latest shipping date defaults and the example unit-price default are applied within the mappings when the corresponding iPaaS.com custom fields are empty.
The Delete collection acts only on the delete event from iPaaS.com. It carries no field data and applies no defaults; its sole action is removing the linked Shopware delivery.
For the Status Update child collection, the line item and quantity that gate partial-versus-full handling are read from the iPaaS.com custom fields Line Item Id and Quantity; subscribers or their MiSP should confirm those custom fields are populated on the transferred tracking records.
Subscribers or their MiSP should stagger large manual jobs and rely on the configured throttle limits to avoid overrunning the Shopware API during bulk delivery transfers.
Setup Requirements
For automatic transfer, the standalone Add, Update, and Delete collections are driven by Outbound Data Flows that move iPaaS.com order delivery and tracking records (and delete events) to this Shopware subscription. The Order Delivery Status Update child collection requires no separate flow of its own — it transfers whenever its parent Update Shopware Order FROM iPaaS.com transfer runs. Subscribers or their MiSP should confirm the relevant Outbound Data Flows are configured and enabled before relying on automatic delivery transfer.
Integration Flow
An iPaaS.com order delivery and tracking record is created, updated, or deleted (standalone collections), or an iPaaS.com order update carrying tracking rows targets this Shopware subscription (Status Update child collection).
The transfer is triggered automatically through the relevant Outbound Data Flow, or manually by entering the iPaaS.com tracking record identifier (standalone collections only).
The integration resolves the Shopware order from the transaction segment of the record identifier using the stored external-id link, then resolves the order's shipping address, the named shipping method, and the delivery state.
For Add and Update, the mapped delivery values — quantity, total price, unit price, earliest and latest shipping dates, and tracking number — are applied to create or update the Shopware delivery. When the order already has a single default delivery and the eligibility control is set, that delivery is updated in place rather than a second delivery being added.
For the Status Update child collection, each tracking row is gated by its line item and quantity into partial-versus-full delivery handling, and the forward-delivery status is derived from the parent order's status before being written onto the delivery.
For Delete, the integration looks up the linked Shopware delivery and removes it.
On a successful Add, the Shopware order delivery identifier is stored as the external id so subsequent Update, Delete, and Status Update transfers can locate the same delivery.
Mappings
Add Shopware Order Delivery FROM iPaaS.com
Creates an order delivery (with tracking) on the matching Shopware order from iPaaS.com data.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopware) | Description |
Dynamic Formula | Transaction link (record Id) | OrderId | required — resolves the Shopware order the delivery is attached to from the linked iPaaS.com transaction; the order must already exist and be linked. |
Dynamic Formula | Transaction link (record Id) | ShippingOrderAddressId | required — reads the order's existing shipping address from Shopware; the order must already carry a delivery address. |
Dynamic Formula | ShippingMethod name | ShippingMethodId | required — resolves the Shopware shipping method from its name; the named method must exist in Shopware and be linked in iPaaS.com. |
Dynamic Formula | Static state name | StateId | required — places the new delivery in the Shipped state via GetOrderDeliveryTechnicalNameByStatusName. |
Field | Custom Shopware Order Delivery Quantity | ShippingCosts_Quantity | required — shipping quantity carried from iPaaS.com; a value Shopware cannot accept may leave the delivery hidden in the admin. |
Field | Cost | ShippingCosts_TotalPrice | required — delivery total price carried from iPaaS.com; a value Shopware cannot accept may leave the delivery hidden in the admin. |
Dynamic Formula | Custom Shopware Order Delivery Unit Price | ShippingCosts_UnitPrice | required — shipping unit price from the custom field, with an example default applied when empty. See placeholder callout below. |
Dynamic Formula | Custom Shopware Earliest Shipping Arrival Date | ShippingDateEarliest | required — earliest delivery date from the custom field, defaulting to the current date plus two days when empty. |
Dynamic Formula | Custom Shopware Latest Shipping Arrival Date | ShippingDateLatest | required — latest delivery date from the custom field, defaulting to the current date plus fourteen days when empty. |
Field | TrackingNumber | TrackingNumber | optional — tracking number recorded as the delivery's tracking code; when omitted the delivery is still created without one. |
Field | Custom IsEligibleForUpdateDefaultDelivery | IsEligibleForUpdateDefaultDelivery | optional — control value set automatically by the integration; when one default delivery exists it is updated rather than a second one added. Subscribers or their MiSP do not populate this field. |
The unit-price formula applies an example fallback when the custom field is empty:
var value = GetCustomFieldValue(CustomFields, "Shopware Order Delivery Unit Price");
if (string.IsNullOrEmpty(value)){
return 130; //Change the default unit price here
}
return value;Placeholder value — replace during implementation: the fallback of 130 is an example default unit price, not a production value. Subscribers or their MiSP must set their own default unit price in this formula before going live so deliveries lacking an explicit unit price are not priced from the example value. The two-day and fourteen-day date offsets are likewise soft defaults that can be adjusted to suit fulfillment timelines.
Update Shopware Order Delivery FROM iPaaS.com
Updates an existing order delivery (with tracking) on the matching Shopware order from iPaaS.com data.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopware) | Description |
Dynamic Formula | Transaction link (record Id) | OrderId | required — resolves the Shopware order the delivery belongs to from the linked iPaaS.com transaction; the order must already exist and be linked. |
Dynamic Formula | Transaction link (record Id) | ShippingOrderAddressId | required — reads the order's existing shipping address from Shopware; the order must already carry a delivery address. |
Dynamic Formula | ShippingMethod name | ShippingMethodId | required — resolves the Shopware shipping method from its name; the named method must exist in Shopware and be linked in iPaaS.com. |
Dynamic Formula | Static state name | StateId | required — transitions the delivery to the Shipped state via GetOrderDeliveryTechnicalNameByStatusName. |
Field | Custom Shopware Order Delivery Quantity | ShippingCosts_Quantity | required — shipping quantity carried from iPaaS.com; a value Shopware cannot accept may leave the delivery hidden in the admin. |
Field | Cost | ShippingCosts_TotalPrice | required — delivery total price carried from iPaaS.com; a value Shopware cannot accept may leave the delivery hidden in the admin. |
Dynamic Formula | Custom Shopware Order Delivery Unit Price | ShippingCosts_UnitPrice | required — shipping unit price from the custom field, with an example default applied when empty. See placeholder callout below. |
Dynamic Formula | Custom Shopware Earliest Shipping Arrival Date | ShippingDateEarliest | required — earliest delivery date from the custom field, defaulting to the current date plus two days when empty. |
Dynamic Formula | Custom Shopware Latest Shipping Arrival Date | ShippingDateLatest | required — latest delivery date from the custom field, defaulting to the current date plus fourteen days when empty. |
Field | TrackingNumber | TrackingNumber | optional — tracking number recorded as the delivery's tracking code; when omitted the existing tracking code is left unchanged by this mapping. |
The unit-price formula applies an example fallback when the custom field is empty:
var value = GetCustomFieldValue(CustomFields, "Shopware Order Delivery Unit Price");
if (string.IsNullOrEmpty(value)){
return 1; //Change the default unit price here
}
return value;Placeholder value — replace during implementation: the fallback of 1 is an example default unit price, not a production value. Subscribers or their MiSP must set their own default unit price in this formula before going live. The two-day and fourteen-day date offsets are likewise soft defaults that can be adjusted to suit fulfillment timelines.
Delete Shopware Order Delivery FROM iPaaS.com
Deletes the linked Shopware order delivery when its iPaaS.com order delivery and tracking record is deleted. This is a delete-by-link collection with no field mappings: the Shopware delivery is identified entirely by the external-id link stored when it was created, so there are no required, recommended, or optional fields and no default-value behaviors to configure. The delivery must have been created previously by the Add collection; if no link exists for the deleted record, there is nothing to remove in Shopware.
Update Shopware Order Delivery Status FROM iPaaS.com
Writes forward-delivery (shipping) status and tracking onto an existing Shopware order delivery, as a child of the Update Shopware Order FROM iPaaS.com collection.
Mapping Filter
var lineItemId = GetCustomFieldValue(CustomFields, "Line Item Id");
var msNavQuantity = GetCustomFieldValue(CustomFields, "Quantity");if (!string.IsNullOrEmpty(lineItemId) && !string.IsNullOrEmpty(msNavQuantity))
{
var iPaaSLineItemQuantity = await GetQuantityOfLineItem(lineItemId,Parent.Id);
if (Int64.TryParse(msNavQuantity, out var msNavQty))
{
return msNavQty >= iPaaSLineItemQuantity;
}
}return true;Filter Description. This partial-shipment validating filter gates each tracking row into partial-versus-full delivery handling. It reads the iPaaS.com custom fields Line Item Id and Quantity with GetCustomFieldValue. When both are present, it resolves the line's total quantity with GetQuantityOfLineItem and parses the supplied Quantity with Int64.TryParse; the row passes when the shipped quantity is greater than or equal to the line's quantity (a full shipment of that line). When the supplied Quantity cannot be parsed as a number, the row does not pass through this branch. When the line item or quantity custom fields are not both present, the filter returns true and the row is processed as a full-order delivery rather than a per-line partial delivery. The complementary sibling collection, Update Shopware Order Return FROM iPaaS.com, uses the inverse comparison to handle the partial remainder.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopware) | Description |
Dynamic Formula | Transaction link (record Id) | OrderId | required — links the delivery to the existing Shopware order; if the order is not found the transfer is rejected. |
Field | TrackingNumber | TrackingNumber | recommended — writes the shipment tracking number onto the delivery; a pending order carrying a tracking number is treated as partially shipped. |
Dynamic Formula | Parent order Status | StateId | recommended — derives the forward-delivery status from the parent order's status (see formula below). |
Dynamic Formula | ShippingMethod name | ShippingMethodId | recommended — resolves the Shopware shipping method from its name through the iPaaS.com link; returns nothing if not found. |
Dynamic Formula | Transaction link (record Id) | ShippingOrderAddressId | recommended — reads the shipping address already on the Shopware order's delivery. |
Dynamic Formula | Custom Shopware Earliest Shipping Arrival Date | ShippingDateEarliest | recommended — earliest expected arrival date from the custom field, defaulting to two days from the transfer date when empty. |
Dynamic Formula | Custom Shopware Latest Shipping Arrival Date | ShippingDateLatest | recommended — latest expected arrival date from the custom field, defaulting to fourteen days from the transfer date when empty. |
Field | Custom IsEligibleForUpdateDefaultDelivery | IsEligibleForUpdateDefaultDelivery | recommended — when one default delivery exists, it is updated in place and its Shopware delivery ID reused rather than a new delivery being created. |
Dynamic Formula | Custom Line Item Id | LineItemId | recommended — resolves the Shopware order line a partial-shipment row applies to; returns nothing when the row is a full-order delivery. |
Field | Custom Partial Deliveries | PartialDeliveries | recommended — per-package partial-delivery detail in the format |
Field | Custom Shopware Order Delivery Quantity | ShippingCosts_Quantity | optional — quantity component of the delivery's shipping-cost record. |
Field | Cost | ShippingCosts_TotalPrice | optional — total-price component of the delivery's shipping-cost record. |
Field | Cost | ShippingCosts_UnitPrice | optional — unit-price component of the delivery's shipping-cost record. |
The status formula derives the Shopware delivery state from the parent order's status:
var returnStatus = "";
if(Parent.Status == "Pending" && !string.IsNullOrEmpty(TrackingNumber)) {
returnStatus = "Shipped (partially)"
}
else if(Parent.Status == "Complete"){
returnStatus = "Shipped";
}
else if(Parent.Status == "Cancelled"){
returnStatus = "Cancelled";
}
else {
returnStatus = "Open";
}return await GetOrderDeliveryTechnicalNameByStatusName(returnStatus);A Pending order that already carries a tracking number becomes Shipped (partially), a Complete order becomes Shipped, a Cancelled order becomes Cancelled, and any other status becomes Open. To drive delivery status from this child collection, leave the order-header-level Order_Delivery_Status mapping null or unmapped. The two-day and fourteen-day arrival-date offsets are soft defaults that can be adjusted to match fulfillment expectations.
Error Handling
Errors surface in Dashboard / Integration Monitoring / Error Logs.
Missing or unresolved Shopware order link: the delivery cannot resolve its OrderId, so the transfer is rejected. Resolution: confirm the related Shopware order exists and is linked in iPaaS.com before enabling the collection.
Missing shipping address on the order: ShippingOrderAddressId resolves to nothing because the order carries no delivery address. Resolution: ensure the Shopware order already has a delivery address before transferring the delivery.
Unresolved shipping method or delivery state: the named shipping method is not present or not linked in Shopware, or the supplied state name is not one of Shopware's delivery states. Resolution: confirm the shipping method exists and is linked, and supply a valid state name (Cancelled, Open, Returned, Returned (partially), Shipped, Shipped (partially)).
Delivery accepted but not visible in the Shopware admin: the quantity, total price, or unit price does not meet Shopware's requirements. Resolution: verify the shipping-cost values supplied from iPaaS.com.
Delete has no effect: no external-id link exists for the deleted record, so there is no Shopware delivery to remove. Resolution: confirm the delivery was originally created by the Add collection.
Shopware API temporarily unavailable: the transfer fails at write time. Resolution: retry by triggering a new transfer from iPaaS.com.
Testing & Validation
Test Scenarios
Create a delivery on a linked Shopware order via the Add collection and confirm the order, shipping address, shipping method, state, costs, dates, and tracking number all resolve and the delivery appears in the Shopware admin.
Update an existing delivery via the Update collection and confirm the changed values land on the same delivery rather than producing a duplicate.
Delete a previously created delivery via the Delete collection and confirm the linked Shopware delivery is removed.
Trigger an order update so the Status Update child collection writes forward-delivery status and tracking, and confirm the status is derived correctly from the parent order's status.
Transfer a partial shipment with the Line Item Id, Quantity, and Partial Deliveries custom fields populated and confirm the partial delivery lands on the correct order line.
Transfer a delivery with the unit-price and arrival-date custom fields empty and confirm the configured fallback values are applied.
Transfer a delivery whose Shopware order is not linked and confirm the record is rejected with an error in Dashboard / Integration Monitoring / Error Logs.
Validation Checklist
The Shopware order, its shipping address, and the named shipping method exist and are linked in iPaaS.com before delivery transfer.
The example default unit price has been replaced with a production value in both the Add and Update unit-price formulas before go-live.
The earliest and latest arrival-date offsets have been reviewed against the store's fulfillment timelines.
The source of truth for delivery and tracking data has been decided so the Add and Update collections do not conflict.
The order-header-level Order_Delivery_Status mapping is null or unmapped when the Status Update child collection drives forward-delivery status.
The Line Item Id and Quantity custom fields are populated on transferred tracking records when partial-shipment handling is required.
Partial-shipment behavior has been validated in a staging environment before being relied on in production.
Additional Notes
Partial-delivery handling and updating an existing default delivery in place rely on the Shopware Partial Delivery extension; this behavior should be validated in a staging environment before being relied on in production.
The shipping method and shipping address used by the Status Update child collection are resolved at transfer time from records that already exist on the Shopware order; if a referenced shipping method or order delivery is not found, that value resolves to nothing rather than failing the whole transfer.
