Skip to content
ms3YandexMarket
ms3YandexMarket
Файл YML для Яндекс Маркета или RSS для Google из товаров MiniShop3
  • MODX 3
  • PHP 8.2
  • miniShop3
  • Vue 3
  1. Компоненты
  2. ms3YandexMarket
  3. Состав прайса
  4. Источники значений

Источники значений ​

Значение тега: строка тип:ключ. Префикс сравнивается как записан, без смены регистра. Пишите его строчными буквами, как в таблице.

ПрефиксОткуда берётся значение
field:Колонка ресурса, например field:pagetitle
data:Колонка данных товара, например data:article
tv: или tv.Дополнительное поле по имени
option: или option.Опция товара MiniShop3
setting:Системная настройка MODX
value:Текст после двоеточия как есть
fenom:Шаблон pdoTools. Сохранение требует право ms3yandexmarket_edit_fenom
pipeline:priceЦена с учётом источника предложения
pipeline:old_priceСтарая цена
pipeline:currency_idКод валюты
pipeline:imageАдрес картинки
pipeline:urlАдрес товара. Для варианта добавляется признак варианта
pipeline:vendorПроизводитель
другой pipeline:Пусто, без исключения

Массив скаляров склеивается через запятую. Вложенный массив кодируется в JSON, чтобы в файл не попало слово Array.

Тот же разбор понимает короткие имена без двоеточия: url, picture, image, vendor, price, oldprice, currencyId. В редакторе тега храните полную форму с префиксом.

Тег магазина и тег предложения ​

Где тегКакие префиксыЕсли иначе
внутри offerтаблица выше и resource:, gallery:, variant:, remain:строка вида префикс:ключ с неизвестным префиксом даёт пусто, тег не пишется. При записи YML из дерева в журнал попадает ошибка Unknown value token. Строка без такого префикса остаётся текстом
внутри shopтолько setting: и value:остальное, включая field:, data: и pipeline:, пишется в файл как введённая строка

Пустое значение тега магазина берёт ключ shop_settings с тем же именем. Для name, company и url у нового прайса этот ключ пустой.

Обработчик Fenom у тега применяется после подстановки. Плейсхолдер input хранит уже полученный текст. В карточке тега поля обработчика нет. Префикс fenom: задаётся в Откуда брать текст. Сохранение такого значения требует ms3yandexmarket_edit_fenom. Без права ответ 403.

Цена и валюта ​

pipeline:price читает data.price. Ноль и пустая цена дают пусто, тег не пишется. Старая цена (pipeline:old_price) отбрасывается, если она не больше текущей. Код валюты (pipeline:currency_id) берётся из offer_settings.currency_id, иначе из ms3yandexmarket_default_currency (RUB).

Если в offer_settings есть ключи, генератор их тоже читает. В форме карточки этих полей нет.

КлючЭффект
price_zero_behaviorskip (так и есть без ключа): пустая цена. zero или out: цена 0
price_defaultПодставить, если своя цена пустая, а число больше нуля
price_multiplierУмножить. 1 ничего не меняет
price_min, price_maxПоджать цену к границам

Адрес, картинка и производитель ​

pipeline:url собирает адрес из uri ресурса и site_url. Уже абсолютный uri (http:// или https://) не склеивается, и url_prefix к нему не добавляется. Непустой url_prefix в настройках прайса вставляется между сайтом и путём только у относительного uri. У варианта в конец добавляется ?variant= и id варианта. Если вопрос в адресе уже есть, пишется &variant=.

pipeline:image берёт картинку варианта, если она есть, иначе data.image. Абсолютный URL возвращается как есть. Иначе путь отдаёт медиаисточник: image_source_id в настройках прайса, иначе системная ms3yandexmarket_image_source, иначе источник 1. image_prefix дописывается к относительному пути. Этих полей в форме нет.

pipeline:vendor ищет в таком порядке:

  1. vendor_name в настройках прайса
  2. msVendor по vendor_id товара
  3. ключ vendor_fallback в тех же настройках
  4. если ключа vendor_fallback нет, берётся системная ms3yandexmarket_vendor_fallback

Неизвестный префикс ​

Пункт из подсказки перед сохранением меняет первую точку на двоеточие: data.price становится data:price. Строка, набранная с клавиатуры, сохраняется как есть. У тега предложения data.price без двоеточия пишется в файл текстом.

Группы выпадающего списка ​

Поле Откуда брать текст берёт группы из /lists/sources.

ГруппаПосле сохраненияВ XML тега предложения
datadata:priceКолонка товара
tvtv:имяДополнительное поле
optionoption:ключОпция MiniShop3
settingsetting:ключСистемная настройка
valuevalue:текстТекст как есть
fenomfenom:шаблонШаблон pdoTools
resourcefield:pagetitleКолонка ресурса. В списке значение приходит как field.pagetitle, в базе будет field:, не resource:
gallerygallery:imageКартинка, как у pipeline:image. Остальные ключи в таблице ниже
variantvariant:skuПоле варианта
remainremain:countПоле остатка

Группы каталога в теге предложения ​

Неизвестный ключ внутри известного префикса даёт пусто. Фильтры пишут resource.поле, data.поле, tv.имя, option.ключ с точкой.

ПрефиксКлючЧто попадает в XML
resource:имя колонкиТо же, что field: с этим именем
gallery:image, galleryКартинка, как у pipeline:image
gallery:thumbdata.thumb
gallery:imagesdata.images, иначе data.image
variant:idId варианта
variant:skuАртикул варианта
variant:price, old_price, count, weightdata.price, data.old_price, data.stock, data.weight
variant:image, image_urldata.image
variant:optionsОпции варианта
remain:countdata.stock