Экспорт автомобильных шин и дисков в Яндекс.Маркет

Я выбрал достаточно специфическую тему для заметки, но не без повода. Уже порядка года работаю с интернет магазином по продаже автомобильных шин и колесных дисков. Одной из приоритетных задач являлась интеграция магазина со столь популярным Яндекс.Маркетом. У Яндекса есть достаточно подробный хелп по протоколу экспорта, но описание таких товаров как шины или диски, к сожалению, весьма лаконичное. А спорных и непонятных моментов, ввиду специфики товара, оказалось очень много. Так как проблемы решались многочисленными звонками в техническую поддержку, я решил, что моя заметка может помочь кому-либо поберечь свое время и нервы. К слову, техническая поддержка очень редко дает четкие и внятные ответы, так как сотрудники, которым вверили оказание помощи клиентам, являются в большей степени менеджерами, а не техническими специалистами и, общаясь с разными операторами, вы можете встретиться с диаметрально противоположными ответами на один и тот же вопрос.




Учитывая крайне трепетное отношение Яндекса к качеству подключаемых магазинов, эксперименты на живом сайте могут плохо закончится и привести к исключению магазина из базы. Восстановление – услуга платная и не самая дешевая.

Я начну с примера реального файла экспорта, который и по сей день успешно используется.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2013-01-07 18:45">
    <shop>
        <name>Sitename</name>
        <company>ООО «Рога и Копыта»</company>
        <url>http://www.example.com</url>
        <platform>WordPress</platform>
        <version>3.3.1</version>
        <agency>ООО "Грэлис"</agency>
        <email>manager@gralice.ru</email>
        <currencies>
            <currency id="RUR" rate="1"/>
        </currencies>
        <categories>
            <category id="1">Шины</category>
            <category id="2">Диски</category>
        </categories>
        <local_delivery_cost>250</local_delivery_cost>
        <offers>
            <offer id="15495" type="vendor.model" available="true" bid="10">
                <url>http://www.example.com/tire/item/15495/</url>
                <price>6220</price>
                <currencyId>RUR</currencyId>
                <categoryId>1</categoryId>
                <picture>http://www.example.com/images/content/n1228.jpg</picture>
                <vendor>Dunlop</vendor>
                <model>Grandtrek SJ6 31/10.5 R15 109Q</model>
                <sales_notes>Необходима предоплата.</sales_notes>
                <param name="Сезонность">зима</param>
                <param name="Диаметр">15</param>
                <param name="Ширина">31</param>
                <param name="Профиль">10.5</param>
                <param name="Индекс нагрузки">109</param>
                <param name="Индекс скорости">Q</param>
            </offer>
            <offer id="05907" type="vendor.model" available="false" bid="10">
                <url>http://www.example.com/disk/item/5907/</url>
                <price>5240</price>
                <currencyId>RUR</currencyId>
                <categoryId>2</categoryId>
                <picture>http://www.example.com/images/content/n3562.jpg</picture>
                <vendor>Volvo</vendor>
                <model>V9 7.5/18 5*108 ET49 DIA67.1 SF</model>
                <sales_notes>Необходима предоплата.</sales_notes>
                <param name="Диаметр">18</param>
                <param name="Ширина">7.5</param>
                <param name="PCD">5*108</param>
                <param name="ET">49</param>
                <param name="DIA">67.1</param>
                <param name="Цвет">SF</param>
                <param name="Тип">литой</param>
            </offer>
        </offers>
    </shop>
</yml_catalog>

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

В данном примере показаны только две позиции: одна – шины, вторая – диски.

  • Два элемента <category> и их значения не имеют ничего общего с возможными категориями магазина. Это все лишь способ отделить друг от друга два разных типа товара: шины и диски. Если вы посмотрите на значение элемента <categoryId>, который присутствует у каждого контейнера offer, то сразу поймете взаимосвязь между ними.
  • Значение параметра ID у элемента <offer> никак не связано с реальными ID товаров в магазине. Данный параметр уникализирует позиции в рамках экспорта. В моем случае ID шин и дисков совпадали, поэтому пришлось к позициям дисков добавить ведущий 0. Это видно по второму блоку <offer>.
  • <sales_notes> – это самый загадочный элемент из тех, что присутствуют в описании позиции. Документация и мнение сотрудников тех. поддержки расходятся. Последние не советуют вписывать сюда информацию о том, что, например, при покупке 4 шин разом доставка будет бесплатной. При этом допустим, что для шин «под заказ» вы требуете предоплату. Данное правило действует для всех наименований, что вы продаете, но сопроводить данной информацией придется каждую шину. Какого-то одного упоминания будет недостаточно. А вот об акциях, невзирая на документацию, сюда лучше не писать.
  • Если шина изготовлена по технологии RunFlat, то данная маркировка должна присутствовать только в элементе <model> и размещаться в самом конце строки значения. Например, ContiIceContact BD 185/55 R15 86T RunFlat. Других упоминаний не требуется.
  • Если производитель не указывает для шины значение индекса нагрузки, то элемент <param name="Индекс нагрузки"> должен отсутствовать.
  • Параметр available элемента <offer> должен иметь значение false, если товарная позиция доступна «под заказ» или с любыми другими оговорками, требующими дополнительных согласований при обработке заказа.

Есть еще один неприятный момент, не имеющий прямого отношения к формату экспорта. Многие интернет магазины, занимающиеся продажей шин и дисков, имеют структуру, не подразумевающую наличие персональных страниц для каждого типоразмера. Имеются страницы производителей (брендов), а следующим и последним уровнем иерархии является страница модели, на которой приводится весь список допустимых типоразмеров. Это лаконично и удобно для покупателя, но Маркет требует иного подхода. В случае отсутствия, потребуется вводить понятие отдельной страницы для каждого типоразмера.

Комментарии (2)

  1. Андрей

    Здравствуйте!
    Спасибо за полезную информацию! Сейчас как раз занимаюсь импортом шин и дисков на яндекс.маркет.
    По поводу последнего замечания — нельзя ли там указывать URL модели, чтобы не плодить кучу страниц под типоразмеры? Яндекс за это не банит?

    • Яндекс как раз требует, чтобы у каждого типоразмера была отдельная страница. Модель не яввлется конечным товаром, добавляемым в корзину, поэтому её страницы недостаточно.

Добавить комментарий для Андрей Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *