PHPShop
Search
K

Яндекс.Маркет

Модуль включает расширенные возможности выгрузки товарных предложений в YML и поддержку моделей работы DBS и FBS, загрузку заказов в магазин.
Чтобы включить модуль, зайдите в панель управления вашего сайта и в верхнем меню выберите пункт Модули → Управление модулями → Маркетплейсы - Яндекс.Маркет - Включить.
Зарегистрируйтесь в Яндекс Маркет для продавцов и укажите при регистрации промокод MARKET_2960295 для получения бонусов.

1. Настройки модуля и в кабинете Яндекс.Маркета:

Модель ADV для всех версий
Модель используется для рекламы товарных предложений в Яндекс.Маркете с возможностью перейти на ваш сайт для оформления заказа и доставки. Доступна для всех версий магазина.

Настройки в партнерском интерфейсе Яндекса

В поле "Прайс-лист" укажите адрес YML файла: https://имя_сайта.ru/yml/

Настройка модуля

  1. 1.
    В модуле выберите Модель работы ADV и нажмите Сохранить
  • Поле пароль защищает от несанкционированной кражи контента. При использовании пароля ссылка на файл YML примет вид https://имя_сайта.ru/yml/?pas=*******. При использовании пароля требуется также заменить ссылку в Яндекс.Маркете.
  • Флаг SSL добавляет к ссылкам на товар протокол HTTPS.
  • Колонка цен служит для вывода дополнительных цен из карточки товара.
  1. 2.
    Отметьте нужные каталоги для выгрузки в поле Размещение. Выберите Вкл или Выкл и нажмите Сохранить. Настройка не показывает уже выбранные каталоги, а только срабатывает на сохранение.
Посмотреть, какие товары выводятся в фид, можно включив лейбл в списке товаров (или в самом фиде):
  1. 3.
    Отметьте нужные характеристики.
  2. 4.
    Заполните данными товары в появившейся вкладке Яндекс.
  3. 5.
    Добавьте ссылку на фид в кабинете Яндекса. YML файла: https://имя_сайта.ru/yml/
Модель DBS для Pro
Модель используется для продажи товарных предложений в Яндекс.Маркете с доставкой магазина. Все операции по заказу проводятся на стороне Яндекс.Маркет. Заказ может поступать в админпанель магазина.

Настройка модуля

  1. 1.
    В админпанели магазина включите модуль Яндекс.Маркет в меню Модули - Управление модулями. В настройках модуля выберите Модель работы DBS. Нажмите кнопку кнопку Сохранить:
Поле пароль защищает от несанкционированной кражи контента. При использовании пароля ссылка на файл YML примет вид https://имя_сайта.ru/yml/yandex.php?pas=*******. При использовании пароля требуется так же заменить ссылку в Яндекс.Маркете.
  1. 2.
    В личном кабинете Яндекс.Маркета откройте меню Товары. Нажмите кнопку Загрузить товары, выберите Автообновление по ссылке:
В открывшемся разделе вставьте ссылку на файл. Ссылку нужно взять из настроек модуля Яндекс.Маркет. Нажмите проверить файл.
  1. 3.
    Далее, в личном кабинете Яндекс.Маркета откройте меню Настройки - Настройки API:
  1. 4.
    Скопируйте Номер кампании (после тире) и вставьте его в настройки модуля:
Указываем номер кампании
  1. 5.
    Получите авторизационный токен и вставьте в соответствующее поле в модуле:
Получаем авторизационный токен
  1. 6.
    Укажите в поле URL для запросов API значение https://имя_сайта.ru/phpshop/modules/yandexcart/api.php. Тип авторизации - URL:
  1. 7.
    Нажмите Проверить запрос:
  1. 8.
    Далее, переходим по ссылке 👉 Зарегистрировать свое приложение.
