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

Параметры прайса ​

Карточка хранит площадку, назначение и JSON offer_settings. Новый прайс получает стратегию product_id_variant_id, порог min_stock = 0 и поведение out_of_stock_behavior = skip.

Поля формы: экраны менеджера. Какой файл из них выходит: состав файла.

Что лежит в карточке ​

ПолеЗначения
Площадкаyandex.market, google.rss20. Пустая строка при создании становится yandex.market
НазначениеВ списке формы catalog и placement. Значение items выбрать нельзя. Если оно уже в базе, генерация его оставляет. Неизвестная строка становится catalog
Тип оффераsimple, vendor.model. Для YML из дерева атрибут type не пишется. Для RSS vendor.model требует производителя и артикул, иначе строка пропускается
Источник предложенийproduct, variant, combination, automatic
Источник остатковminishop3, ms3variants, ms3remains, automatic, custom
Режим и интервалСм. генерацию

Новый прайс кладёт в shop_settings:

КлючЗначение
name, company, url, emailпустые
currenciesвалюта RUB в массиве
platformMODX Revolution
enable_auto_discountstrue

Дерево тегов эти ключи не заполняет. Профили Яндекса отдельный тег под enable_auto_discounts не создают. Шапка RSS копирует сырой текст тегов title, link и description. Префиксы value: и setting: в шапке не разбираются.

Идентификатор в XML ​

Стратегия offer_settings.offer_id_strategy задаёт атрибут id у предложения. Неизвестная строка считается как product_id_variant_id.

ЗначениеЧто пишется в id
product_idИдентификатор товара
variant_idИдентификатор варианта. Без варианта пишется id товара
variant_skuАртикул: variant_sku, иначе data.article, иначе data.vendor_model
product_id_variant_idтовар-вариант
fenomРезультат шаблона offer_id_fenom

Артикул и результат шаблона передаются и при записи YML из дерева, и в RSS. Шаблон считается через Fenom. Нет артикула при variant_sku или пустой результат при fenom: предложение в файл не попадает. В журнал пишется ошибка.

У product_id_variant_id без варианта пишется id товара. Если id варианта известен, а стратегия не сошлась, пишется товар-вариант.

У строки с offer_row_source = combination и непустыми опциями к любому id дописывается - и 12 символов SHA-1 от отсортированных опций. Так и в YML из дерева, и в RSS. Без опций или не у комбинации суффикса нет.

Порог остатка ​

Запись YML из дерева (catalog, items, placement) и RSS применяют порог. Нет ключа поведения: тоже skip.

ПоведениеПредложение
skip, excludeУбирают, если остатка нет или он не выше min_stock
include, outОставляют

Строка g:availability пишется только у оставшегося предложения RSS. Нет числа остатка: in stock. Число выше min_stock: in stock. Иначе out of stock.

Параметры <param> ​

Параметр в файле может прийти из тега дерева полей или из опций варианта и комбинации.

Отдельный тег дерева param пишется только вместе с непустым атрибутом name. Без него тега нет.

Словарь option_param_map в offer_settings читается при записи YML из дерева. Условие: у строки есть опции варианта или комбинации и имя param разрешено managed_fields. Пустой список управляемых полей разрешает всё: у catalog и items теги пишутся. У placement с девятью ключами без param этих тегов нет. На каждую такую опцию пишется <param name="…">, если тег дерева с тем же name уже не выведен.

Пустая или отсутствующая карта даёт подписи:

КлючПодпись
colorЦвет
sizeРазмер
materialМатериал
volumeОбъем

Остальные ключи пишутся как есть. Непустая карта заменяет эти четыре подписи целиком.

Словарь params_map на дереве YML не читается. Его читает сборка Google RSS и запись YML прайса без дерева полей.

Тип vendor.model ​

Порядок поиска производителя:

  1. vendor_name в offer_settings
  2. msVendor по vendor_id
  3. ms3yandexmarket_vendor_fallback

У pipeline:vendor между MiniShop3 и системной настройкой ещё ключ vendor_fallback в offer_settings.

Управляемые поля размещения ​

При placement карточка показывает список: price, oldprice, stock, available, delivery, pickup, store, url, categoryId. Пустой список сохранить нельзя. Форма подставляет все девять ключей. Запрос с пустым списком отвечает 422, код invalid_managed_fields. Непустой список оставляет в offer только имена из списка. Имя available из списка пишется атрибутом. Атрибут id пишется всегда.