text only available in english
For data suppliers who manage their product information on international level, the choice of a data exchange format is often BMEcat 2005. When suppliers want to use a BMEcat 2005, we strongly recommend to use at least the ETIM V4.0 guidelines, but we prefer the BMEcat 2005 ETIM V5.0 guidelines. If you are using an older BMEcat ETIM guideline version, we advice to update as soon as possible.
The previous BMEcat ETIM guideline versions do not sufficiently match the current data needs of the industry. The complete ETIM guideline can be downloaded at the download section of ETIM International
Think twice before you start
If you have files according to previous ETIM guideline versions, we recommend that you upgrade to the latest version 5.0 as soon as possible. Point your software or ICT partner to this online documentation of 2BA. It are not rules imposed by 2BA, but Extensible Markup Language rules, a standard of the World Wide Web Consortium.
Developing an XML message based on an XSD and the associated rules is a task that requires XML specialization.
- Incorrect specified headers
- Missing mandatory elements
- No closed elements (only <ELEMENT> but missing </ELEMENT>)
- No open elementes (missing <ELEMENT> only </ELEMENT>)
- Empty optional elements (<ELEMENT></ELEMENT>)
- Improperly defined NL Characteristics (e.g. wrong specified field types)
- Failure to follow the order specified in the XSD
- Not escaping symbols within strings such as an ampersand (&).
To avoid disappointment, we recommend that you use a specialized software party with sufficient XML knowledge. Of course, there are also various PIM software parties affiliated with 2BA that export a valid dataset via an efficient route so that you can easily deliver your valuable data to 2BA.
2BA is conforming the data pool according to the Dutch standards of Ketenstandaard Bouw en Techniek with the INSBOU and DICO / SALES XML files. The supported exchange formats are mapped to the internal fields of the data model. Some internal fields may differ from the length or type as described in the guideline of the exchange formats. We create as much clarity as possible but there may be differences, which we mention in the mapping. For example, in BMEcat 2005 the short description has a length of 150 characters, in the data model only 70 characters.
- T_NEW_CATALOG mapping of BMEcat 4.0 versus data model
- T_UPDATE_PRODUCTS mapping of BMEcat 4.0 versus data model
- Mapping ETIM version versus data model
- Mapping packing codes versus data model
- Mapping product status types versus data model
- Mapping language codes versus data model
- Mapping MIME MD codes versus data model
- Mapping product references versus data model
- Mapping surcharge
The BMEcat 2005 4.0 file should be validated according to the XSD to be sure of full compliance with 2BA.
We recommend using the ETIM BMEcat validation tool (ETIM account needed) to validate your file.
There are a few exceptions in the current XSD (filedate: 2019-05-01).
- ETIM classification is not mandatory for 2BA in the T_NEW_Catalogue.
Corrections for the ETIM 4.0.2 Guidelines documentation (all are correct in XSD file) are:
- On page 102, for the UDX.EDXF.PRODUCT_CHARACTERISTIC_CODE = "NL-008" there is a typing error, this must be "NL_008".
- The file name (page 9 of the ETIM 4.0.2 guidelines) is free adjustable when it will be uploaded to the datapool.
- According to the ETIM 4.0.2 Guidelines, each optional element can be marked as mandatory on the level of an individual ETIM country.
Country specific characteristics
Every country requires more fields then originally available in the BMEcat 2005 structure. In cooperation with ETIM Netherlands, we have defined country specific guidelines for the Netherlands.
Please use this UDX fields (UDX.EDXF.PRODUCT_CHARACTERISTICS) as defined in the ETIM guideline 4.0.2 starting at page 143 to page 162.
The BMEcat 2005 ETIM Guideline V4.0.2 contains clear examples of how to define them in your data file.
The header of the BMEcat with ETIM guidelines 4.0 should be like the example below:
- GENERATOR_INFO has to contain the name of the PIM software or BMEcat generator.
- LANGUAGE will be used as default language when no language is set at the description elements. The use of language codes at the descriptions is highly recommended!
- MIME_ROOT is optional, if the local attachments are stored in a folder, the folder name should be specified. If no folder is used, please do not use the element.
- BUYER_ID specifies the GLN number of the specific datapool;
- 2BA: <buyer_id type="gln">8714252005929</buyer_id>
- InstallData: <buyer_id type="gln">8714252005929</buyer_id>
- SUPPLIER_ID is a mandatory field within the datapool. The GLN- or DUNS number is of the specific data supplier is expected;
- GLN: <buyer_id type="gln"><buyer_id>
- DUNS: <buyer_id type="duns"><buyer_id>
- <UDX.EDXF.VERSION>4.0</UDX.EDXF.VERSION> must be used to define the ETIM 4.0 Guideline version.
2BA supports complete or update (mutation) files of the BMECat 4.0. A complete BMEcat files has to contain all active products. A new complete file will overwrite all records in the database!. To define the file as a complete file, use T_NEW_CATALOG. Existing productrecords which are not present in the complete file will be set as "expired". Existing trade itemsrecords which are not present in the complete file will be deleted.
Delivery of mutation files is also possible.
EXAMPLE complete files:
EXAMPLE mutation file:
2BA distinguishes two entities, the product information and related trade item information. Product information concerns data from the manufacturer about the manufactured product such as attachments and ETIM classification. The related trade item information contains all data indicating how to order the item such as gross price, order unit, minimum purchase amount and delivery time. In many cases (standard manufacturers), this information will be equal to each other, but a distinction can be made here for importers.
|SUPPLIER_PID||Trade item number|
|UDX.EDXF.GTIN||GTIN trade item|
|MANUFACTURER_PID||Product number (smallest unpacked unit)|
|INTERNATIONAL_PID type="gtin"||GTIN product|
- When UDX.EDXF.GTIN is empty, the INTERNATIONAL_PID type="gtin" will be set as trade item GTIN.
Product status / Statuscode
The product status codes are different between BMEcat 2005 ETIM V4.0 and the data model. The mapping is based on product status type, the value is informative (except for expired products). The product status will be set at product and trade item level (exept for expired products (model code 130).
|BMEcat type||Data model descripiton||Data model code|
|core_product||Regular available||126 or NULL|
|others||Regular available||126 or NULL|
|others||Expired product (only at product level; see important notes below)||130|
|others||Suspended product (Product and trade item level: see important notes below)||175|
|refurbished||Refurbished product (only at trade item level)||no modelcode; true/false indicator|
|used||Used (second hand) product (only at trade item level)||no modelcode; true/false indicator|
- PRODUCT_STATUS is optional within BMEcat V5.0 format, when no product status is given the productrecord and trade item record will be intrepreted as core_product.
- Refurbished products can be specified via type "refurbished" where the value will be skipped. The trade item will be specified through the indicator "Refurbished"= true.
- Second-hand (reuse) products can be specified via type "used" where the value will be skipped. The trade item will be specified through an indicator.
- Expired products (model code 130) can be specified via type "others" in combination with the value "discontinued" or "expired". The product record will be specified as 'expired product' (model code '130') and the trade item record (e.g. pricing and logistical info) will not be imported (T_NEW_CATALOG) or will be deleleted (T_UPDATE_PRODUCTS)
EXAMPLE expired products:
EXAMPLE suspended products:
Multiple packing units for the same product
It is possible for a manufacturer or supplier to distribute more than one type of package for the same product. According to the ETIM International Guidelines there are some strict rules:
- Only the values within the packing unit with the lowest UDX.EDXF.QUANTITY_MIN will be imported. Other specified packing units elements will be ignored.
- Normally, the complete product structure must be given for every unique trade item number (from <PRODUCT> to </PRODUCT>). In case of multiple packing units there is an exception: when a reference to a MANUFACTURER_PID is used more than once (from more than one SUPPLIER_PID's) after the first appearance, the fields below don't have to be given in order to avoid redundant data:
- Attachments: UDX.EDXF.MIME_INFO
- ETIM classification: PRODUCT_FEATURES
- ETIM version: UDX.EDXF.PRODUCT_ETIM_DYNAMIC
- ETIM MC classification: UDX.EDXF.PRODUCT_FEATURES_MC
- Brand, series, type: will be ignored during the import
For trade items, the logistic information can be given for each unique trade item in the elements UDX.EDXF.PACKING_UNITS, PRODUCT_LOGISTIC_DETAILS and UDX.EDXF.PRODUCT_CHARACTERISTIC. Measurements must be given in meters and weights must to be given in kilograms. If there are more than one trade items for the same product see chapter Multiple packing units for the same product. The mapping below applies to the packaging information for all trade items:
- ETIM has determined that C62 is interpreted as unpacked
- ETIM has determined that PA is interpreted as blister
- Not recommended:
- BE (Bundle)
- PR (Pair)
- SET (set)
- Z2 (Chest)
- Z3 (Cask)
- Not accepted:
- CQ (Cartridge)
- EV (Envelope)
- WR (Wrap)
The country of origin is the country of shipment of the order. The country of production is the actual production location. Please use the country specific UDX.EDXF.PRODUCT_CHARACTERISTIC field "Country of production origin" with code "NL_006", see chapter 11 of the ETIM 4.0 guideline.
Order price details
For each trade item can be defined how the trade item can be ordered, on which unit the price is based and how the product can be used. The mapping of the order and price details in the import of BMEcat 4.0 differs from older guideline versions.
- The CONTENT_UNIT defines how the product is used, this can be expressed in piece, meters, litres ad square meters. All other cases should be specified as C62. In case of piece, use also code C62
- The ORDER_UNIT defines how the trade item can be ordered, this can be expressed in piece, meters, litres and square meters. All other cases should be specified as C62. In case of piece, use also code C62
- The QUANTITY_MIN defines the minimum order quantity of the trade item, expressed in ORDER_UNIT. The quantity steps in which the trade item can be ordered is the QUANTITY_INTERVAL.
|QuantityOfUseUnits||=||NO_CU_PER_OU * UDX.EDXF.QUANTITY_MIN|
|Gross price per purchase unit||=||(PRICE_AMOUNT / PRICE_QUANTITY) * PRICE_FACTOR|
|Gross price per content unit||=||((PRICE_AMOUNT / PRICE_QUANTITY) * PRICE_FACTOR) / (NO_CU_PER_OU * UDX.EDXF.QUANTITY_MIN)|
- All PRICE_FACTOR elements per SUPPLIER_PID must have the same value.
- Gross price: @price_type "net_list" should be used as gross price.
- Gross price: @price_type "net_customer" should be used as net price.
- TAX will be multiplied with 100.
- DAILY_PRICE "true" is mapped as "price on request".
- Suggested price: @price_type "nrp" should be used as suggested price. Please note, the nonbinding recommended (retail) price (nrp), suggested retail price is within BMEcat specified including sales tax. The import proces reduces the speciied value with the specified VAT, because the suggested price in the data model is without sales tax.
The surcharge type "WEEE" is mapped to the Dutch "Afvalbeheersbijdrage", model code ‘AEO’. Other material surcharge types are mapped to the model code ‘Overig’, model code ‘ADR’. The mapping of surcharge types versus the data model is available here.
Given the various purposes, different types of descriptions are possible to describe a trade item or product. There are three possibilities:
- DESCRIPTION_SHORTdescribes the product short and concise, to recognize its kind and function among a large quantity of products - preferably unambiguous.. The maximum field length within the data pool is 70 characters (not 150 characters according to the XSD of BMEcat). If the short description contains more characters the description will be cut to length of 70 characters.
- DESCRIPTION_LONG is mapped to the marketing text with a maximum of 1.000 characters. If the long description contains more characters, the description will be cut to specified length of 1.000 characters.
- The long description to support the short description is defined in the country specific UDX.EDXF.PRODUCT_CHARACTERISTIC "Long ERP description" with code "NL_008" and has a maximum of 256 characters.
- The descriptions (short, long and long ERP description) should not contain any HTML tags or font formatting like bold, italic, underline, etc.
- The descriptions (short, long and long ERP description) should not contain controls characters like CR & LF (Enter / Return), tabs, and other non-western characters. Please use the Character Entity Reference Table to specify new lines, lists, special characters etc.
- The element LANGUAGE in the header is used as default language when no language code is specified at descriptions.
- The default language is Dutch and is mandatory. If no Dutch description is set, the English description will be adopted as Dutch description.
- If neither a Dutch nor an English description is specified the specific record will blocked.
- The mapping of the language codes versus 2BA is available here
Brand, serie and type
Wholesalers uses the structure of brand, serie, type as a filtering method and search engine optimisation (SEO), for example on their webshop. For this reason these fields are mandatory for each product record. For records which are only used as trade item data, these fields can be skipped (see chapter: multiple packing units for the same product).
Some manufactures don't use serie and type grouping. In this case use the value RNV_NA. More information click here.
- Brand; UDX.EDXF.BRAND_NAME
- Series; UDX.EDXF.PRODUCT_SERIES
- Type; UDX.EDXF.PRODUCT_VARIATION
In older BMEcat guidelines there were more mappings and 2BA UDX fields, these fields and mappings are no longer supported.
Hazardous substances and certificates
Safety Data Sheets
When a Safety Data Sheet (SDS) is applicable, these three elements are mandatory:
- The indication that SDS is applicable for this product in SPECIAL_TREATMENT_CLASS. Only the value true or false is expected in this string field.
- There must be an attachment with code MD03 in UDX.EDXF.MIME.
- The SDS listdata must be filled in the UDX.EDXF.PRODUCT_CHARACTERISTIC with code NL_005.
When Registration, Evaluation, Authorization and restriction of Chemicals (REACH) is applicable for the record, these three elements are mandatory:
- The indication that REACH is applicable for this product in UDX.EDXF.REACH.INFO.
- The REACH revision date must be filled in the UDX.EDXF.REACH.LISTDATE.
- There must be a website location to the document, given as attachment with code MD05 in UDX.EDXF.MIME.
Other certificates and regulations
In the SPECIAL_TREATMENT_CLASS other certificates and regulation codes can be given (see page 65 of the ETIM guidelines). For example the United Nations number is a four digit number, ideally preceded by the letters "UN" (for example, "UN2500"). This number is not mentioned in the ETIM 4.0 Guidelines, 2BA does accept it.
For the maritime sector, the DIN and ISO number is mandatory, using the UDX.EDXF.PRODUCT_CHARACTERISTIC codes NL_002-1 and NL_002-2. If there are any attachments, the UDX.EDXF.MIME can be used (see page 59 of the ETIM 4.0 guidelines). The DIN number is the German institute for standardisation number. The ISO number is the International Organization for Standardization norm number.
The element PRODUCT_FEATURES can be used for the ETIM Classification. REFERENCE_FEATURE_SYSTEM_NAME must be filled with the ETIM version of the data. In the format ETIM-x.x. or like DYNAMIC.
- REFERENCE_FEATURE_GROUP_ID is the ETIM class of the product. According to the 4.0 guidelines this field is mandatory and must be filled with "EC000000" if the product has no known ETIM class. For 2BA this field is not mandatory.
- FNAME is the ETIM Feature. According to the 4.0 guidelines this field is mandatory and must be filled with "EF000000" or "-" when there is no feature. For 2BA this field is not mandatory.
- FVALUE is the ETIM value. According to the 4.0 guidelines this field is mandatory and must be filled with "EV000000" or "-" when there is no feature. For 2BA this field is not mandatory.
- In case of a range, the element FVALUE is used twice. 2BA will use the first element as the lowest value, and the second value as the highest.
If a value cannot be assigned, according to the ETIM guideline the data supplier has the opportunity to use a minus sign. Values with a minus sign will be skipped by 2BA. Instead use one of the following reasons in FVALUE_DETAILS:
- NA; Not applicable (this feature is not applicable in the context of a product in this class).
- MV; Missing value (an alphanumeric feature is relevant, but no correct value exists in this ETIM version).
- UN; Unknown (currently, the data supplier is not able to specifiy a value; but basically it is possible).
According to the 4.0 Guidelines the UDX.EDXF.MIME_INFO element should be used to exchange attachments. Because of the different export formats the predefined values (MD codes) are mapped to the attachment type code list.
- By default, an attachment is downloaded and added to the product data. If an attachment should remain as a reference to the source (URL), this can be arranged outside the exchange format via the parameter.xml. Per MIME code can be specified whether the original source should be kept with the exception of MIME code MD01.
- UDX.EDXF.MIME_DESIGNATION specifies if an attachment is in high resolution (detail) or low resolution (normal) picture. If UDX.EDXF.MIME_DESIGNATION is not specified, the picture will be specified as a low resolution picture (PPI). The element UDX.EDXF.MIME_DESIGNATION will be also used to specify the description of the attachment. The value normal or detail will be skipped as description
- We strongly recommend to specify only one primary image as MD01 and specifiy other images as MD02 (simular picture).
- The minimum quality of a high resolution should be 300 DPI for 1772x1772 pixels (15x15cm).
- If only a high resolution (detail) MD01 picture is specified, the import system will generate a low resolution picture.
- The MIME_ROOT can define a root map for attachments. This field is used in combination with UDX.EDXF.MIME_SOURCE. Be careful not to use the same directory structure in both fields.
- The UDX.EDXF.MIME_SOURCE is used for the file name or URL. When the value starts with an URL, the import system will download the attachment.
- Per UDX.EDXF.MIME_SOURCE can be indicated trough a language code in which language the content is written. If the language code is not specified the specified header language code will be used. with the exception of the product picture MD codes: MD01, MD02, MD20, MD23, MD24, MD25, MD26, MD27, MD28, MD29, MD30, MD47 (BME 5.0) MD59, MD65.
- The UDX.EDXF.MIME_CODE defines the type of attachment with MD codes.
- The MIME_CODE MD04 will be saved as (data) deeplink and is not mapped as an attachment type. If you specify multiple deeplinks (mime code MD04), the deeplinks will be imported as attachment model type 'other' (OTA).
- MD06, Energy label must be a JPG.
- MD36 (declaration) is deleted by ETIM in the 4.0 Guidelines.
- MD47 (thumbnail) is not imported by 2BA.
File Hash and OriginalFileSource
The import routine automatically creates an MD5 Hash from each downloaded attachment/file. A MD5 Hash makes it possible to determine whether it is a new file or a duplicate. The MD5 Hash is sent per attachment with a dataset export using the attachment attribute AttachmentHash. In addition, the original file name published by the data supplier is also included in the OrginalFileSource attribute. Unfortunately, unlike the DICO/SALES005 format, the BMEcat 2005 ETIM exchange format does not provide the ability to communicate such attributes. Optionally, you can also request an overview of attachments including associated attributes via the AttachmentIndex exchange format. The AttachmentIndex is standard within the PAB exchange format.
In the data model reference items will be mapped at product level, not on trade item level.
- BMEcat code "others" can only be used in combination with REFERENCE_DESCR "fits to" and "predecessor".
- BMEcat code "Base product" is used for hierarchy, see chapter 10 hierarchy.
- BMEcat code "Followup" can be used to refer to a successor at product level (not for trade items).
- The BMEcat standard assumes an implicit unit for a specified quantity; since it is a trade item (or product) to trade item (or product) relation, pieces (PCE) are assumed.
- A spare part or accessory of a product can be specified with product reference 'sparepart' or ‘consist_of’.
Files containing data from multiple data suppliers
- In case of catalogue messages containing products of more than one manufacturer, on every product the field the country specific UDX.EDXF.PRODUCT_CHARACTERISTIC field "Manufacturer_IDref" with code "NL_010" must be used, see chapter 11.
- In case of a multi supplier catalogue, every trade item needs to be identified with the GLN of the supplier, the field the country specific UDX.EDXF.PRODUCT_CHARACTERISTIC field "Supplier_IDref" with code "NL_009" must be used, see chapter 11.
- When a multi catalogue message contains multiple suppliers of the same product, redundant product information should be avoided. The ETIM classification and "mime info" should only be added the first time it is mentioned in the catalogue. The function PRODUCT_REFERENCE "base_product" must be used on all the other trade items elements which refer to the same product.