Skip to main content

iPaaS.com to Adobe Commerce/Magento 2 Standalone Shipment Track Mapping Documentation

How a shipment with tracking is created against an Adobe Commerce/Magento 2 order from iPaaS.com, without an order update running above it.

Summary

Shipment tracking recorded in iPaaS.com is written into Adobe Commerce/Magento 2 as a shipment against an existing sales order, with the tracking number, carrier and comments attached.

This is the standalone path. It resolves the Magento order for itself, which lets a tracking record reach Magento without an order update running above it. A separate child collection does the same work beneath the order update family; the two overlap, and normally only one should be enabled.

The order must already exist in Magento, and the tracking record must say which items are being shipped.

ID Format

Manual Sync ID Format

Enter the iPaaS.com Transaction Tracking record identifier. The identifier is compound — the transaction identifier and the tracking identifier joined by a vertical bar, for example 90412|3.

The collection reads the portion before the bar to resolve the order, and the whole value to resolve the tracking record itself.

External ID Format

After a successful transfer, iPaaS.com stores the Adobe Commerce/Magento 2 shipment tracking identifier as the external ID on a record linking the iPaaS.com tracking record to its Magento counterpart. That link is what routes a later transfer of the same tracking record to the existing Magento shipment rather than creating a second one.

The order itself is resolved from the external-ID record created when the order first transferred into iPaaS.com.

Deleted Record Support

Outbound delete is not supported for shipments. Removing a tracking record in iPaaS.com does not remove the corresponding Magento shipment, and delete mappings are not included in the default templates for this collection.

Custom Field Support

This collection reads several iPaaS.com custom fields on the tracking record, which must exist by these exact names for the behavior they control to work:

  • Shipment Items: required — names the items being shipped. Without it the transfer stops with an error.

  • Source To Ship From: the Magento inventory source the shipment ships from.

  • Comment Value, Comment Is Visible On Front: a comment placed on the shipment itself and its storefront visibility.

  • Notify: whether Magento emails the customer about the shipment.

  • Order Comment Value, Order Comment Is Visible, Order Comment Is Notified, Order Comment Status: a separate comment added to the order's comment history, its visibility, whether the customer is notified, and the status recorded alongside it.

The format of the Shipment Items value is controlled by the Shipment Items Field Separator and Shipment Items Record Delimiter presets on the subscription.

Mapping Collection Status

Status: Enabled. This collection ships enabled.

Trigger Events: Creation or update of a Transaction Tracking record in iPaaS.com, plus Manual Sync on demand.

Automatic outbound transfers are enabled on the subscription's Outbound Data Flows page. Until that flow is enabled, no shipments are created automatically. Manual Sync is always available regardless, and because this collection stands on its own it is the way to push a single tracking number without re-sending its order.

Duplicate or Conflicting Mappings

  • Update Adobe Commerce/Magento 2 Order Shipment Track FROM iPaaS.com creates shipments from the same tracking data, but as a child of the order update rather than on its own. The two overlap: enabling both risks creating a shipment twice for the same tracking record. Choose the model that fits the workflow and enable only one.

The two also ship with different example values for the notify mapping and the default order comment. Both are configurable, so set each to the store’s notification policy rather than assuming the two behave alike.

  • Add/Update Adobe Commerce/Magento 2 Invoice FROM iPaaS.com raises invoices against the same orders. Magento treats invoicing and shipping independently, but both change which state transitions remain available on the order.

  • Update Adobe Commerce/Magento 2 Order FROM iPaaS.com writes status changes to the same orders. An order that is fully shipped and invoiced cannot be cancelled.

Duplicate matching

This integration implements no selectable collision-handling methods, and the behavior is not configurable on this collection. The external-ID record linking the iPaaS.com tracking record to its Magento counterpart decides whether a transfer creates a new shipment or updates an existing one.

Unmapped field overwrite risk

This collection creates shipments rather than maintaining a broad set of fields, so the usual overwrite risk is narrow. The fields it writes are OrderId, EntityId, TrackNumber, Title, CarrierCode, ShipmentItems, Atrributes_SourceCode, Notify, Comment_Value, Comment_Is_Visible_On_Front, Order_Comment_Value, Order_Comment_Is_Visible_On_Front, Order_Comment_Is_Customer_Notified and Order_Comment_Status.

