IMDE to SyncForce guidelines

IMDE implementation to SyncForce has some guidelines and rules for what is supported and what is expected when creating/updating products

IMDE to SyncForce implementation

To get products into SyncForce, IMDE version 2.0 is supported.
For details regarding the IMDE messages, its parts and structure please check the imde.io site.

Currently the IMDE messages are not yet schema validated when being processed to SyncForce. 

To check whether your IMDE messages file validates against the schema, you can for example use (Windows)  the free software tool NotePad++ and use the plugin XML tools, select Validate Now (Notepad++ supports xml files with included xml schema locations).

SyncForce combines several IMDE messages of DataContainerType Item (like finished goods, components and handling units) and the IMDE message of DataContainerType BOM to translate them to SyncForce import format.

A message containing a DataContainerType Item with MaterialType “FinishedGoods”, “Component” and “HandlingUnit” are set to separate import messages. 

It is not possible to import an IMDE message containing only a DataContainerType Item with MaterialType “HandlingUnit”.

A message containing a DataContainerType Item with MaterialType “Component” does not need the node HierarchyLevel located in Data Topic “Trade”.

To get “HandlingUnit” content into SyncForce this message content is used when another message within the upload has a message of DataContainerType “BOM”. If this message contains the structure of a Hierarchy (the Top Item is set with an Item of MaterialType “HandlingUnit”), then the content of this Handling unit is being fetched from the other messages in the upload matching its identifier.

Beware that all Items in the BOM message have either an ArticleNumber, DataReceiver and/or GTIN set with a value. SyncForce uses this as a common import KeyField in order to identify all items in the IMDE messages. At least one of the rules should be true:

  • all items have a ItemIdentifiers > Identifier type = DataReceiver value set
  • all items have a ItemIdentifiers > Identifier type = GTIN value set
  • all items have a ItemIdentifiers > Identifier type = ArticleNumber value set

When this BOM is not set with consistent ItemIdentifiers of the same type, the BOM import will fail showing the KeyField set to “None”.

You need to specify the DataReceiver so that SyncForce knows the message is for SyncForce.
Our GLN as DataReceiver: 8719328024279.

The following DataContainerTypes are supported: 

  • Item
  • BOM

IMDE Import process

When a list of IMDE messages are provided this list of messages is split up in separate import items and processed in the following order:

  1. Components
  2. Finished Goods 
    if the Finished Good has Label Info content, this Label Info content is excluded)
  3. Bill of Materials 
  4. Hierarchies
    Including the HandlingUnit content if provided in the list of  IMDE messages
  5. Finished Goods
    Only when there is Label Info content for this Finished Good

So it can happen that a specific Finished Good has 3 import moments.

IMDE Parameters

We currently also have some parameters that are SyncForce specific:

  • SyncForce-ShippingUnitNameIsAutoGenerated
    • When the Shipping unit name (datacontainer type "HandlingUnit") is automatically generated with brand, product name and nr of items in this Shipping unit, provide this parameter and set this parameter to “true”
  • SyncForce-DefaultClassification
    • Provide a default Product Class Id when a new Master is being created, if the Product Class is not available in the customer’s system
  • SyncForce-OverrideSettings-AllowNewTradeItemCreation
    • Only provide this parameter and set to “false” if you are only update existing products in SyncForce but do not create new products
  • SyncForce-OverrideSettings-AllowMasterNameUpdate
    • Only provide this parameter and set to “false” if the current Master Name is not to be updated with the delivered content. Note: this only concerns updates, so the Master Name will still be set upon master creation
  • SyncForce-OverrideSettings-AllowTradeItemNameUpdate
    • Only provide this parameter and set to “false” if the current Product Name is not to be updated with the delivered content. Note: this only concerns updates, so the Product Name will still be set upon product creation
  • SyncForce-OverrideSettings-RevertStatusToReleased
    • Only provide this parameter and set to “true” to automatically release the product when the current status of this product in SyncForce was “Released” during updating this product

DataContainer Types

DataContainerType Item

