Skip to main content

Akeneo to iPaaS.com Product Mapping Documentation

Akeneo to iPaaS.com Product Mapping Documentation

Akeneo products can be transferred to iPaaS.com on a schedule through record polling, or on demand through Manual Sync. The integration supports both simple products and variant products (product models), creating or updating the matching product records in iPaaS.com from Akeneo product data. A single product transfer also carries its related data — units, inventory, options, option values, variants, related products, and bundle (kit) components — through the supported child collections described below.

The following Akeneo product types can be transferred to iPaaS.com:

  • Simple Product (Product)

  • Variant Product (Product Model)

ID Format

This integration supports two product ID formats, because Akeneo's product API differs across versions and some catalogs do not use UUIDs for all products. The format in use is controlled by the Akeneo Product ID Format subscription setting, which has two options:

  • UUID — product reads/updates use Akeneo's UUID-based product endpoint. On the Manual Sync page, enter the Simple Product UUID, for example 8916f491-b423-4e01-899f-1ee8dfcffce4.

  • Identifier — product reads/updates use Akeneo's identifier-based product endpoint. This is the option for older Akeneo versions or catalogs that identify products by a code rather than a UUID. On the Manual Sync page, enter the product Identifier.

For Variant Products, enter the Product Code (for example CorLiving Dillon Oblong Dining Table) regardless of the selected format.

Set the Akeneo Product ID Format option to match your Akeneo environment before transferring products; see the Connections and Settings documentation for where this is configured.

External ID Format

After a successful transfer, iPaaS.com saves the Akeneo source identifier as the external ID on a dedicated external-ID record for the product. That external-ID record is the primary match used to route subsequent updates to the same iPaaS.com product rather than creating a duplicate. The default template also maps the Akeneo identifier into the product's Sku field, which provides visibility on the iPaaS.com record and serves as a fallback match key when no external-ID record yet exists.

Deleted Record Support

Outbound delete is not supported for products. Deleting a product in Akeneo does not remove the corresponding record in iPaaS.com, and delete mappings are not included in the default templates. These mappings cover Add/Update only.

Custom Field Support

Akeneo product attributes that do not have a standard iPaaS.com destination field can be carried into iPaaS.com custom fields. Values are retrieved from the Akeneo product's attribute values using the GetValueFromProductValues conversion function (or GetAssetAttributeValue for asset-collection attributes such as images and videos). Each custom field mapping names the Akeneo attribute code and, where the attribute varies by language or sales channel, the locale and channel (scope) to read. Because attribute codes and their allowed values depend on how your Akeneo catalog is configured, validate custom field mappings in a staging environment before relying on them in production.

Reference Entity Support

A Reference Entity in Akeneo is a structured dataset — such as Brands, Designers, or Manufacturers — that can be linked to products as an attribute. The integration can carry reference entity values into iPaaS.com custom fields, using the reference entity record code as the value. Two Akeneo attribute types are supported:

  • Single reference entity (attribute type akeneo_reference_entity): the linked record code is stored in a single iPaaS.com custom field. Name the custom field the same as the Akeneo attribute. For example, a designer attribute linking to the record bouroullec is carried as a custom field designer with the value bouroullec.

  • Reference entity collection (attribute type akeneo_reference_entity_collection): each linked record code in the collection is stored in its own iPaaS.com custom field, named after the Akeneo attribute with an increasing integer suffix. For example, a collections attribute linking to winter_2019 and spring_2020 is carried as collections1 = winter_2019 and collections2 = spring_2020.

To use reference entities, create the matching custom field(s) in iPaaS.com and map the Akeneo reference entity attribute to them using the GetValueFromProductValues formula, naming the reference entity attribute as the attribute code. The value transferred is the reference entity record code; the integration resolves the record from Akeneo's reference entity records endpoint. Confirm your reference entity attribute codes in your own Akeneo catalog, and validate the result in a staging environment before relying on it in production.

Mapping Collection Status

Status: Enabled. The parent Product collection has no mapping filter applied, so all polled and manually synced products are processed. Several child collections (inventory, related products, bundle components, product unit) carry filters that conditionally include records — see each collection's Mapping Filter below.

