Вы здесь

Выгрузка товаров в Яндекс.Маркет (YML) для простых нод

0

Доброго дня.

Есть сайт D7, в котором каталог товаров реализован обычными нодами, без Ubercart/Commerce (заказ идёт просто по принципу «оставьте свой номер, мы вам перезвоним»). Товаров (нод) больше 500 штук, то есть ежедневно переформировывать YML-файл и обновлять цены вручную — довольно проблематично.

Отсюда вопросы:

— Есть ли готовый модуль для автоматической генерации (и, может быть, пуша) файла YML в Я.Маркет?
— Можно ли сделать это через Views (по типу, как генерируется стандартная RSS лента)?

Идеальный вариант (для меня) вот такой:

  1. В настройках модуля, указываем тип материала и причины генерации/перегенерации YML-файла (например, по CRON или после сохранении новой ноды заданного типа материала);
  2. Указываем имена полей этого типа материала, в которых содержатся данные для выгрузки (цена, название, описание, фото и так далее);
  3. После определённого действия из настроек (Пункт 1), модуль проходит по всем нужным нодам (как тот же SitemapXML);
  4. Удаляет старый YML файл и генерирует новый.

Да-да, знаю. «Напиши такой модуль сам и бла бла бла», но такая штука нужна в ближайшее время и особых навыков в написании модуля такого уровня (где надо что-то генерировать из имеющейся инфы из нод с сохранением на сервер в файл) — не имею.

В общем, буду раз любой помощи/совета.

Версия Drupal: 
7.x
Вопрос задан 17.04.2016 - 11:59

Ответы

1

Вот тут человек пытался решить точно такую же задачу - https://www.drupal.org/sandbox/spuki/2443389 - не знаю, насколько хорошо у него получилось. Но денег за свою работу уже хочет, номера кошельков разместил :)

Как один из вариантов, попробуйте взять вот эту поделку - https://www.drupal.org/project/yml_export - и поменять, чтобы брало нужные вам ноды.

Ещё есть https://www.drupal.org/sandbox/xandeadx/2498393 - АПИ для создания нужного вам файла.

Также есть написанный мною https://www.drupal.org/project/views_rss_yandex - но я там не писал ничего для Яндекс.Маркет (пока что) - можете попробовать покурить его, там есть пример (подмодуль) для Яндекс.Недвижимость.

Ответ дан 17.04.2016 - 13:08

О, спасибо. Этих песочных модулей не знал :)

Я тут пока копался, нашёл ещё вот такой модуль: https://www.drupal.org/project/views_datasource Думаю, может проще будет в его XML-плагин запихать нужную YML-внутрянку и отдать всё в руки Views?

ADD:

Ну и, конечно же, спасибо за https://www.drupal.org/project/views_rss_yandex — попробую раскурить, может легче сюда доп. функционал написать, чем во Views Datasource.

Комментарий оставлен 17.04.2016 - 13:35
1

Делал надевно выгрузку 500 000 товаров через https://www.drupal.org/project/views_data_export. С темизацией xml вывода.
Из плюсов - можно выгрузку запускать через драш по крону. Один раз настроил и файл обновляется ночью автоматически.

Ответ дан 17.04.2016 - 13:59

Там не универсальное решение, оно завязано на специфику сайта, поэтому пробуйте сами, там не сложно.

Комментарий оставлен 17.04.2016 - 14:08

Делал надевно выгрузку 500 000 товаров через https://www.drupal.org/project/views_data_export. С темизацией xml вывода.

А этот самый пример темизации (аля «готовое решение») можно посмотреть? :)

Из плюсов - можно выгрузку запускать через драш по крону. Один раз настроил и файл обновляется ночью автоматически.

Тоже, если не трудно, поясните для тех, кто Drush не пользует.. как и чего делать, чтобы добиться такой же автоматизации ;)

Комментарий оставлен 17.04.2016 - 14:08

Тоже, если не трудно, поясните для тех, кто Drush не пользует.. как и чего делать, чтобы добиться такой же автоматизации ;)

На странице описания модуля есть пример команды.

Комментарий оставлен 17.04.2016 - 14:15

Алгоритм такой:
Делаете представление для вывода всех категорий, темизируете его (удаляете всё лишнее, чтобы выводились только категории).
Делаете представление для вывода товара, темизирует его и вставляете в нужное место вывод категорий.

<?php print views_embed_view('export_categories_yml', 'views_data_export_1'); ?>

И темизация тут - это громко сказано, там минимум правок. Главное подготовить данные в нужным формате.

Комментарий оставлен 17.04.2016 - 14:45