Table of Contents

Findologic XML 2.0 export format

Our toolkit libflexport which exports product data according to the XML export patterns of this page is now available via the following Github repository. https://github.com/findologic/libflexport/tree/master
Link to the script-file that triggers XML-export has to be provided in the customer login - if needed with login and password (HTML basic access authentication).
Findologic supports all encodings. It just needs to get mentioned at the start of the XML e.g. <?xml version=“1.0” encoding=“UTF-8”?>
The parent tags must be exported (summaries, descriptions, etc.), but can be closed itself (can be empty), if the child tags are not required. For example like that:
[…] 
<summaries /> 
<descriptions /> 
<usergroups /> 
[…]
Control characters ([#x01-#x08] | [#x0B-#x0C] | [#x0E-#x1F]) are not allowed in any value of the feed.
The summary, description and the attribute values should not contain any HTML-Tags. A warning will be shown during import and the tags get stripped automatically.

Overview

Item Short Description Tag required Value required Will be searched
<?xml version=“…” encoding=“…”?> Specifies the encoding Yes Yes No
<item id=“”> Unique identifier Yes Yes No
<ordernumbers> Article number, EAN or SKU Yes No Yes
<names> Article name, as usually shown on the result page Yes Yes Yes
<summaries> Summarized article description Yes No Yes
<descriptions> Detailed article description Yes No Yes
<prices> Current article price including taxes Yes Yes filterable only
<overriddenPrices> Strike-through price including taxes No No No
<urls> URL to the article page, must be absolute Yes Yes No
<images> URL to the article image, must be absolute. Yes No No
<keywords> Keywords linked to current article Yes No Yes
<groups> Visibility of article, i.e. only visible to the exported groups Yes No No
<bonuses> Bonus value to rank certain articles higher than others No No No
<salesfrequencies> Amount of sold items of this article Yes No No
<dateAddeds> Date current article was added Yes No No
<sorts> Value for custom sorting of search results No No No
<visibilities> Indicates the visibility of all/some products No No No
<attributes> Article categories and attributes. Will be filters Yes Yes Yes, also filterable
<properties> Additional information of article to be shown on search result listing Yes Yes No
<variants> Product variants Yes Yes No
Attributes and properties in XML-feed

Wrapper

<?xml version="1.0" encoding="UTF-8"?>
<findologic version="">
    <items start="" count="" total="">
        <item id="">
            [...]
        </item>
        <item id="">
            [...]
        </item>
        [...]
    </items>
</findologic>
Due to runtime limitations the XML-export has to be paginated.
You have to use double quotes to seperate XML attributes like “count” or “total”. Single quotes are not supported at the moment.
Using our export toolkit?

You can find the information about how to setup our export library on our Github wiki page.


item

[...]
<item id="">
  [...]
</item>
[...]
Using our export toolkit?

Creating an item with our export library is that simple.


ordernumbers

[...]
<allOrdernumbers>
  <ordernumbers>
    <ordernumber><![CDATA[]]></ordernumber>
    <ordernumber><![CDATA[]]></ordernumber>
  </ordernumbers>
  <ordernumbers usergroup="">
    <ordernumber><![CDATA[]]></ordernumber>
  </ordernumbers>
  [...]
</allOrdernumbers>
[...]
This field should be used only for article numbers/EANs/SKUs and NOT for the number that a user gets when an order is being submitted in your shop.
Using our export toolkit?

Creating an ordernumber element with libflexport.


names

[...]
<names>
  <name><![CDATA[]]></name>
  <name usergroup=""><![CDATA[]]></name>
  [...]
</names>
[...]
Using our export toolkit?

Creating a name element with libflexport.


summaries

[...]
<summaries>
  <summary><![CDATA[]]></summary>
  <summary usergroup=""><![CDATA[]]></summary>
  [...]
</summaries>
[...]
Using our export toolkit?

Creating a summary element with libflexport.


descriptions

[...]
<descriptions>
  <description><![CDATA[]]></description>
  <description usergroup=""><![CDATA[]]></description>
  [...]
</descriptions>
[...]
Using our export toolkit?

Creating a description element with libflexport.


prices

[...]
<prices>
  <price><![CDATA[]]></price>
  <price usergroup=""><![CDATA[]]></price>
  [...]
</prices>
[...]
It is important that you use “.” as decimal seperator.
Using our export toolkit?

Creating a price element with libflexport.


overriddenPrices

[...]
<overriddenPrices>
  <overriddenPrice><![CDATA[]]></overriddenPrice>
  <overriddenPrice usergroup=""><![CDATA[]]></overriddenPrice>
  [...]
</overriddenPrices>
[...]
It is important that you use “.” as decimal seperator.
Using our export toolkit?

Creating an overriddenPrice element with libflexport.


urls

[...]
<urls>
  <url><![CDATA[]]></url>
  <url usergroup=""><![CDATA[]]></url>
  [...]
</urls>
[...]
Using our export toolkit?

Creating an url element with libflexport.


images

[...]
<allImages>
  <images>
    <image><![CDATA[]]></image>
  </images>
  <images usergroup="">
    <image><![CDATA[]]></image>
  </images>
  [...]
</allImages>
[...]
Using our export toolkit?

Creating an image element with libflexport.


keywords

[...]
<allKeywords>
  <keywords>
    <keyword><![CDATA[]]></keyword>
    <keyword><![CDATA[]]></keyword>
    [...]
  </keywords>
  <keywords usergroup="">
    <keyword><![CDATA[]]></keyword>
    [...]
  </keywords>
  [...]
</allKeywords>
[...]
Using our export toolkit?

Creating a keyword element with libflexport.


groups

[...]
<groups>
  <group><![CDATA[]]></group>
  <group><![CDATA[]]></group>
  [...]
</groups>
[...]

Using group to set the visibility of items

Using usergroups to set the visibility of single information relevant for a returned item

Usergroup-specific <property> tags are defined at <properties> level. Usergroup-specific <property> tags are not merged with default <property> tags, therefore for each usergroup all the <property> tags for this usergroup must be exported.

Recommendation

Using our export toolkit?

Creating an <group> element with libflexport.

bonuses

[...]
<bonuses>
  <bonus><![CDATA[]]></bonus>
  <bonus usergroup=""><![CDATA[]]></bonus>
  [...]
</bonuses>
[...]
Please note, that the value -1 will be overridden with the value -0.9 in the import.
Using our export toolkit?

Creating a bonus element with libflexport.


salesfrequencies

[...]
<salesFrequencies>
  <salesFrequency><![CDATA[]]></salesFrequency>
  <salesFrequency usergroup=""><![CDATA[]]></salesFrequency>
  [...]
</salesFrequencies>
[...]
Using our export toolkit?

Creating a salesfrequency element with libflexport.


dateaddeds

[...]
<dateAddeds>
  <dateAdded><![CDATA[]]></dateAdded>
  <dateAdded usergroup=""><![CDATA[]]></dateAdded>
  [...]
</dateAddeds>
[...]
Using our export toolkit?

Creating a dateadded element with libflexport.


sorts

[...]
<sorts>
  <sort><![CDATA[]]></sort>
  <sort usergroup=""><![CDATA[]]></sort>
  [...]
</sorts>
[...]
Using our export toolkit?

Creating a sort element with libflexport.


visibilities

[...]
<visibilities>
  <visibile><![CDATA[]]></visibile>
  <visibile usergroup=""><![CDATA[]]></visibile>
  [...]
</visibilities>
[...]
Using our export toolkit?

Creating a visibility element with libflexport.


attributes

[...]
<allAttributes>
  <attributes>
    <attribute>
      <key><![CDATA[value]]></key>
      <values>
        <value><![CDATA[value]]></value>
        <value><![CDATA[value]]></value>
        [...]
      </values>
    </attribute>
    [...]
  </attributes>
</allAttributes>
[...]
Using our export toolkit?

Creating an attribute element with libflexport.

In the attributes following tags are not allowed to be empty:
  • <attributes>
  • <attribute>
  • <key>
  • <value>

cat_url examples

In order to use Findologic Navigation with Direct Integration, the tag cat_url has to be added with the category path to the <attributes>-tag. If a product is shown in several categories, all paths have to be exported. For example for a product, which is assigned to the following categories …

… these cat_url's-values should be added to the <attributes>-tag.

<allAttributes>
  <attributes>
    <attribute>
      <key><![CDATA[cat_url]]></key>
      <values>
        <value><![CDATA[/presents]]></value>
        <value><![CDATA[/presents/champagne]]></value>
        <value><![CDATA[/wedding-presents]]></value>
        <value><![CDATA[/jacken&maentel]]></value>
        <value><![CDATA[/de/geschenke/champagner]]></value>
        <value><![CDATA[/en/presents/]]></value>
      </values>
    </attribute>
    [...]
  </attributes>
</allAttributes>
cat_url's have to be exported as relative paths.
You have to export both main-cat_url's and sub-cat_url's for the main- and sub-categories, that an article is assigned to.
The / at the end of the cat_url needs to be included if the category pages of your shop are ending with a /.

properties

[...]
<allProperties>
  <properties>
    <property>
      <key><![CDATA[value]]></key>
      <value><![CDATA[value]]></value>
    </property>
    <property>
      <key><![CDATA[value]]></key>
      <value><![CDATA[value]]></value>
    </property>
    [...]
  </properties>
  <properties usergroup="">
    <property>
      <key><![CDATA[value]]></key>
      <value><![CDATA[value]]></value>
    </property>
    <property>
      <key><![CDATA[value]]></key>
      <value><![CDATA[value]]></value>
    </property>
    [...]
  </properties>
  [...]
</allProperties>
[...]
Using our export toolkit?

Creating a property element with libflexport.

In the properties following tags are not allowed to be empty:
  • <properties>
  • <property>
  • <key>
  • <value>

Attributes and properties in XML-feed

Main differences between attributes and properties is:

  1. Attributes are filters, properties are additional information on search results
  2. Attributes can have several values, properties can have only one value.

Here is map of HTML-template with one product in results at the right side and filters at the left side.

If customer needs some information (like color/size/rating) in filters and in product-card in results as well, he should provide both: property and attribute.


Using variants in search results

[...]
<variants>
	<variant id="variant_3">
...
	</variant>
	<variant id="variant_4">
...
	</variant>
</variants>
[...]

A <variant> can contain the following data. This data is structured the same as for its parent.

No other fields are allowed.
Currently it is not possible to use variants and usergroups together. Variants only work without usergroups. But using groups is still possible. So filtering by group is working fine.
Using our export toolkit?

Creating a variant element with libflexport.

Example XML