Оно нужно, чтобы использовать протокол OAuth при работе с партнерским API.
Вводим название приложения, оно может быть любым, далее ставим галочку Веб-сервисы, под полем Callback URI #1 нажимаем Подставить URL для разработки.
Крутим ниже и выбираем API Яндекс.Маркета для партнеров. Нажимаем Создать приложение.
Регистрируем приложение.
  1. 9.
    После создания приложения, вам будет доступен идентификатор приложения client_id.
Необходимо в браузере вставить url: https://oauth.yandex.ru/authorize?response_type=token&client_id=ваш client_id заменив в ней ваш client_id на полученный client_id. Нажать ввод.
Полученный client_id вписать в поле ID приложения Яндекс.OAuth, а OAuth-токен в поле OAuth-токен настроек модуля.
  1. 10.
    Нажимаем в модуле PHPShop кнопку Сохранить настройки.
  2. 11.
    Настраиваем статусы. Создайте статус в меню Заказы - статусы заказов и привяжите их к Маркету в настройках модуля:
Обратите внимание, что работать со статусами нужно по логике Я.Маркета, согласно инструкции Яндекса - https://yandex.ru/dev/market/partner-dsbs/doc/dg/reference/post-campaigns-id-orders-status-update.html.
  1. 12.
    Настраиваем способы оплат. Заведите способы оплат в меню Заказы - способы оплат и привяжите их в модуле:
  1. 13.
    Настраиваем доставку. В меню Заказы - Доставки выберите доставку, закладка Модули и укажите дополнительные параметры вывода для Яндекс.Маркета.
  2. 14.
    Указываем характеристики, которые нужно выгружать на Яндекс.Маркет:
15. Указываем габариты товара, если требует Яндекс.Маркет. В карточке товара в этом случае нужно заполнить соответствующие поля в PHPShop:

Возможные проблемы

  1. 1.
    Проверьте правильность заполнения поля OAuth-токен в настройках модуля.
  2. 2.
    Проверьте правильность заполнения поля Идентификатор кампании.
  3. 3.
    Проверьте настройки доставки в свой регион.
  4. 4.
    Пройдите Самопроверку работы по API в интерфейсе Яндекс.Маркета в меню Настройки - Самопроверка
Модель FBS для Pro
Модель используется для продажи товарных предложений в Яндекс.Маркете с использованием хранения и доставки Яндекс.Маркета. Все операции по заказу проводятся на стороне Яндекс.Маркет, заказ поступает в админпанель магазина.

Настройки в партнерском интерфейсе Яндекса

  1. 1.
    В личном кабинете Яндекс.Маркет открыть Настройки/Выбор способа подтверждения, выбрать Как вы будете подтверждать заказы значение Через API
  2. 2.
    В личном кабинете Яндекс.Маркет открыть Настройки/Настройка API, указать в поле URL для запросов API значение https://имя_сайта.ru/phpshop/modules/yandexcart/api.php
  3. 3.
    В разделе Настройка API выбрать Тип авторизации URL.
  4. 4.
    В разделе Настройка API включить Автоматическое обновление данных об остатках товаров.

Настройка модуля

  1. 1.
    В модуле выбрать Модель работы FBS. Нажать кнопку Сохранить
  2. 2.
    В личном кабинете Яндекс.Маркет открыть Настройки/Настройка API скопировать Авторизационный токен в поле Авторизационный токен API в настройках модуля.
  3. 3.
    В личном кабинете Яндекс.Маркет открыть Настройки/Настройка API, указать в поле URL для запросов API значение https://имя_сайта.ru/phpshop/modules/yandexcart/api.php
  4. 4.
    Чтобы использовать протокол OAuth при работе с партнерским API, вам необходимо Зарегистрировать свое приложение. Обязательно необходимо ввести название приложения, оно может быть любым. В разделе Платформы установить галочку Веб-сервисы, под полем Callback URI #1 нажать Подставить URL для разработки. В разделе Доступы выбрать Яндекс.Маркет и установить галочку API Яндекс.Маркета для партнеров. Нажать Создать приложение. После создания приложения, вам будет доступен идентификатор приложения client_id. Необходимо перейти по ссылке https://oauth.yandex.ru/authorize?response_type=token&client_id=ваш client_id заменив в ней ваш client_id на полученный client_id. Полученный client_id вписать в поле ID приложения Яндекс.OAuth, а OAuth-токен в поле OAuth-токен настроек модуля.
  5. 5.
    В личном кабинете Яндекс.Маркет нажать на название магазина, скопировать значение Кампания № в поле Идентификатор кампании настроек модуля.
  6. 6.
    Настроить соответствие статусов заказа в Яндекс.Маркет со статусами заказа в интернет-магазине согласно инструкции Яндекса.
  7. 7.
    Настроить соответствие способов оплаты в Яндекс.Маркет со способами оплаты в интернет-магазине.
  8. 8.
    Заполнить необходимые данные у товаров (см. раздел Настройка товара).
  9. 9.
    Экспортировать товары в Яндекс.Маркет кнопкой Экспортировать данные).

2. Настройки в товарах

Заполните данными товары в карточках, в появившейся вкладке Яндекс. Все, что заполнено у товара во вкладке Яндекс, будет выводиться в фид:
В карточке редактирования товара Товары → Товары, в закладке Яндекс.Заказ , укажите параметры вывода товара для Яндекс.Маркета:
  • Модель - модель товара. У Яндекс.Маркет есть два типа торговых предложений. Упрощенный тип и Произвольный: https://yandex.ru/support/partnermarket/offer-general.html Если заполнены поля "Модель" и "Имя производителя" используется произвольный тип с vendor, typePrefix и model, иначе - упрощенный тип без них. Если вам нужен упрощенный тип - не заполняйте одно из этих двух полей.
  • Опция вывода наличия у товара Гарантии производителя
  • Имя производителя - официальное имя производителя товара.
  • Комментарий – используется для информации о минимальной сумме заказа, минимальной партии товара, необходимости предоплаты (указание элемента обязательно) или вариантах оплаты, описания акций и распродаж. Допустимая длина текста в элементе — 50 символов
  • Опция вывода страны производства
  • Опция принадлежности к товарам для взрослых. Обязателен для обозначения товара, имеющего отношение к удовлетворению сексуальных потребностей, либо иным образом эксплуатирующего интерес к сексу
  • Возможность курьерской доставки товара
  • Возможность самовывоза товара из пунктов выдачи
  • Возможность покупки товара в розничном магазине
  • Для размещения по модели FBS у товаров необходимо заполнить Вес, Длина, Ширина, Высота на вкладке Основное. И параметры Компания производитель, адрес и рег. номер (если есть), Страна производства на вкладке Яндекс.

3. Настройка в меню доставки

В меню Заказы - Доставка нужно открыть нужную доставку и указать:
  1. 1.
    В карточке редактирования доставки в закладке Яндекс.Заказ настроить дополнительные параметры вывода для Яндекс.Маркета.
  2. 2.
    Настроить максимальное количество дней доставки.
  3. 3.
    Настроить опцию вывода доставки для Яндекс.Маркета.
  4. 4.
    Настроить опцию принадлежности доставки только для локального региона.
  5. 5.
    Настроить параметр типа доставки (Курьерская, Самовывоз или Почта).
  6. 6.
    Для режима DBS необходимо включить нужные способы доставки для Яндекс.Маркета. Необходимо нужным способам доставки выбрать значение Яндекс.Заказ Включить.
  7. 7.
    Для режима DBS можно выбрать, для какого региона будет отображаться способ доставки. Необходимо заполнить поле Регион доставки.
  8. 8.
    Для режима DBS и Способа доставки Самовывоз обязательно нужно выбрать минимум одну Точку продаж. Точки продаж необходимо создать в личном кабинете Яндекс.Маркет.

4. Настройка характеристик

  1. 1.
    В настройках модуля включите опцию Вывод характеристик:
  1. 2.
    Также отметьте в карточке Характеристики вывод, во вкладке Модули:

Дополнительные возможности модуля

  1. 1.
    Выгрузка стоимости доставки для каждого товара в Яндекс.Маркет на основе формулы расчета доставке по весу товара.
  2. 2.
    Выгрузка тега бренда.
  3. 3.
    Выгрузка параметров товара из характеристик.
  4. 4.
    Выгрузка старой цены товара.
  5. 5.
    Выгрузка веса товара.

Настройка колонок цен и наценок

В настройке модуля можно указывать, какие колонки цен выгружать, а также делать наценки. Для выгрузки товаров, можно назначить шаблон описания товаров.

Выгрузка товаров поштучно

Для выгрузки товаров поштучно через API для FBS, отметьте товар в карточке:

Дополнительные параметры

  1. 1.
    /yml/?ssl - ссылки на товары будут с HTTPS.
  2. 2.
    /yml/?getall - выгрузка всех товаров без учета флага YML. Выгрузка всех изображений. Используется для обмена информации с CRM и другими сервисами.
  3. 3.
    /yml/?from=yml - метка в ссылки товара from для учета захода с Яндекс.Маркета
  4. 4.
    /yml/?search - режим Яндекс.Поиска по сайту.
  5. 5.
    /yml/?utf - вывод в кодировке UTF-8
  6. 6.
    /yml/?retailcrm - выгрузка для RetailCRM
  7. 7.
    /yml/?price выгрузка колонок цен (1/2/3/4/5)
  8. 8.
    /yml/?available - выгрузка только в наличии
  9. 9.
    /yml/?image_source - показывать исходные изображения с префиксом _big
  10. 10.
    /yml/?allimage - выгрузка всех изображений
Пример учета нескольких параметров в одной ссылке:https://shopname/yml/?pas=123&ssl&getall

✅ Пакетная обработка товаров

Пакетно заполнить товары можно через выгрузку текущих товаров в csv, правку файла и загрузку через Обновление через Импорт базы.
  1. 1.
    В меню Товары выделите нужные товары, нажмите ⚙️ - Экспортировать выбранные:
  1. 2.
    Выберите нужные поля (подсказка полей есть в карточке товара). Обязательные поля Артикул или id и Каталог. Поставьте выгрузку характеристик Колонка, кодировка UTF-8. Нажмите Выполнить:
  1. 3.
    В полученном файле измените данные, сохраните файл как csv, кодировка UTF-8.
  2. 4.
    В меню База - импорт данных выберите сохраненный файл. Выберите характеристики Колонка, кодировку UTF-8, отключите загрузку фото. Нажмите Выполнить:

SQL запросы для пакетной обработки

Для использования SQL команд в большинстве случаев помогает штатная возможность панели управления магазином База - SQL запрос к базе.
#
SQL
Описание
1
update phpshop_products set manufacturer_warranty='1';
Включение гарантии в Яндекс.Маркете для всех товаров
2
update phpshop_products set sales_notes="Минимальная партия - 1шт; минимальная сумма заказа - 1000 руб.";
Добавляем комментарий ко всем товарам для Яндекс.Маркета
3
update phpshop_products set country_of_origin="Беларусь";
Добавляем страну производителя ко всем товарам для Яндекс.Маркета
4
update phpshop_products set yml='0' where price<1 or items<1;
Замена статуса участие в Яндекс.Маркете (убрать из выгрузки) при пустом складе или нулевой цене
5
update phpshop_products set yml='1' where price>0 or items>0;
Замена статуса участие в Яндекс.Маркете (добавить в выгрузку) при положительном складе или нулевой цене
6
update phpshop_products set p_enabled='1' where items>0;
Замена статуса участие в Яндекс.Маркете (убрать под заказ) при положительном складе
7
update phpshop_products set yml='0' where pic_big="" or pic_big="0";
Замена статуса участие в Яндекс.Маркете (добавить в выгрузку) при отсутствии изображения