Trigger Events: Create and Update, via scheduled record polling (product/poll) and Manual Sync.

Duplicate or Conflicting Mappings

Review any other mapping collections that target the iPaaS.com Product entity before enabling this collection, and confirm their filters and Add/Update settings so two collections do not compete to write the same product. Collision handling for the collection is configured on the mapping collection in iPaaS.com; on first sync, when no external-ID record exists yet, the Sku fallback match prevents duplicate products by linking to an existing product whose Sku matches the incoming Akeneo identifier.

Supported Child Collections

The parent Add/Update Akeneo Product TO iPaaS.com collection transfers the following child collections as part of a product transfer:

  • Add/Update Akeneo Product Option TO iPaaS.com — selectable attributes (such as Color or Size) for the product.

  • Add/Update Akeneo Product Option Value TO iPaaS.com — the individual values for each option (such as Large, Red).

  • Add/Update Akeneo Product Inventory TO iPaaS.com - Location MAIN — on-hand quantity for the MAIN location, read from an Akeneo attribute.

  • Add/Update Akeneo Product Inventory TO iPaaS.com - Location EAST — on-hand quantity for the EAST location, read from an Akeneo attribute.

  • Add/Update Akeneo Product Variant TO iPaaS.com — the individual variants of a product model.

  • Add/Update Akeneo Product Variant Inventory TO iPaaS.com - Location EAST — variant on-hand quantity for the EAST location.

  • Add/Update Akeneo Product Variant Inventory TO iPaaS.com - Location MAIN — variant on-hand quantity for the MAIN location.

  • Add/Update Akeneo Product Variant Related Product TO iPaaS.com — related-product associations for a variant.

  • Add/Update Akeneo Product Related Product TO iPaaS.com — related-product associations for the product.

  • Add/Update Akeneo Product Bundle TO iPaaS.com — kit header for Akeneo Bundle / Grouped products.

  • Add/Update Akeneo Product Bundle Component TO iPaaS.com — the individual components that make up a bundle (kit).

  • Add/Update Akeneo Product Unit TO iPaaS.com — the product unit of measure record that accompanies each product.

System Caveats

Akeneo Caveats

  • Asset share links: For image and video custom fields (Product Media, YouTube Videos, Vimeo Videos), Akeneo must be configured to expose the public share link of each asset before the asset URLs can be carried into iPaaS.com. The attribute label passed to the formula must match the Akeneo asset attribute label for the locale being used.

  • Attribute labels and locales: Option, option value, and name values are read from the Akeneo localized labels for the en_US locale. If your catalog publishes in other languages, validate the result in a staging environment before relying on it in production.

  • Inventory attributes: Akeneo has no native inventory feature. The inventory collections reuse standard Akeneo attributes (for example, main_inventory and east_inventory) as the stock figure. Those attributes must exist on the products and hold a whole-number quantity. These inventory mappings are supplied as a proof-of-concept example and should be adjusted to your catalog.

  • Associations: Related-product collections only transfer associations whose related item already exists in iPaaS.com and whose association type code matches the configured filter (the supplied template filters to UPSELL). Custom Akeneo association type codes are converted to iPaaS.com related types through a Lookup Translation that you maintain.

iPaaS.com Caveats

  • Inventory locations must already exist: Each inventory collection points stock at an existing iPaaS.com location (MAIN or EAST). The location must already exist in iPaaS.com and a location translation must resolve the Akeneo-side name to that location; otherwise the inventory record is skipped.

  • Categories must exist before linking: The Categories mapping links a product only to Akeneo categories that already exist in iPaaS.com. Transfer your category structure first (using the Product Category collection) so products land in the correct categories.

  • Kit components reference existing products and units: A bundle component is only transferred when its SKU resolves to a product unit that already exists in iPaaS.com.

