Skip to main content

Adobe Commerce/Magento 2 Integration Known Limitations

The known limitations of the Adobe Commerce/Magento 2 integration for iPaaS.com, including scope, tested versions, overwrite behavior, inventory handling, and values to replace before go-live.

This article describes the known limitations of the Adobe Commerce/Magento 2 integration for iPaaS.com. These limitations are inherent to the current design of the integration and to the capabilities of the Adobe Commerce/Magento 2 REST API, and they apply to all subscribers. Everything described here reflects how the integration behaves at the time this documentation was written; behavior may change in later releases as the integration and the Adobe Commerce/Magento 2 platform evolve.

Each limitation below includes a plain-language What this means for you explanation and, where a different behavior might suit your workflow, a path forward and a route to request an enhancement. None of these are faults in your store or your configuration; they describe the boundaries of what the integration is designed to do today.


Platform Scope and Tested Versions

This integration is built for Adobe Commerce and Magento Open Source on the Magento 2 platform (referred to throughout iPaaS.com as Adobe Commerce/Magento 2). It communicates with your store through the standard Magento 2 REST Web API, which every Magento 2 store exposes at your store's own base URL. Magento's REST Web API is documented in the Adobe Commerce web API documentation. Magento 2 does not publish a separate, independently versioned public API generation, so the integration is built against the documented production REST Web API rather than a dated API version.

As of the date this documentation was written, the integration was last tested end-to-end against a production Magento 2.3.6 store. Stores on other Magento 2 releases are expected to work, because the integration targets the standard REST Web API rather than a specific point release, but 2.3.6 is the version the current documentation was validated against.

Not built for. To set expectations clearly:

  • Magento 1.x (Magento Commerce 1 and Magento Open Source 1) is a different platform with a different API and is not supported. Do not point this integration at a Magento 1 store.

  • Non-Magento e-commerce platforms (for example Shopify, BigCommerce, WooCommerce, or any other storefront) are not supported by this integration. iPaaS.com offers separate integrations for other platforms.

  • If Adobe launches a separate product line, or a materially different Magento API generation, in the future, this integration will not automatically support it until it is updated for that product or API.


Limitations at a Glance

The sections below cover each limitation in turn. Use this list as an overview and scroll to the section that applies to your workflow.

  • Initialization and Historical Back-Fill Are Not Supported

  • Transfers Are One-Directional, With No Read-Back From Magento

  • How Updates Are Written (Overwrite Behavior)

  • Removals and Archival Are Mostly Not Propagated to Magento

  • Add and Update Collections Are Paired

  • How Tickets and Gift Cards Are Captured

  • Child Collections Transfer With Their Parent

  • Real-Time Updates Require a Third-Party Magento Extension

  • Inventory Is Sent as a Full Overwrite, Not a Delta

  • Fractional Quantities Are Rounded Down to Whole Units

  • Aggregate Totals and Parent Stock Status Are Not Refreshed by Inventory Transfers

  • Some Inventory Totals and Stock-Status Collections Ship Disabled

  • Unconfigured Inventory Locations Are Handled Silently

  • Lookup Translations Must Be Configured, and Unmatched Values Are Handled Silently

  • Configurable-Option Attribute Codes Are Generated From Option Names

  • Option Value Matching Is Case-Sensitive, and Numeric Labels Can Be Rejected

  • Alternate Units of Measure: Variant SKUs, Overrides, and Barcodes

  • Special Prices Start on the Transfer Date and Carry No End Date

  • Product Weight Falls Back to 1 When Left Blank

  • Category Resolution and Creation Behaviors

  • A Configurable Parent Needs at Least One Option Attribute

  • Certain Dates Reflect the Transfer Time, Not the Original Event

  • How Addresses Are Carried in Each Direction

  • Shipping Method Is a Configured Value, Not Read From the Order

  • Tax Is Transferred as a Single Consolidated Record

  • Payments: Scope and Amount Calculations

  • Order and Ticket Line Handling

  • Kit and Bundle Availability Is Totalled Per Location


1. Initialization and Historical Back-Fill Are Not Supported

Initialization (a bulk import of the data that already exists in your store when you first connect) is not supported for Adobe Commerce/Magento 2 in iPaaS.com. Records that existed before the integration was installed — products, orders, deposit and gift-card tickets, gift cards, categories, category assignments, and inventory sources — are not back-filled automatically. Once the integration is configured, records transfer on demand and in response to events and scheduled activity. This is described alongside the connection setup in the Adobe Commerce/Magento 2 Connections and Settings article.

What this means for you: Existing data reaches the other system only through a Manual Sync (or, for the catalog, an initial catalog load). Plan an initial load as part of your go-live: run Manual Sync for the records you need in place before day-to-day activity begins, and configure all data synchronization and mappings during setup. If bulk initialization would materially help your onboarding, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP) describing your requirement; input like this informs future enhancement releases.


2. Transfers Are One-Directional, With No Read-Back From Magento

Each collection moves data in a single direction. Collections that write to your store (from iPaaS.com) do not read product, inventory, category, option, unit, variant, or inventory-source data back from Magento into iPaaS.com. Collections that capture into iPaaS.com (from Magento) do not write those records back to your store. Most records that already exist in Magento are not discovered or linked to iPaaS.com automatically — a product, category, or inventory source created directly in the Magento admin is not matched to an iPaaS.com record on its own. People records are the exception: where no link yet exists, the integration looks for an existing Magento customer with the same email address, and an existing company with the same company email address, and links to it rather than creating a duplicate. Orders behave similarly, matching an existing Transaction by its transaction number where no link is held.

