# Article Import

## Short description

This import is enabled for customers that manage their product data in the PIM component of Vendisto.

The Article XML import is the XML equivalent of the Article Excel import. These files enable the user to batch update product data in Vendisto.

The file can be upload by hand into Vendisto via the import/export dialog or by an automated process that is started when the file is placed in the correct upload location within in the FTP root.

If an optional field is left empty, or the element itself does not exist, the importer will use an empty string.\
\
Some translatable elements can be defined in serveral languages and may therefor occur more than once for different languages.

## Delivery method

**Update Frequency**: Batch at least once a day&#x20;

**Incremental or complete set:** Incremental

**Filetype:** Zipped XML

**Filename: \[SHOPNAME]\_Articles**\_**\[INDEXNUMBER]**.xml\
**Transport:** over FTPS, FTPS Vendisto server hosted by INTEGRACE, file will be placed on FTPS server by ERP party.

**Location within FTP root:** \Vendisto\Integration\\

## Structure XML

```markup
<?xml version="1.0" encoding="utf-8"?>
<Import>
    <ImportSettings>
        <Importer>Articles</Importer>
        <Version>1.0</Version>
        <IsPartial>Y</IsPartial>
        <CreateUnknownClassificationPaths>Y</CreateUnknownClassificationPaths>
        <SplitArticlePropertyValuesInUnits>Y</SplitArticlePropertyValuesInUnits>
        <DisableGtinValidation>N</DisableGtinValidation>
        <DeleteNotImportedProperties>N</DeleteNotImportedProperties>    
        <ArticleGroupDefaultTitle>ArticleNumber</ArticleGroupDefaultTitle>    
        <EnableArticleGroupSplitting>N</EnableArticleGroupSplitting>    
    </ImportSettings>
    <ArticleGroups>
        <ArticleGroup id="">
            <Name lcid="">String</Name>
            <DescriptionHeader lcid="">String</DescriptionHeader>
            <DescriptionFooter lcid="">String</DescriptionFooter>
            <Brand>String</Brand>
            <Kind lcid="">String</Kind>
            <BluePencil transposed=""/>
            <Classification declassify="">
                <Level1 lcid="">string</Level1>
                <Level2 lcid="">string</Level2>
                <Level3 lcid="">string</Level3>
                <Level4 lcid="">string</Level4>
            </Classification>
            <Assets>
                <Logo>
                    <Name lcid="">String</Name>
                    <Value lcid="">String</Value>
                </Logo>
                <Image>
                    <Name lcid="">String</Name>
                    <Value lcid="">String</Value>
                </Image>
                <Icon>
                    <Name lcid="">String</Name>
                    <Value lcid="">String</Value>
                </Icon>
                <Document>
                    <Name lcid="">String</Name>
                    <Value lcid="">String</Value>
                </Document>
                <Media>
                    <Name lcid="">String</Name>
                    <Value lcid="">String</Value>
                </Media>
            </Assets>
            <Articles>
                <Article number="" gtin="" state="">
                    <Title lcid="">String</Title>
                    <Description lcid="">String</Description>
                    <TypeNumber lcid="">String</TypeNumber>
                    <Manufacturer gln="" mpn="" gtin=""/>
                    <SubGroup id="" index=""/>
                    <Assets>
                        <Logo>
                            <Name lcid="">String</Name>
                            <Value lcid="">String</Value>
                        </Logo>
                        <Image>
                            <Name lcid="">String</Name>
                            <Value lcid="">String</Value>
                        </Image>
                        <Icon>
                            <Name lcid="">String</Name>
                            <Value lcid="">String</Value>
                        </Icon>
                        <Document>
                            <Name lcid="">String</Name>
                            <Value lcid="">String</Value>
                        </Document>
                        <Media>
                            <Name lcid="">String</Name>
                            <Value lcid="">String</Value>
                        </Media>
                    </Assets>
                    <Properties>
                        <Property>
                            <Header>String</Header>
                            <Value lcid="">String</Value>
                            <Unit>String</Unit>
                            <Icon>String</Icon>
                            <BluePencil hidden="" spec="" index="">
                                <Description>String</Description>
                                <Icon>String</Icon>
                            </BluePencil>
                        </Property>
                    </Properties>
                    <AuthorizationProfiles>
                        <AuthorizationProfile>
                        </AuthorizationProfile>
                        <AuthorizationProfile>
                        </AuthorizationProfile>
                    </AuthorizationProfiles>
                </Article>
            </Articles>
            <SubGroups>
                <SubGroup id="">
                    <DescriptionHeader>String</DescriptionHeader>
                    <DescriptionFooter>String</DescriptionFooter>
                </SubGroup>
            </SubGroups>
        </ArticleGroup>
    </ArticleGroups>
</Import>

```