Integration Flow

  1. On each polling cycle, iPaaS.com requests the Akeneo products and product categories that have changed since the last saved poll timestamp (a "last modified date is greater than" filter). The current time is saved after each cycle for the next run.

  2. For a product model with variants, polling consolidates the variants into a single transfer for the parent — a product with nine variants is processed as one parent transfer, not nine.

  3. The full product record is retrieved from Akeneo and the parent Product mappings are applied to create or update the product in iPaaS.com (matched by external ID, with Sku as the fallback match key).

  4. The product's child collections are then processed as part of the same transfer — product unit, inventory (per location), options and option values, variants (and their inventory and related products), related products, and bundle components — subject to each collection's filter.

  5. Records can also be transferred on demand from the iPaaS.com Manual Sync page using the ID formats documented above. Transfer errors and skipped records can be reviewed under Dashboard / Integration Monitoring / Error Logs.

Mappings

Add/Update Akeneo Product TO iPaaS.com

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Dynamic Formula

return await GetAssetAttributeValue(Values, "Product Media", null, null, null, true);

Akeneo Product Media

Optional. Pulls the images held in an Akeneo asset collection attribute (for example the attribute labelled Product Media, which typically holds "packshot" images) and stores them in this custom field. Use it only if you want product images carried into iPaaS.com. Placeholder value — replace during implementation: Product Media is an example Akeneo asset attribute name; replace it with the asset attribute used in your Akeneo instance.

Dynamic Formula

return await GetAssetAttributeValue(Values, "Product Media", null, "Ecommerce", null, true, true, true, null);

Akeneo Test Image With Alt Text and Position

Optional. Works the same way as Akeneo Product Media, but additionally carries each image's position (display order) and alt text alongside the URL. Placeholder value — replace during implementation: Product Media (asset attribute) and Ecommerce (channel) are examples; replace them with your Akeneo asset attribute and channel.

Dynamic Formula

return await ConvertAkeneoCategoryToIpaas(CategoriesCode)

Categories

Optional. Assigns the product's Akeneo categories to the matching categories in iPaaS.com. Only categories that already exist in iPaaS.com are linked; unmatched category codes are skipped.

Dynamic Formula

var channelValueB2B = await GetValueFromProductValuesAsync(Values,"channel_visible",null,"b2b"); return channelValueB2B;

Channel VIsible B2B

Optional custom field. Carries whether the product is visible on the B2B sales channel in Akeneo, reading the channel_visible attribute filtered to the b2b channel. Update the attribute code and channel to match your catalog. Placeholder value — replace during implementation: channel_visible (attribute) and b2b (channel) are examples; replace them with your attribute and channel codes.

Dynamic Formula

var price = GetValueFromProductValues(Values,"price",null,null,null,"usd"); if(price != null){ return price; } else{ return "0"; }

DefaultPrice

Required. Reads the product's USD price from Akeneo and stores it as the default price; falls back to 0 when no price is present.

Dynamic Formula

var description = GetValueFromProductValues(Values,"description","en_US","print"); if(description != null){ return description; } else{ return Family; }

Description

Recommended. Reads the Akeneo "description" attribute (en_US locale, print channel); if no description exists, the product Family is used instead.

Field

Family

Family

Optional. Copies the product's Akeneo Family code directly into a custom field in iPaaS.com — a direct field copy with no transformation.

Dynamic Formula

var name = GetValueFromProductValues(Values,"name","en_US"); if(name != null){ return name; } else{ var sku = GetValueFromProductValues(Values,"sku"); if(sku != null){ return sku; } else if(Uuid != null && !string.IsNullOrWhiteSpace(Uuid.ToString())){ return Uuid; } else{ return Identifier; } }

Name

Required. Tries three sources in order: the Akeneo "name" attribute (en_US), then SKU, then UUID/Identifier — so the product always receives a name.

Dynamic Formula

var price = GetValueFromProductValues(Values,"price",null,null,null,"usd"); if(price != null){ return price; } else{ return "0"; }

SalePrice

Optional. Reads the USD price from Akeneo and stores it as the sale price; falls back to 0 when no price is present.

Dynamic Formula

//New Mapping on the basis of identifier var sku = GetValueFromProductValues(Values,"sku"); if(sku != null){ return sku; } else{ if(Uuid != null) return Uuid.ToUpper(); else return Identifier.ToUpper(); }

Sku

Required. The key used to match products between systems. Reads the Akeneo "sku" attribute and uses it if present; otherwise the UUID (or Identifier), uppercased.

Dynamic Formula

