Skip to main content

iPaaS.com to Adobe Commerce/Magento 2 Configurable Product Mapping Documentation

How products that vary by option transfer from iPaaS.com into Adobe Commerce/Magento 2 as a configurable product with its variants, options, option values, inventory and units.

Summary

Products that vary by option — size, colour, and so on — are transferred from iPaaS.com into Adobe Commerce/Magento 2 as a configurable product with its associated simple product variants. The configurable parent is a container that carries the catalog data; the variants beneath it are the items shoppers actually buy and the items that hold sellable stock.

The family is a three-level tree. The configurable parent has four children — its inventory, its option definitions, its variants, and its alternate units. Two of those children have children of their own: the option definitions carry their option values, and each variant carries its own inventory and its own option assignments.

The family ships as an add-only set paired with an update-only set, so creation and maintenance can be filtered and enabled independently. The transfer is unidirectional. Standalone products that do not vary by option are covered by the separate simple product family.

ID Format

Manual Sync ID Format

Enter the iPaaS.com Product record identifier of the configurable parent — the internal numeric identifier of the product in iPaaS.com, for example 58231.

This is not the product SKU, and it is not a variant's identifier. Syncing the parent brings its variants, options and inventory with it.

External ID Format

After a successful transfer, iPaaS.com stores the Adobe Commerce/Magento 2 SKU as the external ID on records linking the iPaaS.com product and each of its variants to their Magento counterparts. Those records route later transfers to the existing Magento records for an update rather than creating duplicates, and they are what the standalone inventory collections read to resolve a SKU.

Deleted Record Support

Outbound delete is supported for products and product variants through separate delete mappings, which are not part of this family and are not included in the default templates. Removing a product or variant in iPaaS.com does not remove it from Adobe Commerce/Magento 2 through the collections documented here.

Custom Field Support

This family reads a substantial set of iPaaS.com custom fields, which must exist by these exact names for the behavior they control to work.

On the configurable parent:

  • Parent Item: a value of True makes the category mapping leave existing Magento category assignments untouched, forces the parent in stock, and sends a fixed parent quantity.

  • Parent Always In Stock, Parent URL Key Method, Parent Last Cost: the parent's always-in-stock override, URL key generation method, and cost.

On the variant:

  • Child Name: overrides the variant's name; the parent's name is used when it is empty.

  • Child Web Status: the source of the variant's enabled or disabled status.

  • Child Tax Class: the source of the variant's tax class.

  • Child Always In Stock, Child URL Key Method, Child Last Cost: the variant's always-in-stock override, URL key generation method, and cost.

On the configurable unit child, a set of per-variant overrides:

  • Child Alternate Unit Include, Child Alternate Unit Name, Child Alternate Unit Numerator, Child Alternate Unit Denominator, Child Alternate Unit Default Price, Child Alternate Unit Sale Price, Child Alternate Unit Barcode.

A catalog that does not use these behaviors does not need the fields; the standard calculations and the parent's values then apply.

Mapping Collection Status

Status: Enabled. All sixteen collections in this family ship enabled.

Trigger Events: Creation or update of Product records in iPaaS.com whose tracking method is Variant, plus Manual Sync on demand.

Automatic outbound transfers are enabled on the subscription's Outbound Data Flows page. Until that flow is enabled, no products are sent automatically. Manual Sync is always available regardless.

Duplicate or Conflicting Mappings

  • The add and update sets write the same fields to the same Magento records. Any change made to a mapping, a static value, or a Lookup Translation on one set should be mirrored on the other. Divergence produces records whose values change the first time they are updated.

  • Update Adobe Commerce/Magento 2 Configurable Product Inventory Stock Status FROM iPaaS.com refreshes the configurable parent's stock status, and Update Adobe Commerce/Magento 2 Simple Associated Product Variant Inventory Totals FROM iPaaS.com refreshes a variant's aggregate totals. Both ship disabled, but where a subscriber enables them they write stock fields this family also writes.

  • The standalone product inventory and standalone product variant inventory collections write the same per-source inventory rows as the inventory children here, without a product transfer above them.

