# 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.

## 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>String</Name>
            <DescriptionHeader>String</DescriptionHeader>
            <DescriptionFooter>String</DescriptionFooter>
            <Brand>String</Brand>
            <Kind>String</Kind>
            <BluePencil transposed=""/>
            <Classification declassify="">
                <Level1>string</Level1>
                <Level2>string</Level2>
                <Level3>string</Level3>
                <Level4>string</Level4>
            </Classification>
            <Assets>
                <Logo>
                    <Name>String</Name>
                    <Value>String</Value>
                </Logo>
                <Image>
                    <Name>String</Name>
                    <Value>String</Value>
                </Image>
                <Icon>
                    <Name>String</Name>
                    <Value>String</Value>
                </Icon>
                <Document>
                    <Name>String</Name>
                    <Value>String</Value>
                </Document>
                <Media>
                    <Name>String</Name>
                    <Value>String</Value>
                </Media>
            </Assets>
            <Articles>
                <Article number="" gtin="" state="">
                    <Title>String</Title>
                    <Description>String</Description>
                    <TypeNumber>String</TypeNumber>
                    <Manufacturer gln="" mpn="" gtin=""/>
                    <SubGroup id="" index=""/>
                    <Assets>
                        <Logo>
                            <Name>String</Name>
                            <Value>String</Value>
                        </Logo>
                        <Image>
                            <Name>String</Name>
                            <Value>String</Value>
                        </Image>
                        <Icon>
                            <Name>String</Name>
                            <Value>String</Value>
                        </Icon>
                        <Document>
                            <Name>String</Name>
                            <Value>String</Value>
                        </Document>
                        <Media>
                            <Name>String</Name>
                            <Value>String</Value>
                        </Media>
                    </Assets>
                    <Properties>
                        <Property>
                            <Header>String</Header>
                            <Value>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

**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></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></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></td><td>Text</td><td>Optional</td></tr><tr><td>Value</td><td></td><td>Text</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></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></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            |