var UUIdOrIdentifier=(Uuid != null ? Uuid : Identifier); object IsProduct = IsProductOrVariant(UUIdOrIdentifier); if(IsProduct.ToString() == "True"){ return Status ? "Active" : "Disabled"; } else{ return "Active"; }

Status

Recommended. Sets the product Active or Disabled. Product Models are always Active; for standard products, Active when enabled in Akeneo and Disabled otherwise.

Dynamic Formula

var UUIdOrIdentifier=(Uuid != null ? Uuid : Identifier); string IsProduct =await IsProductOrVariant(UUIdOrIdentifier); if(IsProduct == "True"){ return "Product"; } else{ return "Variant"; }

TrackingMethod

Recommended. A standard product is tracked as Product; a Product Model (which has variants) is tracked as Variant.

Static

"Physical"

Type

Required. Set to the static value Physical by default, which suits most stocked goods. Subscribers may statically override it with another iPaaS.com product type.

Dynamic Formula

return await GetAssetAttributeValue(Values, "Vimeo Videos", null, null, "vimeocode", true);

Vimeo Videos

Optional. Reads Vimeo video assets from an Akeneo asset collection attribute; the video type code "vimeocode" identifies the video-link attribute. Placeholder value — replace during implementation: Vimeo Videos and vimeocode are examples; replace them with your Akeneo asset attribute and media-attribute code.

Dynamic Formula

return GetValueFromProductValues(Values,"product_weight_lb",null,null,"product_weight_lb","pound");

Weight

Optional. Reads the product's weight in pounds from the Akeneo attribute named product_weight_lb (matched on the "pound" unit). Placeholder value — replace during implementation: product_weight_lb is an example Akeneo attribute code; replace it with your weight attribute.

Dynamic Formula

return await GetAssetAttributeValue(Values, "Youtube videos", null, null, "youtube_code");

Youtube Videos

Optional. Reads YouTube video assets from an Akeneo asset collection attribute; the video type code "youtube_code" identifies the video-link attribute. Placeholder value — replace during implementation: Youtube videos and youtube_code are examples; replace them with your Akeneo asset attribute and media-attribute code.

Add/Update Akeneo Product Option TO iPaaS.com

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Dynamic Formula

var optName = GetNameFromLabelOption(Labels,"en_US"); if(optName != null){ return optName; } else{ return " "; }

OptionName

Required. The display name of the option (for example Color or Size), read from the Akeneo localized labels for en_US. Returns a single blank space when no en_US label exists.

Field

Type

Type

Recommended. Copies the Akeneo attribute type of the option directly into the iPaaS.com Type field, with no transformation.

Add/Update Akeneo Product Option Value TO iPaaS.com

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Field

Order

Order

The display order of each option value, taken directly from the option's sort position in Akeneo, so values appear in iPaaS.com in the same sequence.

Dynamic Formula

var optValue = GetNameFromLabelOption(Labels,"en_US"); if(optValue != null){ return optValue; } else{ return " "; }

Value

Required. The human-readable text for the option value (for example Large or Red), read from the Akeneo en_US label. Returns a single blank space when no en_US label exists.

Add/Update Akeneo Product Inventory TO iPaaS.com - Location MAIN

Mapping Filter:

var attr_val = GetValueFromProductValues(Parent.Values,"main_inventory",null,null);
if(attr_val != null && SourceTypeName == "ParentOnly") {
  return true;
} else { return false;}

Only products that carry a value in the main_inventory attribute, processed as a parent-only data source, generate a MAIN inventory record. Products without that attribute are skipped rather than posted with a blank or zero quantity.

Placeholder value — replace during implementation: The location name MAIN and the Akeneo attribute code main_inventory are example values from the demo catalog. Replace the location name (in the LocationId mapping) with your iPaaS.com location, and the attribute code (in this filter and QtyAvailable) with the attribute your catalog uses for this location's stock.

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Dynamic Formula

return await LocationIdFromNameAsync("MAIN");

LocationId

Required. Resolves the fixed location named MAIN to its existing iPaaS.com location ID; returns nothing if no matching location is found. Placeholder value — replace during implementation: MAIN is an example iPaaS.com location name; replace it with your configured location.