What this means for you: Treat the originating system for each flow as the source of truth for that flow. For products, categories, and inventory sources to be linked across the two systems, they should be created through the integration rather than added independently on each side; where an existing Magento record needs to participate, transfer the corresponding iPaaS.com record so the integration can establish the link. Customers, companies, and orders you already hold on both sides link themselves on the first transfer, so there is no need to re-create them — but keep email addresses and order numbers consistent across the two systems, because those are what the match relies on. If your workflow needs two-way synchronization or automatic discovery of existing Magento records, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


3. How Updates Are Written (Overwrite Behavior)

When the integration updates a record that already exists, it sends a full record update on every transfer. Each field that an update collection maps and that arrives with a value overwrites the matching value at the destination each time the record transfers, including a value someone changed by hand. Because the integration sends the whole record rather than only the fields that changed, a field left blank at the source, or a field the update collections do not map, should not be assumed to be automatically preserved. How the destination treats a field that arrives without a value depends on the field, so the safest assumption is that any field the update collections touch is under the originating system's control.

How much is exposed depends on the family. The widest exposure is on the families that maintain a record over time: simple and configurable products with their variants, options, option values and alternate units; product categories; customers and customer addresses; B2B companies; customer groups; shared catalogs; and the inventory sources created from locations. Families that raise a record rather than maintain one — orders written into your store, invoices, and shipments with their tracking — write only the narrow set of fields needed to create that record, so their exposure is limited to those fields; note that re-transferring one of these can repeat an action rather than simply rewriting a field, capturing payment or sending a notification a second time. The inventory collections write stock figures only and touch no other product data. In the capture direction, a re-transfer overwrites the iPaaS.com record the same way, which matters most where both directions are enabled for the same entity. The add-only collections described below do not overwrite an existing record at all. Each family's mapping documentation article lists the exact fields that family writes — treat it as the definitive field list for the collections you enable.

What this means for you: The originating system is the effective system of record for the fields the update collections map, so a manual edit to one of those fields can be replaced on the next transfer. If you need a field to hold a specific value that your source system does not supply, set a DestinationValue on that mapping so the integration writes the value you choose instead of leaving it to the source. Keep values you deliberately maintain by hand on fields the update collections do not map, check the affected family's mapping documentation for the exact list before you rely on a field being untouched, and confirm in a staging environment that those fields behave as you expect before relying on it in production. If your workflow needs finer control over which fields the integration is allowed to overwrite, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


4. Removals and Archival Are Mostly Not Propagated to Magento

With one exception, removing or clearing a record in iPaaS.com does not delete or archive the corresponding record in Magento. Products and configurable families are not deleted or archived when a product is removed in iPaaS.com; a variant is not removed from a family when it is removed in iPaaS.com; obsolete option values, options, attributes, and alternate-unit variants remain in Magento; and a category cleared in iPaaS.com is not removed. Magento itself does not support deleting an inventory source at all — a source can only be disabled in the Magento admin.

Product category assignments are the exception. A dedicated delete collection ships alongside the add collection, and removing an assignment in iPaaS.com does remove the product's category membership in Magento. One gap applies: if the last remaining category assignment on a product is deleted in iPaaS.com, that assignment is not removed in Magento.

Note: Customer deletion is also supported, but through a separate mapping that is not part of the collections shipped with the integration. Subscribers who need customer deletions to propagate should raise it with their MiSP rather than assume it is unavailable.

What this means for you: For everything other than category assignments, use a record's status to take it off the storefront rather than expecting a deletion to flow through — setting a product or family status is how you hide it from shoppers. Clean up obsolete attributes, option values, and variants in the Magento admin when needed. Keep the category assignment delete collection enabled if you want unassignments to reach Magento, since removals stop propagating without it. To clear an abandoned last-remaining assignment, assign a different category to that product so a later product update can reconcile it. If your workflow needs wider removal propagation, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


5. Add and Update Collections Are Paired

Most catalog entities are handled by a pair of collections: an add collection that creates records that do not yet exist in Magento, and an update collection that maintains records that already exist. Neither performs the other's job — the add collection does not update an existing record, and the update collection does not create a missing one.

What this means for you: Enable both the add and the update collection for each entity you synchronize so that new records are created and existing records are kept current. If only one is enabled, you will see either new records that never update or updates that never reach a record that was never created.


6. How Tickets and Gift Cards Are Captured

Deposit tickets and gift cards are add-only: they are created at the first transfer and are not maintained afterward. A deposit ticket keeps the totals it was first written with even if the underlying Magento order later progresses, is amended, or is cancelled — and its status is not a snapshot of the order at all. Every deposit ticket arrives with a status of Pending, regardless of what state the originating order is in. A gift card is recorded with a fixed Status of Active and with its Balance and original amount both taken from the same point-in-time source balance, so a card already partially redeemed before its first transfer records its remaining balance as its original amount. The gift card collection does not carry a card's later balance adjustments, redemptions, status changes, or transaction history.

Gift card tickets behave differently. That family creates and also maintains its record, so a gift card ticket that transfers again has its header, line, tax, and payment values written over the existing record, and a value edited by hand in iPaaS.com on a mapped field is replaced.

