Такой вопрос. Хочу сделать интернет магазин. Список товаров в формате Yandex xml (YML). Нужно импортировать товары, категории, описания...
С помощью каких модулей это можно организовать?
В теме оформления представления смотрим какие шаблоны задействованы. Я делал так, создал собственные шаблоны (где MyViewName - имя моего представления):
Стиль вывода: views-view-xml.tpl.php, views-view-xml--lastads.tpl.php, views-view-xml--page.tpl.php, views-view-xml--lastads--page.tpl.php, views-view-xml--.tpl.php, views-view-xml--page-1.tpl.php, views-view-xml--MyViewName--page-1.tpl.php
копируем в тему файл views-view-xml.tpl.php (из view_datasource), смотрим его и доводим до такого состояния:
$xml .='</offers>
</auto-catalog>';
if ($view->override_path) print htmlspecialchars(str_reaplce("\n",'<br>',$xml));//тут можно изменить вывод при просмотре, но у меня не работало
else {
Я для экспорта в Авто.Яндекс делал, возможно для Маркета проще. И без денег можно разобраться:
Понравился ответ (буду сейчас подробно разбираться), понравился сайт. Только просьба - в сайте отодвиньте вторую колонку чуть - чуть, наезжает на первую.
slavik.kz спасибо огромное! Информация оказалась очень полезной. С Ubercart все замечательно работает.
Но есть одно но т.к. для яндекс.маркета должен быть обязательно указан offer id в каждом контейнере offer.
Подскажите, пожалуйста, как сделать так что бы у меня выводился еще и offer id (с id node или с произвольного cck - например артукул)
пробую конструкции вида в views-view-xml.tpl.php:
Ах да, совсем забыл, можно еще переделать шаблон вывода фида представления (без установки View Datasource), но у меня не получилось, не помню почему... Вроде бы сразу не смог подписи к полям в шаблоне выудить
p.s. в приведенном выше примере Заголовок поля преобразуется в переменную $field->label в xml, то есть достаточно аккуратно создать нужные поля
я извиняюсь, если не точно сформулировал вопрос. Уточню. Список товаров в yml уже есть. Мне его нужно в свой шоп импортировать (категории, цены, описания и т.д.) Если еще и с фозможностью выбора по полям и категориям, так совсем хорошо Может кто-то решал уже подобную задачу, отзовитесь. Дело в том, что спонсор предоставляет свою базу товаров только в yml.
Есть интернет-магазин. Нужно создать файл YML для работы с Yandex.Market.
Данный файл представляет из себя список товаров и имеет определенное форматирование.
Список товаров можно получить создав страничное представление при помощи модуля Views.
А при помощи дополнительного модуля Views XML добавить к модулю Views стиль XML data document.
Итак:
1. Включаю модули Views">http://drupal.org/project/views]Views[/module] и http://drupal.org/project/views_datasource]Views XML">Views">http://drupal.org/project/views_datasource]Views XML
2. Создаю страничное представление View со Style: XML data document
Далее нужно добиться чтобы генерируемое представление отображалось в соответствующем формате. Для этого требуется изменить файл шаблона. И тут начинаются трудности.
slavik.kz wrote:
Копируем в тему файл views-view-xml.tpl.php (из view_datasource)
Там нет файла с таким названием. Есть views-views-xml-style-raw.tpl.php но с ним не получается.
slavik.kz wrote:
Копируем views-view-fields.tpl.php и подгоняем под Яндекс XML (YAL в моем случае)
Откуда? Строки добавляем или заменяем на свои? Для чего этот код нужен?
Что делать в случае нескольких прайсов? Т.е. не только xml от Яндекса, а и фидов в других форматах csv, excel из которых все надо грузить в магазин. Как быть в таком случае?
Есть например вот такая программа для прайсов, допольно хорошо делает сводный прайс-лист из файлов csv, xls, xml. Очень хорошо сделаны возможности привязки товаров прайс-листов к каталогу магазина.
Практичнее и надежнее конвертировать любым доступным способом(вручную, программно) эти прайсы в какой-то "общий" формат, а уже его "скармливать" импорту Drupal .
yml это xml
"Загнать" csv в yml сложная задача, т.к. csv это "плоская" таблица, а xml - "дерево"
Проще наоборот - csv конвертировать в yml (помоему это даже Excel умеет),
тем более что yml - практически стандарт для обмена данными о товарах и т.п..
Комментарии
как каких? берете деньги - платите народу - вам делают. очень простые модули. Видите ли за нужно - нужно платить. профит
За деньги слишком просто
Я для экспорта в Авто.Яндекс делал, возможно для Маркета проще. И без денег можно разобраться:
Стиль вывода: views-view-xml.tpl.php, views-view-xml--lastads.tpl.php, views-view-xml--page.tpl.php, views-view-xml--lastads--page.tpl.php, views-view-xml--.tpl.php, views-view-xml--page-1.tpl.php, views-view-xml--MyViewName--page-1.tpl.php
копируем в тему файл views-view-xml.tpl.php (из view_datasource), смотрим его и доводим до такого состояния:
$feeddate=gmdate('Y-m-d H:i:s',$view->result[0]->node_created - 3*3600);
$xml .= '<?xml version="1.0" encoding="windows-1251"?>
<auto-catalog>
<creation-date>'.$feeddate.' GMT+6</creation-date>
<host>site.com</host>
<offers>'."\n";
if(is_array($rows))
{
foreach ($rows as $row) {
$xml .= '<offer>'."\n";
$xml .= $row;
$xml .= '</offer>'."\n";
}
}
$xml .='</offers>
</auto-catalog>';
if ($view->override_path) print htmlspecialchars(str_reaplce("\n",'<br>',$xml));//тут можно изменить вывод при просмотре, но у меня не работало
else {
drupal_set_header('Content-Type: text/xml; charset=windows-1251');
print mb_convert_encoding($xml,'Windows-1251', 'UTF-8');
module_invoke_all('exit');
exit;
}
Стиль вывода колонок: views-view-fields.tpl.php, views-view-fields--lastads.tpl.php, views-view-fields--page.tpl.php, views-view-fields--lastads--page.tpl.php, views-view-fields--.tpl.php, views-view-fields--page-1.tpl.php, views-view-fields--MyViewName--page-1.tpl.php
Копируем views-view-fields.tpl.php и подгоняем под Яндекс XML (YAL в моем случае)
foreach ($fields as $id => $field) {
if ($field->label)
{
print '<'.$field->label.'>'.views_xml_strip_illegal_chars($field->content).'</'. $field->label .'>'."\n";
}
}
?>
Немножко рекламы: http://autostan.kz/, экспортируемый файл - http://autostan.kz/export/yandex.auto.xml
Спасибо.
Понравился ответ (буду сейчас подробно разбираться), понравился сайт. Только просьба - в сайте отодвиньте вторую колонку чуть - чуть, наезжает на первую.
slavik.kz спасибо огромное! Информация оказалась очень полезной. С Ubercart все замечательно работает.
Но есть одно но т.к. для яндекс.маркета должен быть обязательно указан offer id в каждом контейнере offer.
Подскажите, пожалуйста, как сделать так что бы у меня выводился еще и offer id (с id node или с произвольного cck - например артукул)
пробую конструкции вида в views-view-xml.tpl.php:
<?php foreach ($rows as $row) {
$xml .= <offer ' . 'id="' . $node->nid . '">'."\n";
$xml .= $row;
$xml .= '</offer>'."\n";
}?>
и ничего не выходит.
Спасибо!
Ах да, совсем забыл, можно еще переделать шаблон вывода фида представления (без установки View Datasource), но у меня не получилось, не помню почему... Вроде бы сразу не смог подписи к полям в шаблоне выудить
p.s. в приведенном выше примере Заголовок поля преобразуется в переменную $field->label в xml, то есть достаточно аккуратно создать нужные поля
Извините, а как создать файл, где прописать путь?
Извините, а как создать файл, где прописать путь?
я извиняюсь, если не точно сформулировал вопрос. Уточню. Список товаров в yml уже есть. Мне его нужно в свой шоп импортировать (категории, цены, описания и т.д.) Если еще и с фозможностью выбора по полям и категориям, так совсем хорошо Может кто-то решал уже подобную задачу, отзовитесь. Дело в том, что спонсор предоставляет свою базу товаров только в yml.
ну ё-моё ) столько старался, писал
навскидку - парсить xml до .csv, потом импортировать http://drupal.org/project/node_import[/module]
но автоматом - модуль написать, кстати просто функционал добавить к вышеуказанному модулю
slavik.kz
Спасибо разберусь...
Приветствую! Не разобрались случаем? Столкнулся с такой же задачей.
Нужен модуль Яндекс Маркет к Drupal 5-ubercart. Полноценный и работающий. Что бы можно было использовать ССК поля. Кто продает? Пишите в личку.
мой готовый модуль под друпал 6: http://forum.drupal.ru/node/43738
Помогите разобраться.
По порядку:
Есть интернет-магазин. Нужно создать файл YML для работы с Yandex.Market.
Данный файл представляет из себя список товаров и имеет определенное форматирование.
Список товаров можно получить создав страничное представление при помощи модуля Views.
А при помощи дополнительного модуля Views XML добавить к модулю Views стиль XML data document.
Итак:
1. Включаю модули Views">http://drupal.org/project/views]Views[/module] и http://drupal.org/project/views_datasource]Views XML">Views">http://drupal.org/project/views_datasource]Views XML
2. Создаю страничное представление View со Style: XML data document
Далее нужно добиться чтобы генерируемое представление отображалось в соответствующем формате. Для этого требуется изменить файл шаблона. И тут начинаются трудности.
Там нет файла с таким названием. Есть views-views-xml-style-raw.tpl.php но с ним не получается.
Откуда? Строки добавляем или заменяем на свои? Для чего этот код нужен?
Ооооооо ... Неужели то что надо. Спасибо
Есть аналогичная задача. Магазин UC 7ка. С YML export 7.x-1.x-dev ничего не получается. Сколько стоит?
Что делать в случае нескольких прайсов? Т.е. не только xml от Яндекса, а и фидов в других форматах csv, excel из которых все надо грузить в магазин. Как быть в таком случае?
Тогда надо юзать какой-то прайс-агрегатор который будет сделает один общий файл с товарами.
Что такое прайс-агрегатор?
Есть например вот такая программа для прайсов, допольно хорошо делает сводный прайс-лист из файлов csv, xls, xml. Очень хорошо сделаны возможности привязки товаров прайс-листов к каталогу магазина.
Практичнее и надежнее конвертировать любым доступным способом(вручную, программно) эти прайсы в какой-то "общий" формат, а уже его "скармливать" импорту Drupal .
Вам случайно не попадались конвертеры yml в csv?
yml это xml
"Загнать" csv в yml сложная задача, т.к. csv это "плоская" таблица, а xml - "дерево"
Проще наоборот - csv конвертировать в yml (помоему это даже Excel умеет),
тем более что yml - практически стандарт для обмена данными о товарах и т.п..
А вот преобразовать нестандартный xml в yml проще.
https://ru.wikipedia.org/wiki/XSLT