## Fields XML

Some translatable elements can be defined in serveral languages. On ArticleGroup for the Name, DescriptionHeader, DescriptionFooter or Kind elements, on Classification for the differnt Level elements, on Article for the Title, Description and TypeNumber elements and on Property for the Value element. All these elements may therefor occur more than once if they are identified by different lcid attributes.\
On the Logo, Image, Icon, and Media Asset elements the Name element may occur more than once (for different languages) but the Value element, which has also a lcid attribute, may occur only once.\\

**Import element:**

<table data-header-hidden><thead><tr><th width="173">Name</th><th>Description</th><th width="150">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>ImportSettings</td><td>Container element for the import settings</td><td>Element</td><td>Required</td></tr><tr><td>ArticleGroups</td><td>Container for the ArticleGroup elements</td><td>Element</td><td>Required</td></tr></tbody></table>

**ImportSettings element:**

<table data-header-hidden><thead><tr><th width="196.9836956521739">Name</th><th width="185">Description</th><th width="150">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Importer</td><td>Name of the importer.<br>Should be Articles.</td><td>Text</td><td>Optional</td></tr><tr><td>Version</td><td>Version of the import xml. To be used for backward compatibility issues.</td><td>Text,<br>default 1.0</td><td>Optional</td></tr><tr><td>IsPartial</td><td>If set to N, articles that are not in the import will be suspended.</td><td><p>Boolean</p><p>Default: Y</p></td><td>Optional</td></tr><tr><td>CreateUnknownClassificationPaths</td><td>If set to Y, new classification nodes will be added. If set to N, an error will be generated if unknow classification nodes are encountered.</td><td><p>Boolean</p><p>Default: Y</p></td><td>Optional</td></tr><tr><td>SplitArticlePropertyValuesInUnits</td><td>Automatically split units that are part of the Value field of property into the Unit field.</td><td><p>Boolean</p><p>Default: Y</p></td><td>Optional</td></tr><tr><td>DisableGtinValidation</td><td>If set to Y, the validation on the correctness of Gtin numbers is skipped in the import.</td><td><p>Boolean</p><p>Default: N</p></td><td>Optional</td></tr><tr><td>DeleteNotImportedProperties</td><td>If set to Y, the import will assume that the imported properties complete sets of properties for the imported articles. Properties that are available in the database but not imported will be deleted.</td><td><p>Boolean</p><p>Default: N</p></td><td>Optional</td></tr><tr><td>ArticleGroupDefaultTitle</td><td>The ArticleGroupDefaultTitle can be set to Undefined (this is the default value) or to ArticleNumber. If set to ArticleNumber this setting specifies that for new articles the ArticleNumber will be used as the title of the ArticleGroup when creating an articlegroup for the article if no Title element is present on the ArticleGroup XML.</td><td>ArticleGroupDefaultTitle<br>Default: Undefined</td><td>Optional</td></tr><tr><td>EnableArticleGroupSplitting</td><td>If EnableArticleGroupSplitting is set to to Y (default value N) the article import requires that all of the articlegroup's articles are present in the article group node in the XML import. Articles that are not present in the node will be split from the articlegroup after updating the article. The default behaviour of this setting will in most cases be the expected behaviour. Leaving this setting tot N will enable the update of a single article with XML coming from the ERP without splitting the article from the articlegroup.</td><td>Boolean<br>Default: N</td><td>Optional</td></tr></tbody></table>

{% hint style="info" %}
The IsPartial element works on rows, not columns. A partial import will update or add the articles it contains, and will not delete articles that are not mentioned. For a specific article, the partial import assumes that the information that is offered is exhaustive, and will delete any information that is present in the database but not mentioned in the file.
{% endhint %}

**ArticleGroup element:**