Стандартные ошибки YML

Не загружается прайс-лист на площадку Яндекс.Маркет: Ошибки при разборе файла: Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Start tag expected, '<' not found ( ) (строка 1, столбец 1)
В настройках модуля Яндекс.Маркет включена защита ссылки YML паролем, а новая ссылка с паролем типа http://shopname.ru/yml/yandex.php?pas=******* в Яндекс.Маркете не указана.
Не получается подключиться к Яндекс-Маркету. При проверке файла Яндекс пишет: "Внимание! Прайс-лист содержит ошибки. Определена кодировка: windows-1251 (строка 0, столбец 0) Дата из файла: 2020-06-14 02:06 (строка 3, столбец 38) Ошибка: Обнаружен цикл в дереве категорий: категория 21 ссылается на категорию 21 (строка 8, столбец 7722) Фатальная ошибка: Фид отклонен"
При заполнении каталога была допущена ошибки и каталог А стал ссылаться на самого себя, что приводит к цикличности и ошибки проверки.
Исходя из указанного "зависшего каталога" с ID=21, выполним его удаление через панель управления магазином. Для этого выберете База - SQL запрос к базе - под основным окном в выпадающем меню выбираем Удалить каталог. После знака = ставим ID каталога и жмем клавишу ОК (в нашем случаи указываем 21).
Размещение Вашего магазина было приостановлено за повторяющиеся ошибки в прайс-листе. Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Expected entity name for reference (строка 8817, столбец 320) Формат XML требует соблюдения правил заполнения описания товара.
Открываем свой файл для Яндекс Маркета http://имя сайта/yml/yandex.php любым браузером. Нажимаем в меню браузера опцию "Просмотр исходного кода страницы" и переходит к указанной строке (у нас указано в ошибке строка 8817). В этой строке нарушен синтаксис XML. Пример:
<offer id="1781" type="book" available="true">
<url>http://shop.ru/shop/UID_1781.html?from=yml</url>
<price>850</price>
<currencyId>RUR</currencyId>
<categoryId>25</categoryId>
<picture>http://shop.ru/UserFiles/Image/img1781_16198s.jpg</picture>
<name>Служебник.</name>>
<description>&nbsp;&nbsp;Аналойный, церковнославянский язык, двухцветная печать.</description>
</offer>
Ошибку вызывает тег
<description>
&nbsp;&nbsp; Аналойный, церковнославянский язык, двухцветная печать.
</description>
Нужно узнать номер товара (offer id="1781"), найти его через админ-панель магазина через поиск 1781 и отредактировать описание товара, убрав лишние символы &nbsp;&nbsp;. Если символы не видны в визуально редакторе, то перейти в режим html редактора. Сохранить изменения и отправить Яндексу на анализ снова.

Скачивание большого файла YML

При обнаружение ошибки в YML файла, Яндекс.Маркет показывает справочную информацию в какой строке обнаружена ошибка. Для анализа ошибки в файле yml следует его предваритеьно скачать и открыть любам текстовым редакторов, например Блокнотом.
Если товаров в магазине менее 10 000, то yml файл без проблем скачивается через браузер, иначе могут возникнуть сложности при его загрузке из-за большого объема и нехватки памяти для браузера.
Для скачивание больших YML файлов можно воспользоваться командой:
wget https://имя_сайта/yml/
Если используется Windows, то нужно предварительно установить программу PowerShell и выполнить Пуск - Командная строка.
powershell
wget https://имя_сайта/yml/ -outfile yandex.xml
В результате, через некоторое время (зависит от объема файла) в корне пользовательской папки C:\Users\ИмяПользователя появится файл yandex.xml для дальнейшего анализа по номеру строки. Для быстрого перехода на нужный номер строки используйте вызов меню перехода следующее сочетание клавишCtrl+G.
Модели DBS и FBS доступны для версии PHPShop 6.1.4+ и только для редакции PHPShop Pro.
Last modified 6mo ago