Skip to main content

Akeneo Mapping Functions

Reference for the Akeneo-specific functions you can use in Dynamic Formula mappings and mapping collection filters.

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 with await; 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

Dictionary<string, List<Dictionary<string, object>>>

Yes

N/A

The Akeneo product's attribute values, keyed by attribute code, with each entry carrying its locale, scope, and data.

valueName

string

Yes

N/A

The Akeneo attribute code to read (for example price, weight, material).

locale

string

No

null

The Akeneo locale to match (for example en_US). When omitted, only values with no locale are matched.

scope

string

No

null

The Akeneo channel (scope) to match (for example ecommerce). When omitted, only values with no scope are matched.

specificFieldName

string

No

null

Targets a specific weight attribute code so its value is read as a weight.

specificFieldUnit

string

No

null

The unit or currency code to match for weight and price attributes (for example pound, USD).

noHtml

bool

No

false

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

Dictionary<string, List<Dictionary<string, object>>>

Yes

N/A

The Akeneo product's attribute values, keyed by attribute code.

valueName

string

Yes

N/A

The Akeneo attribute code to read (for example weight, price).

locale

string

No

null

The Akeneo locale to match (for example en_US).

scope

string

No

null

The Akeneo channel (scope) to match (for example ecommerce).

specificFieldName

string

No

null

Targets a specific weight attribute code so its value is read as a weight.

specificFieldUnit

string

No

null

The unit or currency code to match for weight and price attributes.

noHtml

bool

No

false

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

Dictionary<string, List<Dictionary<string, object>>>

Yes

N/A

The Akeneo product's attribute values, keyed by attribute code.

valueName

string

Yes

N/A

The Akeneo attribute code to read.

attributeValue

string

Yes

N/A

The expected value; a text attribute's value is returned only when it equals this.

locale

string

No

null

The Akeneo locale to match.

scope

string

No

null

The Akeneo channel (scope) to match.

specificFieldName

string

No

null

Targets a specific weight attribute code so its value is read as a weight.

specificFieldUnit

string

No

null

The unit or currency code to match for weight and price attributes.

noHtml

bool

No

false

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

string

Yes

N/A

The Akeneo attribute code (for example color, size).

attributeCode

object

Yes

N/A

The Akeneo option code to resolve (for example red, xl).

locale

string

No

null

The Akeneo locale for the returned label (for example en_US). When omitted or not present, the en_US label or the first available label is used.

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

object

Yes

N/A

The Akeneo product's custom attributes (a collection of key/value fields).

propertyName

object

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

object

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

Dictionary<string, Dictionary<string, object>>

Yes

N/A

The Akeneo category's attribute values, keyed by attribute code.

valueName

string

Yes

N/A

The Akeneo category attribute code to read (for example category_description).

locale

string

No

null

The Akeneo locale to match (for example en_US).

scope

string

No

null

The Akeneo channel to match (for example b2b).

noHtml

bool

No

false

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

object

Yes

N/A

A bundle carrying the Akeneo variant identifier, its product options, and the variant's attribute values.

locale

string

Yes

N/A

The Akeneo locale used to localize option labels (for example en_US).

optionTechnicalNameCustomFieldName

string

No

null

When provided, each option's technical name is stored in an iPaaS.com custom field with this name.

optionValueTechnicalNameCustomFieldName

string

No

null

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

Dictionary<string, string>

Yes

N/A

The Akeneo option's labels keyed by locale (for example en_US, fr_FR).

key

string

Yes

N/A

The locale whose label you want (for example en_US).

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

object

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

object

Yes

N/A

The Akeneo product's attribute values.

attribute

object

Yes

N/A

The Akeneo attribute name that holds the location value.

attributeValue

object

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

string

Yes

N/A

The iPaaS.com product SKU to look up.

conversion

long

No

1

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

string

Yes

N/A

The iPaaS.com product or product-variant SKU to look up.

conversion

long

No

1

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

object

Yes

N/A

The Akeneo product's attribute values.

attributeLabel

string

Yes

N/A

The label of the Akeneo asset attribute to read (for example Product Media).

locale

string

No

null

The Akeneo locale to match; en_US is used when omitted.

scope

string

No

null

The Akeneo channel to match (for example ecommerce).

videoTypeCode

string

No

null

For video assets, the video field to read (for example youtube_code).

UrlOnly

bool

No

false

When true, returns only asset URLs; when false, returns code,url with optional position and alt text.

position

bool

No

false

When true, includes each asset's position when available.

altText

bool

No

false

When true, includes each asset's alt text when available.

defaultPosition

object

No

null

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

string

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

object

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

object

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.

Related Documents

Did this answer your question?