<table data-header-hidden><thead><tr><th width="205">Name</th><th width="187">Description</th><th width="150">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>id</td><td>The unique identifier of the article group</td><td>GUID</td><td>Optional</td></tr><tr><td>Name</td><td>The name of the article group</td><td>Text</td><td>Required</td></tr><tr><td>DescriptionHeader</td><td>The description header of the article group</td><td>Text</td><td>Optional</td></tr><tr><td>DescriptionFooter</td><td>The description footer of the article group</td><td>Text</td><td>Optional</td></tr><tr><td>Brand</td><td>The brand of the article group</td><td>Text</td><td>Optional</td></tr><tr><td>Kind</td><td>The kind of the article group</td><td>Text</td><td>Optional</td></tr><tr><td>BluePencil</td><td>Container element for the blue article group blue pencil data</td><td>Element</td><td>Optional</td></tr><tr><td>Classification</td><td>Container element for the classification data</td><td>Element</td><td>Optional</td></tr><tr><td>Assets</td><td>Container element for the article group assets</td><td>Element</td><td>Optional</td></tr><tr><td>Articles</td><td>Container element for the articles in the article group</td><td>Element</td><td>Optional</td></tr><tr><td>SubGroups</td><td>The sub-groups of this group</td><td>Element</td><td>Optional</td></tr><tr><td>lcid</td><td>Attribute on Name, DescriptionHeader, DescriptionFooter or Kind. Default value is pre-configured import language.</td><td>LCID</td><td>Optional</td></tr></tbody></table>

**BluePencil element:**

<table data-header-hidden><thead><tr><th width="180">Name</th><th>Description</th><th width="150">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>transposed</td><td>Indicates if the article group table is transposed</td><td><p>Boolean</p><p>Default: N</p></td><td>Optional</td></tr></tbody></table>

**Classification element:**

<table data-header-hidden><thead><tr><th width="189">Name</th><th>Description</th><th width="155">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>declassify</td><td>Specifies if the article group should be decoupled from the current classification node</td><td><p>Bool</p><p>Default: N</p></td><td>Optional</td></tr><tr><td>Level1</td><td>Level one classification nodes in the classification tree</td><td>Text</td><td>Optional</td></tr><tr><td>Level2</td><td>Level two classification nodes in the classification tree</td><td>Text</td><td>Optional</td></tr><tr><td>Level3</td><td>Level three classification nodes in the classification tree</td><td>Text</td><td>Optional</td></tr><tr><td>Level4</td><td>Level four classification nodes in the classification tree</td><td>Text</td><td>Optional</td></tr><tr><td>lcid</td><td>Attribute on Level1, Level2, Level3 or Level4. Default value is pre-configured import language.</td><td>LCID</td><td>Optional</td></tr></tbody></table>

**Assets element:**

<table data-header-hidden><thead><tr><th width="190">Name</th><th>Description</th><th width="155">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>Logo</td><td>Asset, that belongs to this Article or Article group</td><td>Element</td><td>Optional</td></tr><tr><td>Image</td><td>Asset, that belongs to this Article or Article group</td><td>Element</td><td>Optional</td></tr><tr><td>Icon</td><td>Asset, that belongs to this Article or Article group</td><td>Element</td><td>Optional</td></tr><tr><td>Media</td><td>Asset, that belongs to this Article or Article group</td><td>Element</td><td>Optional</td></tr></tbody></table>

**Logo, Image, Icon, Media (Asset) element:**

<table data-header-hidden><thead><tr><th width="192">Name</th><th>Description</th><th width="152">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>Name</td><td>Name of the asset, may occur more than once with different lcid attributes.</td><td>Text</td><td>Optional</td></tr><tr><td>Value</td><td>Value of the asset. Element may occur only once.</td><td>Text</td><td>Required</td></tr><tr><td>lcid</td><td>Attribute on Name or Value.<br>Default value for the licd on the Name element is the pre-configured import language.<br>If no lcid is specified on the Value element the asset will be available in all languages. Otherwise the asset will only be available in the specified language.</td><td>LCID</td><td>Optional</td></tr></tbody></table>

**Article element:**

<table data-header-hidden><thead><tr><th width="157">Name</th><th>Description</th><th width="150">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>Number</td><td>The article number of the article</td><td>GUID</td><td>Required</td></tr><tr><td>gtin</td><td>The “Global Trade Item Number” of the article</td><td>Text</td><td>Optional</td></tr><tr><td>state</td><td>Active / Suspended / Deleted</td><td>ArticleLifeTimeState</td><td>Optional</td></tr><tr><td>Title</td><td>The title of the article</td><td>Text</td><td>Optional</td></tr><tr><td>Description</td><td>A description of the article</td><td>Text</td><td>Optional</td></tr><tr><td>TypeNumber</td><td>The type number of the article</td><td>Text</td><td>Optional</td></tr><tr><td>Manufacturer</td><td>Container element for the article manufacturer data</td><td>Element</td><td>Optional</td></tr><tr><td>SubGroup</td><td>Container element for the article sub-group data</td><td>Element</td><td>Optional</td></tr><tr><td>Assets</td><td>Container element for the article assets</td><td>Element</td><td>Optional</td></tr><tr><td>Properties</td><td>Container element for the article properties</td><td>Element</td><td>Optional</td></tr><tr><td>AuthorizationProfiles</td><td>Container element for the article authorization profiles</td><td>Element</td><td>Optional</td></tr><tr><td>lcid</td><td>Attribute on Title, Description or TypeNumber. Default value is pre-configured import language.</td><td>LCID</td><td>Optional</td></tr></tbody></table>