Subscribers or their MiSP should review the filters and the sync settings on all of these collections together before enabling or modifying any of them.

Duplicate matching

This integration implements no selectable collision-handling methods, and the behavior is not configurable on these collections. The link between the iPaaS.com record and its Magento SKU decides whether a transfer creates or updates.

Unmapped field overwrite risk

When a product or variant is re-transferred, the fields this family maps are written again over the existing Magento record. Values edited directly in the Magento admin on any mapped field will be replaced.

The integration provides no guarantee that unmapped or blank fields are preserved on a product update. Subscribers or their MiSP should validate in a staging environment which fields are affected on their own store before relying on manual edits to any record this family transfers.

The CategoryIds mapping is the one deliberate exception: for a product flagged as a parent item, it instructs the integration to leave existing Magento category assignments untouched.

The fields at risk are every field the parent collections map — Sku, Name, AttributeSetId, Price, Status, Visibility, TypeId, Weight, StockItemQty, StockItemIsInStock, TaxClassId, Cost, SpecialPrice, CategoryIds, AlwaysInStockOverride and UrlKeyMethodOverride — the same set on each variant, the option attribute code, input type and label, the option value label and sort order, the variant's option value, the per-source quantity and status written by both inventory children, and every unit and per-variant unit override written by the unit child.

The mitigation is a DestinationValue. Where a Magento field must hold a specific value that the source system does not supply, set a DestinationValue on that mapping so the integration writes the value chosen there instead of taking it from the source. Values that must be maintained only in Magento should be kept on fields these collections do not map.

Supported Child Collections

The parent collections are Add Adobe Commerce/Magento 2 Configurable Product FROM iPaaS.com and Update Adobe Commerce/Magento 2 Configurable Product FROM iPaaS.com. The tree beneath each is the same.

Each row below is a pair of collections — one add-only and one update-only. In the iPaaS.com interface they appear under their own names, beginning Add and Update respectively (for example Add Adobe Commerce/Magento 2 Configurable Product Inventory FROM iPaaS.com and Update Adobe Commerce/Magento 2 Configurable Product Inventory FROM iPaaS.com). They are documented together here because their mappings are identical.

  • Add / Update Adobe Commerce/Magento 2 Configurable Product Inventory FROM iPaaS.com: the per-source inventory rows for the configurable parent record.

  • Add / Update Adobe Commerce/Magento 2 Configurable Product Options FROM iPaaS.com: the option definitions the family varies by, created as Magento product attributes.

  • Add / Update Adobe Commerce/Magento 2 Configurable Product Option Values FROM iPaaS.com: the individual choices within each option. This is a child of the options collection, not of the product.

  • Add / Update Adobe Commerce/Magento 2 Simple Associated Product Variant FROM iPaaS.com: the simple products that sit beneath the configurable parent and hold the sellable stock.

  • Add / Update Adobe Commerce/Magento 2 Simple Associated Product Variant Inventory FROM iPaaS.com: the per-source inventory rows for each variant. This is a child of the variant collection, not of the product.

  • Add / Update Adobe Commerce/Magento 2 Simple Associated Product Variant Option FROM iPaaS.com: which option value each variant represents. This is a child of the variant collection, not of the product.

  • Add / Update Adobe Commerce/Magento 2 Configurable Product Unit FROM iPaaS.com: the family's alternate units of measure, including the per-variant unit overrides.

The nesting matters when troubleshooting. Option values do not transfer unless their option definition transferred, and variant inventory and variant options do not transfer unless the variant itself transferred.

System Caveats

