xml_export_documentation:xml_format

xml_export_documentation:xml_format

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
xml_export_documentation:xml_format [2020/06/16 15:49]
amil
xml_export_documentation:xml_format [2023/01/25 14:14]
rihad [Using properties for product variants in search results]
Line 13: Line 13:
   * You can find a detailed description of all available tags in our XML-patterns below.   * You can find a detailed description of all available tags in our XML-patterns below.
  
-  * The latest XML scheme for validation can be found on Github: [[https://​github.com/​FINDOLOGIC/​xml-export/​blob/​master/​src/​main/​resources/​findologic.xsd|Findologic XML-Schema]]. Check your XML against the scheme and see if your export XML is valid: [[https://​www.corefiling.com/​opensource/​schemaValidate.html]]+  * The latest XML scheme for validation can be found on Github: [[https://​github.com/​findologic/​xml-export/​blob/​main/​src/​main/​resources/​findologic_20.xsd|Findologic XML-Schema]]. Check your XML against the scheme and see if your export XML is valid: [[https://​www.corefiling.com/​opensource/​schemaValidate.html]]
  
 <​note>​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).</​note>​ <​note>​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).</​note>​
Line 26: Line 26:
 [...] [...]
 <​html></​pre></​html></​note>​ <​html></​pre></​html></​note>​
 +
 +<note important>​Control characters (**[#​x01-#​x08]** | **[#​x0B-#​x0C]** | **[#​x0E-#​x1F]**) are not allowed in any value of the feed.</​note>​
 +
 +<note important>​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.</​note>​
  
 ---- ----
Line 33: Line 38:
 ^**''<?​xml version=“...” encoding=“...”?>''​**| Specifies the encoding ​ | Yes | Yes | No | ^**''<?​xml version=“...” encoding=“...”?>''​**| Specifies the encoding ​ | Yes | Yes | No |
 ^**''<​[[#​item]] id="">''​**| Unique identifier ​ | Yes | Yes | No | ^**''<​[[#​item]] id="">''​**| Unique identifier ​ | Yes | Yes | No |
-^**''<​[[#​ordernumbers]]>''​**| Article number or order number ​| Yes | No | Yes |+^**''<​[[#​ordernumbers]]>''​**| Article number, EAN or SKU | Yes | No | Yes |
 ^**''<​[[#​names]]>''​**| Article name, as usually shown on the result page | Yes | Yes | Yes | ^**''<​[[#​names]]>''​**| Article name, as usually shown on the result page | Yes | Yes | Yes |
 ^**''<​[[#​summaries]]>''​**| Summarized article description ​ | Yes | No | Yes | ^**''<​[[#​summaries]]>''​**| Summarized article description ​ | Yes | No | Yes |
 ^**''<​[[#​descriptions]]>''​**| Detailed article description | Yes | No | Yes | ^**''<​[[#​descriptions]]>''​**| Detailed article description | Yes | No | Yes |
 ^**''<​[[#​prices]]>''​**| Current article price including taxes | Yes | Yes | **filterable only** | ^**''<​[[#​prices]]>''​**| Current article price including taxes | Yes | Yes | **filterable only** |
 +^**''<​[[#​overriddenPrices]]>''​**| Current article price including taxes | No | No | No |
 ^**''<​[[#​urls]]>''​**| URL to the article page, must be absolute | Yes | Yes | 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 | ^**''<​[[#​images]]>''​**| URL to the article image, must be absolute. | Yes | No | No |
 ^**''<​[[#​keywords]]>''​**| Keywords linked to current article | Yes | No | Yes | ^**''<​[[#​keywords]]>''​**| Keywords linked to current article | Yes | No | Yes |
-^**''<​[[#​usergroups]]>''​**| Visibility of article, i.e. only visible to the exported ​usergroups ​| Yes | No | No |+^**''<​[[#​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 | ^**''<​[[#​bonuses]]>''​**| Bonus value to rank certain articles higher than others | No | No | No |
 ^**''<​[[#​salesfrequencies]]>''​**| Amount of sold items of this article | Yes | No | No | ^**''<​[[#​salesfrequencies]]>''​**| Amount of sold items of this article | Yes | No | No |
 ^**''<​[[#​dateAddeds]]>''​**| Date current article was added | Yes | No | No | ^**''<​[[#​dateAddeds]]>''​**| Date current article was added | Yes | No | No |
 ^**''<​[[#​sorts]]>''​**| Value for custom sorting of search results | No | 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** | ^**''<​[[#​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 | ^**''<​[[#​properties]]>''​**| Additional information of article to be shown on search result listing | Yes | Yes | No |
Line 76: Line 83:
  
 <note important>​Due to runtime limitations the XML-export has to be [[https://​docs.findologic.com/​doku.php?​id=xml_export_documentation:​xml_request_and_response|paginated]].</​note>​ <note important>​Due to runtime limitations the XML-export has to be [[https://​docs.findologic.com/​doku.php?​id=xml_export_documentation:​xml_request_and_response|paginated]].</​note>​
 +
 +<note important>​You have to use double quotes to seperate XML attributes like "​count"​ or "​total"​. Single quotes are not supported at the moment.</​note>​
  
 <note tip>​**Using our export toolkit?** <note tip>​**Using our export toolkit?**
Line 120: Line 129:
   * ''<​ordernumbers>''​ contains 1+ ''<​ordernumber>''​-tags.   * ''<​ordernumbers>''​ contains 1+ ''<​ordernumber>''​-tags.
   * ''<​ordernumber>''​ contains an article-number like internal arcticle number, EAN, ISBN, ...   * ''<​ordernumber>''​ contains an article-number like internal arcticle number, EAN, ISBN, ...
 +
 +<​note>​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.</​note>​
  
 <note tip>​**Using our export toolkit?** <note tip>​**Using our export toolkit?**
Line 353: Line 364:
  
   * ''<​bonuses>''​ contains 1+ ''<​bonus>''​-tags,​ distinguished via the usergroup-attribute.   * ''<​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+  * ''<​bonus>''​ contains a bonus value (between -0.9 and 3) to lower or raise the ranking of a product in general. ​
-  * If you have product pushing enabled in your customer login, be aware that these values will override the current values at the concerned products in the bonus field.+
  
 <​note>​Please note, that the value -1 will be overridden with the value -0.9 in the import.</​note> ​ <​note>​Please note, that the value -1 will be overridden with the value -0.9 in the import.</​note> ​
Line 379: Line 389:
   * ''<​salesFrequency>''​ contains a non-negative integer value for the salesfrequency which can be used for sorting.   * ''<​salesFrequency>''​ contains a non-negative integer value for the salesfrequency which can be used for sorting.
   * If you want your default order to be dynamically calculated including the exported ''<​salesFrequency>''​-values,​ please contact our support team.    * If you want your default order to be dynamically calculated including the exported ''<​salesFrequency>''​-values,​ please contact our support team. 
- 
-<​note>​Please note, that negative values will be overridden with the value 0 in the import.</​note> ​ 
  
 <note tip>​**Using our export toolkit?** <note tip>​**Using our export toolkit?**
Line 426: Line 434:
   * ''<​sorts>''​ contains 1+ ''<​sort>''​-tags,​ distinguished via the usergroup-attribute.   * ''<​sorts>''​ contains 1+ ''<​sort>''​-tags,​ distinguished via the usergroup-attribute.
   * ''<​sort>''​ contains a custom integer value which can be used for sorting.   * ''<​sort>''​ contains a custom integer value which can be used for sorting.
-  * If you want your default order to be dynamically calculated including the exported ''<​salesFrequency>''​-values,​ please contact our support team. +  * If you want your default order to be dynamically calculated including the exported ''<​sort>''​-values,​ please contact our support team. 
   * You should not use negative values as ''<​sort>''​-values.  ​   * You should not use negative values as ''<​sort>''​-values.  ​
 +
 +<note tip>​**Using our export toolkit?**
 +
 +Creating a sort element with [[https://​github.com/​findologic/​libflexport/​wiki#​sort|libflexport]].</​note>​
 +
 +----
 +
 +==== visibilities ====
 +
 +<code xml>
 +[...]
 +<​visibilities>​
 +  <​visibile><​![CDATA[]]></​visibile>​
 +  <​visibile usergroup=""><​![CDATA[]]></​visibile>​
 +  [...]
 +</​visibilities>​
 +[...]
 +</​code>​
 +
 +  * ''<​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.
 +  * The default value of the default visible element (non-usergroup) is true if it did not exist.
 +  * The default value of a visible element with the usergroup tag is the same value of the default visible element if it did not exist.
 +  * If the visible element value is blank or one of the values (True, faLse, yes, no, -1 ….) , this will cause validation errors.
  
 <note tip>​**Using our export toolkit?** <note tip>​**Using our export toolkit?**
Line 659: Line 691:
 ---- ----
  
 +==== Using variants in search results ====
  
 +<code xml>
 +[...]
 +<​variants>​
 + <​variant id="​variant_3">​
 +...
 + </​variant>​
 + <​variant id="​variant_4">​
 +...
 + </​variant>​
 +</​variants>​
 +[...]
 +</​code>​
 +
 +A **<​variant>​** can contain the following data. This data is structured the same as for its parent.
 +
 +  * ordernumber,​ required
 +  * attributes, required
 +  * name, optional
 +  * price, optional. In case it is not set, the parent price will be used as default.
 +  * groups, optional.
 +  * overriddenPrice,​ optional
 +  * properties, optional
 +
 +<note important>​No other fields are allowed.</​note>​
 +
 +<note tip>​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.</​note>​
 ==== Example XML ==== ==== Example XML ====
  
Line 674: Line 734:
         <​ordernumbers usergroup="​LNrLF7BRVJ0toQ==">​         <​ordernumbers usergroup="​LNrLF7BRVJ0toQ==">​
           <​ordernumber>​377KTL</​ordernumber>​           <​ordernumber>​377KTL</​ordernumber>​
 +        </​ordernumbers>​
 +        <​ordernumbers usergroup="​PN3enVBRVH0To(/">​
 +          <​ordernumber>​577LTK</​ordernumber>​
         </​ordernumbers>​         </​ordernumbers>​
       </​allOrdernumbers>​       </​allOrdernumbers>​
Line 679: Line 742:
         <​name>​Adidas Sneaker</​name>​         <​name>​Adidas Sneaker</​name>​
         <name usergroup="​LNrLF7BRVJ0toQ==">​Adidas Men's Sneaker</​name>​         <name usergroup="​LNrLF7BRVJ0toQ==">​Adidas Men's Sneaker</​name>​
 +        <name usergroup="​PN3enVBRVH0To(/">​Adidas Women'​s Sneaker</​name>​
       </​names>​       </​names>​
       <​summaries>​       <​summaries>​
         <​summary>​A cool and fashionable sneaker</​summary>​         <​summary>​A cool and fashionable sneaker</​summary>​
         <summary usergroup="​LNrLF7BRVJ0toQ==">​A cool and fashionable sneaker for men</​summary>​         <summary usergroup="​LNrLF7BRVJ0toQ==">​A cool and fashionable sneaker for men</​summary>​
 +        <summary usergroup="​PN3enVBRVH0To(/">​A cool and fashionable sneaker for women</​summary>​
       </​summaries>​       </​summaries>​
       <​descriptions>​       <​descriptions>​
         <​description>​With this sneaker you will walk in style. It's available in green and blue.</​description>​         <​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's comes in various sizes and colors.</​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>​       </​descriptions>​
       <​prices>​       <​prices>​
         <​price>​44.8</​price>​         <​price>​44.8</​price>​
-        <price usergroup="​LNrLF7BRVJ0toQ==">​45.9</​price>​+        <price usergroup="​LNrLF7BRVJ0toQ==">​42.9</​price>​ 
 +        <price usergroup="​PN3enVBRVH0To(/">​39.9</​price>​
       </​prices>​       </​prices>​
       <​urls>​       <​urls>​
         <​url>​https://​www.store.com/​sneakers/​adidas.html</​url>​         <​url>​https://​www.store.com/​sneakers/​adidas.html</​url>​
         <url usergroup="​LNrLF7BRVJ0toQ==">​https://​www.store.com/​sneakers/​mens/​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>​       </​urls>​
       <​allImages>​       <​allImages>​
Line 702: Line 770:
         <images usergroup="​LNrLF7BRVJ0toQ==">​         <images usergroup="​LNrLF7BRVJ0toQ==">​
           <​image>​https://​www.store.com/​images/​277KTL.png</​image>​           <​image>​https://​www.store.com/​images/​277KTL.png</​image>​
 +        </​images>​
 +        <images usergroup="​PN3enVBRVH0To(/">​
 +          <​image>​https://​www.store.com/​images/​577LTK.png</​image>​
         </​images>​         </​images>​
       </​allImages>​       </​allImages>​
Line 710: Line 781:
             <​values>​             <​values>​
               <​value>​Sneakers_Men</​value>​               <​value>​Sneakers_Men</​value>​
 +              <​value>​Sneakers_Women</​value>​
               <​value>​Specials_Sale</​value>​               <​value>​Specials_Sale</​value>​
             </​values>​             </​values>​
Line 717: Line 789:
             <​values>​             <​values>​
               <​value>/​sneakers/​men</​value>​               <​value>/​sneakers/​men</​value>​
 +              <​value>/​sneakers/​women</​value>​
               <​value>/​specials/​sale</​value>​               <​value>/​specials/​sale</​value>​
             </​values>​             </​values>​
Line 744: Line 817:
           <​keyword>​cool product</​keyword>​           <​keyword>​cool product</​keyword>​
           <​keyword>​mens</​keyword>​           <​keyword>​mens</​keyword>​
 +        </​keywords>​
 +        <​keywords usergroup="​PN3enVBRVH0To(/">​
 +          <​keyword>​fashion</​keyword>​
 +          <​keyword>​cool product</​keyword>​
 +          <​keyword>​women</​keyword>​
         </​keywords>​         </​keywords>​
       </​allKeywords>​       </​allKeywords>​
       <​usergroups>​       <​usergroups>​
         <​usergroup>​LNrLF7BRVJ0toQ==</​usergroup>​         <​usergroup>​LNrLF7BRVJ0toQ==</​usergroup>​
-        <​usergroup>​cHBw</​usergroup>​+        <​usergroup>​PN3enVBRVH0To(/​</​usergroup>​
       </​usergroups>​       </​usergroups>​
       <​bonuses>​       <​bonuses>​
         <​bonus>​3</​bonus>​         <​bonus>​3</​bonus>​
         <bonus usergroup="​LNrLF7BRVJ0toQ==">​5</​bonus>​         <bonus usergroup="​LNrLF7BRVJ0toQ==">​5</​bonus>​
 +        <bonus usergroup="​PN3enVBRVH0To(/">​5</​bonus>​
       </​bonuses>​       </​bonuses>​
       <​salesFrequencies>​       <​salesFrequencies>​
-        <​salesFrequency>​5</​salesFrequency>​+        <​salesFrequency>​15</​salesFrequency>​
         <​salesFrequency usergroup="​LNrLF7BRVJ0toQ==">​5</​salesFrequency>​         <​salesFrequency usergroup="​LNrLF7BRVJ0toQ==">​5</​salesFrequency>​
 +        <​salesFrequency usergroup="​PN3enVBRVH0To(/">​8</​salesFrequency>​
       </​salesFrequencies>​       </​salesFrequencies>​
       <​dateAddeds>​       <​dateAddeds>​
-        <​dateAdded>​2002-05-30T09:​30:​10</​dateAdded>​ +        <​dateAdded>​2020-05-30T09:​30:​10</​dateAdded>​ 
-        <​dateAdded usergroup="​LNrLF7BRVJ0toQ==">​2002-05-30T00:​00:​00</​dateAdded>​+        <​dateAdded usergroup="​LNrLF7BRVJ0toQ==">​2020-07-30T00:​00:​00</​dateAdded>​ 
 +        <​dateAdded usergroup="​PN3enVBRVH0To(/">​2020-06-30T00:​00:​00</​dateAdded>​
       </​dateAddeds>​       </​dateAddeds>​
       <​sorts>​       <​sorts>​
         <​sort>​5</​sort>​         <​sort>​5</​sort>​
         <sort usergroup="​LNrLF7BRVJ0toQ==">​7</​sort>​         <sort usergroup="​LNrLF7BRVJ0toQ==">​7</​sort>​
 +        <sort usergroup="​PN3enVBRVH0To(/">​6</​sort>​
       </​sorts>​       </​sorts>​
       <​allProperties>​       <​allProperties>​
Line 790: Line 872:
           <​property>​           <​property>​
             <​key>​Basic_rate_price</​key>​             <​key>​Basic_rate_price</​key>​
-            <​value>​99.9</​value>​+            <​value>​44.8</​value>​
           </​property>​           </​property>​
         </​properties>​         </​properties>​
Line 816: Line 898:
           <​property>​           <​property>​
             <​key>​Basic_rate_price</​key>​             <​key>​Basic_rate_price</​key>​
-            <​value>​89.9</​value>​+            <​value>​44.8</​value>​
           </​property>​           </​property>​
         </​properties>​         </​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>​       </​allProperties>​
     </​item>​     </​item>​