Как создать файл YML для Яндекс.Маркет

+8
21.82K
Я как и многие, кто будет читать данный раздел являюсь пользователем замечательной системы InstantCMS. Также я купил модуль InstantShop, для того чтобы создать интернет магазин. В настоящий момент у меня есть два интернет магазина различных тематик, и вот для одного из них и необходимо было создать файл YML для того, чтобы подключить интернет магазин к сервису Яндекс.Маркет.

Этим документом я постараюсь рассказать, как в полуавтоматическом режиме создать файл YML. Возможно, кто-то найдет в моем описание огрехи и предложить более короткий путь. Автор готов к обсуждению.

Начну с того, что весь прайс-лист магазина находится у меня в таблицах Excel. Мне это было необходимо, для того чтобы данные можно было конвертировать в магазин в автоматическом режиме.
Каждый лист моей таблицы Excel содержал только часть информации которая необходима для создания файла YML.

Поговорим немного о самом формате YML и что в нем должно содержаться. (пример моего файла YML — Прайс лист в формате YML). Там же лежит файл lavka_price.xml

Заголовок файла YML, мне пришлось писать руками, откроете мой файл и все поймете, там нет ничего сложного.

Товары внутри файла YML должны быть описаны внутри тегов <offer>… </offer>
Каждый и товаров внутри тегов должен содержать следующие данные:
<offer id="500" available="true"> — стартовый тег карточки товара, id товара, доступность товара
<url> www.lavka.od.ua/shop/bytovaja-tehnika/vodonagrevateli/cube-steatite-vm-50s4cm.html </url> — ссылка на страницу товара
<price>171</price> — цена товара
<currencyId>USD</currencyId> — валюта товара
<categoryId>272</categoryId> — категория товара
<picture> www.lavka.od.ua/images/photos/medium/shop500.jpg </picture> — ссылка на фотографию товара
<name>CUBE STEATITE VM 50S4CM</name> — имя товара
<vendor>Atlantic</vendor> — производитель товара
</offer> — тег закрытия карточки товара

Из всех указанных выше данных у меня отсутствовали следующие данные:
— ссылка на страницу товара
— категория товара
— ссылка на фотографию товара
Также отсутствовала валюта товара, но т.к. она единая для всего магазина, то она не требует много знаний кроме как просто ее добавить в нужный столбец и все.

Для того чтобы получить недостающие данные пришлось писать формулы для Excel.
1. Создание ссылки на товар
Внутри InstantShop каждому товару присваивается страница с наименованием товара + .html
Для того чтобы получить необходимую страницу пришлось вначале избавляться от пробелов, и заменять их знаком тире, формула =ПОДСТАВИТЬ(номер ячейки;" ";"-"), далее избавляемся от больших букв, т.к. название страниц только маленькие буквы, для этого я использовал формулу =СТРОЧН(номер ячейки).
Далее выполняем сцепку, полученный строчный результат cube-steatite-vm-50s4cm, дополняем недостающими значениями, формула: =СЦЕПИТЬ("http://www.lavka.od.ua/shop/bytovaja-tehnika/vodonagrevateli/";L6;".html") и получаем на выходе в нужной ячейке значение: www.lavka.od.ua/shop/bytovaja-tehnika/vodonagrevateli/cube-steatite-vm-50s4cm.html
Примечание, у Вас может быть сложное название товара (FHR G (AN))в таком случае необходимо делать несколько преобразований, т.к. в названии страницы не может быть скобок и знака /.

2. Категория товара
Она создается на основе логической формулы вот такого примера, для раздела холодильники:
=ЕСЛИ(N6="однокамерный";259; ЕСЛИ(N6="двухкамерный";260; ЕСЛИ(N6="трехкамерный";261; ЕСЛИ(N6="винный";262; ЕСЛИ(N6="морозильник";263; ЕСЛИ(N6="комби";264; ЕСЛИ(N6="side-by-side";265))))))).
Т.к Все мои товары были разложены по подкатегориям (для холодильников это 7 подкатегорий), то система сама все сделала. Т.е в зависимости к какому под разделу относится товар (однокамерный, двухкамерный и т.д) будет вставлена соответствующая цифра 259, 260 и т.д.

3. Ссылка на фотографию
Используя ID товара, можно без труда создать ссылку на фото товара, т.к InstantShop создает ссылки используя номер ID.
Форула: =СЦЕПИТЬ("http://www.lavka.od.ua/images/photos/medium/shop";E6;".jpg") на выходе получаем следующий результат: www.lavka.od.ua/images/photos/medium/shop500.jpg


Далее необходимо перевести файл XLS в формат XML, как это сделать я подробно описал вот Здесь Описание преобразования XLS в XML.

Теперь несколько оговорок, полученный XML файл необходимо дополнить заголовком и всей необходимой требухой которую требует Яндекс. Далее переименовать расширение файла из XML в YML.
Все Ваш файл готов.


Рыба, катамаран, плохо дело!
+1
Tempest Tempest 11 лет назад #
На самом деле я считаю, что выгрузка на маркет должна быть зашита в модуль изначально..., но это уже к разработчикам.
+1
Yossarian Yossarian 11 лет назад #
Я тоже так считаю, тк. цены постоянно меняются и нужно изменять цены не только в InstantShop но и файле. Разработчики обещают это сделать,по крайней мере это стоит в планах у них.
0
Andrey Andrey 11 лет назад #
Есть в принципе скрипты которые ставятся в папку с магазином или в папку XML,
после чего остается дать ссылку на XML админам площадки.Вот только не знаю
будут ли эти скрипты работать тут!
0
Yossarian Yossarian 11 лет назад #
Не очень понял Ваш комментарий.
Все будет работать автоматически, когда разработчик InstantShop, добавит данную опцию с магазин. Т.к. все необходимые данные для файла YML есть в базе, и задача только вытащить их оттуда и положить новый файл согласно стандартной форме.
А я описал процесс как это сделать самому без спец программ.
еще рекомендую Вам прочитать мой же документ
http://www.lavka.od.ua/stati/internet-market/preobrazovanie-xls-v-xml.html

Чтобы понять как это сделать я потратил неделю и рылся на анголоязычном интернете и нашел инструкцию проверил ее и описал на русском.
0
Andrey Andrey 11 лет назад #
Я имел ввиду,что есть у меня магазин,к нему написаны 2 скрипта(они сами все преобразуют).
Если есть необходимость их можно установить(2 минуты),а на яндекс-маркет
остается только ссылку дать к папке и все!То есть обновился товар к примеру
в магазине,то в маркете об этом узнают и самому заморачиваться не нужно.
А ваш документ обязательно почитаю!
0
Yossarian Yossarian 11 лет назад #
Ваши скрипты подходят к InstantShop?
0
Andrey Andrey 11 лет назад #
Тут у меня нет магазина,я месяц назад сюда пришел,а в первом посте я так и написал "Вот только не знаю будут ли эти скрипты работать тут! Мой намек)был направлен на то,что специалисту не составит труда подогнать их под инстант.

Еще от автора

Дополнение  - Указатель для сайта
На страницах блогов нашел модуль Указатель 1.10.Х (http://instantcms.ru/blogs/leothemes-ru/modul-ukazatel-1-10-h.
Доработка InstantShop
В предыдущем своем посте я описал процедуру внедрения курса доллара в Универсальный каталог.
Доработка Универсального каталога
На моем сайте Насосы и насосные станции (www.nasosu.com.ua) установлен InstantShop для раздела Насосы и насосные станции.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.