Adobe Commerce/Magento 2 Caveats

  • A configurable parent needs at least one option attribute. A family with no option definitions cannot be assembled in Magento.

  • Option attribute codes are generated from option names. The attribute code is derived by trimming the option name and replacing spaces with underscores. Two option names that differ only in spacing or case can therefore collide on the same attribute code.

  • Option value matching is case-sensitive. A variant's option value must match the option value defined on the family exactly, including case, or the variant will not be associated.

  • The attribute set must already exist and cannot be changed later. The integration does not create attribute sets, and an attribute set cannot be changed on a product after creation.

  • Custom attributes must exist with global scope before transfer. An attribute that does not exist, or is not configured with global scope, causes the transfer to fail.

  • Inventory source codes are case-sensitive. A case mismatch causes the Magento inventory indexer to fail, and a failed inventory index can hide all products in the Magento admin until corrected and reindexed.

  • Configurable transfers are subject to Magento's API limits. A configurable family is many records, so large catch-up runs reach request-array and page-size limits sooner than simple products do. Stagger them rather than issuing them concurrently.

iPaaS.com Caveats

  • The record's tracking method must be Variant. That is what routes a product to this family rather than the simple product family.

  • Categories must exist in Magento before products are transferred. A category that cannot be matched is simply not assigned, and the product transfers without it.

  • An unmatched status or tax class is handled silently. A status with no translation row sends no value and Magento applies its own default; a tax class with no row is caught by the translation's fallback and taxed as Taxable Goods. Neither raises an error.

  • The custom fields listed above must exist by their exact names. A missing field leaves the behavior it controls unset rather than raising an error.

Integration-Specific Caveats

  • The configurable parent's quantity is nominal. A configurable product holds no saleable stock of its own — Magento derives purchasability from its variants. The quantity written to the parent is a container figure, and for a product flagged as a parent item a fixed value of 9999 is sent by design.

  • The variant's price falls back to the parent's. A variant with no price of its own uses the configurable parent's price, and the same fallback applies to the promotional price.

  • The variant's name falls back to the parent's. A variant with no Child Name custom field value takes the parent product's name.

  • Variants are not individually visible. Every variant is created with a visibility of Not Visible Individually, so it is sold only through its configurable parent.

  • The add and update sets must not be configured as add-and-update. The split is what lets creation and maintenance carry different filters and be enabled independently.

  • The update parent excludes secondary updates. An inventory-only movement is deliberately not allowed to re-send the complete family payload; those records are handled by the configurable stock status collection, which ships disabled.

  • Cost must be supplied on both sets. A cost provided on the add does not carry over to the update. Where cost matters, the mapping must be present and populated on both halves.

Setup Requirements

Adobe Commerce/Magento 2 Configuration

  • Confirm the attribute set the products and variants should use, and note its numeric ID.

  • Create any custom attributes the catalog requires, with global scope.

  • Confirm the tax class IDs in the store.

  • Create every required inventory source under Multi Source Inventory, confirming exact spelling and casing.

iPaaS.com Configuration

  • Replace the static attribute set IDs on both the parent and the variant collections with the store's own.

  • Review the product status and tax class Lookup Translations and add a row for every value the catalog uses.

  • Review the inventory source code Lookup Translation so that there is exactly one row per iPaaS.com location.

  • Create the product and variant custom fields listed under Custom Field Support where the behaviors they control are required.

  • Transfer the category structure before running product transfers.

  • Confirm option names are distinct once trimmed and space-replaced, so no two options collide on the same attribute code.

  • Mirror any mapping change across both the add and the update set.

  • Enable the outbound flow for Adobe Commerce/Magento 2 products 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. The iPaaS.com product record is evaluated against the parent collection's mapping filter. Products whose tracking method is not Variant are skipped without error.

  2. The parent mappings build the Magento configurable product payload, including the translated status and tax class, the resolved category assignments, and the nominal parent stock figures.

  3. The configurable product is created or updated in Adobe Commerce/Magento 2, and iPaaS.com records the link between the two.

  4. The option definitions are created as Magento product attributes, and each option's values are created beneath it.

  5. Each variant is created as a simple product beneath the configurable parent, with its own price, status, tax class and stock figures.

  6. Each variant's own inventory rows and option assignments are written beneath it, associating the variant with the option values it represents.

  7. The family's alternate units of measure are written, including any per-variant unit overrides.

Because the family is written as one nested sequence, a subscriber troubleshooting a variant that arrived without options or without inventory should check the child collections' filters and the option value casing before concluding the product transfer failed.

