YML - файл: что это такое, в чем польза и где он пригодится
Для выгрузки товаров в Яндекс Маркет из веб магазина в формате yml, есть . Тем не менее, частые заказы связаны с тем, что "программист взялся и yml написать осилил, но почему он не подходит Яндексу".
Мешает ограничение на 3 бесплатных проверки. Но елки палки, уж проверить то xml на валидность можно? Есть отличный онлайн сервис для проверки xml . Проверка в два этапа, сначала скармливаем yml, затем shops.dtd Это избавит от большей части ошибок. Перечислю самые частые.
1.В неправильном порядке перечислены элементы.
Пример yml файла, который не пройдет валидацию.
< offer id = "1208" available = "true" > < price > 3000 < / price > < url > http : //sdsfsfsfsfs.ru/catalogue/17/1208/ < currencyId > RUR < / currencyId > < categoryId > 17 < / categoryId > < picture > http : //sdsdssdsds.ru/uplfiles/2012101210550511.jpg < name > КомодЛотосскрышкой2.06 < / name > < vendorCode > КомодЛотосскрышкой2.06 < / vendorCode > < description > Размеры: Высота840 см, Ширина814 см, Глубина400 см< / description > < / offer > |
Элементы price и url перепутаны, а ведь порядок указан в shops.dtd, да и в мануале черным по-белому указано блюсти правильный порядок.
2. Запрещенные символы
Стандарт XML не допускает использования в текстовых данных непечатаемых символов с ASCII-кодами в диапазоне значений от 0 до 31 (за исключением символов с кодами 9, 10, 13 — табуляция, перевод строки, возврат каретки). Опять таки в мануале указаны 5 символов, которые подлежат замене на их эквиваленты в текстовых полях.
Error parsing XML feed: Unterminated entity reference, "gt" (строка 53105, столбец 25)
3. Несоответствие типу.
Выбирают тип vendor.model например и пытаются пихать в него какой либо элемент, специфичный для типа book. Или наоборот, не указывают обязательный эелемент. В результате примерно такое
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Not enough elements to match content model: "(name,company,url,phone?,platform?,version?,agency?,email*,currencies,categories,store?,pickup?,delivery?,deliveryIncluded?,local_delivery_cost?,adult?,offers)" (строка 22, столбец
Или
Element "store" is not valid for content model
И перечень основных ошибок от Яндекса.
[скачать]
Для того, чтобы избавиться от этих ошибок, написал простенький класс, который работает с типом "vendor-model". В Яндекс Маркете их несколько, но vendor-model подходит для большинства веб магазинов. Скрипт генерирует валидный yml-файл, с нормальным заголовком, с правильным порядком элементов и заменяет "неправильные" символы.
Пример его использования. В примере всего 1 товар, но их можно добавить сколько нужно.
addCurr("RUR", 1); $market->addCurr("USD", "CBRF"); $market->addCat("Все товары",1); $model = self::_getModel(); $entries = $model->fetchEntries(); foreach ($entries as $entry) { // offer catId, title, entryId $offer = new OfferYmt($entry["id"]); $offer->setUrl("http://ikey.ru/product/" . $entry["uri"]); $offer->setRequired($entry["price1"], "RUB", 1, $companyName, $entry["title"]); $offer->setElem("description", $entry["data"]); $market->addOffer($offer->save()); } //var_export($entries); $xml = $market->save(); $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); /* $view = new Zend_View(array("basePath"=>APPLICATION_PATH."/views")); $view->xml = $xml; $this->render("/yamarket/view") ;*/ header("Content-type:application/xml"); $yml = iconv("utf-8", "cp1251//IGNORE", $xml); //file_put_contents("ymt.xml", $yml); // а можно сохранить в файл echo $yml; }
< ? php include "YandexMarket.php" ; public function viewAction () { $ shopName = "Все для домофонных ключей" ; $ companyName = "OOO "ККККЕЙ"" ; $ siteURL = "http://kkkkey.ru" ; $ market = new YandexMarket ($ shopName , $ companyName , $ siteURL ) ; $ market -> addCurr ("RUR" , 1 ) ; $ market -> addCurr ("USD" , "CBRF" ) ; $ market -> addCat ("Все товары" , 1 ) ; $ model = self :: _getModel () ; $ entries = $ model -> fetchEntries () ; foreach ($ entries as $ entry ) { // offer catId, title, entryId $ offer = new OfferYmt ($ entry [ "id" ] ) ; $ offer -> setUrl ("http://ikey.ru/product/" . $ entry [ "uri" ] ) ; |
All YML Generator PRO - генератор YML feed"а для импорта любых товаров в Яндекс.Маркет - для размещения на Яндекс.Маркет. Эта продолжение версии известного и популярного модуля All YML Export PRO
Что добавлено по сравнению с предыдущим модулем
- В товаре появилась закладка с настройками каждого товара, если это нужно
- Можно создавать любое количество файлов YML, с разным набором данных из определенных категорий / производителей. Для этого сначала создается шаблон содержания YML (что в нем должно быть). Далее он(и) присваиваются тем или иным категориям/производителям и создается шаблон фильтра данных. И далее каждый такой набор (содержание + откуда брать) можно выгрузить в отдельный файл, по отдельной защищенной ссылке.
- Добавлен новый атрибут для
- fee - Редактор своих тегов – можно добавить свои элементы и сложить в них любые данные. Это бывает нужно для сторонних площадок, которые принимают YML, но у которых больше пожеланий к YML, что чем есть в стандарте YML.
- Конвертация валюты, если разные валюты у товаров
- Деление товаров по опциями
- Запись файла в любую папку
- Новая архитектура - модуль работает быстрее
- Обновление категорий маркет
- Широкий спектр фильтрации данных, которые нужно размещать в YML (по ценам, по id, по категориям, по производителям и др.)
Подходит для всех версий: от 2.0 до 2.3 включительно. А также для сборок на его базе (OCSTORE, Русская сборка и др.)
Проверенная, стабильная, уникальная архитектура и функционал
Данный модуль позволяет создавать полный YML, с любыми типами настроек YML и для любых товаров.
Уже проверен на сотнях магазинов, включая генерацию YML с более чем 100"000 позиций
Настройка каждого товара в отдельности, и групповые настройки
Вы покупали ранее наш модуль All YML EXPORT PRO? - Обратитесь к нам за обновлением - для Вас обновление со скидкой 50%.
Если Вам необходимо заводить товары в ОпенКарт из YML. Например, если Ваш поставщик передал Вам ссылку на YML, чтобы Вы завели его товары к себе в магазин. Для этого используйте другой модуль - модуль импорта (парсинга) из YML в OpenCart
Особенности
- Уже загружены категории Яндекс.маркета. Содержит встроенный список категорий Яндекс Маркета, включая полные пути. Также возможность совмещения категорий Вашего магазина с категориями Яндекс.Маркет. Список категорий и их названия можно обновлять прямо через модуль. Можно задавать категории Маркет прямо в карточке товара.
- sales_note для товаров в наличии, и нет в наличии, а также возможность передавать значение в этот элемент из любых данных о товаре, опций или характеристик и пр.
- Если у товаров есть свои поля в таблице продуктов магазина (в карточке товара) - модуль найдет все такие поля и позволит направить данные из них в нужные элементы YML
- Управления ценами для предложений: конвертация, если мультивалютные цены; создание наценки, акционные цены в YML
- Редактор своих тегов. Возможность создания своих тегов в YML с любым типом данных (опциями, атрибутами, категориями и мн. другими). Отлично подойдет для выгрузки YML . . .
Этот контент ограничен для подписчиков
Подписаться
В пору захвата мира интернетом все больше людей пользуются интернет-магазинами. Но прежде, чем что-то оттуда заказать, большинство из нас задаст свой вопрос поисковику. И если вы предпочитаете Яндекс Google, то наверняка не побрезгуете зайти в Маркет, потому что именно там можно сразу оценить все предложения, какие только могут быть. И не надо перелопачивать кучу информации - удобные фильтры сильно упрощают работу.
Кроме того, Яндекс Маркет - это не только объявления в поиске.
Но и большая витрина, похожая на большой интернет-магазин:
Например, вы смотрите не фотоаппараты, а платья:
Все те же удобные фильтры есть и здесь.
Поэтому сегодня я предлагаю посмотреть: а каким таким волшебным образом все эти товары попадают на данную площадку?
Файл для Маркета
Если обобщенно, то файл для Маркета - это документ, содержащий полный ассортимент ваших товаров, которые вы планируете продавать через данную площадку.
Допускается три формата:
CSV - это текстовый файл, состоящий из строк, данные в которых отделены специальными символами - разделителями.
XLS файл же наиболее удобен для тех, кто хранит свои товары в таблицах Excel.
С требованиями к обоим типам файлов можно ознакомиться в справке Яндекс Маркета, а из минусов можно назвать отсутствие возможности передачи характеристик товара, а также то, что все цены будут пересчитаны в рубли.
YML файл для Маркета
YML файл (Yandex Market Language) - это специальный формат файла, позволяющий владельцам интернет-магазина размещать свои товары в Яндекс Маркете.
YML файл для Яндекс Маркета является предпочтительным форматом, так как если у вас большой ассортимент, который постоянно обновляется, то, чтобы не делать все вручную, вам не обойтись без помощи автоматического экспорта. Лучше всего с этим справляется YML.
Таким образом, если CSV и XLS удобны, когда вы составляете прайс-лист вручную, то YML лучше подойдет для автоматизации процессов. Поэтому если вы сомневаетесь, какой формат файла для загрузки на Маркете выбрать, решите: будете ли вы составляеть прайс-лист вручную или воспользуетесь услугами программистов.
Подробно с элементами, которые используются в файле для Маркета, можно ознакомиться .
Там же можно найти примеры.
Как создать YML файл для Маркета?
- Прежде всего, только актуальная информация!
- Используйте каждое поле по его назначению: если это описание, то описывайте все преимущества данного товара, если у вас какие-то специальные условия покупки - используйте поле salеs_notes. делайте все, как положено, и будет вам счастье. Не нужно засорять поле информацией, для которой оно не предназначено.
- Четко и понятно прописывайте название предложения. Например, если вы продаете фотоаппарат Canon, то так и пишите:
то есть указывайте важные параметры: тип товара, производителя/марку, модель, потому что именно
Для того, что бы товарные предложения вашего интернет магазина работали по максимуму, нужно грамотно подойти к подготовке прайс-листа для Яндекс Маркет в формате yml. Предлагаем подробную инструкцию.
Вступление: подготовка интернет магазина к размещению
Прежде чем передавать интернет магазин на проверку, вы должны проверить его на соответствие требованиям:
- наличие информации о вариантах оплаты и доставки (стоимость и сроки доставки)
- наличие информация о компании, включая юридический адрес и огрн
- для каждого товарного предложения должна быть оформлена отдельная страница с возможностью сделать заказ
- сайт работает и не содержит вирусов
- на странице товарного предложения не должны открываться дополнительные окна (PopUp, PopUnder)
- в наименовании товара указаны только название и основные характеристики (без слов аналог, новинка, хит и т.д.)
- в названии и описании предложения нет слов, набранных заглавными буквами
- указана конечная цена, включающая все налоги; в процессе заказа стоимость не изменяется
- менеджеры готовы обработать заказ в течение часа после поступления
- магазин не торгует подделками
- магазин не торгует б/у товарами
- магазин работает с физическими лицами
- магазин торгует в розницу
Часть 1: подготовка прайс-листа для Яндекс Маркет в YML формате
Самый эффективный способ передачи данных — это YML прайс-лист произвольного формата. Данные в прайс-листе передаются специальными тегами. Если ваша система не поддерживает такой формат, мы бы порекомендовали ее сменить.
Пример прайс-листа в xls формате
—
Пример прайс-листа в xml формате
—
Категория, тег
Скачать дерево категорий Яндекс Маркета можно по ссылке:
http://download.cdn.yandex.net/market/market_categories.xls
Заголовок товарного предложения
В произвольном формате заголовок передается по частям, включая: модель, производителя, тип. Это позволяет более точно классифицировать товар и связывать его с визуальными карточками.
Моторное масло
MOBIL
Optimal Synth 5W-40 1 л
3925
Для реализации произвольного формата необходимо в теге offer передавать type=vendor.model
Подробная информация по произвольному формату:
https://yandex.ru/support/partnermarket/export/vendor-model.xml
Так же Яндекс Маркет дает рекомендации по оформлению различных категорий:
https://yandex.ru/support/partnermarket/guides/examples.xml
Параметры, тег
Для того, что бы ваш товар участвовал в фильтрации, а так же для попадания в визуальные карточки — практически для всех категорий есть рекомендуемые параметры.
Например, для интернет магазина по продаже моторных масел в фильтре Яндекс Маркета используются следующие характеристики для сортировки:
- производитель (vendor)
- тип (минеральное, синтетическое и т.д.)
- стандарт API
- класс вязкости по SAE
- объем (можно передавать как
5 )
Передавать эти данные можно с помощью следующих параметров:
1
Бензин
10W-40
Полусинтетическое
Четкой информации о том, как должны называться параметры у Яндекс Маркета нет. Можно попробовать опираться на фактические фильтры и после размещения прайс-листа вносить корректировки при необходимости.
Гарантия производителя
Важный элемент. Передается параметром:
Страна производства
Информация о доставке
Одно из серьезных преимуществ произвольного формата, это возможность передавать конкретное время доставки курьером. Это может быть: сегодня, завтра, 1-2 дня, 4 дня и т.д.
В упрощенном формате и по умолчанию идет до 2 дней или под заказ.
Если у вас есть возможность доставлять день в день или на следующий день — это будет ваше важное конкурентное преимущество, которое можно обозначить в прайс-листе.
Пример реализации блока доставки:
false
false
true
Так же возможность более гибко делать настройки доставки стало возможно в партнерском интерфейсе Яндекс Маркет
Примечание < sales_notes>
Данный тег обязателен, если магазин доставляет только по предоплате или есть условие минимального заказа. Так же используется для информации о вариантах оплаты, описания акций и распродаж
Системы управления, которые поддерживают интеграцию API
- Битрикс 1С — бесплатный модуль
- Advantshop — бесплатный модуль
- InSales — бесплатный модуль
- Opencart — бесплатный модуль
- PrestaShop — бесплатный модуль
- Shop-script 6 — бесплатный модуль
- UMI.CMS — бесплатный модуль
- Magento — платный модуль
- Simpla — платный модуль
- Okaycms — платный модуль
Тег
Нужен для передачи штрих-кода, по которому пользователи могут найти товар с помощью мобильного приложения Яндекс.Маркета. Также тег помогает правильно соотносить предложения с карточками моделей.
Интересный элемент, мало кто его использует
Как получить значок рекомендации производителя
Чтобы попасть в список рекомендованных производителем магазинов и получить значок, обратитесь непосредственно к производителю. Производитель передаст необходимые сведения в Яндекс.Маркет.