What this means for you: Treat deposit tickets and gift cards as a point-in-time capture, and work them to completion in iPaaS.com or the downstream system rather than expecting later Magento changes to flow through. Do not read a deposit ticket's status as the originating order's state — it is the same value on every ticket, so any process that keys off it needs the order's own status instead. Gift card redemption activity is handled by the gift card activity workflow, not by the add collection, and cards that need to be deactivated or expired are managed in iPaaS.com. If you backfill older cards where the originally issued value or a non-Active status must be exact, review those records after the initial load. For gift card tickets, where an iPaaS.com field must hold a value the source ticket does not supply, set a DestinationValue on that mapping, and keep any value you maintain only in iPaaS.com on a field these collections do not map. If your workflow needs deposit tickets or gift cards to stay in step with later Magento changes, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


7. Child Collections Transfer With Their Parent

Many collections are children of a parent record and have no transfer schedule or Manual Sync entry of their own. Order and ticket lines, payments, tax records, and addresses move only as part of their parent order or ticket; a configurable product's options, option values, units, variants, and per-source inventory move only as part of the product transfer. A change recorded in Magento against one of these children after its parent has already synced arrives only on the next transfer of that parent. A child record can also arrive unlinked — for example, a ticket whose originating order has not yet synced arrives without a parent link rather than failing.

What this means for you: To re-send a line, payment, tax record, address, option, or inventory row, run a Manual Sync of its parent order or product rather than looking for the child on its own. Confirm parent records transfer successfully, and review unlinked tickets to confirm their originating order transferred. Where a stock-only refresh is needed without a full product transfer, use the standalone real-time inventory collections described below.


8. Real-Time Updates Require a Third-Party Magento Extension

Magento 2 does not natively provide webhooks. Automatic, event-driven transfer of records into iPaaS.com therefore depends on webhook delivery from a third-party Magento extension, configured in your store rather than in iPaaS.com. If webhook delivery is delayed, or the extension is unavailable, records raised during that window arrive late. Gift cards sold on an order are brought across as part of that order's transfer regardless of webhook delivery, so they do not depend on the extension the way a card issued on its own does.

What this means for you: Install and maintain the third-party Magento extension covered in the Adobe Commerce/Magento 2 Installation Instructions if you rely on real-time inbound transfers. When automatic delivery is delayed or a record does not arrive, Manual Sync of the affected order, ticket, or gift card is the recommended recovery path. Because this is a Magento platform characteristic rather than an integration setting, the polling-and-extension model is the correct shape for real-time updates from Magento. If native, extension-free real-time delivery becomes important to your workflow, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


9. Inventory Is Sent as a Full Overwrite, Not a Delta

Every inventory transfer replaces the quantity held at the target inventory source. There is no incremental or delta mode, so a stock figure adjusted directly in the Magento admin is replaced by the value the integration sends on the next transfer.

What this means for you: Keep iPaaS.com authoritative for stock levels, and make stock corrections in the source system rather than in the Magento admin, since a manual Magento adjustment is overwritten at the next inventory transfer. If your workflow needs delta-based stock adjustments, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


10. Fractional Quantities Are Rounded Down to Whole Units

Inventory quantities are floored to whole units on most inventory paths: a small fractional balance is reported as zero, which marks the product or variant out of stock at that source. Alternate-unit quantities are divided by the applicable conversion factor and then floored, so partial units are never shown as available — for example, a conversion factor of 12 against 100 stocking units on hand shows 8 available.

Note: The standalone real-time inventory add collections apply no whole-unit floor, while the inventory collections that run as part of the product transfers and the paired standalone update collections do. The same fractional source quantity can therefore produce different storefront availability depending on which path processed it, and both paths can be enabled at once.

What this means for you: Expect availability to be reported in whole units. If you run both the standalone real-time inventory collections and the inventory collections that run under the product transfers, be aware that they can round the same fractional quantity differently; choose a single path where consistent availability matters. If your workflow needs fractional availability, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


11. Aggregate Totals and Parent Stock Status Are Not Refreshed by Inventory Transfers

An inventory transfer writes stock to a specific inventory source. It does not refresh a product's aggregate on-hand total or its product-level stock status, and a variant inventory transfer does not refresh the stock status of the configurable product the variant belongs to. Stock written to a configurable container alone does not make a family purchasable — a family whose variants carry no stock remains unpurchasable on the storefront regardless of the quantity on the parent.

Note: This follows Magento's own handling of configurable products: a variant out of stock at every source is removed as a storefront option, and where every variant of a configurable product is out of stock, the configurable product itself becomes unpurchasable.

What this means for you: To bring a product's aggregate total or a configurable parent's stock status back into line with its variants, run a full product update rather than relying on the inventory collections alone. Ensure the variants carry stock so the family is purchasable.


12. Some Inventory Totals and Stock-Status Collections Ship Disabled

Three collections ship disabled and transfer nothing until their mapping filter is edited: the configurable product inventory stock-status collection, the simple product inventory totals collection, and the simple associated product variant inventory totals collection. A subscriber who is unaware of this sees no error and no transfer activity — the affected records are simply skipped. While these collections are disabled, inventory-only movements refresh the individual Magento inventory sources but never the parent product's aggregate total or stock status, because the main product update collections exclude those inventory-only records whether or not the totals collections are enabled.

What this means for you: If you need parent-level totals and stock status kept current from inventory-only movements, enable the relevant totals or stock-status collection. Two steps are needed, not one: remove the leading condition that holds the collection off from its mapping filter, and switch the collection on in the interface. Doing only one of the two leaves it processing nothing, with no error to tell you. Because there is no error when they are disabled, confirm during setup whether your workflow relies on them. If your workflow needs these to be active by default, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


13. Unconfigured Inventory Locations Are Handled Silently

