Page tree
Skip to end of metadata
Go to start of metadata

Правила генерации

Если YML вашего магазина весит больше 5 мегабайт и генерируется скриптом дольше 20 секунд, будет лучше, если вместо того, чтобы указывать ссылку на скрипт генерации YML, вы поставите задачу генерации YML в расписание. Ваш скрипт должен генерировать статичный XML-файл, скачивание которого начнется сразу при обращении к нему, без затрат времени на генерацию. Это даст вам следующие преимущества:

  • снижение нагрузки на ваш сервер при больших YML (иначе будет очень легко устроить вам DDOS-атаку, сделав 20-30 одновременных запросов к этому ресурсоемкому скрипту);
  • ускорение загрузки вашего YML нашими серверами – вместо того, чтобы ждать генерации файла по 10-15 минут, REES46 сразу начнет их выкачивать и это повысит актуальность вашей товарной базы в рекомендательной системе.

Пример такого расписания для cron:

0 */2 * * * php /home/myuser/site/docs/yml.php > /home/myuser/site/docs/rees46.yml

Обратите внимание

Для загрузки изображений товаров система REES46 может многократно обращаться к серверу интернет-магазина. Убедитесь, что IP-адреса 88.99.193.211, 148.251.91.107 внесён в список исключений (белый список) в случае, если на сервере интернет-магазина используется защита от DDoS-атак или любой другой тип блокировки многократных обращений к серверу. В противном случае система REES46 не сможет получить доступ к изображениям товаров, и товары без изображений будут исключены из рекомендаций.

Формат

Базируется на YML (Yandex Market Language) - http://help.yandex.ru/partnermarket/yml/about-yml.xml

Пример блока offer:

<!-- id - ID товара в вашем магазине. -->

<!-- available - доступность товара для рекомендаций. -->
<offer id="395532" available="true">
  
	<!-- Прямая ссылка на товар, без лишних параметров. -->
	<!-- Без utm_source и других атрибутов отслеживания источников трафика -->
	<url>http://example.com/items/395532</url>
  
 	<!-- Базовая цена товара. -->
	<price>50000</price>

	<!-- "Старая" цена для маркетинговых рассылок -->
	<oldprice>55000</oldprice>
 
    <!-- Относительная маржинальность (приоритет) товара (от 0 до 100) -->
    <price_margin>67</price_margin>
	<!-- Категория товара. Может быть несколько. -->  
	<categoryId>57</categoryId>
	<categoryId>32</categoryId>
	<categoryId>313</categoryId>
 
	<!-- Сезонность товара, месяц (числа от 1 до 12), когда товар будет попадать в блоки рекомендаций. Может быть несколько или отсутствовать совсем. -->
	<seasonality>1</seasonality>
	<seasonality>3</seasonality>
	<seasonality>4</seasonality>
	<seasonality>6</seasonality>
	
	<!-- Штрих-код товара, если есть. -->
	<barcode>123456</barcode>

	<!-- Изображение товара. Будет использовано в рассылках. -->
	<picture>http://example.com/items/395532.jpg</picture>
  
	<!-- Название товара. Будет использовано в рассылках. -->
	<name>Apple Iphone 6 128 gb</name>
 
	<!-- Структурированные данные о производителе и модели — используется для кросс-сайтового анализа поведения -->
	<typePrefix>Смартфон</typePrefix>
	<vendor>Apple</vendor>
	<vendorCode>APPL</vendorCode>
	<model>iPhone 6 128Gb</model>

	<!-- Рейтинг товара по пятибальной шкале (целое число от 0 до 5), где 0 — товар без рейтинга, 1-5 — рейтинг товара. Может отсутствовать. -->
	<rating>5</rating>

	<!-- Описание товара. Может быть использовано в рассылках. -->
	<description><![CDATA[iPhone 6 не просто больше. Он лучше во всех отношениях. 4,7-дюймовый HD-дисплей Retina. Процессор A8 с 64-разрядной архитектурой уровня настольного компьютера. Новая 8-мегапиксельная камера iSight с технологией Focus Pixels. Сенсор идентификации по отпечатку пальца Touch ID. Скорость Wi-Fi выше. Время работы от аккумулятора дольше. А также iOS 8 и iCloud. Все это - в цельном корпусе толщиной всего 6,9 мм.]]></description>

</offer>

География и пункты выдачи