Dynamic Formula

return GetValueFromProductValues(Parent.Values,"main_inventory",null,null);

QtyAvailable

The on-hand quantity for the MAIN location, read from the Akeneo main_inventory attribute on the parent product. Placeholder value — replace during implementation: main_inventory is an example Akeneo attribute code; replace it with your catalog's stock attribute.

Add/Update Akeneo Product Inventory TO iPaaS.com - Location EAST

Mapping Filter:

var attr_val = GetValueFromProductValues(Parent.Values,"east_inventory",null,null);
if(attr_val != null && SourceTypeName == "ParentOnly") {
  return true;
} else { return false;}

Only products that carry a value in the east_inventory attribute, processed as a parent-only data source, generate an EAST inventory record.

Placeholder value — replace during implementation: The location name EAST and the Akeneo attribute code east_inventory are example values from the demo catalog. Replace the location name (in the LocationId mapping) with your iPaaS.com location, and the attribute code (in this filter and QtyAvailable) with the attribute your catalog uses for this location's stock.

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Dynamic Formula

return await LocationIdFromNameAsync("EAST");

LocationId

Required. Resolves the fixed location named EAST to its existing iPaaS.com location ID; returns nothing if no matching location is found. Placeholder value — replace during implementation: EAST is an example iPaaS.com location name; replace it with your configured location.

Dynamic Formula

return GetValueFromProductValues(Parent.Values,"east_inventory",null,null);

QtyAvailable

The on-hand quantity for the EAST location, read from the Akeneo east_inventory attribute on the parent product. Placeholder value — replace during implementation: east_inventory is an example Akeneo attribute code; replace it with your catalog's stock attribute.

Add/Update Akeneo Product Variant TO iPaaS.com

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Dynamic Formula

var priceString = GetValueFromProductValues(Values,"price",null,null,null,"usd"); if(priceString != null && !string.IsNullOrEmpty(priceString)){ float price = (float) Convert.ToDouble(priceString); return price; } else{ return 0; }

DefaultPrice

The variant's base price, read from the variant's USD price attribute in Akeneo; falls back to 0 when no price is present.

Dynamic Formula

return await GetProductVariantOptionValues(VariantOptionValues,"en_US");

Options

The variant's option values (for example the Color and Size selections that distinguish the variant), resolved to their en_US display labels.

Dynamic Formula

var priceString = GetValueFromProductValues(Values,"price",null,null,null,"eur"); if(priceString != null && !string.IsNullOrEmpty(priceString)){ float price = (float) Convert.ToDouble(priceString); return price; } else{ return 0; }

SalePrice

The variant's sale price, read from the variant's EUR price attribute in Akeneo; falls back to 0 when no price is present.

Dynamic Formula

var sku = GetValueFromProductValues(Values,"sku"); if(sku != null){ return sku; } else{ return Id.ToUpper(); }

Sku

Required. The variant's SKU, read from the variant's sku attribute; falls back to the variant Id (uppercased) when no SKU is present.

Dynamic Formula

var weightString = GetValueFromProductValues(Values,"product_weight_lb",null,null,"product_weight_lb","pound"); if(weightString != null && !string.IsNullOrEmpty(weightString)){ float weight = (float) Convert.ToDouble(weightString); var intWeight = (int)Math.Round(weight); return intWeight; } else{ return 0; }

Weight

The variant's weight in pounds, read from the product_weight_lb attribute and rounded to a whole number; falls back to 0 when no weight is present.

Add/Update Akeneo Product Variant Inventory TO iPaaS.com - Location EAST

Mapping Filter:

var attr_val = GetValueFromProductValues(Parent.Values,"east_inventory",null,null);
if(attr_val != null && SourceTypeName == "ParentOnly") {
  return true;
} else { return false;}

Only variants whose parent product carries a value in the east_inventory attribute, processed as a parent-only data source, generate an EAST variant inventory record. Variants with no east_inventory value are skipped rather than posted with a blank or zero quantity.

Placeholder value — replace during implementation: The location name EAST and the Akeneo attribute code east_inventory are example values from the demo catalog. Replace the location name (in the LocationId mapping) with your iPaaS.com location, and the attribute code (in this filter and QtyAvailable) with the attribute your catalog uses for this location's stock.

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Dynamic Formula