Inventory location handling depends on a Lookup Translation you configure that maps each iPaaS.com location to its matching Magento inventory source. A location that is missing from iPaaS.com silently lowers the calculated total rather than raising an error, so a product can be marked out of stock on the basis of an incomplete set of locations. A location that matches no row in the translation produces no error at the iPaaS.com end; the condition surfaces only as a Magento rejection of that inventory row, reported under Dashboard / Integration Monitoring / Error Logs, which identifies the transfer but not the unmatched location.

What this means for you: Keep the location translation complete, and audit it against your store's configured inventory sources before go-live and whenever locations change. When a stock figure looks wrong or an inventory row is rejected, check the translation for a missing or unmatched location as part of your diagnosis.


14. Lookup Translations Must Be Configured, and Unmatched Values Are Handled Silently

Several fields resolve through Lookup Translations that you configure for your environment — product and order status, tax class, and payment method among them. An unmatched value is generally handled quietly rather than raised as an error: an unmatched product or order status leaves the status field unset; an unmatched tax class falls back to Taxable Goods; and an unmatched payment method leaves the payment Method unset. Where the destination requires the field, the record is then rejected and the rejection is reported under Dashboard / Integration Monitoring / Error Logs — but the reported failure names the missing value rather than the missing translation row.

What this means for you: Complete every Lookup Translation your enabled collections use during setup, and audit each translation against the values your store actually uses (statuses, tax classes, tenders). Because most unmatched values do not raise an error, detect gaps by reviewing transferred records, and when a record is rejected for a missing value, check the corresponding translation first.


15. Configurable-Option Attribute Codes Are Generated From Option Names

For configurable products, the Magento attribute code for each option is generated from the option name. This has several consequences. Renaming an option in iPaaS.com after products are live produces a different attribute code and therefore a second Magento attribute rather than a rename; the original attribute is neither renamed nor removed. The code is produced by trimming the option name and replacing each space with an underscore; everything else in the name, including punctuation and accented characters, is carried through exactly as it stands. Two names that differ only in their spacing therefore reduce to the same code and are treated as one option. An option name that reduces to a Magento-reserved attribute code cannot be used, and on the update collection such a name fails the transfer rather than being adjusted automatically. The option's input type is re-asserted as a dropdown on every run, and a label edited directly in the Magento admin is display text only — it does not rename the code and is overwritten the next time the option transfers.

What this means for you: Settle option names before products go live, and avoid renaming an established option in iPaaS.com. Because nothing is stripped out of the name, keep option names to plain letters, numbers, and spaces so the code they generate is one Magento will accept, and keep the spacing consistent so two names do not collapse onto the same code. Also, make display-label changes in the Magento admin knowing they will be re-asserted, and remove any duplicate attribute left behind by a rename in the Magento admin. If your workflow needs option renames to update the existing attribute in place, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


16. Option Value Matching Is Case-Sensitive, and Numeric Labels Can Be Rejected

Configurable option values are matched by exact text, including case: a casing difference in a value creates a second option value rather than matching the existing one, and the duplicate is not detected automatically. Separately, a numeric option value label can be rejected by Magento as already existing when it is not. An option value with no sort order recorded in iPaaS.com transfers without one, and Magento applies its own ordering; a sort order corrected in iPaaS.com after a value already exists is not written back over the existing value by the add collection.

What this means for you: Standardize the casing of option values in your source data so the same value matches rather than duplicating. When a numeric option value is rejected as already existing, create that value by hand in the Magento admin and re-send. Manage sort-order changes for existing values through the Magento admin or the paired update collection. If your workflow needs case-insensitive matching or automatic numeric-value handling, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


17. Alternate Units of Measure: Variant SKUs, Overrides, and Barcodes

Alternate units of measure are handled through per-variant override maps rather than free-form SKUs, which introduces several constraints. A variant SKU is derived from the base variant SKU and the applicable unit name; there is no SKU override. A variant SKU that is missing from any populated override map stops the transfer for that whole product rather than skipping only that variant, so adding a variant to a family requires every override map in use for that family to be updated at the same time. Renaming a unit produces an additional variant SKU rather than renaming the existing variant, and the obsolete variant is not removed automatically. A variant SKU containing a comma or a semicolon cannot be used with the per-variant overrides, because those characters separate the entries in the map. A missing or misnamed override custom field produces no value and no error. The barcode attribute the unit collections write into must already exist in Magento with global scope, and unit prices are not scaled from the base price — a unit with no price in iPaaS.com transfers without one.

What this means for you: Keep every override map for a family complete and updated together whenever variants change, and avoid commas and semicolons in variant SKUs that use overrides. Pre-create the barcode attribute with global scope before enabling these collections. Because a missing or misnamed override field is silent, verify the transferred variants in Magento after the first run. If your workflow needs more flexible unit or SKU handling, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


18. Special Prices Start on the Transfer Date and Carry No End Date

A special price applied by the product collections takes the transfer date as its start date and carries no end date. It reaches the variants as well as the parent: a variant uses its own sale price where it has one and falls back to the parent's where it does not, and in either case the special price is only applied when that sale price is below the regular price and above zero. On an update, the special-price start date advances to the transfer date each time a qualifying discount is re-sent, and a special price set by hand in Magento is removed by the next update whenever the source record presents no qualifying discount.

What this means for you: Manage scheduled promotions — those with a future start date or a fixed end date — directly in Adobe Commerce/Magento 2, since the integration always starts a special price on the day it transfers and never sets an end date. Be aware that a manually set Magento special price can be cleared by a later update. Because shipping and pricing are quoted against the selected variant, check that a discount intended to change what a shopper pays has produced a special price on the variants and not only on the family record. If your workflow needs scheduled special pricing from the integration, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


