1590
19.39
22.71
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
Версия
1.0.0-pl
Дата выпуска
12.11.2026
Загрузки
0
Внимание, этот компонент требует PHP
8.2
или выше!
Внимание, этот компонент требует MODX 3 или выше.
Собирайте файлы выгрузки для маркетплейсов из каталога MiniShop3.
ms3YandexMarket пишет YML для Яндекс Маркета или RSS 2.0 для Google. Адрес файла задаётся в карточке прайса, площадка скачивает его по URL. Компонент в кабинеты Маркета и Merchant Center не входит.
Прайсов в менеджере может быть несколько: у каждого свой набор тегов и один файл pricelist-{id}.xml в каталоге ms3yandexmarket_files_path. В интерфейсе MiniShop3 пункт меню называется «Яндекс Маркет».
Одного offer на товар часто мало. У прайса выбирают источник предложений:
Остатки берут из MiniShop3, ms3Variants, ms3Remains или автоматического выбора. Пункт «Свой источник» считает число тем же порядком, что автоматический. Порог min_stock в режиме skip убирает предложение из YML и RSS, если остаток не выше порога.

Как это работает
Несколько прайсов и форматы
Один прайс пишет один файл. Для Маркета в карточке выбирают каталог или размещение, для Google всегда собирается RSS 2.0. Файл размещения заменяет условия в кабинете Маркета, а в offer остаются только поля из списка управляемых.

Поля и источники значений
У тега магазина источник текста бывает только setting или value. Цену, адрес, картинку и производителя задают у тега предложения. Fenom там же, префиксом в поле «Откуда брать текст», а свой XML это тип тега. Пустой текст в файл не пишется, предложение без id пропускается.

Генерация и контроль
Запись идёт вручную, по расписанию Scheduler или после сохранения товара. Предпросмотр файл на диске не заменяет.
Журнал хранит запуски. Диагностика проверяет среду: Scheduler, ms3Variants и ms3Remains. Пустой shop в предпросмотре значит, что у тегов name, company и url не выбран источник.


Преимущества
Требования
MODX Revolution 3+, PHP 8.2+ с расширениями json, dom и xmlwriter, MiniShop3 1.13+, VueTools 1.2+. По желанию: ms3Variants, ms3Remains, Scheduler 1.9. При установке нужны MiniShop3, VueTools и провайдер modstore.pro, каталог core/config/ доступен на запись.<b
ms3YandexMarket пишет YML для Яндекс Маркета или RSS 2.0 для Google. Адрес файла задаётся в карточке прайса, площадка скачивает его по URL. Компонент в кабинеты Маркета и Merchant Center не входит.
Прайсов в менеджере может быть несколько: у каждого свой набор тегов и один файл pricelist-{id}.xml в каталоге ms3yandexmarket_files_path. В интерфейсе MiniShop3 пункт меню называется «Яндекс Маркет».
Одного offer на товар часто мало. У прайса выбирают источник предложений:
- товар: одна строка на карточку MiniShop3;
- вариант: отдельный offer на каждый вариант ms3Variants, без вариантов товар не попадает в файл;
- комбинация: строки из ms3Remains без привязки к варианту;
- автоматически: сначала варианты, иначе комбинации, иначе товар.
Остатки берут из MiniShop3, ms3Variants, ms3Remains или автоматического выбора. Пункт «Свой источник» считает число тем же порядком, что автоматический. Порог min_stock в режиме skip убирает предложение из YML и RSS, если остаток не выше порога.

Как это работает
- Создайте прайс с названием в менеджере.
- На вкладке «Магазин» задайте, откуда брать текст для тегов name, company и url, и сохраните теги.
- На вкладке «Категории» отметьте разделы, которые попадут в выгрузку.
- На вкладке «Предложения» проверьте теги name, price и url у offer.
- На вкладке «Генерация» запустите запись файла.
- Передайте площадке URL файла из карточки прайса.
- При необходимости включите запись по расписанию через Scheduler или после сохранения товара.
Несколько прайсов и форматы
Один прайс пишет один файл. Для Маркета в карточке выбирают каталог или размещение, для Google всегда собирается RSS 2.0. Файл размещения заменяет условия в кабинете Маркета, а в offer остаются только поля из списка управляемых.

Поля и источники значений
У тега магазина источник текста бывает только setting или value. Цену, адрес, картинку и производителя задают у тега предложения. Fenom там же, префиксом в поле «Откуда брать текст», а свой XML это тип тега. Пустой текст в файл не пишется, предложение без id пропускается.

Генерация и контроль
Запись идёт вручную, по расписанию Scheduler или после сохранения товара. Предпросмотр файл на диске не заменяет.
Журнал хранит запуски. Диагностика проверяет среду: Scheduler, ms3Variants и ms3Remains. Пустой shop в предпросмотре значит, что у тегов name, company и url не выбран источник.


