<?xml version=“1.0” encoding=“UTF-8”?>
[…] <summaries /> <descriptions /> <usergroups /> […]
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 |
<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 |
<usergroups> | Visibility of article, i.e. only visible to the exported usergroups | 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 |
Attributes and properties in XML-feed | ||||
Using properties for product variants in search results |
<?xml version="1.0" encoding="UTF-8"?> <findologic version=""> <items start="" count="" total=""> <item id=""> [...] </item> <item id=""> [...] </item> [...] </items> </findologic>
<findologic>
has to have the attribute version
containing the version of the format.<items>
gives information about the start-pointer (start
), how many products are exported per step (count
) and how many products exists in the shop in total (total
). For more information see Export<items>
may contain 1+ <item>
-tags.You can find the information about how to setup our export library on our Github wiki page.
[...] <item id=""> [...] </item> [...]
<item>
holds all the information for a single item, identified by a unique ID.<item>
-tag can be general (no usergroup
-attribute) or limited to a single usergroup via the usergroup
-attribute. The general information is only shown if there is no specific information for the usergroup of the specific user.Creating an item with our export library is that simple.
[...] <allOrdernumbers> <ordernumbers> <ordernumber><![CDATA[]]></ordernumber> <ordernumber><![CDATA[]]></ordernumber> </ordernumbers> <ordernumbers usergroup=""> <ordernumber><![CDATA[]]></ordernumber> </ordernumbers> [...] </allOrdernumbers> [...]
<allOrdernumbers>
contains 1+ <ordernumbers>
-tags, distinguished via the usergroup-attribute.<ordernumbers>
contains 1+ <ordernumber>
-tags.<ordernumber>
contains an article-number like internal arcticle number, EAN, ISBN, …Creating an ordernumber element with libflexport.
[...] <names> <name><![CDATA[]]></name> <name usergroup=""><![CDATA[]]></name> [...] </names> [...]
<names>
contains 1+ <name>
-tags, distinguished via the usergroup-attribute.<name>
contains the title of the product.Creating a name element with libflexport.
[...] <summaries> <summary><![CDATA[]]></summary> <summary usergroup=""><![CDATA[]]></summary> [...] </summaries> [...]
<summaries>
contains 1+ <summary>
-tags, distinguished via the usergroup-attribute.<summary>
contains the short-summary of the product.Creating a summary element with libflexport.
[...] <descriptions> <description><![CDATA[]]></description> <description usergroup=""><![CDATA[]]></description> [...] </descriptions> [...]
<descriptions>
contains 1+ <description>
-tags, distinguished via the usergroup-attribute.<description>
contains the long-description of the product.Creating a description element with libflexport.
[...] <prices> <price><![CDATA[]]></price> <price usergroup=""><![CDATA[]]></price> [...] </prices> [...]
<prices>
contains 1+ <price>
-tags, distinguished via the usergroup-attribute.<price>
contains the price of the product in the format 99.99
.“.”
as decimal seperator.
Creating a price element with libflexport.
[...] <urls> <url><![CDATA[]]></url> <url usergroup=""><![CDATA[]]></url> [...] </urls> [...]
<urls>
contains 1+ <url>
-tags, distinguished via the usergroup-attribute.<url>
contains the URL of the product with leading http[s]
, which leads the user to the product-detail-page.Creating an url element with libflexport.
[...] <allImages> <images> <image><![CDATA[]]></image> </images> <images usergroup=""> <image><![CDATA[]]></image> </images> [...] </allImages> [...]
<allImages>
contains 1+ <images>
-tags, distinguished via the usergroup-attribute.<images>
contains 1+ <image>
-tags.<image>
contains an URL of an image.Creating an image element with libflexport.
[...] <allKeywords> <keywords> <keyword><![CDATA[]]></keyword> <keyword><![CDATA[]]></keyword> [...] </keywords> <keywords usergroup=""> <keyword><![CDATA[]]></keyword> [...] </keywords> [...] </allKeywords> [...]
<allKeywords>
contains 1+ <keywords>
-tags, distinguished via the usergroup-attribute.<keywords>
contains 1+ <keyword>
-tags.<keyword>
contains a single keyword of the product.Creating a keyword element with libflexport.
[...] <usergroups> <usergroup><![CDATA[]]></usergroup> <usergroup><![CDATA[]]></usergroup> [...] </usergroups> [...]
<usergroup>
contains 1+ <usergroup>
-tags.<usergroup>
contains a usergroup to which the item is visible.<usergroup>
the usergroup used as a third parameter in the Findologic-Snippet (after shopkey) has to have the exact same wording as the usergroup that is used in the data feed.<usergroup>
is requested, all items are returned.<usergroup>
is requested, only items with a matching <usergroup>
are returned.<usergroup><![CDATA[employee]]> </usergroup>
only products for which this usergroup is set are visible.<usergroups>
is ignored, so that when requesting an unknown <usergroup>
all items are visible. <usergroups>
-tag you can set specific images, keywords, price etc.<usergroup>
attribute within XML tags, you can set specific item information for given <usergroups>
.<usergroup>
is requested the default (non-usergroup) value is used for all tags. Therefore default (non-usergroup) tags are required for all elements in the data feed.<usergroup>
is requested the usergroup-specific value is used for all tags.<name usergroup=“employee ”><![CDATA[Internal product title]]></name>
the name set for this usergroup is used.<names><name><![CDATA[Product title]]></name><name usergroup=“b2b”><![CDATA[B2B product title]]></name></names> → “Product title“
is used, cause this represents the default (non-usergroup) info.<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.
<Attributes>
cannot be usergroup-specific and therefore cannot be exported with a <usergroup>
attribute.<usergroups>
, please contact support@findologic.com, in order to adjust default settings.18plus
, B2B
).
Creating an <usergroup>
element with libflexport.
[...] <bonuses> <bonus><![CDATA[]]></bonus> <bonus usergroup=""><![CDATA[]]></bonus> [...] </bonuses> [...]
<bonuses>
contains 1+ <bonus>
-tags, distinguished via the usergroup-attribute.<bonus>
contains a bonus value (between -0.9 and 3) to lower or raise the ranking of a product in general. Creating a bonus element with libflexport.
[...] <salesFrequencies> <salesFrequency><![CDATA[]]></salesFrequency> <salesFrequency usergroup=""><![CDATA[]]></salesFrequency> [...] </salesFrequencies> [...]
<salesFrequencies>
contains 1+ <salesFrequency>
-tags, distinguished via the usergroup-attribute.<salesFrequency>
contains a non-negative integer value for the salesfrequency which can be used for sorting.<salesFrequency>
-values, please contact our support team. Creating a salesfrequency element with libflexport.
[...] <dateAddeds> <dateAdded><![CDATA[]]></dateAdded> <dateAdded usergroup=""><![CDATA[]]></dateAdded> [...] </dateAddeds> [...]
<dateAddeds>
contains 1+ <dateAdded>
-tags, distinguished via the usergroup-attribute.<dateAdded>
contains the date and time, when this item was added to the store.xs:dateTime
, a valid value is 2002-05-30T09:30:10
2002-05-30T00:00:00
Creating a dateadded element with libflexport.
[...] <sorts> <sort><![CDATA[]]></sort> <sort usergroup=""><![CDATA[]]></sort> [...] </sorts> [...]
<sorts>
contains 1+ <sort>
-tags, distinguished via the usergroup-attribute.<sort>
contains a custom integer value which can be used for sorting.<sort>
-values, please contact our support team. <sort>
-values. Creating a sort element with libflexport.
[...] <visibilities> <visibile><![CDATA[]]></visibile> <visibile usergroup=""><![CDATA[]]></visibile> [...] </visibilities> [...]
<visibilities>
contains 1+ <visible>-tags, distinguished via the usergroup-attribute.<visible>
must contain lowercase true (or 1 as a replacement) for visible initial state or lowercase false (or 0 as a replacement) for invisible initial state.Creating a sort element with libflexport.
[...] <allAttributes> <attributes> <attribute> <key><![CDATA[value]]></key> <values> <value><![CDATA[value]]></value> <value><![CDATA[value]]></value> [...] </values> </attribute> [...] </attributes> </allAttributes> [...]
<allAttributes>
contains 1 <attributes>
-tag.<attributes>
-tag must NOT have an usergroup
-attribute.<attributes>
contains 1+ <attribute>
-tags.<attribute>
contains a key/value set with 1 <key>
-tag identifying the attribute and 1+ <value>
-tags setting the values for the attribute. Sneakers_Men
an article in the category “Sneakers” and in the subcategory “Men”)/sneakers/men.html
)Adidas
)Creating an attribute element with libflexport.
<attributes>
<attribute>
<key>
<value>
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.
cat_url's
and sub-cat_url's
for the main- and sub-categories, that an article is assigned to.
/
at the end of the cat_url
needs to be included if the category pages of your shop are ending with a /
.
[...] <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> [...]
Creating a property element with libflexport.
<allProperties>
contains 1+ <properties>
-tags, distinguished via the usergroup-attribute.<properties>
contains 1+ <property>
-tags.<property>
contains a key/value set with 1 <key>
-tag identifying the property and 1 <value>
-tag setting the value for the property. <properties>
contains every information irrelevant to the search itself but relevant for displaying the products in the shop. <properties>
can contain a usergroup
attribute.usergroup
is given in the request, only the properties explicitly exported for this usergroup
will be returnedusergroup
is given in the request, but no <properties/>
are exported for this usergroup
, the default <properties/>
are returned (ie. the <properties/>
without usergroup
)<properties>
-block without a usergroup is used as default in case no <properties>
-block for the requested usergroup exists. In case a <properties>
-block exists for the requested usergroup, but a certain <property>
is missing, no default-value is available. <property>
Keys are not allowed for use:ordernumber
image[0-9]+
thumbnail[0-9]+
<properties>
<property>
<key>
<value>
Main differences between attributes and properties is:
Here is map of HTML-template with one product in results at the right side and filters at the left side.
If you want to show different variations (colors, sizes etc.) of a certain product in your shop and you want to display those variants in specific product-cards on the search result page, it can be realized by following the steps described below (example for colors):
Functionality:
How the XML should look like:
You have to provide an appropriate property (for example “variants”) for every parent-product by using a JSON-string. Here is an example of this property:
[...] <allProperties> <properties> <property> <key>variants</key> <value><![CDATA[ { "Mud" : { "VariantIconPic" : "https://www.shop.com/media/jacket_mud_variant_icon.jpg", "productPic" : "https://www.shop.com/media/jacket_mud_variant_pic.jpg", "productUrl" : "https://www.shop.com/jacket_mud" }, "Black" : { "VariantIconPic" : "https://www.shop.com/media/jacket_black_variant_icon.jpg", "productPic" : "https://www.shop.com/media/jacket_black_variant_pic.jpg", "productUrl" : "https://www.shop.com/jacket_black" }, "Red" : { "VariantIconPic" : "https://www.shop.com/media/jacket_red_variant_icon.jpg", "productPic" : "https://www.shop.com/media/jacket_red_variant_pic.jpg", "productUrl" : "https://www.shop.com/jacket_red" }, "Navy" : { "VariantIconPic" : "https://www.shop.com/media/jacket_navy_variant_icon.jpg", "productPic" : "https://www.shop.com/media/jacket_navy_variant_pic.jpg", "productUrl" : "https://www.shop.com/jacket_navy" } } ]]></value> </property> </properties> </allProperties> [...]
<?xml version="1.0" encoding="UTF-8"?> <findologic version="1.0"> <items start="10" count="1" total="30"> <item id="01120c948ad41a2284ad9f0402fbc7d"> <allOrdernumbers> <ordernumbers> <ordernumber>277KTL</ordernumber> <ordernumber>4987123846879</ordernumber> </ordernumbers> <ordernumbers usergroup="LNrLF7BRVJ0toQ=="> <ordernumber>377KTL</ordernumber> </ordernumbers> <ordernumbers usergroup="PN3enVBRVH0To(/"> <ordernumber>577LTK</ordernumber> </ordernumbers> </allOrdernumbers> <names> <name>Adidas Sneaker</name> <name usergroup="LNrLF7BRVJ0toQ==">Adidas Men's Sneaker</name> <name usergroup="PN3enVBRVH0To(/">Adidas Women's Sneaker</name> </names> <summaries> <summary>A cool and fashionable sneaker</summary> <summary usergroup="LNrLF7BRVJ0toQ==">A cool and fashionable sneaker for men</summary> <summary usergroup="PN3enVBRVH0To(/">A cool and fashionable sneaker for women</summary> </summaries> <descriptions> <description>With this sneaker you will walk in style. It's available in green and blue.</description> <description usergroup="LNrLF7BRVJ0toQ==">With this men's sneaker you will walk in style. It comes in various sizes and colors.</description> <description usergroup="PN3enVBRVH0To(/">With this women's sneaker you will walk in style. It comes in various sizes and colors.</description> </descriptions> <prices> <price>44.8</price> <price usergroup="LNrLF7BRVJ0toQ==">42.9</price> <price usergroup="PN3enVBRVH0To(/">39.9</price> </prices> <urls> <url>https://www.store.com/sneakers/adidas.html</url> <url usergroup="LNrLF7BRVJ0toQ==">https://www.store.com/sneakers/mens/adidas.html</url> <url usergroup="PN3enVBRVH0To(/">https://www.store.com/sneakers/women/adidas.html</url> </urls> <allImages> <images> <image>https://www.store.com/images/277KTL.png</image> </images> <images usergroup="LNrLF7BRVJ0toQ=="> <image>https://www.store.com/images/277KTL.png</image> </images> <images usergroup="PN3enVBRVH0To(/"> <image>https://www.store.com/images/577LTK.png</image> </images> </allImages> <allAttributes> <attributes> <attribute> <key>cat</key> <values> <value>Sneakers_Men</value> <value>Sneakers_Women</value> <value>Specials_Sale</value> </values> </attribute> <attribute> <key>cat_url</key> <values> <value>/sneakers/men</value> <value>/sneakers/women</value> <value>/specials/sale</value> </values> </attribute> <attribute> <key>vendor</key> <values> <value>Adidas</value> </values> </attribute> <attribute> <key>color</key> <values> <value>green</value> <value>blue</value> </values> </attribute> </attributes> </allAttributes> <allKeywords> <keywords> <keyword>fashion</keyword> <keyword>cool product</keyword> </keywords> <keywords usergroup="LNrLF7BRVJ0toQ=="> <keyword>fashion</keyword> <keyword>cool product</keyword> <keyword>mens</keyword> </keywords> <keywords usergroup="PN3enVBRVH0To(/"> <keyword>fashion</keyword> <keyword>cool product</keyword> <keyword>women</keyword> </keywords> </allKeywords> <usergroups> <usergroup>LNrLF7BRVJ0toQ==</usergroup> <usergroup>PN3enVBRVH0To(/</usergroup> </usergroups> <bonuses> <bonus>3</bonus> <bonus usergroup="LNrLF7BRVJ0toQ==">5</bonus> <bonus usergroup="PN3enVBRVH0To(/">5</bonus> </bonuses> <salesFrequencies> <salesFrequency>15</salesFrequency> <salesFrequency usergroup="LNrLF7BRVJ0toQ==">5</salesFrequency> <salesFrequency usergroup="PN3enVBRVH0To(/">8</salesFrequency> </salesFrequencies> <dateAddeds> <dateAdded>2020-05-30T09:30:10</dateAdded> <dateAdded usergroup="LNrLF7BRVJ0toQ==">2020-07-30T00:00:00</dateAdded> <dateAdded usergroup="PN3enVBRVH0To(/">2020-06-30T00:00:00</dateAdded> </dateAddeds> <sorts> <sort>5</sort> <sort usergroup="LNrLF7BRVJ0toQ==">7</sort> <sort usergroup="PN3enVBRVH0To(/">6</sort> </sorts> <allProperties> <properties> <property> <key>sale</key> <value>1</value> </property> <property> <key>novelty</key> <value>0</value> </property> <property> <key>logo</key> <value>http://www.shop.de/vendor.png</value> </property> <property> <key>availability</key> <value><![CDATA[<span style="color: green;">3 days</span>]]></value> </property> <property> <key>old_price</key> <value>99.9</value> </property> <property> <key>Basic_rate_price</key> <value>44.8</value> </property> </properties> <properties usergroup="LNrLF7BRVJ0toQ=="> <property> <key>sale</key> <value>0</value> </property> <property> <key>novelty</key> <value>0</value> </property> <property> <key>logo</key> <value>http://www.shop.de/vendor.png</value> </property> <property> <key>availability</key> <value><![CDATA[<span style="color: green;">3 days</span>]]></value> </property> <property> <key>old_price</key> <value>99.9</value> </property> <property> <key>Basic_rate_price</key> <value>44.8</value> </property> </properties> <properties usergroup="PN3enVBRVH0To(/"> <property> <key>sale</key> <value>1</value> </property> <property> <key>novelty</key> <value>0</value> </property> <property> <key>logo</key> <value>http://www.shop.de/vendor.png</value> </property> <property> <key>availability</key> <value><![CDATA[<span style="color: green;">3 days</span>]]></value> </property> <property> <key>old_price</key> <value>99.9</value> </property> <property> <key>Basic_rate_price</key> <value>44.8</value> </property> </properties> </allProperties> </item> </items> </findologic>