Mappings

Subsections headed Add / Update cover an add-only and an update-only collection that share the same mappings. Where the pair differs, both filters are shown and the differing rows are marked.

Add / Update Adobe Commerce/Magento 2 Configurable Product FROM iPaaS.com (Parent)

iPaaS.com data type: Product

Mapping Filter — Add collection

TrackingMethod=="Variant"

Mapping Filter — Update collection

TrackingMethod=="Variant" && SecondaryUpdate != true

Both collections process iPaaS.com product records whose tracking method is Variant, which routes them to this family rather than the simple product family. The update collection adds a condition excluding records flagged as a secondary update, so that an inventory-only movement does not re-send the complete family payload — those records are the subject of the configurable stock status collection instead. Records that do not pass are skipped without error.

The two collections map the same sixteen shared fields; the only difference is that the add collection writes CreatedAt and the update collection writes UpdatedAt.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Adobe Commerce/Magento 2)

Description

Field

Sku

Sku

Required. The configurable parent's SKU, and the value stored as the external ID linking the two systems.

Field

Name

Name

Required. The product name shown in the catalog and on the storefront.

Static

"4"

AttributeSetId

Required. Placeholder value — replace during implementation: the ID of the stock Default attribute set. Confirm it is correct for the store and replace it if not. The set must already exist and cannot be changed after creation.

Static

"configurable"

TypeId

Required. Fixed for every product created by this collection.

Dynamic Formula

CoalesceToDecimal(DefaultPrice,SalePrice)

Price

Recommended. The price carried on the configurable parent, taken from the default price and falling back to the sale price.

Lookup Translation

Lookup Translation: M2 Product Status From iPaaS

Status

Recommended. Whether the configurable product is enabled or disabled. An unmatched status sends no value and Magento applies its own default, silently.

Static

"4"

Visibility

Recommended. Magento's Catalog, Search setting, so the family appears in both category browsing and search results.

Dynamic Formula

Coalesce(Weight, "1")

Weight

Recommended. The parent's weight, falling back to 1 when none is recorded.

Dynamic Formula

var result = await SumInventoryForProductAsync(ConvertToLong(Id)); (GetCustomFieldValue(CustomFields, "Parent Item") == "True" ? return 9999; : return result;)

StockItemQty

Recommended. The nominal quantity on the parent container. A product flagged as a parent item sends a fixed 9999 by design; otherwise the summed inventory is sent.

Dynamic Formula

var result = await SumInventoryForProductAsync(ConvertToLong(Id)); (GetCustomFieldValue(CustomFields, "Parent Item") == "True" ? return true; : (result <= 0 ? return false; : return true;))

StockItemIsInStock

Recommended. The parent's stock status. A parent item is forced in stock; otherwise the status follows the summed inventory.

Lookup Translation

Lookup Translation: M2 Product Tax Class From iPaaS

TaxClassId

Recommended. The parent's tax class. A class with no explicit row is caught by the translation's fallback and taxed as Taxable Goods. Confirm the IDs against the store.

Dynamic Formula

var keepExisting = new List<int> { -1 }; var exCategories = await ConvertCategoriesToMagentoIdsAsync(Categories); (GetCustomFieldValue(CustomFields, "Parent Item") == "True" ? return keepExisting; : return exCategories;)

CategoryIds

Optional. Resolves the product's iPaaS.com categories to Magento category IDs. When Parent Item is True, existing Magento assignments are left untouched. A category that cannot be matched is simply not assigned.

Dynamic Formula

(SalePrice < DefaultPrice && SalePrice > 0) ? SalePrice : null

SpecialPrice

Optional. The promotional price on the parent, set only when the sale price is both below the default price and greater than zero.

Dynamic Formula

GetCustomFieldValue(CustomFields, "Parent Last Cost")

Cost

Optional. The parent's cost attribute. A cost supplied on the add set does not carry over to the update — map it on both where cost matters.

Field

Parent Always In Stock

AlwaysInStockOverride

