Page Comparison - XML Product Feed (v.64 vs v.65) - EN documentation - REES46 Manual
Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Panel
titleThis page covers the following:

Table of Contents

Basic format

The REES46 product feed is based on YML (Yandex Market Language), a more detailed description of which is available in the Yandex help section at the link: https://yandex.com/support/partnermarket/yml/about-yml.html

Supported Encodings

  • UTF-8
  • Windows-1251

Main elements

ElementRequiredDescription
xmlrequiredStandard XML header. The header should start from the first line with the null character.
yml_catalogrequiredAny XML document can contain only one root element. The YML format uses the yml_catalog element as the root element.
shoprequiredThis element contains a description of the store and its products.

"xml"

Available attributes:

AttributeRequiredDescription
versionrequiredXML language version. Version "1.0" must be used.
encodingrequiredXML encoding used.


Example:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>

"yml_catalog"

Available attributes:

AttributeRequiredDescription
daterequiredThe date attribute of the yml_catalog element must match the date and time the YML file was generated on the store side. The date should be in the YYYY-MM-DD hh:mm format.


Example:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2019-05-16 17:19">
...
</yml_catalog>

"shop"

shop's child elements:

ElementRequiredDescription
namerequiredThe short name of the store.
companyrequiredFull name of the company that owns the store.
 urlrequiredURL of store's home page.
currenciesrequiredList of store's exchange rates.
categoriesrequiredList of store's categories.
locationsoptionalList of store's locations.
offersrequiredList of store's products.

"name"

Example:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2019-05-16 17:19">
    <shop>
        <name>My store</name>
    ...
    </shop>
</yml_catalog>

"company"

Example:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2019-05-16 17:19">
    <shop>
    ...
        <company>My company</company>
    ...
    </shop>
</yml_catalog>

"url"

Example:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2019-05-16 17:19">
    <shop>
    ...
        <url>https://my-store.com</url>
    ...
    </shop>
</yml_catalog>

"currencies"

The currencies element sets a list of the store's exchange rates. Each currency is described in a separate currency element.

The currency element attributes are:

AttributeRequiredDescription
idrequiredThe id attribute of the currency element specifies the code of a particular currency that can be used in the YML file.
raterequiredThe rate attribute specifies the exchange rate between the selected currency and the main currency taken as a unit (currency for which rate="1"). All numbers in YML use the dot as the decimal separator, regardless of regional settings (never use the comma).


Example:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2019-05-16 17:19">
    <shop>
    ...
        <currencies>
            <currency id="RUR" rate="1"/>
            <currency id="USD" rate="64.45"/>
            <currency id="EUR" rate="72.03"/>
            ...
        </currencies>
    ...
    </shop>
</yml_catalog>

"categories"

The parent element categories describes the list of store categories in YML format. Each category is described in a separate category element.

The category element attributes are:

AttributeRequiredDescription
idrequiredThe category identifier.
parentIdoptionalThe parent category identifier.
urloptionalCategory page URL.


Example:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2019-05-16 17:19">
    <shop>
    ...
        <categories>
            <category id="2" url="http://my-store.com/categories/discount/">Распродажа</category>
            <category id="8" url="http://my-store.com/categories/men/">Мужчинам</category>
            <category id="13" parentId="8" url="http://my-store.com/categories/men/shoes/">Shoes</category>
            ...
        </categories>
    ...
    </shop>
</yml_catalog>

"locations"

The locations element sets a list of the store's locataions. Each location is described in a separate location element.

The location element attributes are:

AttributeRequiredDescription
idrequiredThe location identifier.
parentIdoptionalThe parent location identifier.
typeoptionalThe location type. Available values are: city, store.
nameoptionalThe location name.


Example:

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2019-05-16 17:19">
    <shop>
    ...
        <locations>
            <location id="1" type="city" name="Moscow" />
            <location id="2" type="city" name="Saint Petersburg" />
            <location id="145" parentId="1" type="store" name="Central District store" />
            ...
        </locations>
    ...
    </shop>
</yml_catalog>

"offers"

The offers element sets a list of the store's products. Each offer is described in a separate offer element.

Note

Please note, the offer element cannot contain a product variant, only the product itself. If in your store all variants of product are on the same page and there is no common product identifier then you need to use one of the variant as the main one - its identifier, price and other data. Usually, the low cost variant is chosen as the main one and the availability flag in this case should fit into the following logic: if at least one variant is in stock then the product should be marked as available.


The offer element attributes are:

AttributeRequiredDescription
idrequiredThe product identifier.
availablerequiredThe product availability. Available values are: true, false.
leftoversoptionalRough number of the products left in stock. Available values are:
  • one - one product
  • few - 2-10 products
  • lot - over 10 products


offer's child elements:

ЭлементRequiredDescription
namerequiredFull offer name that includes: product type, manufacturer and product name. See the following elements for separate use: typePrefixvendormodel.
picturerequiredProduct image URL.
pricerequiredBase product price.
urlrequiredURL of the product page on the store's website.
categoryIdrequiredProduct category ID assigned by the store. It's possible to use several of these elements.
locationsoptionalAn element describing the properties of a product in different locations: availability, price. See table and example below.
accessoriesoptionalAn element describing the list of accessories for the current product. See example below.
customerRecommendationsoptionalAn element describing the list of custom recommended products for the current product. See example below.
oldpriceoptionalThe old price of the product should be higher than the current one.
price_marginoptionalRelative marginality (priority) of the product (from 0 to 100).
barcodeoptionalProduct manufacturer's barcode in one of the following formats: EAN-13, EAN-8, UPC-A, or UPC-E.
typePrefixoptionalType/category of product (for example: "mobile phone", "washing machine", "corner sofa").
vendoroptionalManufacturer/brand.
vendorCodeoptionalManufacturer product code.
modeloptionalModel and product name.
seasonalityoptionalProduct seasonality. The sequence number of the month (from 1 to 12) is used as the value. These elements may be several.
is_newoptionalIt can take only one value - "1", which means that the product is new.
ratingoptionalProduct rating. Integer value from 0 to 5, where 0 is a product without a rating, 1-5 is a rating.
descriptionoptionalProduct description.
stock_quantityoptionalThe available quantity of products. Integer value from 1 and more.