return await LocationIdFromNameAsync("EAST");

LocationId

Required. Resolves the EAST location to its existing iPaaS.com location ID; the record is skipped if no value is returned. Placeholder value — replace during implementation: EAST is an example iPaaS.com location name; replace it with your configured location.

Dynamic Formula

return GetValueFromProductValues(Parent.Values,"east_inventory",null,null);

QtyAvailable

The variant's on-hand quantity for the EAST location, read from the east_inventory attribute on the parent product. Placeholder value — replace during implementation: east_inventory is an example Akeneo attribute code; replace it with your catalog's stock attribute.

Add/Update Akeneo Product Variant Inventory TO iPaaS.com - Location MAIN

Mapping Filter:

var attr_val = GetValueFromProductValues(Parent.Values,"main_inventory",null,null);
if(attr_val != null && SourceTypeName == "ParentOnly") {
  return true;
} else { return false;}

Only variants whose parent product carries a value in the main_inventory attribute, processed as a parent-only data source, generate a MAIN variant inventory record. Variants with no main_inventory value are skipped rather than posted with a blank or zero quantity.

Placeholder value — replace during implementation: The location name MAIN and the Akeneo attribute code main_inventory are example values from the demo catalog. Replace the location name (in the LocationId mapping) with your iPaaS.com location, and the attribute code (in this filter and QtyAvailable) with the attribute your catalog uses for this location's stock.

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Dynamic Formula

return await LocationIdFromNameAsync("MAIN");

LocationId

Required. Resolves the MAIN location to its existing iPaaS.com location ID; a record with no location cannot be saved. Placeholder value — replace during implementation: MAIN is an example iPaaS.com location name; replace it with your configured location.

Dynamic Formula

return GetValueFromProductValues(Parent.Values,"main_inventory",null,null);

QtyAvailable

The variant's on-hand quantity for the MAIN location, read from the main_inventory attribute on the parent product. Placeholder value — replace during implementation: main_inventory is an example Akeneo attribute code; replace it with your catalog's stock attribute.

Add/Update Akeneo Product Related Product TO iPaaS.com

Mapping Filter:

//AssociationTypeCode == "UPSELL"
var expectedType = "Product";
if(IsVariant == true){expectedType = "Product Variant";}
var external = await GetSpaceportIdAsync(ProductId, expectedType, SpaceportSystemId);
if(external == null || external == 0){
  return false;
} else {
  if (AssociationTypeCode == "UPSELL"){
    return true;
  }
}
return false;

A related-product record is created only when the related item already exists in iPaaS.com and the Akeneo association type code is UPSELL. Adjust the association type code in the filter to transfer other association types.

Placeholder value — replace during implementation: The association type code UPSELL is an example from the demo catalog. Replace or extend it with the association type code(s) used in your Akeneo instance, and add a matching related-type Lookup Translation entry for each.

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Field

IsVariant

IsVariant

Flags whether the related item is a product variant (true) or a simple product (false).

Field

Quantity

Quantity

The quantity associated with the relationship, present only for Akeneo quantified associations.

Dynamic Formula

var expectedType = "Product"; if(IsVariant == true){expectedType = "Product Variant";} return await GetSpaceportIdAsync(ProductId, expectedType, SpaceportSystemId);

RelatedId

Required. Resolves the related item to the internal iPaaS.com record ID of the matching product or variant that has already been transferred.

Lookup

Lookup Translation: Product Akeneo Association Types To iPaaS

RelatedType

Translates the Akeneo association type code (such as cross-sell or up-sell) into the matching iPaaS.com related type. Maintain the translation for your custom Akeneo association codes.

Add/Update Akeneo Product Variant Related Product TO iPaaS.com

Mapping Filter:

//AssociationTypeCode == "UPSELL"
var expectedType = "Product";
if(IsVariant == true){expectedType = "Product Variant";}
var external = await GetSpaceportIdAsync(ProductId, expectedType, SpaceportSystemId);
if(external == null || external == 0){
  return false;
} else {
  if (AssociationTypeCode == "UPSELL"){
    return true;
  }
}
return false;