Optional. Forces the parent to remain in stock regardless of the calculated quantity.

Field

Parent URL Key Method

UrlKeyMethodOverride

Optional. Controls how the parent's storefront URL key is generated.

Dynamic Formula

CurrentDateTime()

CreatedAt

Optional. Add collection only. Stamps the created date with the time the transfer ran.

Dynamic Formula

CurrentDateTime()

UpdatedAt

Optional. Update collection only. Stamps the updated date with the time the transfer ran.

Add / Update Adobe Commerce/Magento 2 Configurable Product Inventory FROM iPaaS.com (Child of the product)

iPaaS.com data type: Product Inventory

Neither the add nor the update child carries a mapping filter, and both map the same three fields identically. They inherit the product from the transfer above them, so they need no product-existence condition of their own.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Adobe Commerce/Magento 2)

Description

Lookup Translation

Lookup Translation: M2 Product Inventory Source Code From iPaaS

SourceCode

Required. Resolves which Magento inventory source the quantity is written to. An inventory row cannot be written without a valid source code.

Dynamic Formula

Floor(QtyAvailable.Value)

Quantity

Required. The available quantity at the location being processed, rounded down to a whole number.

Dynamic Formula

(Floor(QtyAvailable.Value) <= 0 ? 0 : 1)

Status

Required. The in-stock flag at that source, derived from the same floored figure. 0 is out of stock, 1 is in stock.

Add / Update Adobe Commerce/Magento 2 Configurable Product Options FROM iPaaS.com (Child of the product)

iPaaS.com data type: Product Option

Neither collection carries a mapping filter. These are the option definitions the family varies by — size, colour and so on — created as Magento product attributes.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Adobe Commerce/Magento 2)

Description

Dynamic Formula

string trimmedName = OptionName.Trim(); return trimmedName.Replace(' ','_');

AttributeCode

Required. The Magento attribute code for the option, derived by trimming the option name and replacing spaces with underscores. Two option names differing only in spacing can collide on the same code.

Static

"select"

FrontendInput

Required. Sets the attribute's input type to Magento's dropdown input.

Field

OptionName

DefaultFrontendLabel

Required. The label shown for the option on the storefront.

Add / Update Adobe Commerce/Magento 2 Configurable Product Option Values FROM iPaaS.com (Child of the options collection)

iPaaS.com data type: Product Option Value

Neither collection carries a mapping filter. These are the individual choices within each option. This collection is a child of the options collection, so an option value cannot transfer unless its option definition transferred first.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Adobe Commerce/Magento 2)

Description

Field

Value

Label

Required. The option value's label, for example Medium or Blue. Variant option assignments match against this value and the match is case-sensitive.

Field

Order

SortOrder

Optional. The order the value appears in on the storefront dropdown.

Add / Update Adobe Commerce/Magento 2 Simple Associated Product Variant FROM iPaaS.com (Child of the product)

iPaaS.com data type: Product Variant

Neither collection carries a mapping filter. These are the simple products that sit beneath the configurable parent and hold the family's sellable stock. The add and update collections map the same sixteen shared fields, differing only in the date stamp.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Adobe Commerce/Magento 2)

Description

Field

Sku

Sku

Required. The variant's SKU, and the value stored as the external ID linking the two systems.

Dynamic Formula

!IsEmpty(GetCustomFieldValue(CustomFields, "Child Name")) ? GetCustomFieldValue(CustomFields, "Child Name") : Parent.Name

Name

Required. The variant's name, taken from the Child Name custom field and falling back to the configurable parent's name when it is empty.

Static

"4"

AttributeSetId

Required. Placeholder value — replace during implementation: the stock Default attribute set ID. Must match the set used for the family.

Dynamic Formula

var origPrice = (IsEmpty(DefaultPrice) ? Parent.DefaultPrice : DefaultPrice) ; var salePrice = (IsEmpty(SalePrice) ? Parent.SalePrice : SalePrice) ; return CoalesceToDecimal(origPrice,salePrice);

Price

Required. The variant's regular selling price, falling back to the configurable parent's price when the variant has none of its own.