"locations"

The locations element contains a list of locations, includes the current product availability and price in locations. Each location is described by a separate location element.

The location element attributes are:

AttributeRequiredDescription
idrequiredLocations identifier. Must match one of the locations (identifier) ​​described in shop/locations list. More information about the location, see the subsection above and in the example below.


Note

Please note, the product will be considered available for purchase only in the locations listed in the offer element, in all other known but not listed locations the product will be considered unavailable for purchase.

Child elements:

ЭлементRequiredDescription
priceoptionalProduct price in location. The product will use the base price if this element is missing.
oldpriceoptionalProduct old price in location. The product will use the base old price if that exists and this element is missing.

Full XML example

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<yml_catalog date="2019-05-16 17:19">
    <shop>
		<name>My store</name>
		<company>My company</company>
		<url>https://my-store.com</url>
		<!-- list of store currencies and exchange rates -->
        <currencies>
            <currency id="RUR" rate="1"/>
            <currency id="USD" rate="64.45"/>
            <currency id="EUR" rate="72.03"/>
        </currencies>
		<!-- list of all store categories, their hierarchies and links -->
        <categories>
            <category id="2" url="http://my-store.com/categories/apple/">Apple</category>
            <category id="13" parentId="2" url="http://my-store.com/categories/apple/phones/>Phones</category>
        </categories>
		<!-- list of all store locations -->
        <locations>
            <location id="1" type="city" name="Moscow" />
            <location id="2" type="city" name="Saint Petersburg" />
			<location id="3" type="city" name="Novosibirsk" />
        </locations>
		<offers>
			<offer id="395532" available="true" leftovers="few">
				<url>http://my-store.com/items/395532</url>
				<price>50000</price>
				<oldprice>55000</oldprice>
				<price_margin>67</price_margin>
				<!-- list of categories hierarchies in which this product is present -->
				<categoryId>2</categoryId>
				<categoryId>13</categoryId>
				<!-- Seasonality list. Priority months for this product: January, March, April, June. -->
				<seasonality>1</seasonality>
				<seasonality>3</seasonality>
				<seasonality>4</seasonality>
				<seasonality>6</seasonality>
				<!-- product locations list and the price in the location -->
				<locations>
					<location id="1">
						<price>70000</price>
						<oldprice>75000</oldprice>
					</location>
					<!-- id="2" location is not specified, it means this product isn't available in this location -->
					<!-- price for id="3" location is not set, it means the price is equal to the base price -->
					<location id="3"></location>
				</location>
				<!-- list of product IDs that are accessories for the current product -->
				<accessories>
					<accessory id="5574" />
					<accessory id="131" />
					<accessory id="99444" />
					<accessory id="334411" />
				</accessories>
				<customerRecommendations>18,21,146,100500</customerRecommendations>
				<barcode>123456</barcode>
				<picture>https://my-store.com/items/395532.jpg</picture>
				<name>Apple Iphone 7 128 gb</name>
				<typePrefix>Smartphone</typePrefix>
				<vendor>Apple</vendor>
				<vendorCode>APPL</vendorCode>
				<model>iPhone 7 128Gb</model>
				<is_new>1</is_new>
				<rating>5</rating>
				<description><![CDATA[The moment you connect with iPhone 7, you will know you've never felt anything like it. With a single press, 3D Touch lets you do more than ever before. Live Photos bring your memories to life in a powerfully vivid way. And that's just the beginning. Take a deeper look at iPhone 7, and you'll find innovation on every level.]]></description>
			</offer>
			<offer id="395533" available="false">
				...
			</offer>
			...
		</offers>
    </shop>
</yml_catalog>

Additional data for niche algorithms

if you are a user of any of our Niche Solutions, please add extended parameters to each product (for the explanation see Niche Solutions)!


Generate a Static File

If your XML-file weighs more than 5 megabytes and its generation by the script takes more than 20 seconds, set a scheduled Cron task to generate your XML-file (read "don't give us a direct link to the script that generates the file").

It will give you the following advantages:

  • Reduction of your server workload (without a direct link to the script it would be not possible for somebody to easily organize a DDOS-attack with multiple requests to the script)
  • Instant download of your XML-file: REES46 will be able to instantly download the XML-file and have the most recent catalog updates from you. That ensures your success - the products will always hold highest marketing potential.

Example of scheduled XML-file generation for Cron:

Code Block
0 */2 * * * php /home/myuser/site/docs/xml.php > /home/myuser/site/docs/rees46.xml


Info
titleNOTE

In order to speed up the download of your XML-file,, you can compress it using GNU GZIP. REES46 fully supports .gzip format and auto-exacts files for further processing.


Warning
titleMULTIPLE REQUESTS

To load all product images, REES46 may send your server multiple requests. If you notice your server blocks multiple requests from IPs 88.99.193.211, 148.251.91.107 (REES46 Technologies), please add this IP addresses to your white list. Otherwise, REES46 will not be able to access product images, and products without images may be excluded from recommendations.


Go to the top of the page | Go to the next guide


Panel
titleTable of Contents

Page Tree
rootMain Settings


Tip
titleTIP

If the XML Product Feed option is unavailable in your store due to the CMS limitations, address the HTTP API & Product Feed section.