For Products and Handling units an IMDE message of DataContainerType “Item” is required. 
Keep in mind that a datatopic of a certain type is provided only once.

  • The IMDE message for the MaterialType “FinishedGoods” and “Component” may contain the following DataTopics when applicable:
    • KeyInfo
    • LifeCycleData (version 1.1)
    • Attributes (version 1.1)
    • FoodIngredientStatements (component part is not yet available, development in progress)
    • FoodNutrients (component part is not yet available, development in progress)
    • FoodAllergens
    • Trade (to SyncForce: only applicable for “FinishedGoods”)
    • Locations
    • Packaging
  • The IMDE message for the MaterialType “HandlingUnit” may contain the following DataTopics  when applicable:
    • KeyInfo (beware that that Master part is ignored)
    • Attributes
    • Measurements  (to SyncForce, only applicable for “HandlingUnit”)
    • Trade
    • Locations
    • Packaging

DataContainerType BOM

For TradeHierarchies and BillOfMaterials an IMDE message of DataContainerType “BOM” is required.

  • For a TradeHierarchy structure the BOM node starts with an Item of MaterialType “HandlingUnit” and is to be started at the highest level, for instance pallet > box > product(s)
  • For a Bill of Materials structure the BOM node starts with an Item of MaterialType “FinishedGood

DataTopics

DataTopic KeyInfo

To Link product to a Master, be sure that both Master Code (see attribute identifier) and Master Name (see attribute Name) are set with a value.

DataTopic Trade

Because Syncforce does not support FirstTradeDate and LastTradeDate for the node Market but for IMDE it is mandatory and if you do not have data for these two nodes you can set both nodes with a default value. Example:

Datatopic Measurements

Additional information for Measurements DataTopic concerning the unit of measurement, please use the standard values from the column Code with unit Type DataReceiver:

Datatopic Locations

Supply locations can be added or updated via IMDE (including Local Article number):

The node LocalIdentifier  is used for the Local Article number.

It is not yet possible to import supply location attributes.

Datatopic Trade

For FinishedGoods” only the Hierarchy level is applicable.
For
HandlingUnit” the Hierarchy level, Trade Settings and Handling are applicable.

Datatopic FoodNutrients 

Is it not yet possible to set the percentages via IMDE datatopic. Be aware that when a percentage is set for a nutrient in SyncForce, this percentage will be removed during import.

Component part is not yet available.

Datatopic FoodIngredientStatements 

It will be possible to either provide the IngredientStatement part:

or the Components part:

You can use Components when the Item of type FinishedGood has the listed Components in its Bill of Material in SyncForce and/or the Items of type Components and these Components are also set in a BOM IMDE message are included in the IMDE messages file.

Be aware that:

  • you should not set Components on an Item of type Component; the import will fail.
  • you should not set both IngredientStatements and Components, also the import will fail.

Datatopic Packaging

For packaging we introduce a new IMDE codelist for handling the Packaging types and Platform types which can be found on the IMDE.io website.

Be aware that for the packaging type, our import process tries the code IMDE, then DataReceiver, then GDSN. When using GDSN be sure you have an unique value. For instance PUG is a common value for GDSN but in SyncForce you must be more specific, better to use either IMDE code or DataReceiver.
IF the chosen packaging code is not unique, the import wil return an error and the message containing this datatopic with this error will not be imported. 

See https://imde.io/schema/codelists/IMDE_PackagingTypeCode.xml for the mapping of the Packagingtypes.

If the packaging is more specific, like when you have a Pallet Box but more specific a Pallet box EUR 3 Pallet, please check the https://imde.io/schema/codelists/IMDE_PackagingSubTypeCode.xml

For the Returnable you need to set either the DataReceiver or the GRAI value, only set the attribute IsReturnable to true when providing the Returnable part.

Below is an example to set the main packaging for an item, you can see 4 examples

  1. packaging type display, with in packaging subtype the specific display
  2. packaging type pallet,  with in packaging subtype the specific pallet box
  3. packaging returnable, with the returnable specific information
  4. packaging type bx, with no specific subtype added