19. Product Weight Falls Back to 1 When Left Blank

A product, family, or variant whose weight is blank in iPaaS.com arrives in Magento with a fallback weight of 1, interpreted in whatever weight unit the Magento store is configured for. On an update this fallback is written on every transfer, so a weight corrected by hand in Magento is reset on the next transfer while the source weight remains blank. A product shipped on the fallback weight can be quoted incorrectly.

What this means for you: Populate a real weight in your source data for anything where shipping accuracy matters, rather than relying on the fallback. For configurable families this applies to the variants in particular: shipping is quoted against the selected variant, and variants use the same fallback, so a variant with no weight recorded in iPaaS.com also arrives weighing 1 and will be quoted on that figure. Populate weights on the variants, not only on the family record.


20. Category Resolution and Creation Behaviors

Category handling has several behaviors worth knowing before go-live. A category on a product that cannot be resolved to a Magento category is simply not assigned; on the update collection, because the resolved list replaces existing assignments outside the parent-item case, an unresolved category is dropped from the product rather than retained. A category whose parent has not yet been transferred is created at the root of the Magento catalog tree rather than failing, and no error is raised. The active state is sent as a fixed value, so every category the integration transfers arrives enabled regardless of any staging intent in iPaaS.com. The display order falls back to 0 whenever the sort-order field is absent, empty, or not a whole number. There is no back-fill of categories that already existed in Magento, so a first run against a store with an existing tree can create parallel categories alongside the ones already there. Category descriptions, images, menu placement, page layout, and SEO fields remain admin-maintained.

Shared Catalogs (an Adobe Commerce B2B feature) are handled, but by a separate collection rather than by the ordinary category mappings: catalogs are created from the iPaaS.com product category records you flag as shared catalogs, and categories are assigned to them. The ordinary category collection can additionally carry a category's shared-catalog membership and its B2B store view. What the integration does not decide is which products a catalog contains or which companies can see it — both are granted in the Magento admin. The shared catalog collection also ships with fixed example values for its store view, tax class, and catalog type; see Placeholder Values to Replace Before Go-Live below.

What this means for you: Transfer parent categories before their children and before the products that reference them, so categories resolve and land in the right place. Expect transferred categories to arrive enabled, and review the resulting category tree after a first run against a store that already has categories. Subscribers whose store relies on Shared Catalogs should replace that collection's shipped store view, tax class, and catalog type before enabling it, and should plan to grant catalog product membership and company access in the Magento admin. If your workflow needs staged (disabled) category creation, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


21. A Configurable Parent Needs at Least One Option Attribute

A configurable parent that is created, or left, without at least one associated option attribute renders as an unusable product on the storefront. Because the option data is written by a separate child collection, this condition is not reported against the parent product transfer.

What this means for you: Ensure the configurable product's options and option-values child collections run so that every configurable parent has at least one option attribute associated with it. Because the parent transfer does not report the problem, confirm on the storefront that new configurable products are usable after their first transfer.


22. Certain Dates Reflect the Transfer Time, Not the Original Event

Some date fields record when the transfer ran rather than when the underlying event occurred. An order's transaction created date records when the transfer ran, not when the order was placed in Magento; a gift card's purchase date records the transfer date, not the Magento purchase date; and an inventory totals updated-date records when the integration last wrote to the record, not when the underlying stock changed. For records that transfer as soon as they are created, the two dates are the same, but for records loaded in a backfill they are not.

What this means for you: Where the original Magento date matters — the order date on a Transaction, or a gift card's true purchase date — replace the relevant mapping with one that reads the source record's own created date. If your workflow needs the original event date to be carried by default, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


23. How Addresses Are Carried in Each Direction

Addresses moving from Magento into iPaaS.com carry only the first three street lines; a fourth or later street line configured in the store is not carried across. On this path addresses are not validated, standardized, or geocoded — values are transferred as the Magento order holds them, and a value missing in Magento transfers as an empty field rather than raising an error.

Addresses moving the other way, from iPaaS.com into Magento, behave differently. The recipient name, city, and postal code are required. The region is checked against the address country, and where it does not match a region that country recognises it is left blank rather than raising an error. The three iPaaS.com address lines reach Magento joined into a single street value rather than as separate lines.

What this means for you: Keep addresses within three street lines where the full address must reach iPaaS.com, and validate or standardize addresses in your own process if you require it on that path, since the integration passes them through as-is. Where addresses flow into Magento, supply a region that matches the country — a mismatch is dropped silently, so an address can arrive with no region and no error to explain it. Because missing values are silent in both directions, review transferred records when address completeness matters.


24. Shipping Method Is a Configured Value, Not Read From the Order

The shipping method that reaches iPaaS.com is a fixed value configured on the shipping-address collection you enable, not a value read from the Magento order. Two orders that used different underlying carriers but share the same Magento shipping description arrive with the same shipping method value. A shipping description that does not exactly match a specific collection's filter is routed to the catch-all shipping-address collection with no error, and that catch-all applies one shipping method value to every order it handles. The shipping description filters and shipping method values shipped with these collections are examples that you replace for your store; see Placeholder Values to Replace Before Go-Live below.

What this means for you: Configure the shipping-address collections' filters and shipping method values to match your store's carriers and shipping descriptions before go-live. Because a description that does not match a specific filter is handled silently by the catch-all, review transferred Transaction address records to confirm orders are routed as you intend. If your workflow needs the actual carrier read from each order, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


25. Tax Is Transferred as a Single Consolidated Record