Static

"simple"

TypeId

Required. Every variant is created as a simple product beneath the configurable parent.

Dynamic Formula

var result = await SumInventoryForVariantAsync(ConvertToLong(Id)); var result2 = Floor(result); (result2 <= 0 ? return false; : return true;)

StockItemIsInStock

Required. Whether the storefront treats this option as in stock, derived from the variant's summed inventory rounded down.

Lookup Translation

Lookup Translation: M2 Product Status From iPaaS

Status

Recommended. Whether the variant is enabled or disabled, translated from the Child Web Status custom field.

Static

"1"

Visibility

Recommended. Magento's Not Visible Individually setting, so the variant is sold only through its configurable parent.

Dynamic Formula

Coalesce(Weight, "1")

Weight

Recommended. The variant's weight, falling back to 1 when none is recorded.

Dynamic Formula

var result = await SumInventoryForVariantAsync(ConvertToLong(Id)); return Floor(result);

StockItemQty

Recommended. The variant's on-hand quantity, summed across its locations and rounded down.

Lookup Translation

Lookup Translation: M2 Product Tax Class From iPaaS

TaxClassId

Recommended. The variant's tax class, translated from the Child Tax Class custom field.

Dynamic Formula

var origPrice = (IsEmpty(DefaultPrice) ? Parent.DefaultPrice : DefaultPrice) ; var salePrice = (IsEmpty(SalePrice) ? Parent.SalePrice : SalePrice) ; (salePrice < origPrice && salePrice > 0) ? return salePrice : return null

SpecialPrice

Optional. The variant's promotional price, set only when the sale price is below the original price and greater than zero. Both prices fall back to the parent's when the variant has none.

Dynamic Formula

GetCustomFieldValue(CustomFields, "Child Last Cost")

Cost

Optional. The variant's cost attribute. Must be supplied on both the add and the update collection where cost matters.

Field

Child Always In Stock

AlwaysInStockOverride

Optional. Forces the variant to remain in stock regardless of the calculated quantity.

Field

Child URL Key Method

UrlKeyMethodOverride

Optional. Controls how the variant's URL key is generated.

Field

Magento PriceTier_FormattedData

Pricing_6 (custom field)

Optional. Carries customer-group tier pricing. Placeholder value — replace during implementation: the destination field Pricing_6 targets Magento customer group 6 in the store the template was built from. Create one Pricing_ field per customer group in your own store that should receive tier pricing, named for that group's own identifier; a store with no group 6 never receives these prices.

Dynamic Formula

CurrentDateTime()

CreatedAt

Optional. Add collection only. Stamps the created date with the time the transfer ran.

Dynamic Formula

CurrentDateTime()

UpdatedAt

Optional. Update collection only. Stamps the updated date with the time the transfer ran.

Add / Update Adobe Commerce/Magento 2 Simple Associated Product Variant Inventory FROM iPaaS.com (Child of the variant)

iPaaS.com data type: Product Variant Inventory

Neither collection carries a mapping filter, and both map the same three fields identically. This collection is a child of the variant collection, so a variant's inventory cannot transfer unless the variant transferred first.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Adobe Commerce/Magento 2)

Description

Lookup Translation

Lookup Translation: M2 Product Inventory Source Code From iPaaS

SourceCode

Required. Resolves which Magento inventory source the variant's quantity is written to.

Dynamic Formula

Floor(QtyAvailable.Value)

Quantity

Required. The available quantity at the location being processed, rounded down to a whole number.

Dynamic Formula

(Floor(QtyAvailable.Value) <= 0 ? 0 : 1)

Status

Required. The in-stock flag at that source, derived from the same floored figure.

Add / Update Adobe Commerce/Magento 2 Simple Associated Product Variant Option FROM iPaaS.com (Child of the variant)

iPaaS.com data type: Product Variant Option

Neither collection carries a mapping filter. This is what associates a variant with the option values it represents — Medium within a Size option, Blue within a Colour option. It is a child of the variant collection.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Adobe Commerce/Magento 2)