A variant related-product record is created only when the related item already exists in iPaaS.com (its iPaaS.com ID resolves) and the Akeneo association type code is UPSELL. Associations whose related item has not yet been transferred, or whose type code is not UPSELL, are skipped. Change the association type code in the filter to transfer other association types.

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Field

IsVariant

IsVariant

Records whether the related item on the other end of the association is a variant (true) or a regular product (false).

Field

Quantity

Quantity

The quantity for the relationship, taken from Akeneo's quantified associations.

Dynamic Formula

var expectedType = "Product"; if(IsVariant == true){expectedType = "Product Variant";} return await GetSpaceportIdAsync(ProductId, expectedType, SpaceportSystemId);

RelatedId

Required. Finds the matching iPaaS.com record for the related item and stores its iPaaS.com identifier so the relationship points at the correct product or variant.

Lookup

Lookup Translation: Variant Product Akeneo Association Types To iPaaS

RelatedType

Sets the iPaaS.com relationship type (for example Cross Sell, Replacement, or Child) from the Akeneo association type code, via a Lookup Translation you maintain.

Add/Update Akeneo Product Bundle TO iPaaS.com

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Dynamic Formula

Parent.Family

Kit Type From Akeneo

Records the family code of the parent product into the kit's Kit Type From Akeneo custom field — a direct pass-through from the parent product, with no transformation.

Field

Sku

Sku

The Akeneo product SKU, copied directly into the kit's Sku field. This is the value that ties the kit in iPaaS.com back to the originating Bundle or Grouped Product in Akeneo.

Static

"Basic"

Type

Assigns the fixed value Basic to the kit's Type for every kit transferred — the standard kit type recommended for kits originating from Akeneo Bundle and Grouped Products.

Add/Update Akeneo Product Bundle Component TO iPaaS.com

Mapping Filter:

var productUnit = await GetVariantOrProductUnitNameBySku(Sku);
if(productUnit != null && productUnit != "")
    return true;
return false;

A bundle component is transferred only when its SKU resolves to a product unit that already exists in iPaaS.com.

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Field

SelectionCanChangeQty

Akeneo Bundled Product CanChangeQty

Carries Akeneo's "can change quantity" true/false setting for the component into a custom field on the iPaaS.com kit component.

Field

IsDefault

Akeneo Bundled Product IsDefault

Carries Akeneo's "is default" true/false setting (whether the component is selected by default) into a custom field.

Field

OptionCode

Akeneo Bundled Product Option Code

Carries Akeneo's internal option (choice group) code that this component belongs to into a custom field.

Field

OptionRequired

Akeneo Bundled Product Option IsRequired

Carries Akeneo's "is required" setting (whether a selection is mandatory for this option) into a custom field.

Field

OptionPosition

Akeneo Bundled Product Option Position

Carries Akeneo's option display position (ordering value) into a custom field.

Field

OptionTitle

Akeneo Bundled Product Option Title

Carries Akeneo's human-readable option title into a custom field.

Field

SelectionPriceType

Akeneo Bundled Product Price Type

Carries Akeneo's price type for the component (for example a fixed amount or a percentage) into a custom field.

Field

SelectionPriceValue

Akeneo Bundled Product Price Value

Carries Akeneo's numeric price value for the component (interpreted per the price type above) into a custom field.

Dynamic Formula

SelectionQty != null ? double.Parse(SelectionQty) : 1;

Quantity

Sets how many units of the component are included in the kit. iPaaS.com requires a quantity of at least 1, so the Akeneo bundle quantity is used when present and 1 is used otherwise.

Field

Sku

Sku

The SKU of the individual product that makes up part of the bundle. iPaaS.com uses this SKU to link the component to an existing product in your catalog.

Static

"Per Parent Quantity"

Type

Sets the component type to the fixed value Per Parent Quantity, meaning the component quantity is counted for each unit of the parent kit.

Dynamic Formula

await GetVariantOrProductUnitNameBySku(Sku);

Unit

