Links
🚚

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

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

1. Настройки параметров размещения в Яндекс.Маркете

Модель ADV

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

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

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

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

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

Модель DBS

Модель 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.
    Настраиваем статусы. Создайте статсу в меню Заказы - статусы заказов и привяжите из к Маркету в настройках модуля:
Обратите внимание, что работать со статусами нужно по логике Я.Маркета,3согласно инструкции Яндекса - 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:
Если габариты одинаковые, можно сделать это пакетно, выбрать галкой товары, Редактировать выбранные, выбрать поля габаритов галкой и назначить данные.
Это удобно, если данные одинаковые. Если габариты разные - через экспорт данных и правку csv файла.
Пакетная правка габаритов

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

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

Модель FBS

Модель 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.
    В карточке редактирования характеристики в закладке Яндекс.Заказ настроить дополнительные параметры вывода для Яндекс.Маркета.
  2. 2.
    Настроить опцию вывода характеристики для для Яндекс.Маркета. Выделенная характеристика выводится в YML файле в тегах "Param"
  3. 3.
    Настроить единицу измерения для числовых параметров (дюйм, Мб, кг и т.д.)

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

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

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

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

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

  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

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.