Description

Dynamic Formula

string trimmedName = OptionName.Trim(); return trimmedName.Replace(' ','_');

AttributeCode

Required. Identifies which of the family's options this variant is being given a value for. Derived the same way as the option definition's attribute code, so the two must agree.

Field

Value

Value

Required. Which of the option's choices this variant represents. The match against the option value is case-sensitive — a mismatch leaves the variant unassociated.

Add / Update Adobe Commerce/Magento 2 Configurable Product Unit FROM iPaaS.com (Child of the product)

iPaaS.com data type: Product Unit

Neither collection carries a mapping filter. This writes the family's alternate units of measure, and carries the per-variant unit overrides that the simple product unit collection does not have.

Mapping Type

Source Field (iPaaS.com)

Destination Field (Adobe Commerce/Magento 2)

Description

Field

Name

UnitName

Required. The unit's name, for example Each, Case, or Pallet.

Field

Conversion

UnitConversion

Required. How many stocking units make up one of this unit.

Field

DefaultPrice

UnitPrice

Recommended. The price for this unit of measure.

Field

Child Alternate Unit Include

UnitIncludeChildOverride

Optional. Per-variant control over whether this unit is included.

Field

Child Alternate Unit Name

UnitNameChildOverride

Optional. Per-variant override for the unit's name.

Field

Child Alternate Unit Numerator

UnitConversionNumeratorChildOverride

Optional. Per-variant override for the conversion numerator.

Field

Child Alternate Unit Denominator

UnitConversionDenominatorChildOverride

Optional. Per-variant override for the conversion denominator.

Field

Child Alternate Unit Default Price

UnitPriceChildOverride

Optional. Per-variant override for the unit price.

Field

Child Alternate Unit Sale Price

UnitSpecialPriceChildOverride

Optional. Per-variant override for the unit's promotional price.

Dynamic Formula

var customOverride = GetCustomFieldValue(CustomFields, "Child Alternate Unit Barcode"); if (customOverride != null && customOverride != "" && Parent.TrackingMethod == "Variant") { return ChildBarcodeOverrideField("upc_code",customOverride); } else { return null; }

UnitBarcodeChildOverride

Optional. Writes a per-variant alternate barcode. Placeholder value — replace during implementation: the target attribute code upc_code — replace it with the attribute code the store actually uses for barcodes, if it differs. That attribute must already exist in Magento with global scope.

Lookup Translations

M2 Product Status From iPaaS

Used by the Status mapping on the parent collections (from the product status) and on the variant collections (from the Child Web Status custom field).

Source Value

Destination Value

Notes

Preorder

1

Enabled — preorder items are published to the storefront.

Active

1

Enabled.

Disabled

2

The product exists in the catalog but is not shown on the storefront.

In Adobe Commerce/Magento 2, 1 means Enabled and 2 means Disabled. A status with no matching row is not translated: no status value is sent, and the record is created with Magento's own default status. This is silent rather than reported, so complete the translation before the first production run.

M2 Product Tax Class From iPaaS

Used by the TaxClassId mapping on the parent collections (from the product tax class) and on the variant collections (from the Child Tax Class custom field).

Source Value

Destination Value

Notes

None

0

The non-taxable class in a standard installation.

Taxable Goods

2

The stock Taxable Goods class.

Fallback row (always matches, placed last)

2

Catches every tax class not matched above.

The final row is entered as a formula whose value is always true and placed last, so any tax class not matched by the rows above it is mapped to Taxable Goods. A tax class with no row of its own — including one that is misspelled or newly added — is therefore not skipped, it is taxed as Taxable Goods.

Verify these destination IDs against the store: custom tax classes created in Magento receive their own IDs, and the IDs above are correct only for a store using the stock classes.

M2 Product Inventory Source Code From iPaaS

Used by the SourceCode mapping on both inventory children. This is the same translation used by the simple product and standalone inventory collections, so a change made here affects those transfers too.

The source side is not a plain location name — each row matches the inventory record's location by resolving an iPaaS.com location name to its identifier and comparing it to the location on the record.