Required. Returns the name of the unit that already exists on the matching product in iPaaS.com (looked up by the component's SKU). The same lookup is used in the mapping filter, so a component whose unit cannot be resolved is skipped.

Add/Update Akeneo Product Unit TO iPaaS.com

Mapping Filter:

SourceTypeName == "ParentOnly"

The product unit record is generated once per product, as a parent-only data source.

Mapping Type

Source Field (Akeneo)

Destination Field (iPaaS.com)

Description

Static

"EACH"

Name

Sets the unit name on the product unit record that travels into iPaaS.com with each product. Every product synced from Akeneo receives a single product unit named EACH.

Known Limitations

  • Standalone variant transfer is not supported. Variants — and their inventory and related-product records — transfer only as children of their base product. A variant cannot be transferred on its own.

  • Polling is incremental. Each polling cycle only picks up Akeneo records changed since the last saved poll timestamp. A product that has not changed since the last cycle is not re-sent; use Manual Sync to force a transfer.

  • Inventory and location mappings are a proof-of-concept example. Because Akeneo has no native inventory feature, the inventory collections reuse standard attributes (main_inventory, east_inventory) and fixed location names (MAIN, EAST). Adjust the attributes and locations to your environment, and confirm the configuration in staging before relying on it in production.

  • Product ID format depends on your Akeneo version and configuration. Akeneo's product API identifies products either by UUID or by identifier, and not every catalog uses UUIDs. The integration must be pointed at the correct format using the Akeneo Product ID Format subscription setting (UUID or Identifier). If this setting does not match your Akeneo environment, product reads and Manual Sync lookups will fail. Confirm the setting during installation — see Connections and Settings.

  • Outbound delete is not supported — see Deleted Record Support above.

Error Handling

  • Inventory record skipped (no location resolved) — Occurs when the MAIN or EAST location does not exist in iPaaS.com or its location translation is missing, so LocationId resolves to nothing. Resolution: create the location in iPaaS.com and configure the location translation, then re-sync.

  • Product not linked to a category — Occurs when an Akeneo category code has no matching category in iPaaS.com. Resolution: transfer the category structure first (Product Category collection), then re-sync the product.

  • Bundle component skipped — Occurs when the component SKU does not resolve to a product unit that already exists in iPaaS.com. Resolution: ensure the component's product (and its unit) has been transferred to iPaaS.com first.

  • Related product skipped — Occurs when the related item has not yet been transferred to iPaaS.com, or its association type code does not match the filter (default UPSELL). Resolution: transfer the related item first, and confirm the association type code in the filter.

Transfer errors and skipped records are visible under Dashboard / Integration Monitoring / Error Logs.

Testing & Validation

Test Scenarios

  1. Create a new simple product in Akeneo and verify it transfers to iPaaS.com on the next polling cycle (or via Manual Sync using the product UUID), with Sku, Name, Type, and DefaultPrice populated.

  2. Update a field (for example the name or price) on an existing product in Akeneo and confirm the change propagates to the existing iPaaS.com product without creating a duplicate.

  3. Create a product model with multiple variants and verify the parent product and all variants transfer as a single consolidated transfer, with variant options resolved to their en_US labels.

  4. Populate the main_inventory and east_inventory attributes on a product and verify the MAIN and EAST inventory records are created against the correct iPaaS.com locations; remove the attribute value and confirm the inventory record is skipped.

  5. Configure an Akeneo bundle (or grouped product) with components and verify the kit header and its components transfer, with component quantity defaulting to 1 when Akeneo provides no quantity.

  6. Add an UPSELL association to a product whose related item already exists in iPaaS.com and verify the related-product record is created with the correct related type.

  7. Manually sync using the documented ID formats (Simple Product UUID and Variant Product Code) and confirm success.

Validation Checklist

  • Required fields (Sku, Name, Type, DefaultPrice on the product; LocationId on inventory; Unit on bundle components) are mapped and resolve to values.

  • Inventory locations (MAIN, EAST) exist in iPaaS.com with location translations in place.

  • The category structure has been transferred before products, so Categories links resolve.

  • Lookup Translations for association types are populated for any related-product associations you intend to transfer.

  • Error Logs (Dashboard / Integration Monitoring / Error Logs) show no unexpected skipped or failed records after a test sync.

Related Documents

Did this answer your question?