Выдано 111338 лицензий

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

Яндекс.Маркет — сервис сравнения характеристик товаров и их цен. Пользователям доступны подробные описания характеристик товаров, подбор товара по параметрам и быстрый выбор с помощью искусственного интеллекта Гуру и готовых рецептов, сравнение моделей и цен, отзывы покупателей о товарах и магазинах.

Для формирования YML-файла экспорта в Яндекс.Маркет создайте узел в структуре сайта под узлом интернет-магазина (стандартно узел имеет путь /shop/), укажите для созданного узла название раздела, например, yandex_market, заполните основные атрибуты страницы, выберите раздел типовой динамической страницы «Интернет-магазин», страницу «Экспорт в Яндекс.Маркет». Выберите из выпадающего списка магазин, для которого необходимо создать экспорт.

В Яндекс.Маркет добавляете адрес страницы, например, http://www.site.ru/shop/yandex_market/

Указание стоимости и сроков курьерской доставки (delivery-options)

Элемент delivery-options используется для указания стоимости и сроков курьерской доставки по своему региону. Данные, указанные в элементе, показываются на Яндекс.Маркете рядом с каждым предложением вашего магазина. В формате YML элемент <delivery-options> используется вместо элемента <local_delivery_cost>. Если в прайс-листе указаны оба элемента, то при проверке прайс-листа выдается ошибка.

Указание доставки для всех товаров магазина осуществляется в настройках самого магазина. Перейдите в раздел КонтентИнтернет-магазины. Отредактируйте магазин и перейдите на вкладку Экспорт. Заполните данные о доставке

Опции доставки содержат следующие значения:

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

Если требуется у конкретного товара задать индивидуальные настройки доставки, то при редактировании товара, во вкладке Экспорт задаете требуемые настройки.

Если у магазина не заданы стоимость и сроки доставки, то экспорт индивидуальных настроек доставки для товаров не осуществляется!

Управление свойствами товаров, экспортируемыми в Яндекс.Маркет

Опция itemsProperties() контроллера Shop_Controller_YandexMarket позволяет управлять списком дополнительных свойств, указываемых для товара при экспорте в Яндекс.Маркет.

А коде настроек типовой динамической страницы можно отключить экспорт дополнительных свойств товаров:

$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
$Shop_Controller_YandexMarket
    ->itemsProperties(FALSE)
    ->show();

или ограничить список экспортируемых свойств:

$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
$Shop_Controller_YandexMarket
    ->itemsProperties(array(17, 19))
    ->show();

Экспорт товаров, присутствующих на складе

Опция checkRest(TRUE) позволяет выгружать только те товары, которые присутствуют на складах.

$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
$Shop_Controller_YandexMarket
    ->checkRest(TRUE)
    ->show();

Экспорт данных для «Забронировать на Маркете»

Опция outlets(TRUE|FALSE|array()) позволяет выводить данные рамках в программы «Забронировать на Маркете». По умолчанию FALSE.

$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
$Shop_Controller_YandexMarket
    ->outlets(TRUE)
    ->show();