The greater risk is shipping twice — creating a second shipment for stock that has already left — either by enabling both shipment paths or by re-transferring a tracking record whose link has been cleared.

The mitigation is a DestinationValue. Where a Magento field must hold a specific value that iPaaS.com does not supply, set a DestinationValue on that mapping so the integration writes the value chosen there instead of taking it from the source.

Supported Child Collections

None. This is a standalone collection with no parent and no children. It creates a single Magento shipment per tracking record and has no subordinate data to contribute.

System Caveats

Adobe Commerce/Magento 2 Caveats

  • The order must already exist in Magento. This collection ships existing orders; it never creates one.

  • An order can only be fully shipped once. Attempting to ship an order with nothing left to ship produces an error.

  • Shipping constrains later cancellation. An order that is fully shipped and invoiced cannot be cancelled.

  • The source must hold enough stock. Magento rejects a shipment when the inventory source being shipped from has insufficient stock, unless the subscription's bypass setting is enabled.

  • Source codes are case-sensitive. The source shipped from must match a Magento inventory source code exactly.

  • The carrier code must be configured in Magento. The value sent is the iPaaS.com shipping method lower-cased, and it must correspond to a carrier Magento knows.

iPaaS.com Caveats

  • The tracking record must carry Shipment Items. Without it the filter stops the transfer with an explicit message.

  • The shipment items must name lines that exist on the order. Items that cannot be matched to the order's lines cause the shipment to fail.

  • The order's external-ID record must be intact. The Magento order is resolved from the record linking the iPaaS.com Transaction to its Magento counterpart.

  • The compound identifier must be well formed. The order is resolved from the portion before the vertical bar.

Integration-Specific Caveats

  • The notify mapping is an example to adapt. As shipped, this collection does not send the shipment email where the Notify custom field is unset, which differs from the equivalent child beneath the order update family. Set each to the store’s notification policy rather than assuming they behave alike.

  • The fallback source code ships lower-cased. Because Magento source codes are case-sensitive, a lower-cased fallback will not match a source code created in upper case, which is how the location transfer normally creates them.

  • Two separate comments are written. One on the shipment and one on the order's comment history, each with its own visibility control.

  • This collection and the order update's shipment child overlap. Running both can ship the same tracking record twice.

Setup Requirements

Adobe Commerce/Magento 2 Configuration

  • Confirm the inventory source codes shipments will ship from, exactly as spelled and cased in Magento.

  • Confirm the carrier codes configured in the store match the lower-cased iPaaS.com shipping method values.

  • Confirm the orders to be shipped exist and are in a state that permits shipping.

iPaaS.com Configuration

  • Create the custom fields listed under Custom Field Support above, and populate Shipment Items on every tracking record that should create a shipment.

  • Replace the fallback source code with the store's own, matching Magento's casing.

  • Set the notify mapping, or its custom field, to match the store’s notification policy.

  • Confirm the shipment items separator and delimiter presets match the format of the Shipment Items values.

  • Decide whether shipments are created through this collection or through the order update's shipment child, and enable only one.

  • Enable the outbound flow for Adobe Commerce/Magento 2 shipments on the subscription's Outbound Data Flows page.

Full step-by-step setup instructions are in the Adobe Commerce/Magento 2 Installation Instructions article.

Integration Flow

  1. A Transaction Tracking record is created or updated in iPaaS.com, or a Manual Sync is run against one.

  2. The record is evaluated against the mapping filter, which requires the Shipment Items custom field. When it is absent the transfer stops with an error.

  3. The Magento order is resolved from the portion of the compound identifier before the vertical bar, through the external-ID record for that transaction.

  4. Any existing Magento shipment tracking record is resolved from the whole identifier, so a re-transfer updates rather than duplicating.

  5. The shipment items are resolved to line items on the Magento order, taking account of the selling unit.

  6. The shipment is created against the order from the specified inventory source, with the tracking number, carrier and title attached.

  7. A comment is placed on the shipment, and a separate comment is added to the order's comment history.

Mappings

Add/Update Adobe Commerce/Magento 2 Standalone Shipment Track FROM iPaaS.com

iPaaS.com data type: Transaction Tracking Number

Mapping Filter