**Manufacturer element:**

<table data-header-hidden><thead><tr><th width="167">Name</th><th>Description</th><th width="172">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>gln</td><td>The “Global Location Number” of the manufacturer</td><td>Text</td><td>Optional</td></tr><tr><td>mpn</td><td>The “Manufacturer Part Number”</td><td>Text</td><td>Optional</td></tr><tr><td>gtin</td><td>The “Global Trade Item Number”</td><td>Text</td><td>Optional</td></tr></tbody></table>

**Article/SubGroup element:**

<table data-header-hidden><thead><tr><th width="172">Name</th><th>Description</th><th width="174">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>id</td><td>The identifier of the sub-group that the article is in</td><td>GUID</td><td>Optional</td></tr><tr><td>index</td><td>The priority of the item in the sub group</td><td>Integer</td><td>Optional</td></tr></tbody></table>

**Article/Property element:**

<table data-header-hidden><thead><tr><th width="175">Name</th><th>Description</th><th width="173">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>Header</td><td>The name of the property</td><td>Text</td><td>Optional</td></tr><tr><td>Value</td><td>The value of the property</td><td>Text</td><td>Optional</td></tr><tr><td>Unit</td><td>The metric unit of the property</td><td>Text</td><td>Optional</td></tr><tr><td>Icon</td><td>The icon of the property</td><td>Text</td><td>Optional</td></tr><tr><td>BluePencil</td><td>Container for the blue pencil data of the property</td><td>Element</td><td>Optional</td></tr><tr><td>lcid</td><td>Attribute on Value. Default value is pre-configured import language.</td><td>LCID</td><td>Optional</td></tr></tbody></table>

{% hint style="warning" %}
Properties are always imported as a full set. When importing properties, the full set should be present, or alternatively no properties at all. If the file contains only a subset of the properties for a specific article, all properties that are not specified will be deleted. &#x20;
{% endhint %}

**Property/BluePencil element:**

<table data-header-hidden><thead><tr><th width="163">Name</th><th>Description</th><th width="155">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>hidden</td><td>Indicates if the property should be displayed</td><td><p>Boolean</p><p>Default: N</p></td><td>Optional</td></tr><tr><td>spec</td><td>If the property is to be shown below the description header</td><td><p>Boolean</p><p>Default: N</p></td><td>Optional</td></tr><tr><td>index</td><td>The position of the property in the article table</td><td>Integer</td><td>Optional</td></tr><tr><td>Description</td><td>The description of the property</td><td>Text</td><td>Optional</td></tr><tr><td>Icon</td><td>Only god knows</td><td>Text</td><td>Optional</td></tr></tbody></table>

**SubGroup element:**

<table data-header-hidden><thead><tr><th>Name</th><th width="184">Description</th><th width="150">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>id</td><td>The identifier of the sub-group</td><td>GUID</td><td>Optional</td></tr><tr><td>DescriptionHeader</td><td>The description header of the sub-group</td><td>Text</td><td>Optional</td></tr><tr><td>DescriptionFooter</td><td>The description footer of the sub-group</td><td>Text</td><td>Optional</td></tr></tbody></table>

**AuthorizationProfile element:**

<table data-header-hidden><thead><tr><th width="211.53741496598641">Name</th><th width="185">Description</th><th width="150">Type</th><th>Required/Optional</th></tr></thead><tbody><tr><td>Name</td><td>Description</td><td>Type</td><td>Required/Optional</td></tr><tr><td>AuthorizationProfile </td><td>Name of a profile that is allowed for this article</td><td>Text</td><td>Optional</td></tr></tbody></table>

**Types:**

| Type                     | Values                                                              |
| ------------------------ | ------------------------------------------------------------------- |
| GUID                     | 00000000-0000-0000-0000-000000000000                                |
| Boolean                  | Y, N                                                                |
| ArticleLifeTimeState     | Active / Suspended / Deleted                                        |
| ArticleGroupDefaultTitle | Undefined / ArticleNumber                                           |
| LCID                     | Decimal value representing Windows LCID (Language Code Identifier). |