Если ваш магазин работает больше, чем в одном городе или имеет несколько пунктов выдачи в пределах одного города, то необходимо передавать информацию о вашей географии и распределении товаров в пунктах выдачи и ценах в этих городах и пунктах выдачи.

Информация о географии

Перечислите дерево всех ваших пунктов выдачи в секции <shop>:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2015-04-01 17:00">
    <shop>
        <name>Magazin</name>
        <company>Magazin</company>
        <url>http://www.magazin.ru/</url>

        <locations>
          <location id="1" type="city" name="Москва" />
          <location id="2" type="city" name="Санкт-Петербург" />
          <!-- ... -->
          <location id="145" type="store" name="Пункт выдачи на Арбате" parentId="1" />
        </locations>
        
        <currencies>...</currencies>
        <categories>
          <category id="2" url="http://example.com/categories/discount">Скидки</category>
          <category id="8">Мужчинам</category>
          <category id="13" parentId="8">Бордшорты</category>
        </categories>
        <offers>...</offers>
    </shop>
</yml_catalog>

 

Указание распределения остатков по пунктам выдачи и регионам

Для каждого товара в секции <offer> указывайте локации, в которых товар доступен и цену, по которой продается товар в этой локации:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2010-04-01 17:00">
    <shop>
        ...
        <offers>
            <offer ...>

                <url>http://example.com/items/395532</url>
                ...

                <!-- Если ваш магазин работает в нескольких городах: -->
                <locations>
                    
					<!-- Эта строчка говорит о том, что в городе с ID '1' товар доступен по цене '50300' -->
                    <location id="1">
                        <price>50300</price>
                    </location>
                    
					<!-- Если в строчке нет цены - будет считаться, что она совпадает с базовой. -->
                    <location id="2"></location>
                    
					<!-- Для города с ID '3' запись отсутствует - это значит, что в нем товар недоступен. -->
                    <location id="4">
                        <price>49000</price>
                    </location>
                </locations>
            </offer>
        </offers>
    </shop>
</yml_catalog>

Сколько товаров осталось

Для каждого товара в секции <offer> укажите аргумент leftovers.

Аргумент может принимать одно из значений:

ЗначениеОписание
oneодна единица товара
fewот 2 до 10 единиц товара
lotбольше 10 единиц товара

Аргумент также может не иметь значений или отсутствовать.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2010-04-01 17:00">
    <shop>
        ...
        <offers>
            <offer leftovers="one" ...>
                ...
            </offer>
            <offer leftovers="lot" ...>
                ...
            </offer>
            <offer ...>
                ...
            </offer>
        </offers>
    </shop>
</yml_catalog>

Аксессуары

Часто в магазинах не хватает продаж для того, чтобы программно построить связь между всеми товарами и их аксессуарами, при этом ранее в личном кабинете CMS уже были вручную построены такие связи. Вы можете передавать эти связи в YML для усиления персонализированных рекомендаций алгоритмов "С этим также покупают" и "Посмотрите также".

Для этого создайте такую секцию:

...
<offer ...>
	...
	<accessories>
		<!-- В атрибуте "id" указывайте идентификатор товара-аксессуара -->
		<accessory id="5574" />
		<accessory id="131" />
		<accessory id="99444" />
		<accessory id="334411" />
		...
	</accessories>
	...
</offer>

Товары, перечисленные как аксессуары, также должны находиться в YML и быть доступными для продажи.

Штрихкод

Штрихкод используется для идентификации товара в разных магазинах. Это улучшит сопоставление интересов покупателя и повысит качество рекомендаций.

Для этого используется секция barcode:

...
<offer ...>
	...
	<barcode>123456</barcode>
	...
</offer>

Дополнительные данные для отраслевых алгоритмов

Требования к дополнительным данным о товаров для отраслевых алгоритмах описаны в следующих документах:

 

Правильный формат ссылок для триггерных web-push оповещений

Все web-push оповещения требуют наличия на сайте HTTPS протокола. Триггерные web-push оповещения также требуют ссылок на изображения товаров в YML-файле в https-формате.

Убедитесь, что ссылки на изображения начинаются с https:// !

В противном случае, ваши покупатели не увидят картинок в оповещениях:

Поддержка архивных файлов

Для того, чтобы ускорить выкачивание больших YML-файлов, вы можете архивировать их архиватором GZIP. REES46 автоматически определяет архивированный файл, распаковывает его и обрабатывает. Формат архива – GNU Gzip.

  • No labels