var shipmentItems = GetCustomFieldValue(CustomFields, "Shipment Items");if(shipmentItems != null){
    return true;
}
else{    throw new Exception("Shipment Items are not provided");
    return false;
}

This filter passes when the tracking record carries a Shipment Items custom field. When it does not, the filter stops the transfer with an error rather than skipping the record silently:

"Shipment Items are not provided"

Search the Error Logs for that text to find affected tracking records. The remedy is to populate the Shipment Items custom field on the iPaaS.com tracking record with the items being shipped, then re-transfer.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Adobe Commerce/Magento 2)

Description

Dynamic Formula

var OrderId = await GetExternalIdAsync(Id.ToString().Split("\|")[0], "Transaction", SpaceportSystemId); if(OrderId!=null && OrderId!=""){ return OrderId; } return null;

OrderId

Required. Resolves the Magento order the shipment is created against, from the portion of the compound identifier before the vertical bar. An order that has not transferred cannot be resolved.

Dynamic Formula

Shipment line resolution — see the shipment items note below

ShipmentItems

Required. Resolves the Magento line items being shipped, from the Shipment Items custom field. Without a resolved order and items, no shipment is created.

Field

TrackingNumber

TrackNumber

Required. The tracking number attached to the shipment.

Dynamic Formula

var trackId = await GetExternalIdAsync(Id.ToString(), "Transaction Tracking", SpaceportSystemId); if(trackId!=null && trackId!=""){ return trackId; } return null;

EntityId

Required. Resolves any existing Magento shipment tracking record for this tracking record, so a re-transfer updates rather than creating a second shipment. Returns nothing on first transfer, which is the new-shipment case.

Field

ShippingMethodDescription

Title

Recommended. The shipment title shown in Magento, from the shipping method description.

Dynamic Formula

return ShippingMethod.ToLower();

CarrierCode

Recommended. The Magento carrier code, lower-cased from the iPaaS.com shipping method. The result must match a carrier code configured in Magento.

Dynamic Formula

var sourceToShipFrom = GetCustomFieldValue(CustomFields, "Source To Ship From"); if(sourceToShipFrom != null) { return sourceToShipFrom; } return "east";

Atrributes_SourceCode

Optional. The Magento inventory source the shipment ships from. Placeholder value — replace during implementation: the fallback source code is an example, and it ships lower-cased. Because Magento source codes are case-sensitive and the location transfer normally creates them in upper case, this fallback will not match. Replace it with the store's own default source code in the correct casing.

Dynamic Formula

var notify = GetCustomFieldValue(CustomFields, "Notify"); if(notify != null) { return notify; } return false;

Notify

Optional. Whether Magento emails the customer about the shipment, from the Notify custom field. The shipped fallback is an example value, and differs from the one on the equivalent child beneath the order update family — set it, or the custom field, to match the store’s notification policy.

Dynamic Formula

var commentValue = GetCustomFieldValue(CustomFields, "Comment Value"); if(commentValue != null) { return commentValue; } return null;

Comment_Value

Optional. A comment attached to the shipment itself.

Dynamic Formula

var isVisible = GetCustomFieldValue(CustomFields, "Comment Is Visible On Front"); if(isVisible != null) { return isVisible; } return 1;

Comment_Is_Visible_On_Front

Optional. Whether the shipment comment is shown on the storefront. Defaults to visible.

Dynamic Formula

var commentValue = GetCustomFieldValue(CustomFields, "Order Comment Value"); if(commentValue != null) { return commentValue; } return "Order shipped by iPaaS.com";

Order_Comment_Value

Optional. A comment added to the order's comment history when the shipment is created. Defaults to Order shipped by iPaaS.com.

Dynamic Formula

var commentIsVisible = GetCustomFieldValue(CustomFields, "Order Comment Is Visible"); if(commentIsVisible != null) { return commentIsVisible; } return null;

Order_Comment_Is_Visible_On_Front

Optional. Whether that order comment is shown on the storefront.

Dynamic Formula

var commentIsNotified = GetCustomFieldValue(CustomFields, "Order Comment Is Notified"); if(commentIsNotified != null) { return commentIsNotified; } return null;

Order_Comment_Is_Customer_Notified

Optional. Whether the customer is recorded as notified of that order comment.

Dynamic Formula

