Описывается выгрузка в YML (Yandex Markup Language) содержимого интернет-магазина на WordPress + Woocommerce. Формат YML – это описание магазина, категорий и товаров на жестко формализованном Яндексом подмножестве языка XML и используется для загрузки информации в Yandex Market, а так же для некоторых других приложений. Выгрузка осуществляется при помощи плагина BG_YML_Dump. The same in English
В процессе выгрузки:
- создается заголовок с названием интернет-магазина, компании, агентства WEB-дизайна, которые берутся из парамертов плагина;
- создается секция валют. Основная валюта берется из настроек Woocommerce. Ее курс 1. Если интернет-магазин работает для нескольких стран, то в секцию будут включены валюты этих стран. Их курсы будут браться по центральному банку страны, которая выпускает основную валюту магазина;
- создается секция категорий;
- выводятся все товары;
- имеется возможность включать в выгрузку только некоторые выбранные администратором категории товаров или не включать их.
Выгрузка выполняется по расписанию один раз в сутки как фоновое регламентное задание. Файл выгрузки располагается на сервере и может быть загружен по его URL http://URL сайта/wp-content/uploads/yml/имя_файла.xml, где имя файла – URL сайта с точками, замененными на подчеркивание. Например, для сайта www.example.com URL файла выгрузки будет http://www.example.com/wp-content/uploads/yml/www_example_com.xml. Для того, чтобы прекратить выполнение регламентного задания, достаточно деактивировать плагин.
При желании получить выгрузку в реальном времени (тут и сейчас), на любую страницу сайта (лучше на специально созданную) можно разместить шорткод [bg-wc-uml-dump]. Файл выгрузки будет обновляться каждый раз, когда в браузере будет отображаться эта страница.
Установка плагина
Необходимо получить файл плагина bg_yml_dump.zip отсюда
Далее следуйте инструкциям “Как установить плагин WordPress” для его установки и “Как обновить плагин WordPress” для обновления. В поставку включен перевод сообщений на русский язык.
Плагин полностью совместим с сетью виртуальных сайтов WordPress Multisite (см. “Как установить WordPress multisite“, “Как настроить WordPress multisite” и “Как начать работу с WordPress multisite“).
Выгрузка в YML содержимого магазина на Woocommerce (использование плагина)
Для настройки плагина необходимо подготовить следующую информацию:
- Короткое имя магазина (Short Shop Name).
- Название компании – владельца магазина (Company Name).
- Название агентства (Agency Name) WEB-дизайна (WEB-мастера).
- Адрес электронной почты WEB-мастера (Contact email)
- Вендор (Vendor) – поставщик или торговая марка продукции.
- Хотите ли Вы выводить только категорию товара в теге
typePrefix
или включая все родительские. - Если Вы хотите выгружать не весь магазин, а только включать (или не включать) отдельные категории товаров, то список такох категорий.
- Если Вы хотите ограничить в выгрузке максимальное количество URL изображения для товара, то это число.
Как только плагин установлен, его необходимо активировать на сайте (на целевом сайте для сети виртуальных сайтов WordPress Multisite).
Далее перейти “Параметры” (Settings) -> “Выгрузка товаров в YML” (Product YML Dump). На первой вкладке надо заполнить все поля подготовленной информацией, проверить ввод и нажать кнопку “Сохранить изменения” (Save Changes) Рис. 1.
На второй вкладке Вы можете ввести необходимые ограничения по категориям при выгрузке товаров и/или максимальное число URL изображений для товара, проверить ввод и нажать кнопку “Сохранить изменения” (Save Changes). (Рис. 2.)
В случае возникновения каких-либо проблем, можно воспользоваться вкладкой помощи (Рис. 3.), открыть которую можно нажав на кнопку “Помощь” справа в самом верху.
Это все. Раз в сутки Вы будете получать Вашу выгрузку товаров. URL файла можно использовать в Yandex Market или каких других партнерских программах.
Выгрузка в YML. Внесение изменений
Только для тех, кто понимает, что делает! Все изменения рекомендуется сначала протестировать на тестовом сайте и потом переносить на рабочий, предварительно сделав резервную копию (см. “Как организовать резервное копирование сайта“, “Как сделать backup сайта на WordPress” и “Восстановление сайта WordPress из резервной копии“).
1. Производитель товаров (Brand).
Для мультибрендового интернет-магазина можно в тегах <vendor> и </vendor> вывести название компании-производителя товара. Для этого необходимо создать Свойство (Attribute) с любым понятным названием и с ярлыком (slug) “brand“. В качестве значений свойства должны быть все названия компаний-производителей.
Очень Важно! При выборе значения этого свойства для товара, галочку “Используется для вариаций” (Used for variations) НЕ ставить.
2. Размещение файла выгрузки.
Для изменения размещения файла выгрузки в файле functions.php используемой дочерней темы (см. “Дочерняя тема WordPress“) необходимо создать фильтр, который задаст адрес папки для размещения файла выгрузки:
if ( function_exists('bg_yml_dump')) { add_filter('bg_yml_dir_name', 'my_dir_name'); function my_dir_name($dir_name) { // Here all staff to change dump directory beginning with $dir_name = return $dir_name; } }
3. Изменение названия категорий в теге <typePrefix>…</typePrefix>
Плагин выводит название категории, которой принадлежит товар в теге <typePrefix>…</typePrefix>. Для того, чтобы изменить это, в файле functions.php используемой дочерней темы необходимо создать фильтр, который выведет в этом теге все, что Вы хотите там видеть:
if ( function_exists('bg_yml_dump')) { add_filter('bg_yml_type_prefix', 'my_type_prefix', 10, 2); function my_type_prefix($type_prefix, $product) { // Here all staff return $type_prefix; } }
4. Добавление дополнительной информации в описание товара
Некоторые интернет-магазины используют дополнительные плагины или какой иной способ добавления информации к описанию товара. Чтобы дополнить стандартное для Woocommerce описание товара в выгрузке YML любой информацией, необходимо создать фильтр в файле functions.php используемой дочерней темы :
if ( function_exists('bg_yml_dump')) { add_filter('bg_yml_extra_tags', 'my_extra_tags', 10, 2); function my_extra_tags($product_extra_tags, $product) { // Here all staff return $product_extra_tags; } }
В результате работы фильтра в переменная $product_extra_tags должна содержать набор строчек вида:
<tag1>Содержимое tag1</tag1>"\n"
где tag1 есть разрешенный для YML тег.
Описана выгрузка в YML содержимого интернет-магазина на WordPress + Woocommerce
Сергей, скажите, пожалуйста, а где взять этот плагин? Беглое гугление результатов не дало. Было бы здорово, если бы в статье были ссылки на его скачивание.
Плагин здесь http://codecanyon.net/item/yml-dump-online-shop-content/9384112
Здравствуйте, т.е. к примеру крон не нужен, обновление файла происходит ночью 1 раз в сутки в момент захода любого пользователя на сайт? Передаётся информация наличия-отсутствия товара? А нельзя настроить частоту обновления файла?
Добрый день!
1. Cron в данном случае не нужен. Естествено, для нормальной работы сервера на linux, anacron нужен.
2. Как только Вы активировали плагин, регламентное задание будет выполняться раз в сутки и будет формироваться файл выгрузки. Ничего делать не надо.
3. Частота. В Яндекс Market не передается количество товара – только его доступность (наличие). Мы считаем, что обновление этой информации раз в сутки достаточно. При любой частоте обновления может сложиться ситуация, когда будет продана последняя единица, после чего пользователь перейдет в магазин за этим товаром с Яндекса и увидит, что товар отсутствует.
Я купил этот плагин, как мне ввести лицензию. Где ее взять Purchase Code?
Спасибо за покупку. Просто установите плагин, активируйте его и будет работать.
Куда он будет приходить? (Раз в сутки Вы будете получать Вашу выгрузку товаров)
Выше написано как определить URL файла. Он появится в течении суток. Если хотите немедленно – используйте шорткод.
Не могли бы вы, пожалуйста, уточнить, о каком шорткоде идет речь?
[bg-wc-uml-dump]
Добрый день
хотим приобрести Ваш плагин, но у нас несколько вопросов
поддерживает плагин нашу текущую версию Woocomerce Версия 2.3.6?
поддерживаете ли Вы обновления плагина при обновлениях Woocomerce?
есть ли экспорт вариантов товара?
спасибо
Добрый день! Спасибо!
Версия 2.3 поддерживается.
При выходе новых версий Woocommerce плагин будет обновляться.
Вариативные товары поддерживаются.
Добрый день, хотим приобрести Ваш плагин, но есть важный для нас вопрос. Подойдет с генерированный файл для Wikimart?
Добрый день! Плагин выводит содержимое магазина в правильном формате Yandex Markup Language. Это формат используется для загрузки содержимого в Yandex Market, а так же используется в некоторых других приложениях. Соответственно, если Wikimart для вввода данных использует YML, то должен подойти.
Андрей
все решили спасибо
плагин отлично работает!
Добрый день,
Хороший плагин, сегодня приобрели.
Но столкнулись со следующими проблемами
1. Если wordpress установлен не в корневую директорию, в название файла выгрузки добавляется имя папки – “/name-dir”
у нас получислось – sitename_ru/name-dir , соответственно из за ‘/’ файл не создается.
2. На сайте мы не используем папку wp-content, мы заменили название. Так же проблема.
Все проблемы мы устранили. Вам просто для информации.
Еще раз спасибо, все работает как надо.
Добрый день!
Такая ситуация может быть при не стандартной установке WordPress. Но я не хочу усложнять поиск файла выгрузки. Поэтому в самом плагине фиксирована позиция, рассчитанная на некоторые общие правила. Для тех, кто желает поместить файл выгрузки куда-нибудь еще, существует фильтр (см. выше). Достаточно добавить в файл functions.php дочерней темы 5-6 строчек кода и Вы имеете файл выгрузки в любом желаемом вами месте. При этом править коды плагина крайне не рекомендуется.
Здравствуйте! Яндекс ругается на кириллицу в сформированном yml файле, т.к. формируются ссылки вида http://weltonus.ru/товар/abonement-vip-6/ вместо http://weltonus.ru/%D1%82%D0%BE%D0%B2%D0%B0%D1%80/abonement-vip-6/ – эту проблему я исправил, заменив в файле перевода woocommerce slug товара на %D1%82%D0%BE%D0%B2%D0%B0%D1%80
Сейчас выгрузку Яндекс принял, но в качестве проблемы указал кириллицу в названии изображений http://weltonus.ru/wp-content/uploads/2014/06/фото-2-VIP-6-150×150.jpg – как это побороть можно?
Добрый день!
При построении сайта на WordPress есть правило, что все внутренние названия должны быть только на латыни. Для ярлыков (slug) есть специальный плагин Cyr_to_Lat enhanced (http://www.stseprounof.org/plugins-must-have-3/), который автоматически переводит ярлыки. То же самое правило и для названий файлов. Боюсь, что надо переделывать сайт. Я не вижу другого решения. Рано или поздно это вылезет.
C учетом того, что кириллические названия страниц и файлов лучше позиционируются при продвижении, правило сомнительное. Наверняка есть способ декодировки вывода yml файла.
Мы говорим не про заголовки страниц (тег h1), которые на русском сайте естественно должны быть русскими и отражать смысл последующего текста и, по возможности, включать ключевое слово, а про ярлыки (slug), которые являются внутренним делом wordpress. То же самое с именами файлов – есть заголовок картинки, подпись и альтернативный текст, которые могут быть любыми. Имя файла лучше делать латинскими буквами.
Добрый день. Плагин купил, установил, по умолчанию он создает файл со всеми товарами в магазине. Есть ли возможность исключать какие-то категории-группы товаров, так как в нашем случае на яндекс маркет должен выгружаться не весь ассортимент
Заранее благодарен за ответ
Добрый день!
Как Вы это себе представляете? Должны быть некоторые правила что включать а что нет и некоторый язык их описания?
Да именно так, правила для исключения некоторых категорий товаров
Хорошо. Идея понятна. Это большая работа. Как только будет время, сделаю. Добавлю список категорий, которые нужно включать/не включать в список. То же самое для тегов.
Добрый день.
“На второй вкладке Вы можете ввести необходимые ограничения по категориям при выгрузке товаров” – не отображает поле для выбора категорий, что это может быть
Прилагаю скриншот – http://joxi.ru/xAeGJYkTbepdmy
Добрый день! Думаю, у Вас старая версия woocommerce. Обновитесь. Только осторожно.
Добрый день,
Подскажите пожалуйста, не могли бы подсказать. У товара есть свойство производитель, страна производства, год выпуска, гарантия.
В выгрузку попадает только производитель. Как сделать что бы все остальные свойства вошли туда. Что указать ярлыке (slug)
Добрый день!
Это все не стандартные параметры товара для Woocommerce, реализацию которых каждый интернет-магазин решает по-своему. Решение для магазина А не будет работать для магазина Б и наоборот.
т.е. ваш скрипт не сможет выгрузить данные параметры в xml, его нужно модифицировать. если возможно подскажите в какую сторону работать
Я добавил вызов фильтра в конец выгрузки описания товара в YML перед тегом
description
. Теперь для вывода нестандартных параметров достаточно создать сам фильтр в functions.php, как это написано в описании выше.Большое спасибо!
правильно я понимаю у меня есть свойство – страна производитель, ярлык у него – country_of_origin
мне нужно добавить запись следующего вида
if ( function_exists(‘bg_yml_dump’)) {
add_filter(‘bg_yml_extra_tags’, ‘country_of_origin’, 10, 2);
function my_extra_tags($product_extra_tags, $product) {
// Here all staff
return $product_extra_tags;
}
после добавления, белый экран
Правильно. Фильтр должен быть точно таким, как в п. 4 описания выше.
Вы вызываете функцию country_of_origin а исполняемая функция называется my_extra_tags, что и вызывает проблему.
Внутри как-то так:
Добавили в файл запись следующего вида:
if ( function_exists(‘bg_yml_dump’)) {
add_filter(‘bg_yml_extra_tags’, ‘country_of_origin’, 10, 2);
function country_of_origin($product_extra_tags, $product) {
$product_extra_tags = ” . $country_of_origin . ” . “\n” ;
return $product_extra_tags;
}
}
В результате выгрузки в описании каждого товара добавилась строка:
Вы писали – “$country_of_origin = ‘Аргентина’; //Получаем значение страны происхождения как текстовую строку”
Немного не понял по поводу этого, в мне указать все страны, перечислить или как?
Но саму страну он не содержит, подскажите пожалуйста что сделали не так.
И еще вопрос, у меня сейчас 2 свойства которые мы указываем для товара. Второе – seller_warranty.
Я добавил второй раз такую же запись, указав – seller_warranty.
Первая перестала выводиться в выгрузку. Получается должна быть одна запись, только как ее оформить в таком случае.
Подскажите пожалуйста, как поступить, как корректно это сделать.
Вам нужно взять ваши параметры – страну происхождения и гарантию там, где Вы их храните – для этого в качестве исходной информации для функции дан элемент (inctance) класса WC_Product – $product.
Используя его методы или свойства, нужно получить эти параметры для товара, в данном случае, например,
Должно работать.
Добрый вечер. Присматриваюсь к Вашему плагину. Скажите, вот у нас один товар принадлежит нескольким категориям. Я правильно понимаю, что в данном случае в YML получится дублирование товара несколько раз, или этого как-то можно избежать? Насколько я понимаю Я.Маркет не пропустит повторения. 🙁
Добрый день!
У нас то же. Дублирования товара не будет. Категории и товары выгружаются независимо.
Отлично, спасибо, сегодня плагин приобрёл. Очень удобно.
Сергей, столкнулись с проблемой при валидации: пишут, что не указана минимальная сумма заказа. Подскажите, пожалуйста, где это делается?
Боюсь, что нигде. В Woocommerce нет такой информации.
Была проблема при которой выдавало 404 по ссылке http://www.example.com/wp-content/uploads/yml/www_example_com.xml
В менеджере файлов надо было поменять permission с 0700 на 0755.
Круто, купил себе плагин.
Спасибо за хороший продукт) Надеюсь будите развивать и поддерживать вместе с развитием woocomerce
Спасибо. Будем
Добрый день. Подскажите пожалуйста, с вп Версия 4.2.5 и вукомерс Версия 2.3.9 плагин корректно работает?
Добрый. Да. Есть проблемы?
Спасибо, плагин установили, всё работает, яндекс выгрузку принимает. Но есть вопрос по поводу указания бренда. Не понял куда именно добавлять атрибут и что в нем указывать?
Я могу скинуть вам ссылку на xml, но не в открытые комменты по этическим соображениям 🙂
См. Описание выше. Внесение изменений. П. 1.
Изменения не сохраняются. Например – ограничение по категориям.
Добрый день! А Вы уверены, что используете последнюю версию плагина?
Плагином пользуемся около месяца, удобен и понятен в использовании. Сбоев в работе или конфликтов с другими плагинами не выявлено. Было важно быстро выгружать большой объем вариативных и простых товаров на яндекс маркет, с чем плагин справляется. Можно самостоятельно выбирать категории товаров для выгрузки.
Спасибо за коммуникацию, регулярные обновления и доработки!
Здравствуйте, помогите найти решение, приобрел вчера ваш плагин но ни как не могу получить файл с выгрузкой, тестирую на двух сайтах на одном ***1.com/auto(корневая директория wp) woo 2.5.2 вордпресс 4.4.2 и второй d***r.by woo 2.4.7 вордпресс 4.3.1, в дерректории по умолчанию файлы не появляются ни автоматически ни при использовании шорткода
Добрый день!
Из письма непонятно – пробуете сделать выгрузку страницей с шорткодом?
Добрый день! Скажите поддерживается выгрузка вариантных товаров ?
Добрый день! Да. Конечно.Вы можете выводить их либо как один товар с параметрами, либо как отдельные варианты.
супер! приобрету
Добрый день!
Подскажите описание товара выгружается с тегами или сплошным текстом.? Где могу увидеть пример выгрузки?
Добрый день! Выгрузка осуществляется точно в соответствии с со спецификациями Яндекса.
Здравствуйте! Прошу уточнить, можно ли исключать товары, которых нет в наличии или исключить полностью всю категории, которую нет необходимости выгружать. Спасибо!
Добрый день! Можно.
А белорусский рубль поддерживается?
Поддерживается
Здравствуйте! Скажите, сейчас плагин поддерживается и совместим с текущей версией woocommerce?
добрый день! Плагин поддерживается и совместим с Woocommerce 2.6
Добрый день! Подскажите, поддерживает ли ваш плагин выгрузку в YML вариации по нескольким атрибутам? Например цвет и размер.
Да. У нас выгружает артикулы женской одежды с размером и цветом. Могут быть даже разные цены у вариантов.