⚫
Яндекс.Маркет
Модуль включает расширенные возможности выгрузки товарных предложений в YML и поддержку моделей работы DBS и FBS, загрузку заказов в магазин.
Чтобы включить модуль, зайдите в панель управления вашего сайта и в верхнем меню выберите пункт
Модули → Управление модулями → Маркетплейсы - Яндекс.Маркет - Включить
.Модель используется для рекламы товарных предложений в Яндекс.Маркете с возможностью перейти на ваш сайт для оформления заказа и доставки. Доступна для всех версий магазина.
В поле "Прайс-лист" укажите адрес YML файла: https://имя_сайта.ru/yml/
- 1.В модуле выберите Модель работы ADV и нажмите
Сохранить

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

- 3.
- 4.
- 5.Добавьте ссылку на фид в кабинете Яндекса. YML файла: https://имя_сайта.ru/yml/
Модель используется для продажи товарных предложений в Яндекс.Маркете с доставкой магазина. Все операции по заказу проводятся на стороне Яндекс.Маркет. Заказ может поступать в админпанель магазина.
- 1.В админпанели магазина включите модуль Яндекс.Маркет в меню
Модули - Управление модулями
. В настройках модуля выберите Модель работы DBS. Нажмите кнопку кнопкуСохранить
:

Поле пароль защищает от несанкционированной кражи контента. При использовании пароля ссылка на файл YML примет вид
https://имя_сайта.ru/yml/yandex.php?pas=*******
. При использовании пароля требуется так же заменить ссылку в Яндекс.Маркете.- 2.В личном кабинете Яндекс.Маркета откройте меню
Товары
. Нажмите кнопкуЗагрузить товары
, выберите Автообновление по ссылке:

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

- 3.Далее, в личном кабинете Яндекс.Маркета откройте меню
Настройки - Настройки API
:

- 4.Скопируйте Номер кампании (после тире) и вставьте его в настройки модуля:

- 5.Получите авторизационный токен и вставьте в соответствующее поле в модуле:

- 6.Укажите в поле
URL для запросов API
значениеhttps://имя_сайта.ru/phpshop/modules/yandexcart/api.php
. Тип авторизации -URL
:

- 7.Нажмите
Проверить запрос
:

- 8.
Оно нужно, чтобы использовать протокол OAuth при работе с партнерским API.
Вводим название приложения, оно может быть любым, далее ставим галочку
Веб-сервисы
, под полем Callback URI #1 нажимаем Подставить URL для разработки. Крутим ниже и выбираем API Яндекс.Маркета для партнеров. Нажимаем Создать приложение.

- 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-токен настроек модуля.

- 10.Нажимаем в модуле PHPShop кнопку
Сохранить настройки
. - 11.Настраиваем статусы. Создайте статус в меню
Заказы - статусы заказов
и привяжите их к Маркету в настройках модуля:

Обратите внимание, что работать со статусами нужно по логике Я.Маркета, согласно инструкции Яндекса - https://yandex.ru/dev/market/partner-dsbs/doc/dg/reference/post-campaigns-id-orders-status-update.html.

- 12.Настраиваем способы оплат. Заведите способы оплат в меню
Заказы - способы оплат
и привяжите их в модуле:

- 13.Настраиваем доставку. В меню
Заказы - Доставки
выберите доставку, закладка Модули и укажите дополнительные параметры вывода для Яндекс.Маркета. - 14.
15. Указываем габариты товара, если требует Яндекс.Маркет. В карточке товара в этом случае нужно заполнить соответствующие поля в PHPShop:

- 1.Проверьте правильность заполнения поля
OAuth-токен
в настройках модуля. - 2.Проверьте правильность заполнения поля
Идентификатор кампании
. - 3.Проверьте настройки доставки в свой регион.
- 4.Пройдите Самопроверку работы по API в интерфейсе Яндекс.Маркета в меню
Настройки - Самопроверка
Модель используется для продажи товарных предложений в Яндекс.Маркете с использованием хранения и доставки Яндекс.Маркета. Все операции по заказу проводятся на стороне Яндекс.Маркет, заказ поступает в админпанель магазина.
- 1.В личном кабинете Яндекс.Маркет открыть Настройки/Выбор способа подтверждения, выбрать Как вы будете подтверждать заказы значение Через API
- 2.В личном кабинете Яндекс.Маркет открыть Настройки/Настройка API, указать в поле URL для запросов API значение
https://имя_сайта.ru/phpshop/modules/yandexcart/api.php
- 3.В разделе Настройка API выбрать Тип авторизации URL.
- 4.В разделе Настройка API включить Автоматическое обновление данны х об остатках товаров.
- 1.В модуле выбрать Модель работы FBS. Нажать кнопку Сохранить
- 2.В личном кабинете Яндекс.Маркет открыть Настройки/Настройка API скопировать Авторизационный токен в поле Авторизационный токен API в настройках модуля.
- 3.В личном кабинете Яндекс.Маркет открыть Настройки/Настройка API, указать в поле URL для запросов API значение
https://имя_сайта.ru/phpshop/modules/yandexcart/api.php
- 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.В личном кабинете Яндекс.Маркет нажать на название магазина, скопировать значение Кампания № в поле Идентификатор кампании настроек модуля.
- 6.Настроить соответствие статусов заказа в Яндекс.Маркет со статусами заказа в интернет-магазине согласно инструкции Яндекса.
- 7.Настроить соответствие способов оплаты в Яндекс.Маркет со способами оплаты в интернет-магазине.
- 8.Заполнить необходимые данные у товаров (см. раздел Настройка товара).
- 9.Экспортировать товары в Яндекс.Маркет кнопкой Экспортировать данные).

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

- 1.В настройках модуля включите опцию
Вывод характеристик
:

- 2.Также отметьте в карточке Характеристики вывод, во вкладке
Модули
:

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

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

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

- 2.Выберите нужные поля (подсказка полей есть в карточке товара). Обязательные поля Артикул или id и Каталог. Поставьте выгрузку характеристик Колонка, кодировка UTF-8. Нажмите
Выполнить
:

- 3.В полученном файле измените данные, сохраните файл как csv, кодировка UTF-8.
- 4.В меню
База - импорт д анных
выберите сохраненный файл. Выберите характеристики Колонка, кодировку UTF-8, отключите загрузку фото. НажмитеВыполнить
:

Для использования 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"; | Замена статуса участие в Яндекс.Маркете (добавить в выгрузку) при отсутствии изображения |
Не загружается прайс-лист на площадку Яндекс.Маркет: Ошибки при разборе файла: Фатальная ошибка: Ошибка парсинга 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> Аналойный, церковнославянский язык, двухцветная печать.</description>
</offer>
Ошибку вызывает тег
<description>
Аналойный, церковнославянский язык, двухцветная печать.
</description>
Нужно узнать номер товара (offer id="1781"), найти его через админ-панель магазина через поиск 1781 и отредактировать описание товара, убрав лишние символы . Если символы не видны в визуально редакторе, то перейти в режим
html редактора
. Сохранить изменения и отправить Яндексу на анализ снова.При обнаружение ошибки в 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 13d ago