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:
- Components
- Finished Goods
if the Finished Good has Label Info content, this Label Info content is excluded) - Bill of Materials
- Hierarchies
Including the HandlingUnit content if provided in the list of IMDE messages - 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
- packaging type display, with in packaging subtype the specific display
- packaging type pallet, with in packaging subtype the specific pallet box
- packaging returnable, with the returnable specific information
- packaging type bx, with no specific subtype added