var commentStatus = GetCustomFieldValue(CustomFields, "Order Comment Status"); if(commentStatus != null) { return commentStatus; } return null;

Order_Comment_Status

Optional. The status recorded alongside that order comment.

Shipment items resolution

The ShipmentItems mapping resolves which Magento line items the shipment covers. It resolves the Magento order from the portion of the compound identifier before the vertical bar, then passes the Shipment Items custom field to a line-item lookup that matches each entry to a line on that order, taking account of the selling unit. If either the order or the shipment items cannot be resolved, it returns nothing and no shipment is created.

var OrderId = await GetExternalIdAsync(Id.ToString().Split("|")[0], "Transaction", SpaceportSystemId);
var shipmentItems = GetCustomFieldValue(CustomFields, "Shipment Items");
if(shipmentItems != null && OrderId != null) {return await GetLineItemIdByOrderSku(OrderId,shipmentItems,Id.ToString().Split("|")[0].ToString(),"SellingUnit");
}return null;

The format of the Shipment Items value is controlled by the Shipment Items Field Separator and Shipment Items Record Delimiter presets, documented in the Magento 2 Connection and Settings article.

Error Handling

The full catalog of messages this integration produces, with causes and resolutions, is in the Adobe Commerce/Magento 2 Error Messages article. The conditions most often seen on this transfer are:

  • Error message: Shipment Items are not provided. The tracking record carries no Shipment Items custom field. Resolution: populate it with the items being shipped, then re-transfer.

  • The order has already been fully shipped. A shipment was requested for an order with nothing left to ship. Resolution: confirm the tracking record is not a duplicate, and check whether the order update's shipment child already shipped it.

  • Not all shipment products were found on the original order. The shipment items name SKUs that are not on the order. Resolution: correct the shipment items to match the order's lines.

  • Insufficient inventory at the shipment location. The source being shipped from does not hold enough stock. Resolution: correct the source, adjust stock in Magento, or enable the subscription's inventory-check bypass where appropriate.

  • A shipment that does not appear in Magento. The order could not be resolved, most often because it has not transferred. Resolution: confirm the order exists in iPaaS.com and is linked.

Errors are reported under Dashboard / Integration Monitoring / Error Logs.

Testing & Validation

Test Scenarios

  1. Create a tracking record in iPaaS.com with Shipment Items populated against an order that exists in Magento, and confirm a shipment is created with the tracking number attached.

  2. Manually sync using the compound identifier and confirm it resolves.

  3. Create a tracking record without Shipment Items and confirm the transfer stops with the documented message.

  4. Confirm the shipment ships from the intended inventory source, and that the lower-cased fallback source code has been replaced.

  5. Confirm the notification behavior matches the store’s policy, testing both with the Notify custom field set and unset.

  6. Ship a subset of the order's lines and confirm a partial shipment is created.

  7. Attempt a second shipment against a fully shipped order and confirm the documented error is raised.

  8. Re-transfer the same tracking record and confirm the existing shipment is updated rather than a second one created.

  9. Ship from a source with insufficient stock and confirm the documented error, then confirm the bypass setting's effect if it is enabled.

  10. If the order update's shipment child is also enabled, transfer the same tracking record and confirm whether two shipments result.

Validation Checklist

  • Every custom field listed under Custom Field Support exists in the iPaaS.com environment.

  • Shipment Items is populated on every tracking record that should create a shipment.

  • The fallback source code has been replaced with the store's own, in the correct casing.

  • The notify mapping has been adapted to the store’s notification policy.

  • The shipment items separator and delimiter presets match the format of the values in use.

  • Only one of this collection and the order update's shipment child is enabled.

  • Carrier codes in Magento match the lower-cased iPaaS.com shipping method values.

Additional Notes

  • This is the path to use when a tracking number should reach Magento without an order update running above it.

  • Two example values differ from the equivalent child beneath the order update family: the notify fallback and the default order comment. Both are configurable; set each to the store’s policy rather than assuming the two paths behave alike.

  • The fallback source code ships lower-cased while inventory sources are normally created in upper case, so it will not match as delivered. Replacing it is a required implementation step.

  • Shipping is not reversible through the integration.

  • Validate the adapted notify mapping, the source code, and the shipment items format in a staging environment before enabling automatic transfers in production.

Related Documents

Did this answer your question?