Overview
The Akeneo integration provides ready-made functions you can call when building mappings. They handle common lookups and conversions against your Akeneo catalog and your iPaaS.com data, such as reading a product attribute value, resolving a select option to its label, translating Akeneo categories into iPaaS.com categories, and matching an Akeneo inventory attribute to an iPaaS.com location, so you do not have to write that logic yourself.
Where you can use these functions
These functions are available anywhere you write a formula for the Akeneo integration:
Dynamic Formula mappings: where a destination field's value is produced by a formula rather than mapped directly from a source field.
Mapping collection filters: where a formula decides whether a record should be processed.
Error filters: a mapping collection's error filter, which sits alongside its collection filter. When the error filter's formula resolves to true, the transfer raises an error that is held in the Error Logs for review and is not retried automatically.
Translation collections: where a translation entry uses a formula as its source value.
How to use them
Call a function by name and pass the values it needs in parentheses, for example:
await GetValueFromProductValuesAsync(productValues, valueName).Each function's signature shows its name, the parameters it accepts (with their types), and the type of value it returns. Use it as the reference for exactly how to call the function.
Function names and formula syntax are case-sensitive, so type each name exactly as shown. Whether the values a function matches are treated as case-sensitive varies by function, and is called out in the relevant parameter's description.
Some of these functions are asynchronous (their signature returns a
Task) and must be called withawait; the rest are synchronous and are called directly. Each function's How to call it example shows the correct form.Optional parameters are marked in the parameter table, along with the value used when you omit them.
Each function runs at sync time, against the data in your connected Akeneo account and your iPaaS.com subscription.
The functions are grouped below by the area of the integration they support.
Products and attribute values
GetValueFromProductValuesAsync
What it does: Reads the value of a single Akeneo product attribute (for example a description, price, weight, or select option) from a product's attribute-values structure, applying locale and channel (scope) filters. For select attributes it resolves the stored option code to its localized display label, and for reference-entity attributes it resolves the linked record.
Signature: Task<object> GetValueFromProductValuesAsync(Dictionary<string, List<Dictionary<string, object>>> productValues, string valueName, string locale = null, string scope = null, string specificFieldName = null, string specificFieldUnit = null, bool noHtml = false)
How to call it: await GetValueFromProductValuesAsync(productValues, valueName)
Parameter | Type | Required | Default | Description |
productValues |
| Yes | N/A | The Akeneo product's attribute values, keyed by attribute code, with each entry carrying its locale, scope, and data. |
valueName |
| Yes | N/A | The Akeneo attribute code to read (for example |
locale |
| No |
| The Akeneo locale to match (for example |
scope |
| No |
| The Akeneo channel (scope) to match (for example |
specificFieldName |
| No |
| Targets a specific weight attribute code so its value is read as a weight. |
specificFieldUnit |
| No |
| The unit or currency code to match for weight and price attributes (for example |
noHtml |
| No |
| When true, strips HTML tags from text values before returning them. |
Returns: object. The matched attribute value: a number for weight or price, a boolean for a yes/no attribute, the resolved label for a select attribute, or the cleaned text; null when no value matches.
Example: reading product_weight_lb returns 100.
When to use it: Use it in To iPaaS.com product flows to pull a single Akeneo attribute value into a destination field, with select options resolved to their display labels.
GetValueFromProductValuesUntranslated
What it does: Reads a single Akeneo product attribute value from a product's attribute-values structure using locale and channel filters, returning the raw stored value. Unlike GetValueFromProductValuesAsync, it does not resolve a select option code to its display label, so you receive the underlying code.
Signature: object GetValueFromProductValuesUntranslated(Dictionary<string, List<Dictionary<string, object>>> productValues, string valueName, string locale = null, string scope = null, string specificFieldName = null, string specificFieldUnit = null, bool noHtml = false)
How to call it: GetValueFromProductValuesUntranslated(productValues, valueName)
Parameter | Type | Required | Default | Description |
productValues |
| Yes | N/A | The Akeneo product's attribute values, keyed by attribute code. |
valueName |
| Yes | N/A | The Akeneo attribute code to read (for example |
locale |
| No |
| The Akeneo locale to match (for example |
scope |
| No |
| The Akeneo channel (scope) to match (for example |
specificFieldName |
| No |
| Targets a specific weight attribute code so its value is read as a weight. |
specificFieldUnit |
| No |
| The unit or currency code to match for weight and price attributes. |
noHtml |
| No |
| When true, strips HTML tags from text values before returning them. |
Returns: object. The raw attribute value (a number, a boolean, a select option code, or the cleaned text), or null when no value matches.
When to use it: Use it when you need the raw Akeneo value or option code rather than the human-readable label.
GetValueFromProductValues2
What it does: Reads an Akeneo product attribute value only when it equals an expected value, returning the value on a match and null otherwise. It is used to confirm that an attribute holds a specific value.
Signature: object GetValueFromProductValues2(Dictionary<string, List<Dictionary<string, object>>> productValues, string valueName, string attributeValue, string locale = null, string scope = null, string specificFieldName = null, string specificFieldUnit = null, bool noHtml = false)
How to call it: GetValueFromProductValues2(productValues, valueName, attributeValue)
Parameter | Type | Required | Default | Description |
productValues |
| Yes | N/A | The Akeneo product's attribute values, keyed by attribute code. |
valueName |
| Yes | N/A | The Akeneo attribute code to read. |
attributeValue |
| Yes | N/A | The expected value; a text attribute's value is returned only when it equals this. |
locale |
| No |
| The Akeneo locale to match. |
scope |
| No |
| The Akeneo channel (scope) to match. |
specificFieldName |
| No |
| Targets a specific weight attribute code so its value is read as a weight. |
specificFieldUnit |
| No |
| The unit or currency code to match for weight and price attributes. |
noHtml |
| No |
| When true, strips HTML tags from text values before comparing and returning them. |
Returns: object. The matched weight or price amount, or the text value when it equals attributeValue; null when no value matches.
When to use it: Use it to check whether an Akeneo attribute holds a particular value, for example when resolving an iPaaS.com location from a product's inventory attribute.
GetAttributeDataByNameAndCode
What it does: Looks up the localized display label of an Akeneo attribute option by the attribute name and the option code, checking a local cache first and then the Akeneo Attribute Options API. It falls back to the en_US label or the first available label when the requested locale is not present.
Signature: Task<object> GetAttributeDataByNameAndCode(string attributeName, object attributeCode, string locale = null)
How to call it: await GetAttributeDataByNameAndCode(attributeName, attributeCode)
Parameter | Type | Required | Default | Description |
attributeName |
| Yes | N/A | The Akeneo attribute code (for example |
attributeCode |
| Yes | N/A | The Akeneo option code to resolve (for example |
locale |
| No |
| The Akeneo locale for the returned label (for example |
Returns: object. The localized option label (for example Red), or null when the option has no label.
Example: attribute color with option code red returns Red.
When to use it: Use it to turn an Akeneo select-option code into its human-readable label for a destination field.
ConvertAkeneoAttributeToIpaasCustomField
What it does: Returns the value of a single custom attribute from an Akeneo product's custom-field collection, matched by attribute key. It returns an empty string when the collection is empty or the key is not present.
Signature: Task<object> ConvertAkeneoAttributeToIpaasCustomField(object inputObject, object propertyName)
How to call it: await ConvertAkeneoAttributeToIpaasCustomField(inputObject, propertyName)
Parameter | Type | Required | Default | Description |
inputObject |
| Yes | N/A | The Akeneo product's custom attributes (a collection of key/value fields). |
propertyName |
| Yes | N/A | The attribute key to read from the custom attributes. |
Returns: object. The matched attribute value as a string, or an empty string when the key is not found.
Example: for custom fields containing price, reading the key price returns "100".
When to use it: Use it in To iPaaS.com product flows to pull a named Akeneo custom attribute into an iPaaS.com custom field.
Categories
ConvertAkeneoCategoryToIpaas
What it does: Takes the list of Akeneo category codes assigned to a product and returns the matching iPaaS.com product categories, each carrying its iPaaS.com category ID and the Akeneo category name. Categories that do not already exist in iPaaS.com are skipped.
Signature: Task<object> ConvertAkeneoCategoryToIpaas(object categories)
How to call it: await ConvertAkeneoCategoryToIpaas(categories)
Parameter | Type | Required | Default | Description |
categories |
| Yes | N/A | The list of Akeneo category codes assigned to the product. |
Returns: object. A list of iPaaS.com category objects, each with the iPaaS.com category ID and the Akeneo category name; an empty list when no input is provided.
When to use it: Use it in To iPaaS.com product flows to translate a product's Akeneo categories into their iPaaS.com equivalents before assigning them.
GetValueFromCategoryValues
What it does: Reads the value of a single Akeneo category attribute from a category's attribute-values structure, applying locale and channel filters. It can optionally strip HTML from text values.
Signature: object GetValueFromCategoryValues(Dictionary<string, Dictionary<string, object>> categoryValues, string valueName, string locale = null, string scope = null, bool noHtml = false)
How to call it: GetValueFromCategoryValues(categoryValues, valueName)
Parameter | Type | Required | Default | Description |
categoryValues |
| Yes | N/A | The Akeneo category's attribute values, keyed by attribute code. |
valueName |
| Yes | N/A | The Akeneo category attribute code to read (for example |
locale |
| No |
| The Akeneo locale to match (for example |
scope |
| No |
| The Akeneo channel to match (for example |
noHtml |
| No |
| When true, strips HTML tags from text values before returning them. |
Returns: object. The matched category attribute value (a boolean, text, or number), or null when no value matches.
Example: reading category_description returns Electronics.
When to use it: Use it in To iPaaS.com category flows to pull a single Akeneo category attribute into a destination field.
Product options and variants
GetProductVariantOptionValues
What it does: Builds the list of option name and value pairs for a product variant, localizing each option label to the requested locale. It reads the variant's SKU (falling back to the variant identifier) and can additionally store each option's and each option value's technical name in a named iPaaS.com custom field.
Signature: Task<object> GetProductVariantOptionValues(object myObj, string locale, string optionTechnicalNameCustomFieldName = null, string optionValueTechnicalNameCustomFieldName = null)
How to call it: await GetProductVariantOptionValues(myObj, locale)
Parameter | Type | Required | Default | Description |
myObj |
| Yes | N/A | A bundle carrying the Akeneo variant identifier, its product options, and the variant's attribute values. |
locale |
| Yes | N/A | The Akeneo locale used to localize option labels (for example |
optionTechnicalNameCustomFieldName |
| No |
| When provided, each option's technical name is stored in an iPaaS.com custom field with this name. |
optionValueTechnicalNameCustomFieldName |
| No |
| When provided, each option value's technical name is stored in an iPaaS.com custom field with this name. |
Returns: object. A list of variant option values, each with the localized option name, its value, the variant SKU, and any requested technical-name custom fields.
When to use it: Use it in To iPaaS.com product-variant flows to produce localized option name and value pairs for a variant.
GetNameFromLabelOption
What it does: Returns the label for a specific locale from an Akeneo option's label dictionary, or null when that locale has no label.
Signature: object GetNameFromLabelOption(Dictionary<string, string> labels, string key)
How to call it: GetNameFromLabelOption(labels, key)
Parameter | Type | Required | Default | Description |
labels |
| Yes | N/A | The Akeneo option's labels keyed by locale (for example |
key |
| Yes | N/A | The locale whose label you want (for example |
Returns: object. The label for the requested locale, or null when it is not present.
Example: for labels containing en_US set to Large, reading en_US returns Large.
When to use it: Use it to pick the correctly localized label for an Akeneo option.
Inventory and locations
ConvertAkeneoAttributNameToIpaasLocationId
What it does: Maps an Akeneo attribute name to the matching iPaaS.com location ID, so an inventory attribute can be tied to the correct iPaaS.com location.
Signature: Task<string> ConvertAkeneoAttributNameToIpaasLocationId(object attributeName)
How to call it: await ConvertAkeneoAttributNameToIpaasLocationId(attributeName)
Parameter | Type | Required | Default | Description |
attributeName |
| Yes | N/A | The Akeneo attribute name to map to a location. |
Returns: string. The matching iPaaS.com location ID.
When to use it: Use it in To iPaaS.com inventory flows to resolve the iPaaS.com location for an Akeneo inventory attribute.
GetIpaasLocationIdByExternalId
What it does: Reads an inventory attribute's value from a product's attribute values and resolves it to the matching iPaaS.com location ID. It returns null when the attribute value is not present.
Signature: Task<string> GetIpaasLocationIdByExternalId(object ProdcutValues, object attribute, object attributeValue)
How to call it: await GetIpaasLocationIdByExternalId(ProdcutValues, attribute, attributeValue)
Parameter | Type | Required | Default | Description |
ProdcutValues |
| Yes | N/A | The Akeneo product's attribute values. |
attribute |
| Yes | N/A | The Akeneo attribute name that holds the location value. |
attributeValue |
| Yes | N/A | The expected attribute value to match before resolving the location. |
Returns: string. The matching iPaaS.com location ID, or null when the attribute value is not found.
When to use it: Use it in To iPaaS.com inventory flows to resolve an iPaaS.com location from a product's inventory attribute.
Units
GetProductUnitNameBySku
What it does: Looks up an iPaaS.com product by SKU and returns the name of the unit whose conversion factor matches the one you pass, falling back to the product's first unit. It returns null when the SKU is not found in iPaaS.com.
Signature: Task<string> GetProductUnitNameBySku(string sku, long conversion = 1)
How to call it: await GetProductUnitNameBySku(sku)
Parameter | Type | Required | Default | Description |
sku |
| Yes | N/A | The iPaaS.com product SKU to look up. |
conversion |
| No |
| The unit conversion factor to match; when omitted, 1 is used. |
Returns: string. The matching iPaaS.com product unit name, or the first available unit name; null when the SKU is not found.
When to use it: Use it, for example in kit-component mappings, to confirm and read the iPaaS.com unit name for a product SKU.
GetVariantOrProductUnitNameBySku
What it does: Looks up an iPaaS.com product by SKU and returns its matching unit name; when no product matches, it looks up the SKU as a product variant and returns the parent product's matching unit name. It falls back to the first available unit.
Signature: Task<string> GetVariantOrProductUnitNameBySku(string sku, long conversion = 1)
How to call it: await GetVariantOrProductUnitNameBySku(sku)
Parameter | Type | Required | Default | Description |
sku |
| Yes | N/A | The iPaaS.com product or product-variant SKU to look up. |
conversion |
| No |
| The unit conversion factor to match; when omitted, 1 is used. |
Returns: string. The matching iPaaS.com unit name from the product or the variant's parent product, or the first available unit name; null when neither is found.
When to use it: Use it, for example in kit-component mappings, when a SKU may belong to either a product or a variant and you need its iPaaS.com unit name.
Media and assets
GetAssetAttributeValue
What it does: Reads an Akeneo asset-collection attribute (images or videos) by its label and returns the asset URLs, optionally with each asset's code, position, and alt text. Multiple assets are separated by a pipe (|). For video assets, the video field to read is selected with videoTypeCode.
Signature: Task<string> GetAssetAttributeValue(object productValues, string attributeLabel, string locale = null, string scope = null, string videoTypeCode = null, bool UrlOnly = false, bool position = false, bool altText = false, object defaultPosition = null)
How to call it: await GetAssetAttributeValue(productValues, attributeLabel)
Parameter | Type | Required | Default | Description |
productValues |
| Yes | N/A | The Akeneo product's attribute values. |
attributeLabel |
| Yes | N/A | The label of the Akeneo asset attribute to read (for example |
locale |
| No |
| The Akeneo locale to match; en_US is used when omitted. |
scope |
| No |
| The Akeneo channel to match (for example |
videoTypeCode |
| No |
| For video assets, the video field to read (for example |
UrlOnly |
| No |
| When true, returns only asset URLs; when false, returns |
position |
| No |
| When true, includes each asset's position when available. |
altText |
| No |
| When true, includes each asset's alt text when available. |
defaultPosition |
| No |
| A fallback position value used when an asset has no position of its own. |
Returns: string. The pipe-separated asset values (URLs, or code,url with optional position and alt text), or null when no matching asset is found.
When to use it: Use it in To iPaaS.com product flows to pull image or video asset URLs and metadata from an Akeneo asset attribute.
Product identifiers
GetAkeneoProductIdBySku
What it does: Searches Akeneo for a product (or product model) matching the given SKU and returns its Akeneo identifier, UUID, or product-model code. It returns null when no product matches.
Signature: Task<string> GetAkeneoProductIdBySku(string sku)
How to call it: await GetAkeneoProductIdBySku(sku)
Parameter | Type | Required | Default | Description |
sku |
| Yes | N/A | The iPaaS.com product SKU to search for in Akeneo. |
Returns: string. The matching Akeneo product UUID, identifier, or product-model code; null when no product matches.
When to use it: Use it to confirm a SKU exists in Akeneo, for example when validating bundle or kit-component SKUs.
IsProductUuid
What it does: Checks whether the given value is formatted as a UUID and returns the string True or False.
Signature: string IsProductUuid(object input)
How to call it: IsProductUuid(input)
Parameter | Type | Required | Default | Description |
input |
| Yes | N/A | The value to test against the UUID pattern. |
Returns: string. True when the value matches the UUID format, otherwise False.
Example: b0736ded-4611-42a8-8ff0-7bb9d1b5e08b returns True.
When to use it: Use it to branch mapping logic on whether an Akeneo product identifier is a UUID.
IsProductOrVariant
What it does: Determines whether an Akeneo identifier refers to a product or a variant, based on your Akeneo Product ID Format subscription setting. In identifier mode it checks whether the product has a parent, treating a product with no parent as a product and one with a parent as a variant. In UUID mode it validates the value against the UUID pattern. It returns the string True or False.
Signature: Task<string> IsProductOrVariant(object UUIdOrIdentifier)
How to call it: await IsProductOrVariant(UUIdOrIdentifier)
Parameter | Type | Required | Default | Description |
UUIdOrIdentifier |
| Yes | N/A | The Akeneo product identifier or UUID to evaluate. |
Returns: string. True or False. In identifier mode, True marks a product (no parent) and False a variant; in UUID mode, True means the value is a valid UUID.
When to use it: Use it to branch product-versus-variant handling according to your Akeneo Product ID Format setting.