Tax is transferred as one consolidated record per order or ticket by design. The integration does not itemize tax by jurisdiction, and it does not carry a line-level tax amount. It reports the figures Magento already calculated rather than calculating tax itself. A record with no applied-tax detail receives the built-in default taxing authority rather than an empty authority name, so zero-tax orders and tickets carry that default name.

What this means for you: Where your reporting depends on a per-jurisdiction or per-line tax breakdown, source it from Magento directly, since it does not reach iPaaS.com through this transfer. Expect the default taxing authority name on zero-tax records. If your workflow needs a per-jurisdiction or line-level tax breakdown, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


26. Payments: Scope and Amount Calculations

Payments carry the method, amount, status, and the raw Magento method code. A gift-card payment additionally carries the card code, its authorization reference, and a link to the gift card record in iPaaS.com. No card numbers, tokens, or other cardholder data are transferred in any case. The integration does not capture, refund, or void anything in Magento, and it does not transfer refunds, credit memos, or chargebacks. A payment's amount subtracts the value of any gift cards sold on the same record from every payment it writes. A gift-card payment that references a gift card not yet present in iPaaS.com cannot be linked and is rejected. On gift card tickets, every payment the integration writes carries the same amount — the total value of the gift cards sold on the ticket, not the amount actually drawn from a redeemed card. Payment status depends on the tender: a gift-card tender is always recorded as paid, while any other tender is recorded as paid only once an amount has actually been paid and as authorized until then.

What this means for you: For reconciliation where precision matters — records that mix gift card sales with other merchandise, or that accept more than one tender — validate the resulting payment amounts in a staging environment before relying on them. When a gift-card payment is rejected because the card is not yet in iPaaS.com, re-transfer the originating record after the gift card has synced. Source refund, credit-memo, and chargeback detail from Magento directly. If your workflow needs refunds or per-tender amounts carried through the integration, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


27. Order and Ticket Line Handling

A few line-level behaviors are worth knowing. A line whose SKU does not resolve to an existing iPaaS.com product or variant fails rather than transferring unresolved; the remainder of the order or ticket may still transfer, so a Transaction can arrive with fewer lines than the Magento order contains. Lines rely on the catalog collections having already transferred the product they refer to. The component sub-lines of configurable or bundle products are not transferred. Net unit price is derived the same way on almost every line type. Standard product lines, deposit ticket lines, and gift card ticket lines all subtract the per-unit share of the line discount — the line discount divided by the ordered quantity — which cannot produce a meaningful per-unit value when the ordered quantity is missing or zero. The gift card line on an order is the single exception: it subtracts the full line discount without dividing it across the quantity. A discounted gift card can therefore show one unit price on the order and a different one on the gift card ticket raised from that order.

What this means for you: Keep the product catalog current in Magento before transferring orders and tickets, so lines resolve rather than fail; when a Transaction is missing lines, check the error logs under Dashboard / Integration Monitoring / Error Logs for an unresolved SKU. Confirm the ordered-quantity source is populated on every line where unit-price accuracy matters, and expect a discounted gift card to compute a different unit price on the order than on its ticket — validate the values in a staging environment before relying on them downstream. If your workflow needs configurable or bundle sub-lines, or a single unit-price method across line types, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


28. Kit and Bundle Availability Is Totalled Per Location

Where a product is built from component stock, the buildable quantity is totalled one location at a time. The figure sent for an inventory source reflects only the component stock available at that same source, so a kit whose components are spread across several locations reports a lower buildable quantity at each individual source than the catalog holds overall. Some inventory paths do not apply component totalling at all and instead use the location's own available quantity.

What this means for you: Expect per-location buildable figures for kits and bundles rather than a single catalog-wide number, and take that into account when interpreting storefront availability for products assembled from components. If your workflow needs component availability totalled across all locations, submit a feature request through your iPaaS.com partner channel (subscribers or their MiSP).


Placeholder Values to Replace Before Go-Live

Several collections ship with example values that stand in for settings each store supplies during implementation. Replace the values below before enabling the affected collections. Not every fixed value in the integration belongs on this list: the gift-card and deposit constants and the other fixed integration values are working settings you do not change, and a further group of mappings ship carrying a worked example that you adapt rather than replace — those are collected under Example mappings to adapt after this section.

Inventory location translation

  • Where: the inventory collections for simple products, configurable products, standalone products, and associated product variants, wherever a location is mapped to a Magento inventory source.

  • Shipped example values: the location names MAIN, EAST, and STORAGE, mapped to example Magento inventory source codes.

  • Replace with: your store's actual location names and their matching Magento inventory source codes.

  • Note: an unmatched or missing location is handled silently (see the limitation on unconfigured inventory locations above), so complete this translation before enabling inventory transfers and audit it against your store's configured sources.

Inventory source address

  • Where: the collection that creates Magento inventory sources from iPaaS.com Locations, on the mappings that form the source's address.

  • Shipped example values: the country, street, city, region, and postcode ship as fixed values carried over from the environment the template was built in, rather than being read from the iPaaS.com Location. Two of them carry a city name: the Region field ships with a city name in it, and so does the Postcode field.

  • Replace with: the real country code, street, city, state or province, and postal code for the source.

  • Note: a city name is not a valid region and is not a postal code, and Magento validates the region against the country, so the shipped region value is likely to be rejected as delivered. Because all five values are fixed rather than mapped, every location this collection transfers receives the same address; a store with more than one real location needs either per-location custom fields feeding these mappings, or separate mapping collections with distinct filters, each carrying its own address. The source's Enabled flag is also a fixed value, but that one is a working setting rather than a placeholder.