Source Value

Destination Value

Notes

Location matches the iPaaS.com location named MAIN

MAIN

Example row — replace both sides.

Location matches the iPaaS.com location named EAST

EAST

Example row — replace both sides.

Location matches the iPaaS.com location named STORAGE

STORAGE

Example row — replace both sides.

Placeholder value — replace during implementation: the shipped location names and the Magento source codes they point at are example values. Replace the location name inside the match condition on the source side and the source code on the destination side, editing each row in place rather than replacing the row as a whole. Ensure exactly one row per iPaaS.com location, and confirm the mapping is one-to-one.

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: Attribute Set is required for new products. No attribute set ID was supplied. Resolution: confirm the static attribute set mapping is present and populated on both the parent and the variant collection.

  • A custom attribute that must be created with global scope. An option attribute or custom attribute does not exist in Magento, or is not configured with global scope. Resolution: create the attribute with global scope before re-running.

  • A variant that arrives unassociated with its family. The variant's option value did not match the option value defined on the family, most often a case difference. Resolution: correct the casing in iPaaS.com so the variant value matches the option value exactly.

  • A configurable family that cannot be assembled. The family has no option definitions. Resolution: confirm the options and option values transferred before the variants.

  • An inventory row rejected for a missing or invalid source code. Resolution: correct the source code translation and confirm the source exists with exactly that code and casing.

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

Testing & Validation

Test Scenarios

  1. Create a product in iPaaS.com with a tracking method of Variant and confirm it arrives in Magento as a configurable product with its option attributes, option values and variants.

  2. Manually sync using the iPaaS.com Product record identifier of the parent and confirm the whole family transfers.

  3. Update the family in iPaaS.com and confirm the same Magento records are updated rather than duplicates created.

  4. Confirm each variant is created with a visibility of Not Visible Individually and is purchasable only through the parent.

  5. Transfer a variant with no price of its own and confirm it inherits the configurable parent's price.

  6. Transfer a variant with no Child Name value and confirm it takes the parent's name.

  7. Change the case of a variant's option value so it no longer matches the family's option value, and confirm the variant is not associated.

  8. Create two options whose names differ only by spacing and confirm whether they collide on the same attribute code before relying on them.

  9. Draw every variant to zero stock and confirm the storefront treats the family as unpurchasable.

  10. Set Parent Item to True on the configurable product and confirm the parent is forced in stock, sends the fixed parent quantity, and leaves existing Magento category assignments untouched.

  11. Confirm each variant's inventory is distributed across every expected Magento inventory source.

  12. Confirm the unit child writes alternate units and that the per-variant unit overrides reach the intended variants.

  13. Trigger an inventory-only movement and confirm the update parent does not re-send the full family payload.

Validation Checklist

  • The static attribute set IDs on both the parent and the variant collections match an attribute set that exists in the store.

  • Every option name is distinct once trimmed and space-replaced, so no two options collide on one attribute code.

  • Variant option values match the family's option values exactly, including case.

  • The product status and tax class translations cover every value the catalog uses, and the tax class IDs match the store.

  • The inventory source code translation has exactly one row per iPaaS.com location, one-to-one, with match conditions intact.

  • The barcode target attribute code matches the store's own, and that attribute exists with global scope.

  • Every mapping change has been mirrored across both the add and the update set.

  • The category structure has been transferred before products.

Additional Notes

  • The configurable parent is a container. Its quantity is nominal and its purchasability is derived by Magento from its variants, which is why the variant collections are the ones that govern storefront availability for the family.

  • Option values and variant options both derive their attribute code from the option name the same way, so a change to an option name in iPaaS.com changes the attribute code and can orphan variants associated under the previous code.

  • The add and update sets are deliberately split and must not be configured as add-and-update. Mirror every change across the pair.

  • Cost does not carry over from the add set to the update set. Where cost matters it must be supplied on both.

  • Validate dynamic formulas, static values and translation changes in a staging environment before enabling automatic transfers in production.

Related Documents

Did this answer your question?