При указании массива данные будут выводиться только с указанных ID складов (в примере склады с ID 17 и 19:

$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
$Shop_Controller_YandexMarket
    ->outlets(array(17, 19))
    ->show();
Не забудьте настроить точки продаж в личном кабинете Яндекс.Маркет, явно указав в качестве "Идентификатор точки продаж" идентификатор склада в системе управления.

Пример указания <outlet> в XML для товара:

<offer id="1" available="true">
    
    ...
    <outlets>
        <outlet id="17" instock="10" booking="true"/>
        <outlet id="19" instock="23" booking="true"/>
    </outlets>
</offer>

* указание outlets доступно с версии 6.7.2

Тип товара

Опция type() контроллера Shop_Controller_YandexMarket позволяет указать тип товара, по умолчанию 'offer', доступные значения: 'offer', 'vendor.model', 'book', 'audiobook', 'artist.title', 'tour', 'event-ticket'.

$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
$Shop_Controller_YandexMarket
    ->type('book')
    ->show();

Экспорт модификаций

Стандартно модификации экспортируются совместно с товарами, управлять экспортом модификаций позволяет опция modifications() контроллера Shop_Controller_YandexMarket

$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
$Shop_Controller_YandexMarket
    ->modifications(FALSE)
    ->show();

Создание статичных YML-файлов через cron для больших магазинов

Яндекс.Маркет имеет ограничение на время генерации YML-файлов, для больших магазинов мы рекомендуем

Разместите в cron/yandexmarket.php файл следующего содержания:

<?php

/**
 * Пример вызова:
 * /usr/bin/php /var/www/site.ru/httpdocs/cron/yandexmarket.php
 * Пример вызова с передачей php.ini
 * /usr/bin/php --php-ini /etc/php.ini /var/www/site.ru/httpdocs/cron/yandexmarket.php
 * Реальный путь на сервере к корневой директории сайта уточните в службе поддержки хостинга.
 *
 * @package HostCMS 6\cron
 * @version 6.x
 * @author Hostmake LLC
 * @copyright © 2005-2017 ООО "Хостмэйк" (Hostmake LLC), http://www.hostcms.ru
 */

@set_time_limit(9000);
ini_set("memory_limit", "512M");

require_once(dirname(__FILE__) . '/../' . 'bootstrap.php');

$aShops = Core_Entity::factory('Shop')->findAll(FALSE);

foreach ($aShops as $oShop)
{
	if ($oShop->Shop_Items->getCount())
	{
		$sFilename = "yandexmarket{$oShop->id}.xml";
		$oCore_Out_File = new Core_Out_File();
		$oCore_Out_File->filePath(CMS_FOLDER . $sFilename);

		$Shop_Controller_YandexMarket = new Shop_Controller_YandexMarket($oShop);
		$Shop_Controller_YandexMarket->stdOut($oCore_Out_File);
		$Shop_Controller_YandexMarket->itemsProperties(TRUE);
		$Shop_Controller_YandexMarket->show();

		echo "\nFile {$sFilename} OK";
	}
}

Далее добавьте в Cron на хостинге вызов данного файла. Проверьте работу, в корневой директории будут создаваться XML-файлы по схеме yandexmarket1.xml, где 1 — идентификатор магазина.

В Яндекс.Маркет добавляете адрес XML-файла, например, http://www.site.ru/yandexmarket1.xml

Не нашли ответ на свой вопрос в документации? Направьте обращение в или онлайн чат.

Комментарии

  • Дополнительные фото

    Подскажите, пожалуйста, почему в YML файл не попадают дополнительные фото из допсвойства? Другие допсвойства в файле присутстувуют. Есть какие-то ограничения в системе по типу Допсвойства?

    29.10.2015 02:19:47 Игорь

    Без темы

    На сколько могу судить для требуется одно изображение: https://partner.market.yandex.ru/legal/tt/?ncrnd=3096#id1167389670328

    29.10.2015 09:23:58 HostCMS

    Дополнительные фото

    Да, достаточно одного, но можно загрузить до 10.

    "Для каждого товарного предложения в элементе можно указать до десяти URL-адресов изображений, соответствующих данному товарному предложению."

    Возможно ли Дополнительные фото подгружать через ?

    29.10.2015 12:42:19 Игорь
  • Без темы

    Отлично, всё работает

    20.03.2015 09:42:01 An Si
  • Импорт работает но очень медленно

    Сделал как в инструкции. Через браузер страница не открылась, а вот через download mater удалось скачать. Файл вроде правильный но генерация файла заняла почти 5 мин (~1000 позиций 550кб)

    Думаю yandex не будет так долго ждать генерацию страницы.
    Как можно ускорить?

    01.12.2014 19:11:23 Alex

    Без темы

    Проблем с генерацией файла для Яндекс.Маркет не зафиксировано, вероятной причиной может быть медленная работа хостинга. Если система обновлена до последней версии, то рекомендую обратиться в нашу службу поддержки.

    02.12.2014 09:05:08 HostCMS