Barcode target attribute

  • Where: the simple product unit and configurable product unit collections that write an alternate-unit barcode.

  • Shipped example value: the target attribute code upc_code.

  • Replace with: the attribute code your store actually uses for the barcode, if it differs.

  • Note: the barcode attribute must already exist in Magento with global scope before these collections run.

Shipping description filters

  • Where: the flat-rate and free-shipping order shipping-address collections.

  • Shipped example values: the shipping descriptions Flat Rate - Fixed and Free Shipping - Free used in each collection's filter.

  • Replace with: the shipping descriptions your Magento store actually uses, so each collection matches the correct orders.

Shipping method value

  • Where: the flat-rate, free-shipping, and catch-all (unmapped) order shipping-address collections.

  • Shipped example value: the shipping method value UPS GROUND.

  • Replace with: the carrier or shipping method value you want written onto the Transaction for the orders each collection handles.

Shipment source code

  • Where: the shipment child collection beneath the order update family, and the standalone shipment and tracking collection.

  • Shipped example values: each of the two collections falls back to a fixed Magento inventory source code when the Source To Ship From custom field is not set — and the two ship different fallback codes. The standalone collection's fallback also ships lower-cased.

  • Replace with: your store's own default inventory source code, in the exact spelling and casing Magento uses, in both collections.

  • Note: Magento inventory source codes are case-sensitive, and a source created from an iPaaS.com Location name normally arrives in upper case, so the lower-cased fallback will not match a source created that way. Set each collection deliberately rather than assuming the two behave alike.

Category parent-resolution root

  • Where: the product category collection.

  • Shipped example value: the root category identifier that parent resolution falls back to, which is the default catalog root of a standard Adobe Commerce/Magento 2 installation.

  • Replace with: your store's own catalog root identifier if it differs from the standard default.

B2B store view on categories

  • Where: the product category collection, on the mapping that scopes a category to a store view.

  • Shipped example value: the store view name B2B Store View, fixed in the formula that resolves the store view for categories carrying shared catalog identifiers.

  • Replace with: the store view name your own B2B catalog uses.

  • Note: a name that does not match a store view in Magento resolves to no value silently, with no error raised, so check the scoping of transferred categories after the first run. Categories that carry no shared catalog identifiers return no value from this mapping by design and are created in the default scope.

Default attribute set

  • Where: the simple product collections, the configurable product collections, and the simple associated product variant collections — in each case in both their add and update forms. Six collections carry the same value.

  • Shipped example value: the stock Default attribute set of a standard Magento installation.

  • Replace with: the attribute set your store uses for these products, if it is not the default; confirm it is the correct set before enabling the collections.

  • Note: correct all six together. An attribute set cannot be changed on a product once it has been created in Magento, so a store that fixes only some of the collections permanently strands every product the others created in the wrong set.

Excluded example SKUs

  • Where: the simple product add and update collections and the simple product inventory totals collection, which exclude a test SKU; and the simple product unit add and update collections, which exclude a parent SKU.

  • Shipped example values: the excluded test SKU GC-TEST-100 (a test gift-card record carried over from the template environment) and the excluded parent SKU ADM-TL2 (an example exclusion carried in the template).

  • Replace with: the SKUs you actually need to exclude for your store, or remove the example exclusions if they have no meaning in your catalog.

Customer group tier-pricing field

  • Where: the simple product and simple associated product variant collections, in both their add and update forms, on the mapping that carries tier pricing.

  • Shipped example value: a custom field named Pricing_6, which targets Adobe Commerce/Magento 2 customer group 6 in the store the template was built from.

  • Replace with: one Pricing_ field per customer group in your own store that should receive tier pricing, named for that group's own identifier. To find an identifier, log in to Magento and go to Customers > Customer Groups, then note the Customer Group ID of the group you are targeting. A store whose groups are numbered differently will not have a group 6, so this mapping must be repointed or removed.

  • Note: the value of each field is a comma-separated list, with multiple tiers separated by a pipe character: price, sales type, sales code, item number, item description, unit of measure, minimum quantity, starting date, ending date. The price and the minimum quantity are required; the remaining values are optional. Because tier pricing is keyed to a customer group, leaving the shipped field in place on a store without group 6 means those prices never reach any customer.

Company region and customer group

  • Where: the B2B company collection.

  • Shipped example values: a fixed numeric region identifier and a fixed numeric customer group identifier, both carried over from the environment the template was built in.

  • Replace with: the region and the customer group your companies should actually receive — or drive each from the iPaaS.com record where different companies need different values.

  • Note: because both are fixed, every company transferred lands in the same region and the same customer group. The collection also resolves a Region code from the company's own primary billing address, so the fixed region identifier and the resolved code can disagree; driving the identifier from the address keeps the two consistent. The company Status value is also fixed, but that one is a working setting rather than a placeholder.

Customer group tax class and excluded website

  • Where: the customer category collection, on the tax class and website-exclusion mappings.

  • Shipped example values: a fixed tax class name and a fixed website name, both written into the formulas rather than read from the iPaaS.com Customer Category.

  • Replace with: the tax class each group should receive, and the websites each group should be excluded from — or remove the exclusion mapping where none applies.

  • Note: as delivered, every group this collection transfers receives the same tax class and the same exclusion. A store that needs different tax classes per group must either drive the name from a field on the iPaaS.com Customer Category or use separate mapping collections with distinct filters. Neither lookup raises an error when the name matches nothing, so an unreplaced value never appears under Dashboard / Integration Monitoring / Error Logs — it shows up only as a group with no tax class or no exclusion.

