Экспорт товаров на Яндекс.Маркет

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

Самым известным онлайн-каталогом можно назвать Яндекс.Маркет. Выгрузка товаров в него осуществляется посредством использования YML-файла. Помимо торговой площадки Яндекса существуют и другие онлайн-каталоги товаров, в которые можно выгружать свои товары из YML-файла, например, Товары@Mail.ru.

Добавление магазина на Яндекс.Маркет

Регистрируем новый магазин по ссылке https://partner.market.yandex.ru/pre/index.xml

На первом шаге добавляем информацию о магазине и контактные данные владельца.

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

Далее необходимо добавить ссылку на YML файл с товарами магазина.

Использование бесплатного расширения для экспорта товаров

Для создания этого файла скопируйте код, размещенный ниже, в файл с названием market.php и поместите его в корень вашего сайта.

<?php include 'configuration.php'; $cfg = new JConfig(); $cfg_name = $cfg->sitename;
    $cfg_company     = $cfg->fromname;
    $cfg_url         = 'Ваш_сайт.ru'; //Адрес Вашего сайта без http://
    $hostname         = $cfg->host;
    $username         = $cfg->user;
    $password         = $cfg->password;
    $dbName         = $cfg->db;
 
    $ct                = $cfg->dbprefix."jshopping_categories";
    $pt             = $cfg->dbprefix."jshopping_products";
    $pc                = $cfg->dbprefix."jshopping_products_to_categories";
 
    echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";         //кодировка самого .xml файла
    echo "<!DOCTYPE yml_catalog SYSTEM \"shops.dtd\">\n";
    echo "<yml_catalog date=\"".date("Y-m-d H:i")."\">\n";
    echo "<shop>\n";
    echo "<name>$cfg_name</name>\n";
    echo "<company>$cfg_company</company>\n";
    echo "<url>$cfg_url</url>\n";
    echo "<currencies>\n\t<currency id=\"RUR\" rate=\"1\"/>\n</currencies>\n";
 
    $mysqli = new mysqli($hostname, $username, $password, $dbName);
    if (mysqli_connect_errno()) {
          printf("Подключение к серверу MySQL невозможно. Код ошибки: %s\n", mysqli_connect_error());
          exit;
    }
 
    mysqli_query($mysqli, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");    //кодировка подключения к БД
    mysqli_query($mysqli, "SET CHARACTER SET 'utf8'");
 
    echo "<categories>\n";
    if ($res = $mysqli->query("SELECT `name_ru-RU` AS cat_name, category_id FROM $ct WHERE category_publish = 1 ORDER BY category_id"))
 
    while( $row = $res->fetch_assoc() ) {
        printf("\t<category id=\"".$row['category_id']."\">".$row['cat_name']."</category>\n");
        }
    echo "</categories>\n";
 
    echo "<offers>\n";
    if ($res = $mysqli->query("
       SELECT
       $pt.product_id,
       $pt.product_url,
       $pt.product_ean,
       $pt.`product_quantity` AS quantity,
       $pt.product_price,
       $pt.`name_ru-RU` AS name,
       $pt.image,
       $pt.`short_description_ru-RU` AS description,
       $ct.`alias_ru-RU` AS cat_url,
       $ct.category_id
       FROM $pt
       LEFT JOIN $pc ON $pt.product_id = $pc.product_id
       LEFT JOIN $ct ON $pc.`category_id` = $ct.category_id
       WHERE
       product_publish = 1
       ORDER BY product_id"))
 
    while( $row = $res->fetch_assoc() ) {
 
        if($row['quantity']>0) { $available = 'true'; }
        else { $available = 'false'; }
     
echo "\t<offer id=\"".$row['product_id']."\" available=\"".$available."\" bid=\"10\">\n"; //bid = цена в центах за переход, 10 = 3 руб.
        echo "\t\t<url>http://".$cfg_url.'/'.$row['cat_url'].'/'.$row['product_url']."</url>\n";
        echo "\t\t<price>".$row['product_price']."</price>\n";
          echo "\t\t<currencyId>RUR</currencyId>\n"; // выборка не реализована, у меня только рубли
        echo "\t\t<categoryId>".$row['category_id']."</categoryId>\n";
        if(!empty($row['image'])) {
        echo "\t\t<picture>http://$cfg_url/components/com_jshopping/files/img_products/".$row['image']."</picture>\n"; }
        echo "\t\t<store>true</store> \n";
        echo "\t\t<delivery>true</delivery> \n"; //Возможность доставки
        echo "\t\t<local_delivery_cost>500</local_delivery_cost> \n"; //Стоимость доставки в рублях в домашнем регионе
        echo "\t\t<name>".strip_tags($row['name'])."</name>\n";
        echo "\t\t<vendor>ПРОИЗВОДИТЕЛЬ</vendor> \n"; //Выборка не реализована, параметр не обязательный, можно удалить строку
        echo "\t\t<vendorCode>".$row['product_ean']."</vendorCode>\n";
        echo "\t\t<description>".strip_tags($row['description'])."</description>\n";
echo "\t\t<country_of_origin>СТРАНА</country_of_origin> \n"; //Выборка не реализована, параметр не обязательный, можно удалить строку
        echo "\t</offer>\n";
    }
    echo "</offers>\n";
 
    $res->close();
    $mysqli->close();
 
echo "</shop>\n";
echo "</yml_catalog>";
?>

Не забудьте в скрипте вместо Ваш_сайт.ru указать адрес вашего сайта без http://

Если нужен вывод в формате .yml, создаем перенаправление в файле .htaccess
После

RewriteEngine On

Добавляем

#yandex url's
RewriteRule ^market.yml? market.php [QSA,L]

Автором скрипта является некто eword, скрипт взят с сайта http://joomla-support.ru

На этом настройка данного расширения закончена.

Компонент экспорта товаров JStoMARKET 1.3.1

В связи с тем, что бесплатное расширение имеет очень ограниченный функционал, мною был разработан компонент для экспорта товаров из JoomShopping 4 на Яндекс.Маркет.

Отличительными особенностями компонента JStoMARKET 1.3.1 являются:

  • возможность индивидуальной настройки каждого товара;
  • управление ставками на Яндекс.Маркете;
  • возможность добавлять скидку на товары;
  • экспорт веса товара из JoomShopping;
  • возможность экспортировать параметры товара из настраиваемых полей (подробнее об этой опции читайте ниже);
  • управление остатками и добавление срока поставки товара на основе встроенного контроля в JoomShopping;
  • автоматическое обновление YML файла;
  • нет привязки к домену.

Информация о компоненте JStoMARKET 1.3.1

Совместимость: Joomla! 3, JoomShopping 4

Дата обновления: ноябрь 2018

Версия: 1.3.1

Стоимость: 990р.
Демо
Купить

Интересно? Тогда читайте далее.

Настройки компонента JStoMARKET 1.3.1

Компонент JStoMARKET 1.3.1 устанавливается стандартно, через Расширения -> Менеджер расширений -> Установка.

Разберем настройки компонента JStoMARKET 1.3.1.

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

  • Магазин — название вашего магазина (например, «Ромашка»);
  • Наименование организации — юридическое наименование вашей организации или ИП (например, ООО «Ромашка» или ИП Ромашкин);
  • Заказ на Маркете — возможность включить программу «Заказ на Маркете». Для участия в программе «Заказ на Маркете», Ваш магазин должен быть подключен к этой программе. В противном случае, значение параметра учитываться не будет.

Подробнее о ставках за клик вы можете почитать в документации Яндекс.Маркета.

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

  • екст примечания, используемый по умолчанию для всех товаров. Этот параметр для каждого товара можно задать индивидуально;

Инструкция для создания выгружаемых Характеристик товара.

Поля могут любого типа (текст, список, множественный список), однако, должны иметь следующие значения:

  1. Одиночное значение, например, название поля — Материал корпуса, значение поля — алюминий. В этом случае будет выгружено следующим образом:
    <param name="Материал">алюминий</param>
  2. Значение и единица измерения через пробел, например, название поля — Объем диска, значение поля — 500 Гб. В этом случае будет выгружено следующим образом:
    <param name="Объем диска" unit="Гб">500</param>

    Все другие значения настраиваемых полей будут проигнорированы для избежания ошибок при проверке Яндекс.Маркетом.

Значения атрибутов будут выведены следующим образом: например, имеется атрибут — Цвет, значение этого атрибута — зеленый, красный, синий, желтый. В этом случае будет выгружено следующим образом:

<param name="Цвет">зеленый</param>
<param name="Цвет">красный</param>
<param name="Цвет">синий</param>
<param name="Цвет">желтый</param>

Все другие значения настраиваемых полей будут проигнорированы для избежания ошибок при проверке Яндекс.Маркетом.

  • Гарантия производителя — указывает наличие гарантии производителя. Срок гарантии можно задать через характеристики товара.
  • Автоматический расчёт и показ скидок — если вы включили показ скидок, Яндекс.Маркет:
    1. Анализирует, как менялась ваша цена на товар в последнее время.
    2. Проверяет, была ли цена, для которой выполняются все условия. Если цена не нашлась, предложение показывается без скидки.
    3. Вычисляет скидку от этой цены.
    4. Показывает рассчитанную старую цену и скидку.

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

  • Сроки доставки — указываются сроки доставки товара. Подробнее об алгоритме работы данного параметра читайте ниже.

Информация ниже актуальна, только если задействован контроль остатков в JoomShopping.

Приоритетной информацией о доставке товара является значение поля «Срок поставки» (форма редактирования товара, вкладка Информация о товаре).
К примеру, в компоненте указан срок доставки «1-2 дня», в JoomShopping, в поле «Срок поставки» (форма редактирования товара, вкладка Информация о товаре), указано значение «7-10 дней». В этом случае будет выгружено «7-10 дней».

Если контроль остатков не задействован, сроки доставки указываются те, которые установлены в поле «Сроки доставки».

Согласно правилам Яндекс.Маркета, шаг доставки может составлять 2 дня, т.е. нельзя указать срок доставки 10-20 дней. Максимальный срок доставки — 1 месяц, максимальный срок доставки товаров «Под заказ»2 месяца.

  • Время оформления заказа — данный атрибут означает время оформления заказа, до наступления которого действуют указанные сроки и условия доставки. Указание атрибута необязательно, по умолчанию используется значение 24 (полночь);

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

  • Добавлять название и версию CMS — 

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

В главном окне рассмотрим следующие пункты:

  • Обновить — при нажатии на кнопку происходит обновление таблицы товаров. Добавляются новые и удаляются снятые с публикации или удаленные товары в JoomShopping.
  • Получить файл — при нажатии на кнопку будет сформирован YML файл в директории, указанной в настройках. По умолчанию это http://вашсайт/media/com_jstomarket/
  • Получить ссылку — при нажатии на кнопку будет предоставлена ссылка, которую необходимо указать в настройках Яндекс.Маркет.

Остальные кнопки интуитивно понятны и позволяют редактировать параметры товаров.

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

В компоненте выгрузки товаров на Яндекс.Маркет предусмотрен удобный механизм фильтрации товаров по параметрам.

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

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

Информация о компоненте JStoMARKET 1.3.1

Совместимость: Joomla! 3, JoomShopping 4

Дата создания: ноябрь 2018

Версия: 1.3.1

Стоимость: 990р.
Демо
Купить

Добавление YML файла на Яндекс.Маркет

В настройках импорта указываем ссылку и нажимаем кнопку Импортировать.

http://site.ru/market.php — если используете бесплатное расширение

http://site.ru/market.yml — если используете выгрузку в YML в бесплатном расширении

http://вашсайт/media/com_jstomarket/JStoMARKET.xml — если используете выгрузку в файл в компоненте JStoMARKET 1.3

http://вашсайт/index.php?option=com_jstomarket — если используете динамическое формирование файла в компоненте JStoMARKET 1.3

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

В случае успешного прохождения проверки получаем следующее сообщение.

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

На следующем шаге добавляем недостающую информацию и отправляем магазин на проверку.

JStoMARKET - Экспорт товаров из JoomShopping 4 на Яндекс.Маркет

Перед отправкой на проверку убедитесь, что сайт полностью соответствует требованиям Яндекс.Маркета.

На этом все. Остались вопросы — задавайте их в комментариях или на нашем форуме.

Комментариев: 7 на Экспорт товаров на Яндекс.Маркет

Добрый день!
Не тестировал. По идее, должен, но возможно, придется вносить какие-то небольшие правки в код.

При открытии ссылки видны только названия категорий товаров. Сами товары отсутствуют в теге .
Тоже самое при сохранении в файл.
Подскажите, как правильно сформировать ссылку.

Добрый день.
Купили у Вас модуль, но он формирует ссылку, в которой нет товаров, а только перечислены категории товаров.
Подскажите пожалуйста как сделать так, что бы модуль начал работать?

Купил у вас модуль.
Но при выгрузки на маркет пишет
Некорректная ссылка на товар
Проверьте ссылку на страницу товара с вашего сайта. Возможно, она очень длинная: в ссылке должно быть не больше 512 символов. Оформите URL-адрес по стандарту RFC-1738. Подробнее о нём по ссылке. http://tools.ietf.org/html/rfc1738

Ссылка в вашем предложении: http:/tk-city.ru/index.php?option=com_jshopping&controller=product&task=view&category_id=32&product_id=104&Itemid=112.
1 ошибка

Комментировать