Skip to content
Accueil » Akeneo & Bynder » Akeneo & Bynder: Configuration of the connector

Akeneo & Bynder: Configuration of the connector

Each feature is managed by a specific job. For each paragraph, you can see which jobs use the configuration.

Installation process

As it’s a SaaS solution, you don’t have to cary about the installation of the Akeneo & Bynder connector. And you will find everything here for the configuration

Configuration

Connection

Used for all the jobs

The connector needs to access to the applications with the API. You will have to give these accesses in Bynder and in Akeneo.

In Bynder, we use a Permanent Token. This token must have at least read and write rights on the assets AND metadata otherwise the connector will not be able to perform the desired updates.

You will need to also configure:

  • The URL of the PIM
  • The settings of the connection to be used

This connection must have read and write rights on products and assets. Without this, the connector will not work properly.

These parameters must be configured in the web interface

"akeneo_connection": {
    "url": "YOUR AKENEO URL",
    "clientId": "%AKENEO_CLIENT_ID%",
    "secret": "%AKENEO_SECRET%",
    "username": "%AKENEO_USER%",
    "password": "%AKENEO_PWD%"
},
"bynder_connection": {
    "domain": "YOUR BYNDER URL",
    "token": "%BYNDER_TOKEN%"
}

To prevent any security breach, the sensible data are stored in encrypted variables.

(This type of configuration for Akeneo is needed only for version 5 or previous. For V6 or upper, we recommande to use the App directly from the Akeneo App Store)

You can modify a parameter to improve performances:

    "delta": true,

With this, the connector will check only the assets modified since the last successful job.

Bynder to Akeneo Mapping Parameters

Used for job: "Bynder x Akeneo - Bynder assets to Akeneo (Bynder Akeneo Connector)" 

This part is used to configure the transfer of asset URLS (with metadata) from Bynder to Akeneo.

The parameters are:

"mapping": [
	{
		"akeneo_asset_family": "YOUR AKENEO ASSET FAMILY",
		"conditions": [ 
			{
YOUR CONDITIONS: to be transferred, an asset must meet all the conditions
			}
		],
		"media_urls": {
			"BYNDER URL attribute": "Akeneo asset attribute"
** MANY URLS can be configures **
		},
		"metadata": {
			"id": "THE METADATA YOU WANT TO USE AS ID",
			"BYNDER ATTRIBUTE": {
				"attribute": "AKENEO ASSET ATTRIBUTE",
				"locale": "AKENEO LOCALE",
				"channel": "AKENEO CHANNEL"
			},
** MANY ATTRIBUTES can be configured **
		}
	}
]

Many mappings can be configured to match to all your couple Bynder Assets <-> Akeneo asset families. We will help you for the configuration if you want.

The target : “akeneo_asset_family”

In Bynder, the assets are store in a unique repository, as in Akeneo, the assets are splitted in many different asset families:

In this example, we will send the asset to the “atmosphere” asset family. As in all configuration, we use the code of the asset family and not the label.

		"akeneo_asset_family": "atmosphere",

The filters : “conditions”

In our example, we will send to the “atmosphere” asset family, only the assets :

  • of the “type” : “image” OR “picture”
  • marked as “isPublic”
  • with the custom metaproperty “multiselect” with the value “select1”
      "conditions": [
        {
          "field": "type",
          "operator": "IN",
          "value": [
            "image",
            "picture"
          ]
        },
        {
          "field": "isPublic",
          "operator": "EQUAL",
          "value": 1
        },
        {
          "field": "property_multiselect",
          "operator": "IN",
          "value": [
            "select1"
          ]
        }
      ]
Warning : For the "conditions" part, the Bynder custom metadata must be prefixed by "property_"
In our example, the code of the metadata is "multiselect", so we have to put "property_multiselect"

For the conditions, you can find information about the available operators : here

The URLs : “media_urls”

In the example, we want to take the “original” URL (as “original” is the code of one URL in Bynder). This URL will be sent to the “link_atmosphere” Akeneo asset URL.

At the same time we will get the “thumbnails.mini” URL to send it to “link_mini” in Akeneo

"media_urls": {
        "original": "link_atmosphere",
        "thumbnails": {
          "mini": "link_mini"
        }
      },

The metadata : “metadata”

The following paragraph will show how to configure to get some Bynder metadata and put them in some Akeneo asset attributes:

  • The “multiselect” (Bynder metadata) is sent to “multi_Select” (Akeneo asset attribute)
  • The “products” (Bynder metadata) is sent to “productIdentifiers” (Akeneo asset attribute)
  • The “name” (Bynder metadata) is sent to “label” in the locale “fr_FR” and “en_CA” (Akeneo localisable asset attribute)
"metadata": {
        "multiselect": "multi_Select",
        "products": "productIdentifiers",
        "name": [
          {
            "attribute": "label",
            "locale": "fr_FR"
          },
          {
            "attribute": "label",
            "locale": "en_CA"
          }
        ]
      }

Multi products association

Used for job: "Bynder x Akeneo - Product asset association (Bynder Akeneo Connector)"
(can be used in "Bynder x Akeneo - Bynder assets to Akeneo (Bynder Akeneo Connector)" )

If you want to associate an asset to many products, you will use a metadata in Bynder to identify the SKUs of the products you want to associate to the asset you’ve uploaded.