Shared catalog store view, tax class, and catalog type

  • Where: the shared catalog collection (Shared Catalogs are an Adobe Commerce B2B feature).

  • Shipped example values: a fixed store view name resolved by the catalog's store view mapping, a fixed numeric tax class identifier, and a fixed catalog type.

  • Replace with: the store view your B2B catalogs belong to and the tax class they should use; confirm the catalog type is the one intended for your store's B2B configuration before the first transfer.

  • Note: every catalog transferred receives the same store view, tax class, and type. An unmatched store view name does not raise an error — the catalog is placed under the global Admin store view instead, which is easy to miss.

Gift card ticket created date

  • Where: the gift card ticket collection, on the mapping that sets the Transaction's created date.

  • Shipped example value: a fixed fallback date, used only when the originating record carries no created date of its own.

  • Replace with: a date your reconciliation process recognises as a sentinel, if the shipped one could be mistaken for a real date in your data. Where the source always supplies a created date the fallback never applies, and no change is needed.

  • Note: a ticket that arrives carrying the fallback date is signalling a missing value on the originating record rather than reporting a real creation date. Treat it as a prompt to check the source record.

Gift card product type

  • Where: the four line collections that separate gift-card lines from ordinary product lines. The value appears ten times across them, listed individually below.

  • Shipped example value: the Magento product type code giftvoucher.

  • Replace with: the product type code your store's gift card extension actually uses, for example amgiftcard. Different gift card extensions expose different product type codes, and the shipped collections are configured for giftvoucher.

  • Note: the integration itself already recognises both giftvoucher and amgiftcard when it decides which gift cards to transfer alongside an order and when it works out gift-card totals. It is only the mapping collections that are pinned to a single code. A store on a different extension that leaves these values unchanged will have its gift-card lines transfer as ordinary product lines, typed as Product and carrying no gift card reference, and no error is raised when this happens.

  • If your store runs more than one gift card extension, extend each condition to accept both codes rather than replacing one with the other, so lines from either extension are still recognised.

Locations to update:

  • Add/Update Adobe Commerce/Magento 2 Order Line TO iPaaS.com: the mapping filter, which excludes gift-card lines from the ordinary product line collection; and the line Type mapping.

  • Add/Update Adobe Commerce/Magento 2 Order Line Gift Card TO iPaaS.com: the mapping filter, which selects gift-card lines; the line Type mapping; and the LineInfo mapping that resolves the gift card reference.

  • Add Adobe Commerce/Magento 2 Deposit Ticket Line TO iPaaS.com: the mapping filter, which excludes gift-card lines; and the line Type mapping.

  • Add/Update Adobe Commerce/Magento 2 Gift Card Ticket Line TO iPaaS.com: the mapping filter, which selects gift-card lines; the line Type mapping; and the LineInfo mapping that resolves the gift card reference.

Note that the two filters that exclude gift-card lines test that the product type is not the gift-card code, while the two that select gift-card lines test that it is. Check which form each condition uses before editing it, so the two halves stay complementary and no line is either processed twice or skipped by both collections.


Example Mappings to Adapt

A second group of mappings ship carrying a worked example rather than a value every store shares. These are not placeholders in the sense above: nothing is broken if you leave them as delivered, each has a sensible shipped behavior, and none of them blocks go-live. They encode one store's process, so adapting them to your own is a normal part of implementation. Each is edited in the iPaaS.com mapping interface, and each can also be driven per record through a custom field.

Order status translation

  • Where: the order update collection, on the mapping that sets the Magento order status.

  • As shipped: the formula recognises the iPaaS.com statuses Pending, Complete, and Cancelled, producing Magento's processing, complete, and canceled statuses respectively, and returns pending for every other value.

  • Adapt it to: the iPaaS.com statuses your workflow actually uses and the Magento status each should produce. Confirm the statuses your store works with first, extend the formula to cover them, then re-test with a status the shipped example does not handle to confirm the result.

Invoice capture and notification

  • Where: the invoice collection, on the capture and notify mappings.

  • As shipped: an invoice captures payment and emails the customer whenever the corresponding Capture and Notify custom fields are not set.

  • Adapt it to: your store's invoicing and notification process, either by editing the mappings or by driving them per record through those custom fields. Whether an invoice can capture payment at creation depends on how the order's payment method is configured in Magento, so confirm the payment methods in use support capture if you want it. Because re-transferring an invoice can repeat the action rather than simply rewriting a field — capturing payment or sending a notification a second time — settle these before enabling automatic transfers.

Shipment notification and comment

  • Where: the shipment child collection beneath the order update family, and the standalone shipment and tracking collection.

  • As shipped: the two collections carry different examples. The child beneath the order update family emails the customer where the Notify custom field is unset, and uses an order comment of Shipment Created. The standalone collection does not email where Notify is unset, and uses an order comment of Order shipped by iPaaS.com.

  • Adapt it to: your store's notification policy, set deliberately in each collection rather than assuming the two behave alike. Both can also be driven per record through the Notify custom field.


Related Documents

Top-level documentation for this integration:

Each mapping collection family has its own article covering the fields it writes, the setup it needs, and how to verify it:

Catalog

Inventory and locations

Orders and fulfillment

Customers and B2B

Gift cards and tickets


This article covers 28 known limitations of the Adobe Commerce/Magento 2 integration, together with the shipped values to replace before go-live and the shipped example mappings to adapt. For the detailed, per-collection technical documentation behind each behavior, see the mapping documentation articles listed above and the mapping collection descriptions in iPaaS.com; for connection and configuration guidance, refer to the Adobe Commerce/Magento 2 Connections and Settings article.

Did this answer your question?