You are here: Feedengine -> Export -> Within an own export -> Advanced settings -> Apply format for exported data feeds
By using Velocity Template, you can customise your export formats. You do not rely on the standard structure, but can determine everything yourself.
Here can you find different templates for special export formats. All templates contain basic information about structure and header in the used language.
To use velocity template in the export you have to be explicit activate it.
These option is not activated by default! Please ask you account manager.
To return to CSV, XML or YML, you must select one of these formats. The code that has already been written will remain, but is no longer used.
Additional information are available as comment directly in the sample files. You can delete all comments. The samples are provided in the best known way and to work stable, based on running exports from existing customers.
For more information about "velocity template" you can read the official page: https://velocity.apache.org/engine/2.2/
Supported data-formats
We support at the moment the following formats:
CSV
Standard-structure: 1 Header-Line, 1 Value-Line for every product
individuell structure can be created with velocity
XML
Standard-structure:
<catalog><shop><offers><offer>…</offer>(1 entry for every product)</offers></shop></catalog>individuell structure can be created with velocity
JSON
only available by velocity
structure would be like:
[ { “tags”: “values”, “arrays”: { “subtag”: “subvalue” }, “arrays2”: [ “subvalue”, “subvalue” ] } ]
WE DON’T SUPPORT XSLX (Excel) FILES!
You must set the correct "Content Type". The format for this must be written by hand.
xml - <?xml version="1.0" encoding="UTF-8" standalone="no"?>
csv - no requirements
JSON - no requirements
potential header (identical for all articles)
#foreach( $article in $articleList )#end
Content (individual articles)
#end
This line must be present in every Velocity template. Pay attention to the correct spelling and the correct positioning within the code.
As soon as Velocity Template has been activated, only what is in the code block is taken into account. A normal export is no longer generated.
General templates for CSV-export
If a special format is needed for a CSV export, this can be designed in velocity template. The default structure would be like above:
header + 1 line for each product
id;category;title;description;brand;picture;colour;material
#foreach( $article in $articleList ) $article.id;$article.category;$article.title;$article.description;$article.brand;$article.picture;$article.colour;$article.material
#end
This would produce a file with the following structure.
id | category | title | description | brand | picture | colour | material |
product_id1 |
|
|
|
|
|
|
|
product_id2 |
|
|
|
|
|
|
|
If you would need for example an CSV file where every product gets more lines, this should look like this.
id;category;title;country;sellable
#foreach( $article in $articleList ) "$article.id";"$article.category";"$article.title";"$article.country1";"$article.sellable" "$article.id";"$article.category";"$article.title";"$article.country2";"$article.sellable" "$article.id";"$article.category";"$article.title";"$article.country3";"$article.sellable"
#end
In this case, every product would create as many lines as are defined as country for example.
id | category | title | country | sellable |
product_id1 |
|
| country1 |
|
product_id1 |
|
| country2 |
|
product_id1 |
|
| country3 |
|
product_id2 |
|
| country1 |
|
product_id2 |
|
| country2 |
|
product_id2 |
|
| country3 |
|
There can be as many loops or sub structures as needed. If you want to minimize the manual work to change the separator or text delimeter, you can use variables to symbolize them.
#set ($S = ";")
#set ($D = '"')
${S}id${S}category${S}title${S}country${S}sellable
#foreach( $article in $articleList ) ${D}$article.id${D}${S}${D}$article.category${D}${S}${D}$article.title${D}${S}${D}$article.country${D}${S}${D}$article.sellable${D}
#end
General templates for XML-export
The core structure of every XML file has to be the same and should contain:
xml version header
root tag (to define the frame structure for the export)
article tag (to define a single Article)
article information depending on the use case (normaly minimum an id is given)
Example:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
#foreach( $article in $articleList )
<product>
<id>$article.sku</id>
<!-- additional Information provided in simple or nested tags -->
</product>
#end
</root>
For tag-names (root, product, id…) please follow these simple rules:
only letters and numbers
start with a letter
allowed special characters are: - _
if namespaces are used (see below) you can use : in the tag-name
Other characters then these will cause an error and break the export.
For some channels (like Google) it is necessary to use "namespaces". These have to be written like <namespace:tag> and have to be added to the headline xmlns:namespace="link”.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<catalog xmlns:g="http://base.google.com/ns/1.0" version="2.0" xmlns:pm="https://profitmetrics.io" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xml="http://www.w3.org/XML/1998/namespace">
#foreach( $article in $articleList )
<article>
<g:id>$article.id</g:id>
<link><![CDATA[$article.link]]></link>
<title><![CDATA[$article.title]]></title>
<g:image_link><![CDATA[$article.image_link]]></g:image_link>
<g:price>$article.price</g:price>
</article>
#end
</catalog>
General templates for JSON-export
The core structure of each JSON file must be the same and should contain:
Root element indicated by
[ ](to define the frame structure for the export)Article element within { } (to define a single product)
Article information in individual elements or arrays depending on the use case (normally at least one ID is output)
After the closing
#endof the product loop, it is necessary to simulate an "empty" product with another{}(see below)
Example:
[
#foreach( $article in $articleList )
{
"id": "$article.sku",
"…": "$article. ",
<!—additional Information provided in simple elements or nested arrays -->
},
#end
{}
]
No special rules apply to element names.
However, it must be noted that element values can have one of the following types:
Numbers (number) ->
"ELEMENT": ELEMENT-VALUE, (no" "around the ELEMENT-VALUE)Text (string) ->
"ELEMENT": "ELEMENT-VALUE", (the ELEMENT-VALUE must be enclosed with " ")Nested elements ->
"ELEMENT": { "SUBELEMENT1": "SUBELEMENT-VALUE", "SUBELEMENT2": SUBELEMENT-VALUE }Arrays ->
"ELEMENT": [ ARRAYVALUE1, ARRAYVALUE2, "ARRAYVALUE3" ](in this case there is no SUBELEMENT but only ELEMENT VALUES)
Special cases (XML, CSV and JSON)
Create loops for lists of data which has to be exported as singles datafields
The export can include some datafields with more then one information, devided by a separator. To access these information and export them in single datafields, a second loop could be helpful, specialy if it is unknown how many informations you have to catch.
In the sample below, these informations are divided by a ":" and the loop will run as long as the query has entries.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
#foreach( $article in $articleList )
<product>
<id>$article.sku</id>
<!-- additional Information provided in simple or nested tags -->
#set ($informationlist = $article.information.split(':'))
#set ($loopEnd = $informationlist.size() - 1)
#foreach($i in [0..$loopEnd])
<info>$informationlist.get($i)</info>
#end
</product>
#end
</root>
Check if an entry is existing in general or empty
It is not everytime clear if a datafields contains information or not. In some cases, the export has to fill these datafields only, if informations are available.
There are two ways to check such informations:
does the data field exist →
#if($article.datafield)the data field exists, but it's empty →
#if($article.datafield != ““)
In both cases the export will include the information only, if available.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
#foreach( $article in $articleList )
<product>
<id>$article.sku</id>
<!-- additional Information provided in simple or nested tags -->
#if($article.datafield1)
<info1>$article.datafield1</info1>
#end
#if($article.datafield2 != "")
<info2>$article.datafield2</info2>
#end
</product>
#end
</root>
Export with unknown special characters
Some datafields can contain special characters, which does not work correctly with velocity template. To provide an error in the export, you can use <![CDATA[…]]> which will cover these special characters and provide them in a readable way.
If datafields can be empty, it is recommended to cover these with a simple #if(…) query. If not, the export will contain only the CDATA-block without information.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root>
#foreach( $article in $articleList )
<product>
<id>$article.sku</id>
<!-- additional Information provided in simple or nested tags -->
#if($article.datafield1)
<info1><![CDATA[$article.datafield1]]></info1>
#end
#if($article.datafield2 != "")
<info2><![CDATA[$article.datafield2]]></info2>
#end
</product>
#end
</root>
Separate Informations in a header block
If a separate information block is needed in the header section (for example as a brand or category tree), you can use this template. This sample is from a Bazaarvoice export feed.
<?xml version="1.0" encoding="utf-8"?>
<Feed xmlns="http://www.bazaarvoice.com/xs/PRR/ProductFeed/14.7" name="CUSTOMERNAME-de" incremental="false" extractDate="$VelocityUtils.getDate('yyyy-MM-dd HH:mm:ss').replace(' ', 'T')">
<!-- Brands List -->
<Brands>
#set ( $Brands= {} )
#foreach( $article in $articleList )
#if( $article.BrandName != "" &&
$Brands.containsKey($article.BrandName) == false )
#set ( $brandHash = $article.BrandName.hashCode() )
#if( $brandHash <= 0 )
#set ( $brandHash = $brandHash * -1 )
#end
#set ( $dummy = $Brands.put($article.BrandName, $brandHash) )
<Brand>
<ExternalId>$brandHash</ExternalId>
<Name><![CDATA[$article.BrandName]]></Name>
</Brand>
#end
#end
</Brands>
<!-- Brands List End -->
<!-- Categories List -->
<Categories>
#set ( $Categories = [] )
#foreach( $article in $articleList )
#if( $article.CategoryId != "" &&
$Categories.contains($article.CategoryId) == false )
#set ( $dummy = $Categories.add($article.CategoryId) )
<Category>
<ExternalId><![CDATA[$article.CategoryId]]></ExternalId>
<Name><![CDATA[$article.FirstCategory]]></Name>
</Category>
#end
#if( $article.SecondCategoryID != "" &&
$Categories.contains($article.SecondCategoryID) == false )
#set ( $dummy = $Categories.add($article.SecondCategoryID) )
<Category>
<ExternalId>$article.SecondCategoryID</ExternalId>
#if( $article.FirstCategoryID != "" )
<ParentExternalId>$article.FirstCategoryID</ParentExternalId>
#end
<Name><![CDATA[$article.SecondCategory]]></Name>
</Category>
#end
#if( $article.SubCategoryID != "" &&
$article.SubCategoryID != "1308217050" &&
$Categories.contains($article.SubCategoryID) == false)
#set ( $dummy = $Categories.add($article.CategoryIdWebFamille) )
<Category>
<ExternalId>$article.SubCategoryID</ExternalId>
#if( $article.SecondCategoryID != "" )
<ParentExternalId>$article.SecondCategoryID</ParentExternalId>
#end
<Name><![CDATA[$article.SubCategory]]></Name>
</Category>
#end
#end
</Categories>
<!-- Categories List End -->
<!-- Products List -->
<Products>
#foreach( $article in $articleList )
<Product>...</Product>
#end
</Products>
<!-- Products List End -->
</Feed>
Export different product information then from the exported product (Cross-Mapping)
In some cases it can be necessary to get product informations in the export from another product then the selected. Normaly, the export provides the information from the selected product.
To get other informations (for example “parent product but child information”), you have to build a temporary article cache, which can be used to get the information from the cache instead of the standard exporter.
This is only a sample and has to be changed for every single case.
This sample exports a CSV-file with a header and depending on the provided IDs an article list from the cache. The structure of the data has to be defined in the cache (here “datamap”) and not like normal in the export loop.
#set ( $datamap= {} )
#foreach( $article in $articleList )
#if( $datamap.containsKey($article.product_id) == false )
#set ( $dummy = $datamap.put($article.product_id, $article.product_id+":"+$article.title+":"+$article.deeplink+":"+$article.currency+":"+$article.price+":"+$article.price_old+":"+$article.base_price) )
#end
#end
#if($datamap)
"product_id":"title":"deeplink":"currency":"price":"price_old":"base_price"
#end
#foreach( $article in $articleList )
#set ($varID = $article.varID.split(':'))
#set ($loopEnd = $varID.size() - 1)
#foreach($i in [0..$loopEnd])
$datamap[$varID.get($i)]
#end
#end
Templates for specific channels (XML and JSON)
All sample templates are attached as code block. For better readability, please copy the code to an external programm or directly to your export in Channel Pilot Pro.
Google / CJ Google (XML)
This template shows the structure for Google with RSS 2.0. The standard template has added some comments for better understanding and the full template provides every possible datafield (will be excluded when not provided).
Export for CJ Google is standard an CSV export, but can also be provided as XML. It has to be clear that the shipping and tax information in the export have be in this format:
Shipping → COUNTRYCODE-ISO2::Standard:PRICE CURRENCY (sample for spain ES::Standard:0 EUR)
Shipping can be defined more then ones, but every entry has to be in a separate <shipping>…</shipping> block
Tax → COUNTRYCODE-ISO2:TAXVALUE (samplefor spain ES:21)
Detailed information about both templates you can find here:
Code sample - Google Standard
Code sample - Google Standard
<?xml version="1.0" encoding="UTF-16"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<!-- The information above are the minimum required header for google if we use RSS 2.0 -->
<!-- This is the shop-header which Google uses to identify the shop which is sending these products.
You can add here fix values or you can use some datafields from the export.
It is recommended to use the query #if($articleList.size() > 0) so the header is only created if the datafeed is filled with products.
-->
#if($articleList.size() > 0)
<title></title>
<link></link>
<desc></desc>
#end
<!-- // -->
#foreach( $article in $articleList )
<item>
<!-- These informations are from the Google XML guide.
The informations are required from id till shipping, all information below are only recommended or optional.
All lines contain "$article." which has to be added by the datafieldname from the export (Imagedatafield = picture -> $article.picture). If you use fix values, delete the $article.
All datafields which could include special characters are written in CDATA to make shure that these characters are processes correctly.
The CDATA is included in a #if-else-end too. This will provide an empty datafield if the data is not available, otherwise the export will send <![CDATA[]]> instead.
-->
<g:id>$article.id</g:id>
<g:title>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:title>
<g:description>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:description>
<g:link>#if($article.link == "") #{else} <![CDATA[$article.]]> #{end}</g:link>
<g:image_link>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:image_link>
<g:condition>$article.</g:condition>
<g:availability>$article.</g:availability>
<g:price>$article.</g:price>
<g:brand>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:brand>
<g:gtin>$article.</g:gtin>
<!-- One of these - gtin or mpn - is recommended, if available export both -->
<g:mpn>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:mpn>
<g:google_product_category>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:google_product_category>
<g:product_type>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:product_type>
<!-- You can use as many shipping types as you need. For every shipping type you have to define the country (e.g. USA),
service (e.g. Standart, DHL) and price (e.g. 4.50) like below. The whole block <g:shipping>...</g:shipping> is necessary. -->
<g:shipping>
<g:country>$article.</g:country>
<g:service>$article.</g:service>
<g:price>$article.</g:price>
</g:shipping>
<!-- From this point the information are recommended or optional. This depends on the type of products or the category where they are listet.
If available it is recommended to deliver all information in the export to get the best result on Google.
-->
<!-- You can export to Google more then one picture. To do so you can use the <g:additional_image_link> tag. You have to add 1 line for every picture. -->
<g:additional_image_link>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:additional_image_link>
<!-- These datafields you can use to create a saleprice and a timespan from-till the sale price will be available -->
<g:sale_price>$article.</g:sale_price>
<g:sale_price_effective_date>$article.</g:sale_price_effective_date> <!-- You can use an datafield from the export or fix values like 2011-09-01T16:00-08:00/2011-09-03T16:00-08:00 -->
<!-- These datafields are necessary some categories like apparel, but they are recommended -->
<g:color>$article.</g:color>
<g:gender>$article.</g:gender>
<g:age_group>$article.</g:age_group>
<g:material>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:material>
<g:size>$article.</g:size>
<!-- This datafield is required if the product has variants -->
<g:item_group_id>$article.</g:item_group_id>
<!-- If there is a specific promotion, you have to use this datafield -->
<g:promotion_id>#if($article. == "") #{else}$article.#{end}</g:promotion_id>
<!-- There can be custom-labels on Google. For every label to have to export one datafield as <g:custom_label_N></g:custom_label_N> where N is a ongoing number. -->
<g:custom_label_0>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:custom_label_0>
<g:custom_label_1>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:custom_label_1>
<g:custom_label_2>#if($article. == "") #{else} <![CDATA[$article.]]> #{end}</g:custom_label_2>
</item>
#end
</channel>
</rss>
Code sample - Google Full
Code sample - Google Full
<?xml version="1.0" encoding="UTF-16"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
#if($articleList.size() > 0)
<title></title> #* Shop-Title *#
<link></link> #* Shop-URL *#
<desc></desc> #* Shop-Description *#
#end
#foreach( $article in $articleList )
<item>
<g:id>$article.id</g:id>
<g:title>#if($article.title == "") #{else} <![CDATA[$article.title]]> #{end}</g:title>
<g:description>#if($article.description == "") #{else} <![CDATA[$article.description]]> #{end}</g:description>
<g:link>#if($article.link == "https://www.galerieslafayette.com") #{else} <![CDATA[$article.link]]> #{end}</g:link>
<g:image_link>#if($article.image_link == "") #{else} <![CDATA[$article.image_link]]> #{end}</g:image_link>
#if($article.image_link == "") #{else} <g:additional_image_link><![CDATA[$article.image_link]]></g:additional_image_link> #{end}
#if($article.image_link == "") #{else} <g:mobile_link><![CDATA[$article.image_link]]></g:mobile_link> #{end}
<g:availability>#if($article.id == "") #{else}$article.availability#{end}</g:availability>
#if($!article.availability_date) <g:availability_date>$article.availability_date</g:availability_date> #{end}
#if($!article.expiration_date) <g:expiration_date>$article.expiration_date</g:expiration_date> #{end}
<g:price>#if($!article.price) #{else} $article.price #{end}</g:price>
<g:sale_price>#if($article.id == "") #{else}$article.sale_price#{end}</g:sale_price>
#if($article.id == "") #{else}<g:sale_price_effective_date>$article.sale_price_effective_date</g:sale_price_effective_date>#{end}
<g:google_product_category>#if($article.google_product_category == "") #{else} <![CDATA[$article.google_product_category]]> #{end}</g:google_product_category>
<g:product_type>#if($article.product_type == "") #{else} <![CDATA[$article.product_type]]> #{end}</g:product_type>
<g:brand>#if($article.brand == "") #{else} <![CDATA[$article.brand]]> #{end}</g:brand>
<g:gtin>$article.gtin</g:gtin>
<g:mpn>#if($article.mpn == "") #{else} <![CDATA[$article.mpn]]> #{end}</g:mpn>
<g:condition>#if($article.id == "") #{else}$article.condition#{end}</g:condition>
<g:age_group>$article.age_group</g:age_group>
<g:color>$article.color</g:color>
<g:gender>#if($article.id == "") #{else}$article.gender#{end}</g:gender>
<g:material>#if($article.material == "") #{else} <![CDATA[$article.material]]> #{end}</g:material>
<g:size>$article.size</g:size>
#if($!article.size_type) <g:size_type>$article.size_type</g:size_type> #{end}
#if($!article.size_system) <g:size_system>$article.size_system</g:size_system> #{end}
<g:item_group_id>$article.item_group_id</g:item_group_id>
<g:custom_label_0>#if($article.custom_label_0 == "") #{else} <![CDATA[$article.custom_label_0]]> #{end}</g:custom_label_0>
<g:custom_label_1>#if($article.custom_label_1 == "") #{else} <![CDATA[$article.custom_label_1]]> #{end}</g:custom_label_1>
<g:custom_label_2>#if($article.custom_label_2 == "") #{else} <![CDATA[$article.custom_label_2]]> #{end}</g:custom_label_2>
<g:custom_label_3>#if($article.id == "") #{elseif}($article.custom_label_3 == "") #{else} <![CDATA[$article.custom_label_3]]> #{end}</g:custom_label_3>
<g:custom_label_4>#if($article.custom_label_4 == "") #{else} <![CDATA[$article.custom_label_4]]> #{end}</g:custom_label_4>
<g:promotion_id>#if($article.id == "") #{else}$article.promotion_id#{end}</g:promotion_id>
<g:shipping>
<g:country>#if($article.id == "") #{else}FR#{end}</g:country> #* $article.shipping_country *#
<g:service>#if($article.id == "") #{else}Standard#{end}</g:service> #* $article.shipping_service *#
<g:price>#if($article.id == "") #{elseif}(($article.sale_price > 0) && ($article.sale_price < 75))0.00 EUR#{else}4.50 EUR#{end}</g:price> #* $article.shipping_price *#
</g:shipping>
#if($!article.shipping_label) <g:shipping_label>$article.shipping_label</g:shipping_label> #{end}
#if($!article.shipping_weight) <g:shipping_weight>$article.shipping_weight</g:shipping_weight> #{end}
#if($!article.shipping_length) <g:shipping_length>$article.shipping_length</g:shipping_length> #{end}
#if($!article.shipping_width) <g:shipping_width>$article.shipping_width</g:shipping_width> #{end}
#if($!article.shipping_height) <g:shipping_height>$article.shipping_height</g:shipping_height> #{end}
#if($!article.max_handling_time) <g:max_handling_time>$article.max_handling_time</g:max_handling_time> #{end}
#if($!article.min_handling_time) <g:min_handling_time>$article.min_handling_time</g:min_handling_time> #{end}
#if($!article.unit_pricing_measure) <g:unit_pricing_measure>$article.unit_pricing_measure</g:unit_pricing_measure> #{end}
#if($!article.unit_pricing_base_measure) <g:unit_pricing_base_measure>$article.unit_pricing_base_measure</g:unit_pricing_base_measure> #{end}
#if($!article.installment) <g:installment>$article.installment</g:installment> #{end}
#if($!article.loyalty_points) <g:loyalty_points>$article.loyalty_points</g:loyalty_points> #{end}
#if($!article.identifier_exists) <g:identifier_exists>$article.identifier_exists</g:identifier_exists> #{end}
#if($!article.adult) <g:adult>$article.adult</g:adult> #{end}
#if($!article.multipack) <g:multipack>$article.multipack</g:multipack> #{end}
#if($!article.is_bundle) <g:is_bundle>$article.is_bundle</g:is_bundle> #{end}
#if($!article.energy_efficiency_class) <g:energy_efficiency_class>$article.energy_efficiency_class</g:energy_efficiency_class> #{end}
#if($!article.pattern) <g:pattern>$article.pattern</g:pattern> #{end}
#if($!article.adwords_redirect) <g:adwords_redirect>$article.adwords_redirect</g:adwords_redirect> #{end}
#if($!article.excluded_destinations) <g:excluded_destinations>$article.excluded_destinations</g:excluded_destinations> #{end}
#if($!article.tax) <g:tax>$article.tax</g:tax> #{end}
#if($!article.display_ads_id) <g:display_ads_id>$article.display_ads_id</g:display_ads_id> #{end}
#if($!article.display_ads_similiar_id) <g:display_ads_similiar_id>$article.display_ads_similiar_id</g:display_ads_similiar_id> #{end}
if($!article.display_ads_title) <g:display_ads_title>#$article.display_ads_title</g:display_ads_title> #{end}
#if($!article.display_ads_link) <g:display_ads_link>$article.display_ads_link</g:display_ads_link> #{end}
#if($!article.display_ads_value) <g:display_ads_value>$article.display_ads_value</g:display_ads_value> #{end}
#if($!article.adwords_label) <g:adwords_label>$article.adwords_label</g:adwords_label> #{end}
#if($!article.adwords_group) <g:adwords_group>$article.adwords_group</g:adwords_group> #{end}
</item>
#end
</channel>
</rss>
Code sample - CJ Google
Code sample - CJ Google
<?xml version="1.0" encoding="UTF-8"?>
<feed>
#foreach( $article in $articleList )
<item>
<id>$article.id</id>
<title><![CDATA[$article.title]]></title>
<description><![CDATA[$article.description]]></description>
<google_product_category><![CDATA[$article.google_product_category]]></google_product_category>
<product_type>$article.product_type</product_type>
<link><![CDATA[$article.link]]></link>
<image_link><![CDATA[$article.image_link]]></image_link>
<additional_image_link><![CDATA[$article.additional_image_link]]></additional_image_link>
<condition>$article.condition</condition>
<availability>$article.availability</availability>
<availability_date></availability_date>
<expiration_date></expiration_date>
<price>$article.price</price>
<sale_price>$article.sale_price</sale_price>
<sale_price_effective_date></sale_price_effective_date>
<unit_pricing_measure></unit_pricing_measure>
<unit_pricing_base_measure></unit_pricing_base_measure>
<gtin></gtin>
<brand><![CDATA[$article.brand]]></brand>
<mpn>$article.mpn</mpn>
<identifier_exists></identifier_exists>
<adult>no</adult>
<multipack></multipack>
<item_group_id></item_group_id>
<gender></gender>
<age_group></age_group>
<color></color>
<material></material>
<pattern></pattern>
<size></size>
<size_type></size_type>
<size_system></size_system>
<shipping>
#if(($article.shipping != "ES:::")&&($article.shipping != ":::")&&($article.shipping != ""))#set( $shipping = $article.shipping.split("[:]") )#else#set( $shipping = "NULL" )#end
<country>#if($shipping != "NULL")$shipping[0]#end</country>
<region>#if($shipping != "NULL")$shipping[1]#end</region>
<service>#if($shipping != "NULL")$shipping[2]#end</service>
<price>#if($shipping != "NULL")$shipping[3]#end</price>
</shipping>
<shipping_weight></shipping_weight>
<max_handling_time></max_handling_time>
<tax>
#set( $tax = $article.tax.split("[:]") )
<country>#if($tax[0] != "")$tax[0]#end</country>
<rate>#if($tax[1] != "")$tax[1]#end</rate>
</tax>
<adwords_redirect><![CDATA[$article.adwords_redirect]]></adwords_redirect>
</item>
#end
</feed>
Bazaar Voice (XML)
This templates shows the structure for Bazaarvoice in XML (velocity). Bazaarvoice needs a separate brand and category list above the normal articles, so make sure that the needed informations are provided.
Code sample
Code sample
<?xml version="1.0" encoding="utf-8"?>
<Feed xmlns="http://www.bazaarvoice.com/xs/PRR/ProductFeed/14.7" name="CUSTOMERNAME-de" incremental="false" extractDate="$VelocityUtils.getDate('yyyy-MM-dd HH:mm:ss').replace(' ', 'T')">
<!-- Brands -->
<Brands>
#set ( $Brands= {} )
#foreach( $article in $articleList )
#if( $article.BrandName != "" && $Brands.containsKey($article.BrandName) == false )
#set ( $brandHash = $article.BrandName.hashCode() )
#if( $brandHash <= 0 )
#set ( $brandHash = $brandHash * -1 )
#end
#set ( $dummy = $Brands.put($article.BrandName, $brandHash) )
<Brand>
<ExternalId>$brandHash</ExternalId>
<Name><![CDATA[$article.BrandName]]></Name>
</Brand>
#end
#end
</Brands>
<!-- Categories -->
<Categories>
#set ( $Categories = [] )
#foreach( $article in $articleList )
#if( $article.CategoryId != "" && $Categories.contains($article.CategoryId) == false )
#set ( $dummy = $Categories.add($article.CategoryId) )
<Category>
<ExternalId><![CDATA[$article.CategoryId]]></ExternalId>
<Name><![CDATA[$article.FirstCategory]]></Name>
</Category>
#end
#if( $article.SecondCategoryID != "" && $Categories.contains($article.SecondCategoryID) == false )
#set ( $dummy = $Categories.add($article.SecondCategoryID) )
<Category>
<ExternalId>$article.SecondCategoryID</ExternalId>
#if( $article.FirstCategoryID != "" )
<ParentExternalId>$article.FirstCategoryID</ParentExternalId>
#end
<Name><![CDATA[$article.SecondCategory]]></Name>
</Category>
#end
#if( $article.SubCategoryID != "" && $article.SubCategoryID != "1308217050" && $Categories.contains($article.SubCategoryID) == false)
#set ( $dummy = $Categories.add($article.CategoryIdWebFamille) )
<Category>
<ExternalId>$article.SubCategoryID</ExternalId>
#if( $article.SecondCategoryID != "" )
<ParentExternalId>$article.SecondCategoryID</ParentExternalId>
#end
<Name><![CDATA[$article.SubCategory]]></Name>
</Category>
#end
#end
</Categories>
<!-- Products -->
<Products>
#foreach( $article in $articleList )
<Product>
<ExternalId>$article.ExternalId</ExternalId>
<Names>
<Name locale="de_DE"><![CDATA[$article.Name]]></Name>
<Name locale="de_AT"><![CDATA[$article.Name]]></Name>
</Names>
<Descriptions>
<Description locale="de_DE"><![CDATA[$article.Description]]></Description>
<Description locale="de_AT"><![CDATA[$article.Description]]></Description>
</Descriptions>
#if( $article.BrandName != "" )
<BrandExternalId><![CDATA[$Brands.get($article.BrandName)]]></BrandExternalId>
#end
#if( $article.SubCategoryID != "" )
<CategoryExternalId>$article.SubCategoryID</CategoryExternalId>
#end
<ProductPageUrls>
<ProductPageUrl locale="de_DE"><![CDATA[$article.ProductPageUrl]]></ProductPageUrl>
<ProductPageUrl locale="de_AT"><![CDATA[$article.ProductPageUrlAT]]></ProductPageUrl>
</ProductPageUrls>
<ImageUrl><![CDATA[$article.ImageUrl]]></ImageUrl>
#if(($article.bvFeFamily != "" || $article.bvFeExpand != "") && $article.SubCategoryID !="1308217489" && $article.SecondCategoryID != "1308217018" && $article.FirstCategoryID != "1308217019")
<Attributes>
#if( $article.bvFeFamily != "" )
<Attribute id="BV_FE_FAMILY">
<Value>$article.bvFeFamily</Value>
</Attribute>
#end
#if( $article.bvFeExpand != "" )
<Attribute id="BV_FE_EXPAND">
<Value>$article.bvFeExpand</Value>
</Attribute>
#end
</Attributes>
#end
#if( $article.EAN != "" )
<EANs>
#set($EANlist = $article.EAN)
#foreach($EAN in $EANlist.split("[,]"))
<EAN>$EAN</EAN>
#end
</EANs>
#end
#if( $article.UPC != "" )
<UPCs>
<UPC>$article.UPC</UPC>
</UPCs>
#end
#if( $article.ManufacturerPartNumbers != "")
<ManufacturerPartNumbers>
<ManufacturerPartNumber>$article.ManufacturerPartNr</ManufacturerPartNumber>
</ManufacturerPartNumbers>
#end
</Product>
#end
</Products>
</Feed>
Tradedoubler (XML)
This templates shows the structure for Tradedoubler in XML (velocity).
Code sample
Code sample
<?xml version="1.0" encoding="UTF-8"?>
<productFeed version="2.0">
#foreach( $article in $articleList )
<product id="$article.parentProductId">
<name><![CDATA[$article.name]]></name>
<productURL><![CDATA[$article.productURL]]></productURL>
<imageURL><![CDATA[$article.imageURL]]></imageURL>
<price>$article.price</price>
<description><![CDATA[$article.description]]></description>
<fields>
#if($article.fields != "")<field name="fields" value="$article.fields"/>#end
#if($material != "")<field name="material" value="$article.field_material"/>#end
#if($article.field_color != "")<field name="color" value="$article.field_color"/>#end
#if($article.gender != "")<field name="gender" value="$article.gender"/>#end
#if($article.sale_discount_percent != "")<field name="sale_discount_percent" value="$article.sale_discount_percent"/>#end
#if($article.base_price != "")<field name="base_price" value="$article.base_price"/>#end
#if($article.unit_pricing_base_measure != "")<field name="unit_pricing_base_measure" value="$article.unit_pricing_base_measure"/>#end
#if($article.unit_pricing_measure != "")<field name="unit_pricing_measure" value="$article.unit_pricing_measure"/>#end
#if($article.sales_drivers != "")<field name="sales_drivers" value="$article.sales_drivers"/>#end
#if($article.total_reviews != "")<field name="total_reviews" value="$article.total_reviews"/>#end
#if($article.price_label != "")<field name="price_label" value="$article.price_label"/>#end
#if($article.average_score != "")<field name="average_score" value="$article.average_score"/>#end
</fields>
<categories>
<category name="$article.categories_name" tdCategoryId="$article.tdCategoryId"/>
</categories>
<sku><![CDATA[$article.sku]]></sku>
<previousPrice><![CDATA[$article.previousPrice]]></previousPrice>
<availability><![CDATA[$article.availability]]></availability>
<shippingCost><![CDATA[$article.shippingCost]]></shippingCost>
<deliveryTime><![CDATA[$article.deliveryTime]]></deliveryTime>
<condition><![CDATA[$article.condition]]></condition>
#if($article.size != "")<size><![CDATA[$article.size]]></size>#end
<brand><![CDATA[$article.brand]]></brand>
#if($article.ean != "")<ean><![CDATA[$article.ean]]></ean>#end
#if(($article.shortDescription) && ($article.shortDescription != ""))<shortDescription></shortDescription>#end
#if(($article.promoText) && ($article.promoText != ""))<promoText><![CDATA[$article.promoText]]></promoText>#end
#if(($article.warranty) && ($article.warranty != ""))<warranty><![CDATA[$article.warranty]]></warranty>#end
#if(($article.inStock) && ($article.inStock != ""))<inStock><![CDATA[$article.inStock]]></inStock>#end
#if(($article.weight) && ($article.weight != ""))<weight><![CDATA[$article.weight]]></weight>#end
#if(($article.model) && ($article.model != ""))<model><![CDATA[$article.model]]></model>#end
</product>
#end
</productFeed>
BMEcat (XML)
This templates shows the structure for a BMEcat as XML. At the moment there is only a template available without information about hazardous or dangerous substances.
Code sample
Code sample
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<BMECAT xmlns="http://www.bmecat.org/bmecat/1.2/bmecat_new_catalog">
<HEADER>
<CATALOG>
<LANGUAGE>DEU</LANGUAGE>
<CATALOG_ID>CATALOGID</CATALOG_ID>
<CATALOG_VERSION>CATALOGVERSION</CATALOG_VERSION>
<DATETIME>
<DATE>2008-05-26</DATE>
<TIME>14:29:46</TIME>
</DATETIME>
<CURRENCY>EUR</CURRENCY>
</CATALOG>
<BUYER>
<BUYER_NAME>Unite</BUYER_NAME>
</BUYER>
<SUPPLIER>
<SUPPLIER_NAME>SUPPLIERNAME</SUPPLIER_NAME>
</SUPPLIER>
</HEADER>
<T_NEW_CATALOG>
<CATALOG_GROUP_SYSTEM>
<GROUP_SYSTEM_ID>1</GROUP_SYSTEM_ID>
<GROUP_SYSTEM_NAME>Generator 3.0 Group System</GROUP_SYSTEM_NAME>
<CATALOG_STRUCTURE type="root">
<GROUP_ID>3-1</GROUP_ID>
<GROUP_NAME>SAMPLEPARENTGROUP</GROUP_NAME>
<PARENT_ID>0</PARENT_ID>
</CATALOG_STRUCTURE>
<CATALOG_STRUCTURE type="node">
<GROUP_ID>3-01-00-00</GROUP_ID>
<GROUP_NAME>SAMPLECHILDGROUP</GROUP_NAME>
<PARENT_ID>3-1</PARENT_ID>
</CATALOG_STRUCTURE>
<!-- Add as many structure entries as needed, it should contain the whole structure tree, it can be variable too, if all information are in the export (see "Separate Informations in a header block") -->
</CATALOG_GROUP_SYSTEM>
#foreach( $article in $articleList )
<ARTICLE mode="new">
<SUPPLIER_AID>$article.sku</SUPPLIER_AID>
<ARTICLE_DETAILS>
<DESCRIPTION_SHORT>$article.DescriptionShort</DESCRIPTION_SHORT>
<DESCRIPTION_LONG>$article.DescriptionLong</DESCRIPTION_LONG>
<EAN>$article.EAN</EAN>
<MANUFACTURER_AID>$article.Manufacturernumber</MANUFACTURER_AID>
<MANUFACTURER_NAME>$article.ManufacturerName</MANUFACTURER_NAME>
<DELIVERY_TIME>2</DELIVERY_TIME>
#foreach($Keyword in $article.Keywords.split("[|]"))
<KEYWORD>$Keyword</KEYWORD>
#end
<ARTICLE_ORDER>1</ARTICLE_ORDER>
</ARTICLE_DETAILS>
#if($article.Features)
<ARTICLE_FEATURES>
#foreach($articlefeature in $article.Features.split("[|]"))
#set($features = $articlefeature.split("_"))
#set($featurename = $features[0])
#set($featurevaluelist = $features[1])
<FEATURE>
<FNAME>$featurename</FNAME>
#foreach($featurevalue in $featurevaluelist.split("[;]"))
<FVALUE>$featurevalue</FVALUE>
#end
</FEATURE>
#end
</ARTICLE_FEATURES>
#end
<ARTICLE_FEATURES>
<REFERENCE_FEATURE_SYSTEM_NAME>ECLASS-5.1.4</REFERENCE_FEATURE_SYSTEM_NAME>
<REFERENCE_FEATURE_GROUP_ID>$article.ECLASS</REFERENCE_FEATURE_GROUP_ID>
</ARTICLE_FEATURES>
<ARTICLE_ORDER_DETAILS>
<ORDER_UNIT>$article.UnitDescription</ORDER_UNIT>
<CONTENT_UNIT>C62</CONTENT_UNIT>
<NO_CU_PER_OU>$article.ContentPerUnit</NO_CU_PER_OU>
<QUANTITY_MIN>1</QUANTITY_MIN>
<QUANTITY_INTERVAL>1</QUANTITY_INTERVAL>
</ARTICLE_ORDER_DETAILS>
<ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE price_type="net_customer">
<PRICE_AMOUNT>$article.price1</PRICE_AMOUNT>
<PRICE_CURRENCY>EUR</PRICE_CURRENCY>
<TAX>$article.tax</TAX>
<LOWER_BOUND>1</LOWER_BOUND>
</ARTICLE_PRICE>
</ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE_DETAILS>
<ARTICLE_PRICE price_type="net_list">
<PRICE_AMOUNT>$article.price2</PRICE_AMOUNT>
<PRICE_CURRENCY>EUR</PRICE_CURRENCY>
<LOWER_BOUND>1</LOWER_BOUND>
</ARTICLE_PRICE>
</ARTICLE_PRICE_DETAILS>
<MIME_INFO>
#foreach($mediaentry in $media.split("[|]"))
<MIME>
#set( $mediadetail = $mediaentry.split("[::]"))
<MIME_TYPE>$mediadetail[0]</MIME_TYPE>
<MIME_SOURCE>$mediadetail[1]</MIME_SOURCE>
<MIME_DESCR>$mediadetail[2]</MIME_DESCR>
<MIME_PURPOSE>$mediadetail[3]</MIME_PURPOSE>
<MIME_ORDER>$mediadetail[4]</MIME_ORDER>
</MIME>
#end
</MIME_INFO>
<ARTICLE_REFERENCE type="similar">
#foreach($articleIdTo in $ArticleStructureId.split("[|]"))
<ART_ID_TO>$articleIdTo</ART_ID_TO>
#end
</ARTICLE_REFERENCE>
</ARTICLE>
#end
</T_NEW_CATALOG>
</BMECAT>
GDSN (XML)
This templates shows the structure for a GDSN file in XML (velocity). It is created for products with or without information about hazardous or dangerous substances.
Code sample
Code sample
<?xml version="1.0" encoding="UTF-8"?>
<catalogue_item_notification:catalogueItemNotificationMessage xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader" xmlns:catalogue_item_notification="urn:gs1:gdsn:catalogue_item_notification:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:catalogue_item_notification:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/CatalogueItemNotification.xsd">
<sh:StandardBusinessDocumentHeader>
<sh:HeaderVersion>1.0</sh:HeaderVersion>
<sh:Sender>
<sh:Identifier Authority="GS1">4006209000007</sh:Identifier>
</sh:Sender>
<sh:Receiver>
<sh:Identifier Authority="GS1">4049111100007</sh:Identifier>
</sh:Receiver>
<sh:DocumentIdentification>
<sh:Standard>GS1</sh:Standard>
<sh:TypeVersion>3.1</sh:TypeVersion>
<sh:InstanceIdentifier>932ed18b-6cad-4e31-9af6-74982c64b24a</sh:InstanceIdentifier>
<sh:Type>catalogueItemNotification</sh:Type>
<sh:MultipleType>false</sh:MultipleType>
<sh:CreationDateAndTime>$VelocityUtils.getDate('yyyy-MM-dd HH:mm:ss').replace(' ', 'T').000Z</sh:CreationDateAndTime>
</sh:DocumentIdentification>
</sh:StandardBusinessDocumentHeader>
<transaction>
<transactionIdentification>
<entityIdentification>7f0f922e-5cc5-49de-8a49-1904615f769f</entityIdentification>
<contentOwner>
<gln>4006209000007</gln>
</contentOwner>
</transactionIdentification>
<documentCommand>
<documentCommandHeader type="CORRECT">
<documentCommandIdentification>
<entityIdentification>7f0f922e-5cc5-49de-8a49-1904615f769f</entityIdentification>
<contentOwner>
<gln>4006209000007</gln>
</contentOwner>
</documentCommandIdentification>
</documentCommandHeader>
#foreach( $article in $articleList )
<catalogue_item_notification:catalogueItemNotification>
<creationDateTime>$VelocityUtils.getDate('yyyy-MM-dd HH:mm:ss').replace(' ', 'T').000Z</creationDateTime>
<documentStatusCode>ORIGINAL</documentStatusCode>
<documentStructureVersion>3.1</documentStructureVersion>
<lastUpdateDateTime>$VelocityUtils.getDate('yyyy-MM-dd HH:mm:ss').replace(' ', 'T').000Z</lastUpdateDateTime>
<catalogueItemNotificationIdentification>
<entityIdentification>7f0f922e-5cc5-49de-8a49-1904615f769f</entityIdentification>
<contentOwner>
<gln>$article.GLN</gln>
</contentOwner>
</catalogueItemNotificationIdentification>
<isReload>false</isReload>
<catalogueItem>
<catalogueItemState>
<catalogueItemStateCode>REGISTERED</catalogueItemStateCode>
</catalogueItemState>
<tradeItem>
<gtin>$article.GTIN</gtin>
<additionalTradeItemIdentification additionalTradeItemIdentificationTypeCode="SUPPLIER_ASSIGNED">$article.supplierItemID</additionalTradeItemIdentification>
<isTradeItemABaseUnit>$article.istradeItemBaseUnit</isTradeItemABaseUnit>
<isTradeItemAConsumerUnit>$article.istradeItemConsumerUnit</isTradeItemAConsumerUnit>
<isTradeItemADespatchUnit>$article.istradeItemDespatchUnit</isTradeItemADespatchUnit>
<isTradeItemAnInvoiceUnit>$article.istradeItemInvoiceUnit</isTradeItemAnInvoiceUnit>
<isTradeItemAnOrderableUnit>$article.istradeItemOrderableUnit</isTradeItemAnOrderableUnit>
<tradeItemUnitDescriptorCode>$article.tradeItemUnitDescriptorCode</tradeItemUnitDescriptorCode>
<tradeItemTradeChannelCode>$article.tradeItemTradeChannelCode</tradeItemTradeChannelCode>
<informationProviderOfTradeItem>
<gln>$article.providerGLN</gln>
<partyName>$article.partyNameLong</partyName>
</informationProviderOfTradeItem>
<manufacturerOfTradeItem>
<gln>$article.manufacturerGLN</gln>
<partyName>$article.partyNameShort</partyName>
</manufacturerOfTradeItem>
<gdsnTradeItemClassification>
<gpcCategoryCode>$article.gpcCategoryCode</gpcCategoryCode>
<gpcCategoryDefinition><![CDATA[$article.gpcCategoryDefinition]]></gpcCategoryDefinition>
<gpcCategoryName><![CDATA[$article.gpcCategoryName]]></gpcCategoryName>
</gdsnTradeItemClassification>
<targetMarket>
<targetMarketCountryCode>$article.targetMarketCountryCode</targetMarketCountryCode>
</targetMarket>
<tradeItemContactInformation>
<contactTypeCode>CXC</contactTypeCode>
<targetMarketCommunicationChannel>
<communicationChannel>
<communicationChannelCode>TELEPHONE</communicationChannelCode>
<communicationValue>+49(0)7443 12-6000</communicationValue>
</communicationChannel>
</targetMarketCommunicationChannel>
<targetMarketCommunicationChannel>
<communicationChannel>
<communicationChannelCode>WEBSITE</communicationChannelCode>
<communicationValue>https://www.fischer.de/p/$article.supplierItemID</communicationValue>
</communicationChannel>
</targetMarketCommunicationChannel>
</tradeItemContactInformation>
<tradeItemContactInformation>
<contactTypeCode>BZL</contactTypeCode>
<contactAddress><![CDATA[$article.contactAddress]]></contactAddress>
<contactName><![CDATA[$article.contactName]]></contactName>
</tradeItemContactInformation>
<tradeItemInformation>
<extension>
<delivery_purchasing_information:deliveryPurchasingInformationModule xmlns:delivery_purchasing_information="urn:gs1:gdsn:delivery_purchasing_information:xsd:3" xsi:schemaLocation="urn:gs1:gdsn:delivery_purchasing_information:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/DeliveryPurchasingInformationModule.xsd">
<deliveryPurchasingInformation>
<startAvailabilityDateTime>$article.startAvailDateTime</startAvailabilityDateTime>
</deliveryPurchasingInformation>
</delivery_purchasing_information:deliveryPurchasingInformationModule>
<duty_fee_tax_information:dutyFeeTaxInformationModule xmlns:duty_fee_tax_information="urn:gs1:gdsn:duty_fee_tax_information:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:duty_fee_tax_information:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/DutyFeeTaxInformationModule.xsd">
<dutyFeeTaxInformation>
<dutyFeeTaxAgencyCode>246</dutyFeeTaxAgencyCode>
<dutyFeeTaxTypeCode>VAT</dutyFeeTaxTypeCode>
<dutyFeeTax>
<dutyFeeTaxCategoryCode>$article.dutyFeeTaxCategoryCode</dutyFeeTaxCategoryCode>
</dutyFeeTax>
</dutyFeeTaxInformation>
</duty_fee_tax_information:dutyFeeTaxInformationModule>
<marketing_information:marketingInformationModule xmlns:marketing_information="urn:gs1:gdsn:marketing_information:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:marketing_information:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/MarketingInformationModule.xsd">
<marketingInformation>
<tradeItemMarketingMessage languageCode="$article.language1"><![CDATA[$article.tradeItemMarketingMessage]]></tradeItemMarketingMessage>
</marketingInformation>
</marketing_information:marketingInformationModule>
<packaging_information:packagingInformationModule xmlns:packaging_information="urn:gs1:gdsn:packaging_information:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:packaging_information:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/PackagingInformationModule.xsd">
<packaging>
<packagingTypeCode>$article.packagingTypeCode</packagingTypeCode>
</packaging>
</packaging_information:packagingInformationModule>
<packaging_marking:packagingMarkingModule xmlns:packaging_marking="urn:gs1:gdsn:packaging_marking:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:packaging_marking:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/PackagingMarkingModule.xsd">
<packagingMarking>
<isPackagingMarkedReturnable>false</isPackagingMarkedReturnable>
<packagingMarkedLabelAccreditationCode>GREEN_DOT</packagingMarkedLabelAccreditationCode>
</packagingMarking>
</packaging_marking:packagingMarkingModule>
<place_of_item_activity:placeOfItemActivityModule xmlns:place_of_item_activity="urn:gs1:gdsn:place_of_item_activity:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:place_of_item_activity:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/PlaceOfItemActivityModule.xsd">
<importClassification>
<importClassificationCountrySubdivisionRegionOfOrigin>$article.importClassificationCountrySubdivisionRegionOfOrigin</importClassificationCountrySubdivisionRegionOfOrigin>
<importClassificationTypeCode>INTRASTAT</importClassificationTypeCode>
<importClassificationValue>$article.importClassificationValue</importClassificationValue>
</importClassification>
<placeOfProductActivity>
<countryOfOrigin>
<countryCode>$article.placeOfProductActivitycountryCode</countryCode>
</countryOfOrigin>
</placeOfProductActivity>
</place_of_item_activity:placeOfItemActivityModule>
<regulated_trade_item:regulatedTradeItemModule xmlns:regulated_trade_item="urn:gs1:gdsn:regulated_trade_item:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:regulated_trade_item:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/RegulatedTradeItemModule.xsd">
<regulatoryInformation>
<regulatoryAct>GHS</regulatoryAct>
<regulatoryAgency>UN</regulatoryAgency>
<permitIdentification>
<regulatoryPermitIdentification>$article.regulatoryPermitIdentification</regulatoryPermitIdentification>
</permitIdentification>
</regulatoryInformation>
<regulatoryInformation>
<regulationTypeCode>$article.regulationTypeCode</regulationTypeCode>
<isTradeItemRegulationCompliant>NOT_APPLICABLE</isTradeItemRegulationCompliant>
</regulatoryInformation>
</regulated_trade_item:regulatedTradeItemModule>
<!--<referenced_file_detail_information:referencedFileDetailInformationModule xmlns:referenced_file_detail_information="urn:gs1:gdsn:referenced_file_detail_information:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:referenced_file_detail_information:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/ReferencedFileDetailInformationModule.xsd">
#if(($article.mediafile1) && ($article.mediafile1 != ""))
#set( $media1 = $article.mediafile1.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media1[0]</referencedFileTypeCode>
<fileFormatName>$media1[1]</fileFormatName>
<fileName><![CDATA[$media1[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media1[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile2) && ($article.mediafile2 != ""))
#set( $media2 = $article.mediafile2.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media2[0]</referencedFileTypeCode>
<fileFormatName>$media2[1]</fileFormatName>
<fileName><![CDATA[$media2[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media2[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile3) && ($article.mediafile3 != ""))
#set( $media3 = $article.mediafile3.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media3[0]</referencedFileTypeCode>
<fileFormatName>$media3[1]</fileFormatName>
<fileName><![CDATA[$media3[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media3[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile4) && ($article.mediafile4 != ""))
#set( $media4 = $article.mediafile4.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media4[0]</referencedFileTypeCode>
<fileFormatName>$media4[1]</fileFormatName>
<fileName><![CDATA[$media4[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media4[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile5) && ($article.mediafile5 != ""))
#set( $media5 = $article.mediafile5.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media5[0]</referencedFileTypeCode>
<fileFormatName>$media5[1]</fileFormatName>
<fileName><![CDATA[$media5[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media5[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile6) && ($article.mediafile6 != ""))
#set( $media6 = $article.mediafile6.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media6[0]</referencedFileTypeCode>
<fileFormatName>$media6[1]</fileFormatName>
<fileName><![CDATA[$media6[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media6[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile7) && ($article.mediafile7 != ""))
#set( $media7 = $article.mediafile7.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media7[0]</referencedFileTypeCode>
<fileFormatName>$media7[1]</fileFormatName>
<fileName><![CDATA[$media7[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media7[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile8) && ($article.mediafile8 != ""))
#set( $media8 = $article.mediafile8.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media8[0]</referencedFileTypeCode>
<fileFormatName>$media8[1]</fileFormatName>
<fileName><![CDATA[$media8[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media8[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile9) && ($article.mediafile9 != ""))
#set( $media9 = $article.mediafile9.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media9[0]</referencedFileTypeCode>
<fileFormatName>$media9[1]</fileFormatName>
<fileName><![CDATA[$media9[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media9[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile10) && ($article.mediafile10 != ""))
#set( $media10 = $article.mediafile10.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media10[0]</referencedFileTypeCode>
<fileFormatName>$media10[1]</fileFormatName>
<fileName><![CDATA[$media10[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media10[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile11) && ($article.mediafile11 != ""))
#set( $media11 = $article.mediafile11.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media11[0]</referencedFileTypeCode>
<fileFormatName>$media11[1]</fileFormatName>
<fileName><![CDATA[$media11[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media11[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile12) && ($article.mediafile12 != ""))
#set( $media10 = $article.mediafile12.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media12[0]</referencedFileTypeCode>
<fileFormatName>$media12[1]</fileFormatName>
<fileName><![CDATA[$media12[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media12[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile13) && ($article.mediafile13 != ""))
#set( $media13 = $article.mediafile13.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media13[0]</referencedFileTypeCode>
<fileFormatName>$media13[1]</fileFormatName>
<fileName><![CDATA[$media13[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media13[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile14) && ($article.mediafile14 != ""))
#set( $media14 = $article.mediafile14.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media14[0]</referencedFileTypeCode>
<fileFormatName>$media14[1]</fileFormatName>
<fileName><![CDATA[$media14[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media14[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile15) && ($article.mediafile15 != ""))
#set( $media15 = $article.mediafile15.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media15[0]</referencedFileTypeCode>
<fileFormatName>$media15[1]</fileFormatName>
<fileName><![CDATA[$media15[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media15[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile16) && ($article.mediafile16 != ""))
#set( $media16 = $article.mediafile16.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media16[0]</referencedFileTypeCode>
<fileFormatName>$media16[1]</fileFormatName>
<fileName><![CDATA[$media16[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media16[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile17) && ($article.mediafile17 != ""))
#set( $media17 = $article.mediafile17.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media17[0]</referencedFileTypeCode>
<fileFormatName>$media17[1]</fileFormatName>
<fileName><![CDATA[$media17[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media17[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile18) && ($article.mediafile18 != ""))
#set( $media18 = $article.mediafile18.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media18[0]</referencedFileTypeCode>
<fileFormatName>$media18[1]</fileFormatName>
<fileName><![CDATA[$media18[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media18[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile19) && ($article.mediafile19 != ""))
#set( $media19 = $article.mediafile19.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media19[0]</referencedFileTypeCode>
<fileFormatName>$media19[1]</fileFormatName>
<fileName><![CDATA[$media19[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media19[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile20) && ($article.mediafile20 != ""))
#set( $media20 = $article.mediafile20.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media20[0]</referencedFileTypeCode>
<fileFormatName>$media20[1]</fileFormatName>
<fileName><![CDATA[$media20[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media20[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile21) && ($article.mediafile21 != ""))
#set( $media21 = $article.mediafile21.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media21[0]</referencedFileTypeCode>
<fileFormatName>$media21[1]</fileFormatName>
<fileName><![CDATA[$media21[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media21[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile22) && ($article.mediafile22 != ""))
#set( $media22 = $article.mediafile22.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media22[0]</referencedFileTypeCode>
<fileFormatName>$media22[1]</fileFormatName>
<fileName><![CDATA[$media22[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media22[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile23) && ($article.mediafile23 != ""))
#set( $media23 = $article.mediafile23.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media23[0]</referencedFileTypeCode>
<fileFormatName>$media23[1]</fileFormatName>
<fileName><![CDATA[$media23[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media23[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile24) && ($article.mediafile24 != ""))
#set( $media24 = $article.mediafile24.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media24[0]</referencedFileTypeCode>
<fileFormatName>$media24[1]</fileFormatName>
<fileName><![CDATA[$media24[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media24[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile25) && ($article.mediafile25 != ""))
#set( $media25 = $article.mediafile25.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media25[0]</referencedFileTypeCode>
<fileFormatName>$media25[1]</fileFormatName>
<fileName><![CDATA[$media25[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media25[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile26) && ($article.mediafile26 != ""))
#set( $media26 = $article.mediafile26.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media26[0]</referencedFileTypeCode>
<fileFormatName>$media26[1]</fileFormatName>
<fileName><![CDATA[$media26[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media26[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile27) && ($article.mediafile27 != ""))
#set( $media27 = $article.mediafile27.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media27[0]</referencedFileTypeCode>
<fileFormatName>$media27[1]</fileFormatName>
<fileName><![CDATA[$media27[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media27[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile28) && ($article.mediafile28 != ""))
#set( $media28 = $article.mediafile28.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media28[0]</referencedFileTypeCode>
<fileFormatName>$media28[1]</fileFormatName>
<fileName><![CDATA[$media28[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media28[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile29) && ($article.mediafile29 != ""))
#set( $media29 = $article.mediafile29.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media29[0]</referencedFileTypeCode>
<fileFormatName>$media29[1]</fileFormatName>
<fileName><![CDATA[$media29[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media29[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
#if(($article.mediafile30) && ($article.mediafile30 != ""))
#set( $media30 = $article.mediafile30.split("[|]"))
<referencedFileHeader>
<referencedFileTypeCode>$media30[0]</referencedFileTypeCode>
<fileFormatName>$media30[1]</fileFormatName>
<fileName><![CDATA[$media30[2]]]></fileName>
<uniformResourceIdentifier><![CDATA[$media30[3]]]></uniformResourceIdentifier>
<referencedFileDetail>
<fileAspectRatio></fileAspectRatio><fileColourSchemeCode></fileColourSchemeCode><fileCompressionType languageCode="$article.language1"></fileCompressionType><filePixelHeight></filePixelHeight><filePixelWidth></filePixelWidth><fileResolutionDescription languageCode="$article.language1"></fileResolutionDescription><fileSize measurementUnitCode=""></fileSize><fileUsageInformation><intendedPublicationCountryCode>276</intendedPublicationCountryCode></fileUsageInformation>
</referencedFileDetail>
</referencedFileHeader>
#end
</referenced_file_detail_information:referencedFileDetailInformationModule>-->
#if($article.regulatoryPermitIdentification == "TRUE")
<safety_data_sheet:safetyDataSheetModule xmlns:safety_data_sheet="urn:gs1:gdsn:safety_data_sheet:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:safety_data_sheet:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/SafetyDataSheetModule.xsd">
<safetyDataSheetInformation>
<gHSDetail>
<gHSSignalWordsCode>$article.gHSSignalWordsCode</gHSSignalWordsCode>
#set($SymbolDescriptionCodelist = $article.gHSSymbolDescriptionCode)
#foreach($SDC in $SymbolDescriptionCodelist.split("[,]"))
<gHSSymbolDescriptionCode>$SDC</gHSSymbolDescriptionCode>
#end
#set($hazardousStatementlist = $article.hazardousStatementCode)
#foreach($HSC in $hazardousStatementlist.split("[,]"))
<hazardStatement>
<hazardStatementsCode><![CDATA[$HSC]]></hazardStatementsCode>
</hazardStatement>
#end
#set($precautionaryStatementlist = $article.precautionaryStatementCode)
#foreach($PSC in $precautionaryStatementlist.split("[,]"))
<precautionaryStatement>
#set( $PSCDetail = $PSC.split("[|]"))
<precautionaryStatementsCode>$PSCDetail[0]</precautionaryStatementsCode>
#if($PSCDetail.contains("|"))
<precautionaryStatementsDescription languageCode="$article.language1">$PSCDetail[1]</precautionaryStatementsDescription>
#end
</precautionaryStatement>
#end
</gHSDetail>
<rEACHInformation>
<isSubstanceOfVeryHighConcern><![CDATA[$article.rEACHinfoSubstanceVeryHighConcern]]></isSubstanceOfVeryHighConcern>
<isTradeItemREACHRelevant><![CDATA[$article.isTradeItemrEACHrelevant]]></isTradeItemREACHRelevant>
</rEACHInformation>
</safetyDataSheetInformation>
</safety_data_sheet:safetyDataSheetModule>
#end
<sales_information:salesInformationModule xmlns:sales_information="urn:gs1:gdsn:sales_information:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:sales_information:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/SalesInformationModule.xsd">
<salesInformation>
<isBasePriceDeclarationRelevant>$article.isBasePriceDeclarationRelevant</isBasePriceDeclarationRelevant>
</salesInformation>
</sales_information:salesInformationModule>
<trade_item_data_carrier_and_identification:tradeItemDataCarrierAndIdentificationModule xmlns:trade_item_data_carrier_and_identification="urn:gs1:gdsn:trade_item_data_carrier_and_identification:xsd:3" xsi:schemaLocation="urn:gs1:gdsn:trade_item_data_carrier_and_identification:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/TradeItemDataCarrierAndIdentificationModule.xsd">
<dataCarrier>
<dataCarrierTypeCode>$article.dataCarrierTypeCode</dataCarrierTypeCode>
</dataCarrier>
</trade_item_data_carrier_and_identification:tradeItemDataCarrierAndIdentificationModule>
<trade_item_description:tradeItemDescriptionModule xmlns:trade_item_description="urn:gs1:gdsn:trade_item_description:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:trade_item_description:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/TradeItemDescriptionModule.xsd">
<tradeItemDescriptionInformation>
<additionalTradeItemDescription languageCode="$article.language1">#if($article.tradeItemDescriptionAdditional == "")-#else<![CDATA[$article.tradeItemDescriptionAdditional]]>#end</additionalTradeItemDescription>
<descriptionShort languageCode="$article.language1"><![CDATA[$article.tradeItemDescriptionShort]]></descriptionShort>
<functionalName languageCode="$article.language1"><![CDATA[$article.tradeItemfunctionalName]]></functionalName>
<tradeItemDescription languageCode="$article.language1"><![CDATA[$article.tradeItemDescription]]></tradeItemDescription>
<brandNameInformation>
<brandName><![CDATA[$article.brandName]]></brandName>
</brandNameInformation>
</tradeItemDescriptionInformation>
</trade_item_description:tradeItemDescriptionModule>
<trade_item_measurements:tradeItemMeasurementsModule xmlns:trade_item_measurements="urn:gs1:gdsn:trade_item_measurements:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:trade_item_measurements:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/TradeItemMeasurementsModule.xsd">
<tradeItemMeasurements>
<depth measurementUnitCode="$article.tradeItemDepthUOM">$article.tradeItemDepth</depth>
<height measurementUnitCode="$article.tradeItemHeightUOM">$article.tradeItemHeight</height>
<netContent measurementUnitCode="$article.tradeItemNetContentUOM">$article.tradeItemNetContent</netContent>
<width measurementUnitCode="$article.tradeItemWidthUOM">$article.tradeItemWidth</width>
<tradeItemWeight>
<grossWeight measurementUnitCode="$article.tradeItemGrossWeightUOM">$article.tradeItemGrossWeight</grossWeight>
</tradeItemWeight>
</tradeItemMeasurements>
</trade_item_measurements:tradeItemMeasurementsModule>
<transportation_hazardous_classification:transportationHazardousClassificationModule xmlns:transportation_hazardous_classification="urn:gs1:gdsn:transportation_hazardous_classification:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:transportation_hazardous_classification:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/TransportationHazardousClassificationModule.xsd">
<transportationClassification>
<regulatedTransportationMode>
<hazardousInformationHeader>
<dangerousGoodsRegulationAgency>ADR</dangerousGoodsRegulationAgency>
<dangerousGoodsRegulationCode>$article.dangerousGoodsRegulationCode</dangerousGoodsRegulationCode>
#if($article.regulatoryPermitIdentification == "true")
<aDRTunnelRestrictionCode><![CDATA[$article.dangerousGoodsaDRtunnelRestrictionCode]]></aDRTunnelRestrictionCode>
<dangerousGoodsLimitedQuantitiesCode><![CDATA[$article.dangerousGoodsLimitedQuantitiesCode]]></dangerousGoodsLimitedQuantitiesCode>
<hazardousInformationDetail>
<classOfDangerousGoods><![CDATA[$article.dangerousGoodsClass]]></classOfDangerousGoods>
<dangerousGoodsClassificationCode><![CDATA[$article.dangerousGoodsClassificationCode]]></dangerousGoodsClassificationCode>
<dangerousGoodsHazardousCode><![CDATA[$article.dangerousGoodsHazardousCode]]></dangerousGoodsHazardousCode>
<dangerousGoodsPackingGroup><![CDATA[$article.dangerousGoodsPackingGroup]]></dangerousGoodsPackingGroup>
<dangerousGoodsTechnicalName languageCode="$article.language1"><![CDATA[$article.dangerousGoodsTechnicalName]]></dangerousGoodsTechnicalName>
<unitedNationsDangerousGoodsNumber><![CDATA[$article.dangerousGoodsUNnumber]]></unitedNationsDangerousGoodsNumber>
<dangerousHazardousLabel>
<dangerousHazardousLabelNumber><![CDATA[$article.dangerousGoodsHazardousLabelNumber]]></dangerousHazardousLabelNumber>
<dangerousHazardousLabelSequenceNumber><![CDATA[$article.dangerousGoodsHazardousLabelSequenceNumber]]></dangerousHazardousLabelSequenceNumber>
</dangerousHazardousLabel>
</hazardousInformationDetail>
#end
</hazardousInformationHeader>
</regulatedTransportationMode>
</transportationClassification>
</transportation_hazardous_classification:transportationHazardousClassificationModule>
<variable_trade_item_information:variableTradeItemInformationModule xmlns:variable_trade_item_information="urn:gs1:gdsn:variable_trade_item_information:xsd:3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:gs1:gdsn:variable_trade_item_information:xsd:3 http://www.gs1globalregistry.net/3.1/schemas/gs1/gdsn/VariableTradeItemInformationModule.xsd">
<variableTradeItemInformation>
<isTradeItemAVariableUnit>false</isTradeItemAVariableUnit>
</variableTradeItemInformation>
</variable_trade_item_information:variableTradeItemInformationModule>
</extension>
</tradeItemInformation>
<tradeItemSynchronisationDates>
<lastChangeDateTime>$article.lastChangeDateTime</lastChangeDateTime>
<effectiveDateTime>2021-09-30T00:00:00+00:00</effectiveDateTime>
<publicationDateTime>2015-10-08T00:00:00+00:00</publicationDateTime>
</tradeItemSynchronisationDates>
</tradeItem>
</catalogueItem>
</catalogue_item_notification:catalogueItemNotification>
#end
</documentCommand>
</transaction>
</catalogue_item_notification:catalogueItemNotificationMessage>
DPB (XML)
This templates shows the structure for a DPB file in XML. It is created for products with or without information about hazardous or dangerous substances.
Code sample
Code sample
<?xml version="1.0" encoding="UTF-8"?>
<dpbCatalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dpbCatalog_1.03.xsd">
<dpbHead>
<generator>fischer Deutschland Vertriebs GmbH</generator>
<generationDate>$VelocityUtils.getDate('yyyy-MM-dd HH:mm:ss').replace(' ', 'T')</generationDate>
<generationContactInformation>
<contactCompany>fischer Deutschland Vertriebs GmbH</contactCompany>
<contactName></contactName>
<contactMail></contactMail>
<contactPhone>+49(0)7443 12-6000</contactPhone>
<contactStreet>Klaus-Fischer-Str. 1</contactStreet>
<contactZip>72178</contactZip>
<contactCity>Waldachtal</contactCity>
<contactCountry>Germany</contactCountry>
</generationContactInformation>
</dpbHead>
<dpbTradeItems>
#foreach( $article in $articleList )
<dpbTradeItem supplierItemId="$article.supplierItemID" gtin="$article.GTIN" transactionType="CHANGE_BY_REFRESH">
<manufacturerGLN>$article.manufacturerGLN</manufacturerGLN>
<manufacturerName><![CDATA[$article.manufacturerName]]></manufacturerName>
<referencedTradeItemGtin>$article.tradeItemGTIN</referencedTradeItemGtin>
<effectiveDate>$article.effectiveDate</effectiveDate>
<discontinuedDate>$article.discontinuedDate</discontinuedDate>
<descriptionShort lang="$article.language1"><![CDATA[$article.descriptionShort1]]></descriptionShort>
<descriptionShort_2 lang="$article.language2"><![CDATA[$article.descriptionShort2]]></descriptionShort_2>
<marketingMessage lang="$article.language1"><![CDATA[$article.marketingMessage1]]></marketingMessage>
<marketingMessage_2 lang="$article.language2"><![CDATA[$article.marketingMessage2]]></marketingMessage_2>
<isTradeItemABaseUnit>$article.isTradeItemBaseUnit</isTradeItemABaseUnit>
<isTradeItemAnOrderableUnit>$article.isTradeItemOrderableUnit</isTradeItemAnOrderableUnit>
<isTradeItemAnInvoiceUnit>$article.isTradeItemInvoiceUnit</isTradeItemAnInvoiceUnit>
<isTradeItemAConsumerUnit>$article.isTradeItemConsumerUnit</isTradeItemAConsumerUnit>
<isTradeItemADespatchUnit>$article.isTradeItemDespatchUnit</isTradeItemADespatchUnit>
<startAvailabilityDate>$article.startAvailabilityDate</startAvailabilityDate>
<endAvailabilityDate>$article.endAvailabilityDate</endAvailabilityDate>
<importClassificationValue>$article.importClassificationValue</importClassificationValue>
<importClassificationTypeCode>$article.importClassificationTypeCode</importClassificationTypeCode>
<statisticalReportingMeasurement uom="$article.statisticalReportingMeasurementUOM">$article.statisticalReportingMeasurement</statisticalReportingMeasurement>
<orderQuantityMinimum>$article.orderQuantityMinimum</orderQuantityMinimum>
<isTradeItemAVariableUnit>$article.isTradeItemAVariableUnit</isTradeItemAVariableUnit>
#set ($DOPTCList = $article.dateOnPackagingTypeCode)
#foreach( $DOPT in $DOPTCList )
<dateOnPackagingTypeCode>$DOPT</dateOnPackagingTypeCode>
#end
<countryCodeOfOrigin>$article.countryCodeOfOrigin</countryCodeOfOrigin>
<targetMarketCountryCode>$article.countryCodeTargetMarket</targetMarketCountryCode>
#set ($PTGList = $article.publishToGLN)
#foreach( $PTG in $PTGList )
<publishToGLN>$PTG</publishToGLN>
#end
<informationProviderGLN>$article.providerGLN</informationProviderGLN>
<informationProviderName>$article.providerName</informationProviderName>
#set ($TCCList = $article.tradeChannelCode)
#foreach( $TCC in $TCCList )
<tradeChannelCode>$TCC</tradeChannelCode>
#end
<energyEfficiencyClass>$article.energyEfficiencyClass</energyEfficiencyClass>
#set ($PMLACList = $article.packagingMarkedLabelAccreditationCode)
#foreach( $PMLAC in $PMLACList )
<packagingMarkedLabelAccreditationCode>$PMLAC</packagingMarkedLabelAccreditationCode>
#end
<descriptiveTradeItemSize lang="$article.language1">$article.descriptiveTradeItemSize</descriptiveTradeItemSize>
<regulatoryPermitIdentification>$article.regulatoryPermitIdentification</regulatoryPermitIdentification>
<dangerousGoodsRegulationCode>$article.dangerousGoodsRegulationCode</dangerousGoodsRegulationCode>
<unitDescriptorCode>$article.unitDescriptorCode</unitDescriptorCode>
<isTradeItemRegulationCompliant>$article.isTradeItemRegulationCompliant</isTradeItemRegulationCompliant>
<stackingFactorTradeItem>$article.stackingFactorTradeItem</stackingFactorTradeItem>
<packagingTypeCode>$article.packagingTypeCode</packagingTypeCode>
<nextLowerLevelTradeItems>
<quantityOfChildren>$article.quantityOfChildren</quantityOfChildren>
<totalQuantityOfNextLowerLevelTradeItem>$article.totalQtyNextLowerTradeItem_level1</totalQuantityOfNextLowerLevelTradeItem>
#set( $childTradeItemList = $article.childTradeItemGtin )
#foreach( $childTradeItem in $childTradeItemList )
<childTradeItem>
#set( $CTI = $childTradeItem.split("[|]") )
<gtin></gtin>
<quantityOfNextLowerLevelTradeItem></quantityOfNextLowerLevelTradeItem>
</childTradeItem>
#end
</nextLowerLevelTradeItems>
<measurementInformation>
<netContent uom="$article.netContentUOM">$article.netContent</netContent>
<depth uom="$article.depthUOM">$article.depth</depth>
<height uom="$article.heightUOM">$article.height</height>
<width uom="$article.widthUOM">$article.width</width>
<grossWeight uom="$article.grossWeightUOM">$article.grossWeight</grossWeight>
<netWeight uom="$article.netWeightUOM">$article.netWeight</netWeight>
#set($measurementInformationList = $article.additionalDimension)
#foreach($additionalDimension in $measurementInformationList.split("[,]"))
<additionalDimension>
<dimensionTypeCode></dimensionTypeCode>
<width uom=""></width>
<height uom=""></height>
<depth uom=""></depth>
</additionalDimension>
#end
</measurementInformation>
<packagingInformation>
<isPackagingMarkedReturnable>$article.packagingMarkedReturnable</isPackagingMarkedReturnable>
#set($packagingInformationList = $article.packagingMaterial)
#foreach($packagingMaterial in $packagingInformationList.split("[,]"))
<packagingMaterial>
<packagingMaterialTypeCode></packagingMaterialTypeCode>
<packagingMaterialCompositionQuantity uom=""></packagingMaterialCompositionQuantity>
</packagingMaterial>
#end
<platformInformation>
<platformTypeCode>$article.platformTypeCode</platformTypeCode>
<quantityOfTradeItemsPerPallet>$article.qtyTradeItemsPerPallet</quantityOfTradeItemsPerPallet>
<quantityOfLayersPerPallet>$article.qtyLayerPerPallet</quantityOfLayersPerPallet>
<quantityOfCompleteLayersContainedInATradeItem>$article.qtyMaxLayersInPallet</quantityOfCompleteLayersContainedInATradeItem>
<platformTermsAndConditionsCode>$article.platformTermsAndConditionsCode</platformTermsAndConditionsCode>
<stackingFactorTransport>$article.stackingFactorTransport</stackingFactorTransport>
</platformInformation>
<nonGTINLogisticsUnitInformation>
<grossWeight uom="$article.nonGTINgrossWeightUOM">$article.nonGTINgrossWeight</grossWeight>
<height uom="$article.nonGTINheightUOM">$article.nonGTINheight</height>
<depth uom="$article.nonGTINdepthUOM">$article.nonGTINdepth</depth>
<width uom="$article.nonGTINwidthUOM">$article.nonGTINwidth</width>
<logisticsUnitStackingFactor>$article.nonGTINlogisticsUnitStackingFactor</logisticsUnitStackingFactor>
</nonGTINLogisticsUnitInformation>
</packagingInformation>
<mediaInformation>
#if(($article.mediafile1) && ($article.mediafile1 != ""))
#set( $media1 = $article.mediafile1.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media1[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media1[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile2) && ($article.mediafile2 != ""))
#set( $media2 = $article.mediafile2.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media2[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media2[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile3) && ($article.mediafile3 != ""))
#set( $media3 = $article.mediafile3.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media3[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media3[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile4) && ($article.mediafile4 != ""))
#set( $media4 = $article.mediafile4.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media4[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media4[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile5) && ($article.mediafile5 != ""))
#set( $media5 = $article.mediafile5.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media5[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media5[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile6) && ($article.mediafile6 != ""))
#set( $media6 = $article.mediafile6.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media6[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media6[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile7) && ($article.mediafile7 != ""))
#set( $media7 = $article.mediafile7.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media7[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media7[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile8) && ($article.mediafile8 != ""))
#set( $media8 = $article.mediafile8.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media8[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media8[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile9) && ($article.mediafile9 != ""))
#set( $media9 = $article.mediafile9.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media9[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media9[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile10) && ($article.mediafile10 != ""))
#set( $media10 = $article.mediafile10.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media10[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media10[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile11) && ($article.mediafile11 != ""))
#set( $media11 = $article.mediafile11.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media11[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media11[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile12) && ($article.mediafile12 != ""))
#set( $media12 = $article.mediafile12.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media12[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media12[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile13) && ($article.mediafile13 != ""))
#set( $media13 = $article.mediafile13.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media13[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media13[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile14) && ($article.mediafile14 != ""))
#set( $media14 = $article.mediafile14.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media14[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media14[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile15) && ($article.mediafile15 != ""))
#set( $media15 = $article.mediafile15.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media15[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media15[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile16) && ($article.mediafile16 != ""))
#set( $media16 = $article.mediafile16.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media16[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media16[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile17) && ($article.mediafile17 != ""))
#set( $media = $article.mediafile17.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media17[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media17[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile18) && ($article.mediafile18 != ""))
#set( $media18 = $article.mediafile18.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media18[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media18[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile19) && ($article.mediafile19 != ""))
#set( $media19 = $article.mediafile19.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media19[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media19[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile20) && ($article.mediafile20 != ""))
#set( $media20 = $article.mediafile20.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media20[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media20[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile21) && ($article.mediafile21 != ""))
#set( $media21 = $article.mediafile21.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media21[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media21[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile22) && ($article.mediafile22 != ""))
#set( $media22 = $article.mediafile22.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media22[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media22[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile23) && ($article.mediafile23 != ""))
#set( $media23 = $article.mediafile23.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media23[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media23[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile24) && ($article.mediafile24 != ""))
#set( $media24 = $article.mediafile24.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media24[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media24[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile25) && ($article.mediafile25 != ""))
#set( $media25 = $article.mediafile25.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media25[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media25[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile26) && ($article.mediafile26 != ""))
#set( $media26 = $article.mediafile26.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media26[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media26[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile27) && ($article.mediafile27 != ""))
#set( $media27 = $article.mediafile27.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media27[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media27[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile28) && ($article.mediafile28 != ""))
#set( $media28 = $article.mediafile28.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media28[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media28[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile29) && ($article.mediafile29 != ""))
#set( $media29 = $article.mediafile29.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media29[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media29[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
#if(($article.mediafile30) && ($article.mediafile30 != ""))
#set( $media30 = $article.mediafile30.split("[|]"))
<referencedMedia>
<referencedFileTypeCode>$media30[0]</referencedFileTypeCode>
<multimediaPoolFileReference><![CDATA[$media30[1]]]></multimediaPoolFileReference>
</referencedMedia>
#end
</mediaInformation>
<salesInformation>
<tradeItemPrice currencyCode="$article.currencyCode">$article.tradeItemPrice</tradeItemPrice>
<priceBasisQuantity uom="$article.priceBasisQtyUOM">$article.priceBasisQty</priceBasisQuantity>
<priceEffectiveEndDate>$article.priceEffectiveEndDate</priceEffectiveEndDate>
<priceEffectiveStartDate>$article.priceEffectiveStartDate</priceEffectiveStartDate>
<dutyFeeTaxCategoryCode>$article.dutyFeeTaxCategoryCode</dutyFeeTaxCategoryCode>
<isBasePriceDeclarationRelevant>$article.isbasePriceDeclarationRelevant</isBasePriceDeclarationRelevant>
<priceComparisonMeasurement uom="$article.priceComparisonMeasurementUOM">$article.priceComparisonMeasurement</priceComparisonMeasurement>
<discountGroup>$article.discountGroup</discountGroup>
<discountGroupDescription lang="$article.language1">$article.discountGroupDescription</discountGroupDescription>
</salesInformation>
#if($article.dangerousGoodsRegulationCode == "Ja")
<hazardousSubstancesInformation>
<safetyDataSheetNumber>#if(($article.safetyDataSheetNumber) && ($article.safetyDataSheetNumber != ""))<![CDATA[$article.safetyDataSheetNumber]]>#end</safetyDataSheetNumber>
<flashPointTemperature uom="$article.flashPointTemperatureUOM">#if(($article.flashPointTemperature) && ($article.flashPointTemperature != ""))<![CDATA[$article.flashPointTemperature]]>#end</flashPointTemperature>
<ghsInformation>
#set( $GHSSDCList = $article.ghsSymbolDescriptionCode )
#foreach( $GHSSDC in $GHSSDCList.split("[,]") )
<ghsSymbolDescriptionCode><![CDATA[$GHSSDC]]></ghsSymbolDescriptionCode>
#end
<ghsSignalWordsCode><![CDATA[$article.ghsSignalWordsCode]]></ghsSignalWordsCode>
<regulatedChemicalDescription lang="$article.language1">#if(($article.regulatedChemicalDescription) && ($article.regulatedChemicalDescription != ""))<![CDATA[$article.regulatedChemicalDescription]]>#end</regulatedChemicalDescription>
#set( $HSCDList = $article.hazardStatementsCode )
#foreach( $HSCD in $HSCDList.split("[,]") )
<hazardStatement>
#set( $HSCdetail = $HSCD.split("[|]"))
<hazardStatementsCode><![CDATA[$HSCdetail[0]]]></hazardStatementsCode>
#if( $HSCdetail.contains("|") )
<hazardStatementsDescription lang="$article.language1"><![CDATA[$HSCdetail[1]]]></hazardStatementsDescription>
#end
</hazardStatement>
#end
#set($PSCDList = $article.precautionaryStatementsCode)
#foreach($PSCD in $PSCDList.split("[,]"))
<precautionaryStatement>
#set( $PSCDdetail = $PSCD.split("[|]"))
<precautionaryStatementsCode><![CDATA[$PSCDdetail[0]]]></precautionaryStatementsCode>
#if($PSCDdetail.contains("|"))
<precautionaryStatementsDescription lang="$article.language1"><![CDATA[$PSCDdetail[1]]]></precautionaryStatementsDescription>
#end
</precautionaryStatement>
#end
</ghsInformation>
<dangerousSubstanceWasteCode>#if(($article.dangerousSubstanceWasteCode) && ($article.dangerousSubstanceWasteCode != ""))<![CDATA[$article.dangerousSubstanceWasteCode]]>#end</dangerousSubstanceWasteCode>
<storageCompatibilityCode>#if(($article.storageCompatibilityCode) && ($article.storageCompatibilityCode != ""))<![CDATA[$article.storageCompatibilityCode]]>#end</storageCompatibilityCode>
<waterHazardCode>#if(($article.waterHazardCode) && ($article.waterHazardCode != ""))<![CDATA[$article.waterHazardCode]]>#end</waterHazardCode>
<exactPH>#if(($article.exactPH) && ($article.exactPH != ""))<![CDATA[$article.exactPH]]>#end</exactPH>
<reachInformation>
<isTradeItemReachRelevant>#if(($article.isTradeItemReachRelevant) && ($article.isTradeItemReachRelevant != ""))<![CDATA[$article.isTradeItemReachRelevant]]>#end</isTradeItemReachRelevant>
<isSubstanceOfVeryHighConcern>#if(($article.isSubstanceOfVeryHighConcern) && ($article.isSubstanceOfVeryHighConcern != ""))<![CDATA[$article.isSubstanceOfVeryHighConcern]]>#end</isSubstanceOfVeryHighConcern>
<reachChemicalRegistrationNumber>#if(($article.reachChemicalRegistrationNumber) && ($article.reachChemicalRegistrationNumber != ""))<![CDATA[$article.reachChemicalRegistrationNumber]]>#end</reachChemicalRegistrationNumber>
<reachUseDescriptorInformation>
<reachSectorUseDescriptorCode>#if(($article.reachSectorUseDescriptorCode) && ($article.reachSectorUseDescriptorCode != ""))<![CDATA[$article.reachSectorUseDescriptorCode]]>#end</reachSectorUseDescriptorCode>
<reachChemicalProductUseDescriptorCodeType>#if(($article.reachChemicalProductUseDescriptorCodeType) && ($article.reachChemicalProductUseDescriptorCodeType != ""))<![CDATA[$article.reachChemicalProductUseDescriptorCodeType]]>#end</reachChemicalProductUseDescriptorCodeType>
<reachEnvironmentReleaseUseCategoryCode>#if(($article.reachEnvironmentReleaseUseCategoryCode) && ($article.reachEnvironmentReleaseUseCategoryCode != ""))<![CDATA[$article.reachEnvironmentReleaseUseCategoryCode]]>#end</reachEnvironmentReleaseUseCategoryCode>
<reachProcessUseDescriptorCode>#if(($article.reachProcessUseDescriptorCode) && ($article.reachProcessUseDescriptorCode != ""))<![CDATA[$article.reachProcessUseDescriptorCode]]>#end</reachProcessUseDescriptorCode>
</reachUseDescriptorInformation>
</reachInformation>
</hazardousSubstancesInformation>
<hazardousGoodsInformation>
<regulatedTransportation>
<hazardousInformationDetail>
<unitedNationsDangerousGoodsNumber>#if(($article.dangerousGoodsUNNumber) && ($article.dangerousGoodsUNNumber != ""))<![CDATA[$article.dangerousGoodsUNNumber]]>#end</unitedNationsDangerousGoodsNumber>
<classOfDangerousGoods>#if(($article.dangerousGoodsClass) && ($article.dangerousGoodsClass != ""))<![CDATA[$article.dangerousGoodsClass]]>#end</classOfDangerousGoods>
<dangerousGoodsTechnicalName lang="$article.language1">#if(($article.dangerousGoodsTechnicalName) && ($article.dangerousGoodsTechnicalName != ""))<![CDATA[$article.dangerousGoodsTechnicalName]]>#end</dangerousGoodsTechnicalName>
<dangerousHazardousLabelNumber>#if(($article.dangerousHazardousLabelNumber) && ($article.dangerousHazardousLabelNumber != ""))<![CDATA[$article.dangerousHazardousLabelNumber]]>#end</dangerousHazardousLabelNumber>
<dangerousGoodsPackingGroup>#if(($article.dangerousGoodsPackingGroup) && ($article.dangerousGoodsPackingGroup != ""))<![CDATA[$article.dangerousGoodsPackingGroup]]>#end</dangerousGoodsPackingGroup>
<dangerousGoodsClassificationCode>#if(($article.dangerousGoodsClassificationCode) && ($article.dangerousGoodsClassificationCode != ""))<![CDATA[$article.dangerousGoodsClassificationCode]]>#end</dangerousGoodsClassificationCode>
<dangerousGoodsHazardousCode>#if(($article.dangerousGoodsHazardousCode) && ($article.dangerousGoodsHazardousCode != ""))<![CDATA[$article.dangerousGoodsHazardousCode]]>#end</dangerousGoodsHazardousCode>
#set( $DGSPList = $article.dangerousGoodsSpecialProvisions )
#foreach( $DGSP in $dgspList.split("[,]") )
<dangerousGoodsSpecialProvisions><![CDATA[$DGSP]]></dangerousGoodsSpecialProvisions>
#end
<netMassOfExplosives uom="$article.netMassOfExplosivesUOM">#if(($article.netMassOfExplosives) && ($article.netMassOfExplosives != ""))<![CDATA[$article.netMassOfExplosives]]>#end</netMassOfExplosives>
</hazardousInformationDetail>
<adrTunnelRestrictionCode>#if(($article.adrTunnelRestrictionCode) && ($article.adrTunnelRestrictionCode != ""))<![CDATA[$article.adrTunnelRestrictionCode]]>#end</adrTunnelRestrictionCode>
<transportationMaximumQuantity uom="$article.transportationMaximumQuantityUOM">#if(($article.transportationMaximumQuantity) && ($article.transportationMaximumQuantity != ""))<![CDATA[$article.transportationMaximumQuantity]]>#end</transportationMaximumQuantity>
<adrDangerousGoodsLimitedQuantitiesCode>#if(($article.adrDangerousGoodsLimitedQuantitiesCode) && ($article.adrDangerousGoodsLimitedQuantitiesCode != ""))<![CDATA[$article.adrDangerousGoodsLimitedQuantitiesCode]]>#end</adrDangerousGoodsLimitedQuantitiesCode>
<hazardousMaterialAdditionalInformation lang="$article.language1">#if(($article.hazardousMaterialAdditionalInformation) && ($article.hazardousMaterialAdditionalInformation != ""))<![CDATA[$article.hazardousMaterialAdditionalInformation]]>#end</hazardousMaterialAdditionalInformation>
</regulatedTransportation>
<tradeItemContactName>#if(($article.tradeItemContactName) && ($article.tradeItemContactName != ""))<![CDATA[$article.tradeItemContactName]]>#end</tradeItemContactName>
</hazardousGoodsInformation>
#end
</dpbTradeItem>
#end
</dpbTradeItems>
</dpbCatalog>
Loadbee (JSON)
This template shows the structure for Loadbee as JSON.
The template includes many optional datafields which can be deleted, if not needed.
Code sample
Code sample
[
{
"meta":{
"type":"product",
"format":"2.0.0",
"revision":"1",
"date":"2023-02-20T15:08:18",
"batch":null,
"reference":null
},
"fields":[
{"key":"organisation","value":"SAMPLEORGA"},
{"key":"code","value":"12345"},
{"key":"country","value":"DE"},
{"key":"locale","value":"de_DE"},
{"key":"title","value":"<![CDATA[TITLETEXT]]>"},
{"key":"description","value":"<![CDATA[DESCRIPTIONTEXT]]>"}
],
"identifiers":[
{"type":"ean","identifier":"1234567891012"},
{"type":"sku","identifier":"$article.SKU"}
],
"traits":{
"attributes":[
{"label":"Abmessungen",
"options":{},
"items":[
{"data":{
"label":"Höhe",
"value":"0",
"unit":"mm",
"media":null
},
"options":{
"tags":[]
}
},
{"data":{
"label":"Breite",
"value":"0",
"unit":"mm",
"media":null
},
"options":{
"tags":[]
}
},
{"data":{
"label":"Länge",
"value":"0",
"unit":"mm",
"media":null
},
"options":{
"tags":[]
}
}
]
},
{"label":"Gewicht",
"options":{},
"items":[
{"data":{
"label":"Bruttogewicht",
"value":"95",
"unit":"g",
"media":null
},
"options":{
"tags":[]
}
}
]
},
{"label":"Fassungsvermögen",
"options":{},
"items":[
{"data":{
"label":"Bruttofüllmenge",
"value":"0",
"unit":"ml",
"media":null
},
"options":{
"tags":[]
}
}
]
}
],
"descriptions":[
{"label":"Produktbeschreibung",
"options":{},
"items":[
{"data":{
"label":"Beschreibung",
"value":"<![CDATA[DESCRIPTIONTEXT]]>",
"media":null
},
"options":{
"tags":[]
}
},
{"data":{
"label":"Zusätzliche Angaben",
"value":"<![CDATA[]]>",
"media":null
},
"options":{
"tags":[]
}
}
]
}
],
"features":[
{"label":"Alleinstellungsmerkmale",
"options":{},
"items":[
{"data":{
"label":"Eigenschaft 1",
"value":"<![CDATA[]]>",
"media":null
},
"options":{
"tags":[]
}
},
{"data":{
"label":" Eigenschaft 2",
"value":"<![CDATA[]]>",
"media":null
},
"options":{
"tags":[]
}
}
]
},
{"label":"Einsatzzweck",
"options":{},
"items":[
{"data":{
"label":"Einsatzzweck 1",
"value":"",
"media":null
},
"options":{
"tags":[]
}
}
]
}
],
"products":[
{"label":"ähnliche Produkte",
"options":{},
"items":[
{"data":{
"label":null,
"value":""
},
"options":{
"tags":[]
}
},
{"data":{
"label":null,
"value":""
},
"options":{
"tags":[]
}
}
]
},
{"label":"Vergleichstabelle",
"options":{},
"items":[
{"data":{
"label":null,
"value":""
},
"options":{
"tags":[]
}
},
{"data":{
"label":null,
"value":""
},
"options":{
"tags":[]
}
},
{"data":{
"label":null,
"value":""
},
"options":{
"tags":[]
}
}
]
}
]
},
"media":{
"Media Name 1":{
"type":"external",
"source":"https://IMAGEURL.de/IMAGENAME.jpg",
"checksum":null,
"reference":null,
"meta":{
"mime":"jpg",
"size":null
}
}
,
"Media Name 2":{
"type":"external",
"source":"https://IMAGEURL.de/IMAGENAME.jpg",
"checksum":null,
"reference":null,
"meta":{
"mime":"jpg",
"size":null
}
}
}
},
{}
]
Bringoo (JSON)
This templates shows the structure for Bringoo in JSON (velocity). Bringoo needs 3 different files (data, price, stock/availability). The specialty with Bringoo is, that no datafield can be empty, so every field has to be filled with a value:
"UNKNOWN" if a value is never given
"null" if it is only empty but not for every article.
To make sure that this is provided, you should use the following code if it is not clear that all fields are filled correctly:
#if($article.EXPORTDATAFIELD)$article.EXPORTDATAFIELD#else null#end,
These samples are used for a customer with some special cases, so please check if these files are working with a normal Bringoo setup.
Code sample - Data Feed
Code sample - Data Feed
[
#foreach( $article in $articleList )
{
"name_i18n": {
"EN": #if($article.name_i18n_en)$article.name_i18n_en#else null#end,
"DE": #if($article.name_i18n_de)$article.name_i18n_de#else null#end,
"FR": #if($article.name_i18n_fr)$article.name_i18n_fr#else null#end
},
"isActive": $article.isActive,
"gtin": "$article.gtin",
"sku": "$article.sku",
"ean": "$article.ean",
"productSubcategoryCode": #if($article.productSubcategoryCode)$article.productSubcategoryCode#else null#end,
"productCategoryCode": $article.productCategoryCode,
"imageUrls": [
#if(($article.imageUrls) && ($article.imageUrls != ""))
$article.imageUrls <!-- maybe a loop for more then 1 picture -->
#end
],
"weight": #if($article.weight)$article.weight#else null#end,
"productUnitCode": "$article.productUnitCode",
"baseUnitCode": "$article.baseUnitCode",
"productMeasurement": $article.productMeasurement,
"baseMeasurement": $article.baseMeasurement,
"defaultPrice": $article.defaultPrice,
"chargeTax": $article.chargeTax,
"vatCode": $article.vatCode,
"manufacturer_i18n": {
"EN": #if($article.manufacturer_i18n_en)$article.manufacturer_i18n_en#else null#end,
"DE": #if($article.manufacturer_i18n_de)$article.manufacturer_i18n_de#else null#end,
"FR": #if($article.manufacturer_i18n_fr)$article.manufacturer_i18n_fr#else null#end
},
"special_notes_i18n": {
"EN": #if($article.specialnotes_i18n_en)$article.specialnotes_i18n_en#else null#end,
"DE": #if($article.specialnotes_i18n_de)$article.specialnotes_i18n_de#else null#end,
"FR": #if($article.specialnotes_i18n_fr)$article.specialnotes_i18n_fr#else null#end
},
"description_i18n": {
"EN": #if($article.description_i18n_en)$article.description_i18n_en#else null#end,
"DE": #if($article.description_i18n_de)$article.description_i18n_de#else null#end,
"FR": #if($article.description_i18n_fr)$article.description_i18n_fr#else null#end
},
"note_internal": #if($article.note_internal)$article.note_internal#else null#end,
"note_external": #if($article.note_external)$article.note_external#else null#end,
"isFairTrade": #if($article.isFairTrade)$article.isFairTrade#else null#end,
"isPublicDateTime": #if($article.isPublicDateTime)$article.isPublicDateTime#else null#end,
"productBrandCode": #if($article.productBrandCode)$article.productBrandCode#else null#end,
"productBrandName": #if($article.productBrandName)$article.productBrandName#else null#end,
"costPrice": #if($article.costPrice)$article.costPrice#else 0#end,
"deposit": {
"itemVatCode": #if($article.deposit_itemVatCode)$article.deposit_itemVatCode#else null#end,
"boxVatCode": #if($article.deposit_boxVatCode)$article.deposit_boxVatCode#else null#end,
"itemDepositValueGross": #if($article.deposit_itemDepositValueGross)$article.deposit_itemDepositValueGross#else null#end,
"boxDepositValueGross": #if($article.deposit_boxDepositValueGross)$article.deposit_boxDepositValueGross#else null#end
},
"tags_i18n": {
"EN": #if($article.tags_i18n_en)$article.tags_i18n_de#else null#end,
"DE": #if($article.tags_i18n_de)$article.tags_i18n_de#else null#end,
"FR": #if($article.tags_i18n_fr)$article.tags_i18n_fr#else null#end
},
"metaData": {},
"productAttributes": {
"isAlcohol": #if($article.productAttributes_isAlcohol)$article.productAttributes_isAlcohol#else false#end,
"isBio": #if($article.productAttributes_isBio)$article.productAttributes_isBio#else false#end,
"isFrozen": #if($article.productAttributes_isFrozen)$article.productAttributes_isFrozen#else false#end,
"isTobacco": #if($article.productAttributes_isTobacco)$article.productAttributes_isTobacco#else false#end,
"isVegan": #if($article.productAttributes_isVegan)$article.productAttributes_isVegan#else false#end,
"isVegetarian": #if($article.productAttributes_isVegetarian)$article.productAttributes_isVegetarian#else false#end,
"isLactoseFree": #if($article.productAttributes_isLactoseFree)$article.productAttributes_isLactoseFree#else false#end,
"isGlutenFree": #if($article.productAttributes_isGlutenFree)$article.productAttributes_isGlutenFree#else false#end,
"nutriScore": #if($article.productAttributes_nutriScore)$article.productAttributes_nutriScore#else null#end,
"ingredients_i18n": {
"EN": #if($article.productAttributes_ingredients_i18n_en)$article.productAttributes_ingredients_i18n_en#else null#end,
"DE": #if($article.productAttributes_ingredients_i18n_de)$article.productAttributes_ingredients_i18n_de#else null#end,
"FR": #if($article.productAttributes_ingredients_i18n_fr)$article.productAttributes_ingredients_i18n_fr#else null#end
},
"alcoholValue": #if($article.productAttributes_alcoholValue)$article.productAttributes_alcoholValue#else null#end,
"nutritional_data": {
"energyTotal": #if($article.productAttributes_nutritional_energyTotal)$article.productAttributes_nutritional_energyTotal#else null#end,
"calories": #if($article.productAttributes_nutritional_calories)$article.productAttributes_nutritional_calories#else null#end,
"fatTotal": #if($article.productAttributes_nutritional_fatTotal)$article.productAttributes_nutritional_fatTotal#else null#end,
"fatSaturates": #if($article.productAttributes_nutritional_fatSaturates)$article.productAttributes_nutritional_fatSaturates#else null#end,
"carbohydrateTotal": #if($article.productAttributes_nutritional_carbohydrateTotal)$article.productAttributes_nutritional_carbohydrateTotal#else null#end,
"carbohydrateSugars": #if($article.productAttributes_nutritional_carbohydrateSugars)$article.productAttributes_nutritional_carbohydrateSugars#else null#end,
"fibres": #if($article.productAttributes_nutritional_fibres)$article.productAttributes_nutritional_fibres#else null#end,
"protein": #if($article.productAttributes_nutritional_protein)$article.productAttributes_nutritional_protein#else null#end,
"salt": #if($article.productAttributes_nutritional_salt)$article.productAttributes_nutritional_salt#else null#end
},
"allergenic_information_i18n": {
"EN": #if($article.productAttributes_allergenicInfo_i18n_en)$article.productAttributes_allergenicInfo_i18n_en#else null#end,
"DE": #if($article.productAttributes_allergenicInfo_i18n_de)$article.productAttributes_allergenicInfo_i18n_de#else null#end,
"FR": #if($article.productAttributes_allergenicInfo_i18n_fr)$article.productAttributes_allergenicInfo_i18n_fr#else null#end
},
"med_limitation": #if($article.med_limitation)$article.med_limitation#else null#end,
"med_recommendation": #if($article.med_recommendation)$article.med_recommendation#else null#end,
"med_usecases": #if($article.med_usecases)$article.med_usecases#else null#end,
"med_interaction": #if($article.med_interaction)$article.med_interaction#else null#end,
"med_sideeffects": #if($article.med_sideeffects)$article.med_sideeffects#else null#end
}
},
#end
{}
]
Code Sample - Availability Feed
Code Sample - Availability Feed
[
#foreach( $article in $articleList )
{
"gtin": "$article.gtin",
"isOutOfStock": $article.isOutOfStock_store1,
"isRetired": null,
"availableDateStart": null,
"availableDateEnd": null,
"store_id": $article.store1
},
{
"gtin": "$article.gtin",
"isOutOfStock": $article.isOutOfStock_store2,
"isRetired": null,
"availableDateStart": null,
"availableDateEnd": null,
"store_id": $article.store2
},
#end
{}
]
Code Sample - Price Feed
Code Sample - Price Feed
[
#foreach( $article in $articleList )
{
"gtin": "$article.gtin",
"priceType": "REGULAR",
"priceDateStart": null,
"priceDateEnd": null,
"price": $article.price_store1,
"calculatedPrice": $article.calculatedPrice_store1,
"vat": $article.vat,
"vat_code": $article.vat_code,
"store_id": $article.store1
},
{
"gtin": "$article.gtin",
"priceType": "REGULAR",
"priceDateStart": null,
"priceDateEnd": null,
"price": $article.price_store2,
"calculatedPrice": $article.calculatedPrice_store2,
"vat": $article.vat,
"vat_code": $article.vat_code,
"store_id": $article.store2
},
#end
{}
]