In the connector parameter, you can add the parameters :

"akeneo_asset_multi_products": {
        "CODE_FOR_YOUR_RULE": {
            "asset_family": "AKENEO ASSET FAMILLY CODE",
            "identifiers": "{{ASSET FAMILLY ATTRIBUTE}}",
            "locale": null,
            "channel": null,
            "product_attribute": "AKENEO PRODUCT ATTRIBUTE",
            "separator": "|"
        }

Here, for each asset of the asset familly “AKENEO ASSET FAMILLY CODE”, we will look at the value of the asset attribute “ASSET FAMILLY ATTRIBUTE” and we will try to add the asset to the products in the asset collection with the code “AKENEO PRODUCT ATTRIBUTE”.

The text between {{ }} means that is a dynamic parameter. If you want to put a static parameter, remove the {{ }}.

To continue with our example, we will create 2 rules :

  • DemoProducts
    • For the asset_family “demo”
    • we use the dynamic attribute “{{productid}}” as identifier
    • We will split the attribute with the separator comma “,”
    • And we will try to link the asset in the Akeneo product attribute named “demo_asset”
  • AtmProducts
    • For the asset_family “atmosphere”
    • we use the dynamic attribute “{{select2}}” as identifier
    • We will split the attribute with the separator comma “,”
    • And we will try to link the asset in the Akeneo product attribute named “main”

The corresponding configuration is :

  "akeneo_asset_multi_products": {
    "DemoProducts": {
      "asset_family": "demo",
      "identifiers": "{{productid}}",
      "locale": null,
      "channel": null,
      "product_attribute": "demo_asset",
      "separator": ","
    },
    "AtmProducts": {
      "asset_family": "atmosphere",
      "identifiers": "{{select2}}",
      "locale": null,
      "channel": null,
      "product_attribute": "main",
      "separator": ","
    }
}

Akeneo to Bynder Mapping Parameters

Used for job: "Bynder x Akeneo - Bynder assets to Akeneo (Bynder Akeneo Connector)" 

The reverse mapping is used to send Product information (products linked to asset) from Akeneo to Bynder .

If you want to use this feature, it’s configured in the same place, in a rule like previously.

"reverseMapping": [
        {
            "akeneoProductField": {
                "attributeCode": "YOUR AKENEO ATTRIBUTE",
                "locale": "THE AKENEO LOCAL" or null,
                "channel": "THE AKENEO CHANNEL" or null
            },
           "bynderMediaField": {
              "fieldCode": "YOUR BYNDER METADATA"
           }
        }
** MANY MAPPINGS can be added **
    ]

The origin : “akeneoProductField”

In our example, we want to get the Akeneo product attribute “Name” (as it’s not localised or scopable, we put null for these parameters)

    {
      "akeneoProductField": {
        "attributeCode": "name",
        "locale": null,
        "channel": null
      }

The target : “bynderMediaField”

The Akeneo product value will be sent to the metadata “description”

 "bynderMediaField": {
        "fieldCode": "description"
      }

Send SKU/Product Model Codes to Bynder

Used for job: "Bynder x Akeneo - Send Akeneo product data to Bynder (Bynder Akeneo Connector)"

Product values can be:

  • Product identifier and Product model code
  • Text attributes

All products and product models will be read in order to fill Bynder metaproperty options.

{
... (connection parameters) ...

  "product_identifier": {
    "product_label_attribute": "Akeneo Attribute Product code to be used for label of the Select 2 option",
    "product_model_label_attribute": "Akeneo Attribute Product model code to be used for label of the Select 2 option",
    "bynder_property": "Bynder Select 2 metadata code",
    "locales": ["fr_FR", "en_US"],
    "channel": null,
    "display_id": false // put True if you want to see the Product Identifier or Product Model Code in the label
  },
  "product_values": [
    {
      "attribute": "Akeneo attribute code",
      "bynder_property": "Bynder Select 2 metadata code",
      "locale": null,
      "channel": null
    }
  ]
}

The array “product_values” is mandatory. If you don’t need to get other production information, you must put an empty array.

    "product_values": {}

Known limitations : if your SKUs contain some specific chars, you must put “display_id” as true :

    "display_id": true

Akeneo asset deletion

Used for job: "Bynder x Akeneo - Bynder x Akeneo - Remove assets"

This job is used to delete assets in Akeneo when they are no longer available in Bynder.

It will look at all assets in your asset family and try to find it in Bynder. To work properly, this job needs an asset family attribute which contains the Bynder id.

{
... (connection parameters) ...
  "delete_akeneo_assets": [
    {
      "asset_family": "Your Akeneo Family",
      "bynder_id_attribute_code": "Your Akeneo Asset Attribute Containing the Bynder ID"
    }
}

Known limitations : as this job must run on all the assets, it can’t be launch as often as the other jobs.

Mail alert

Available in all the jobs

It’s now possible to be alerted when an error or a warning is rised during the execution of a job.

To configure it, you just need to put the addresses in the appropriate field. Many addresses can be added, you just have to separate the addresses with a comma (,)

Then choose which kind of alert you want to receive :

  • Warnings
  • Errors

Crontab setup

Available in all the jobs

When the application is installed and configured, crontab must be set to launch synchronization between Akeneo & Bynder.

The crontab parameters can be modified in the web interface by the Dataggo team:

To help you, the configuration is translated in a human readable text.