Преимущества
- YML и Google RSS из одного каталога MiniShop3 без ручной сборки XML.
- Несколько прайсов с разными правилами отбора и состава тегов.
- Варианты ms3Variants и остатки ms3Remains в отдельных offer.
- Файл размещения заменяет условия в кабинете Маркета.
- Расписание, автозапись после правки товара, журнал и диагностика.
- Разграничение прав на список, карточку, генерацию и логи.
Требования
MODX Revolution 3+, PHP 8.2+ с расширениями json, dom и xmlwriter, MiniShop3 1.13+, VueTools 1.2+. По желанию: ms3Variants, ms3Remains, Scheduler 1.9. При установке нужны MiniShop3, VueTools и провайдер modstore.pro, каталог core/config/ доступен на запись.<b
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0-pl] - 2026-11-13
Added
- Запросы менеджера идут в группу
/api/mgr/ms3yandexmarketчерез FastRoute. В предпросмотре пустое поле не обрывает чтение. - Остаток читается через
RemainServiceInterfaceиStockIdentityResolver. Количество берётся для товара, варианта и комбинации. - Генерация разворачивает варианты и комбинации в
collectOffers. - Значение с префиксом
fenom:считается вFieldResolverиMappingPipeline, если установлен pdoTools. - Предпросмотр одного предложения показывает поля, признак остатка и фрагмент XML.
- Экран диагностики и таблицы менеджера на PrimeVue.
- Интеграционный набор fixture #100, проверка phpstan и прогон памяти на 10 000 предложений. Руководство лежит в
docs/guide. - Настройка
ms3yandexmarket_enabledотключает генерацию черезComponentGate. - Повторяющиеся
offer idотсекаетDuplicateOfferFilterв JSON- и tree-пути.
Fixed
- Каталог
assets/components/ms3yandexmarket/files/с тестовыми прайсами в пакет не входит. Папку создаёт первая генерация. - Запасной запуск лежит в
core/components/ms3yandexmarket/cron.phpи работает только из консоли:php core/components/ms3yandexmarket/cron.php. - У ms3Remains
nullи0различаются: пустой остаток не подменяется нулём. - Значение
fenom:и шаблонoffer_id_fenomтребуют правоms3yandexmarket_edit_fenom. - Tree-предпросмотр отдаёт ошибки renderer (
issues) и ставитis_validпо уровню error. - Для placement
managed_fieldsпопадают в настройки оффера перед записью YML.
Dependencies
- MODX 3.x, MiniShop3 >= 1.13, PHP >= 8.2, VueTools >= 1.2.
- pdoTools, ms3Variants и ms3Remains подключаются по желанию.
[0.1.0-beta] - 2026-10-07
Первый бета-релиз: YML-экспорт Яндекс Маркета для MODX 3 и MiniShop3.
Added
- Несколько прайс-листов. У каждого свои категории с исключениями, условия по полям resource, data, TV и option, маппинг и настройки магазина.
- Режим предложения:
product,variant,combinationилиautomatic. Остаток берётся по цепочке ms3Remains, ms3Variants, MiniShop3. Пустой остаток и ноль различаются. - Потоковая запись YML через XMLWriter. Файл пишется во временный и подменяет готовый через rename.
ShopValidatorиOfferValidator. Фид с ошибкой валидации на диск не записывается.- Блок категорий без повторов. Скоуп категорий считается через EXISTS. Товар в нескольких категориях даёт одно предложение.
- Диагностика показывает, установлены ли ms3Variants и ms3Remains.
- Менеджер на Vue 3 и PrimeVue: список и редактор прайс-листов, дерево категорий с исключениями, конструктор фильтров, маппинг, предпросмотр предложений, генерация, журнал, просмотр и скачивание YML.
GenerationServiceсобирает предпросмотр в памяти и файл однимcollectOffersиprepareSettings. По ходу генерации вызываются событияOnMs3YandexMarket*.- Журнал
GenerationLogи строкиLogEntry. Число строк за один прогон ограничивает настройкаms3yandexmarket_log_entry_cap. Смена контентных полей ставитneed_generate. После ошибки генерацию можно повторить. - Планировщик Scheduler (
sFileTask) и запасной запускcron.php. - Права
ms3yandexmarket_view,ms3yandexmarket_manage,ms3yandexmarket_generate,ms3yandexmarket_edit_raw_xmlиms3yandexmarket_edit_fenom.
Fixed
- Скачивание YML идёт через
/yml/download. Путь проверяется через realpath и остаётся внутри корня сайта. - Процессоры YML ограничивают размер отдаваемого файла.


Последние обсуждения в сообществе MODX.pro