PHPackages                             notdest/yandex-yml-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. notdest/yandex-yml-generator

ActiveLibrary

notdest/yandex-yml-generator
============================

Simple Yandex Yml file generator.

1.0(6y ago)5041.7k↓38.9%15[1 issues](https://github.com/notdest/yandex-yml-generator/issues)[1 PRs](https://github.com/notdest/yandex-yml-generator/pulls)MITPHPPHP &gt;=5.4.0

Since Aug 10Pushed 3y ago2 watchersCompare

[ Source](https://github.com/notdest/yandex-yml-generator)[ Packagist](https://packagist.org/packages/notdest/yandex-yml-generator)[ RSS](/packages/notdest-yandex-yml-generator/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

Yml генератор на php
====================

[](#yml-генератор-на-php)

Генератор YML для быстрого подключения вашего магазина к Yandex.Market.

- Встраивается по принципу «Удали лишнее из примера».
- Очень прост, состоит из всего двух классов - `ymlDocument` и `ymlOffer`.
- Зависит только от встроенных библиотек - `php-xml` и `php-mbstring`, обычно они уже установлены.

### Установка

[](#установка)

```
composer require notdest/yandex-yml-generator
```

Если без композера - подсоединяем два файла из папки `/src/`, как в примерах.

### Проверка работоспособности

[](#проверка-работоспособности)

Скачиваем проект и запускаем пример [arbitrary.php](examples/arbitrary.php). Может ругаться, что не может создать файл - даем права на запись папке с примерами. Получившийся файл `arbitrary.xml` проверяем [сервисом](https://webmaster.yandex.ru/tools/xml-validator/) Яндекса.

### Устройство примеров

[](#устройство-примеров)

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

```
// model, vendor, id, price, currencyId, categoryId	, [price from - "цена от ххх руб." ]
$offer = $y->arbitrary( '3811', 'Brand', 'id01id1111', 900, "USD", 15 /* , true*/ );

$offer	->cbid(80)				//	Размер ставки на карточке товара. 0,8 у.е.
	->url("http://magaz.ru/tovar.html")	// !!!	условно обязательный. URL страницы товара
	//->vat('VAT_10_110') отсутствует в схеме	// Ставка НДС для товара.
```

Здесь `arbitrary()` создает предложение типа «произвольный», в него вынесены гарантированно обязательные поля. Метод `cbid()` уже не обязателен, его можно просто удалить, если он не нужен. Метод `url()` также можно удалить, но без него не будет работать модель «Переход на сайт» . Далее, метод `vat()` описан в документации, но отсутствует в xsd-схеме указанной в [технических требованиях](https://yandex.ru/support/webmaster/goods-prices/technical-requirements.html) и не проходит валидацию. Каждая строчка имеет комментарий. Файлы примеров:

Тип предложенияПримерДата валидацииУпрощенный[examples/simple.php](examples/simple.php)11.08.2019Произвольный[examples/arbitrary.php](examples/arbitrary.php)11.08.2019Книги[examples/book.php](examples/book.php)11.08.2019Аудиокниги[examples/audiobook.php](examples/audiobook.php)11.08.2019Аудио и видеопродукция[examples/artist.php](examples/artist.php)11.08.2019Туры[examples/tour.php](examples/tour.php)11.08.2019Мероприятия[examples/event.php](examples/event.php)11.08.2019Лекарства[examples/medicine.php](examples/medicine.php)11.08.2019Валидация проводилась с помощью [сервиса Яндекса](https://webmaster.yandex.ru/tools/xml-validator/), указывая тип *"Маркет"*.

### Сверить с документацией Яндекса

[](#сверить-с-документацией-яндекса)

Документация у Яндекса сделана преимущественно в виде таблиц. Соответственно я задокументировал свои примеры такими же таблицами с аналогичным порядком следования полей, описав текущие правила и ограничения. Просто открываете рядом два окна браузера, с документацией Яндекса и моей, и ищете различия. Нет различий - хорошо, есть - пишете на *e-mail* в профиле.

Таблица ЯндексаТаблица моя[Общие поля магазина](https://yandex.ru/support/partnermarket/export/yml.html)[Общие поля магазина](docs/yml.md)[Упрощенный тип](https://yandex.ru/support/partnermarket/offers.html)[Упрощенный тип](docs/simple.md)[Произвольный тип](https://yandex.ru/support/partnermarket/export/vendor-model.html)[Произвольный тип](docs/arbitrary.md)[Книги](https://yandex.ru/support/partnermarket/export/books.html)[Книги](docs/book.md)[Аудиокниги](https://yandex.ru/support/partnermarket/export/audiobooks.html)[Аудиокниги](docs/audiobook.md)[Аудио и видеопродукция](https://yandex.ru/support/partnermarket/export/music-video.html)[Аудио и видеопродукция](docs/artist.md)[Туры](https://yandex.ru/support/partnermarket/export/tours.html)[Туры](docs/tour.md)[Мероприятия](https://yandex.ru/support/partnermarket/export/event-tickets.html)[Мероприятия](docs/event.md)[Лекарства](https://yandex.ru/support/partnermarket/export/medicine.html)[Лекарства](docs/medicine.md)Не обязательно проверять все, используются обычно общие поля и какой-то один тип.

Также был сделан нагрузочный тест [examples/stress-test.php](examples/stress-test.php). Для генерации файла объемом 500 Мб (максимально разрешенный Яндексом) понадобилось 143 секунды, потребление памяти составило 2 Мб. Или 31 секунда на моем новом компе.

В случае необходимости внести изменения, рекомендую сначала ознакомиться с документацией по классам [ymlDocument](docs/ymlDocument.md) и [ymlOffer](docs/ymlOffer.md).

**P.S.** Ставь звездочки, если считаешь, что проект должен быть в топе.

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity42

Moderate usage in the ecosystem

Community15

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 94.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2467d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/40308d51424f94fc21814b1a43b10770f585115ac22cd377da010baac1291e10?d=identicon)[notdest](/maintainers/notdest)

---

Top Contributors

[![notdest](https://avatars.githubusercontent.com/u/7280120?v=4)](https://github.com/notdest "notdest (32 commits)")[![prawas](https://avatars.githubusercontent.com/u/7029560?v=4)](https://github.com/prawas "prawas (1 commits)")[![Traineratwot](https://avatars.githubusercontent.com/u/41589091?v=4)](https://github.com/Traineratwot "Traineratwot (1 commits)")

---

Tags

yandex-market-languageymlymlyandex

### Embed Badge

![Health badge](/badges/notdest-yandex-yml-generator/health.svg)

```
[![Health](https://phpackages.com/badges/notdest-yandex-yml-generator/health.svg)](https://phpackages.com/packages/notdest-yandex-yml-generator)
```

###  Alternatives

[hwi/oauth-bundle

Support for authenticating users using both OAuth1.0a and OAuth2 in Symfony.

2.4k21.5M69](/packages/hwi-oauth-bundle)[mustangostang/spyc

A simple YAML loader/dumper class for PHP

73240.3M172](/packages/mustangostang-spyc)[hassankhan/config

Lightweight configuration file loader that supports PHP, INI, XML, JSON, and YAML files

97513.5M170](/packages/hassankhan-config)[bukashk0zzz/yml-generator

YML (Yandex Market Language) file generator

116186.3k](/packages/bukashk0zzz-yml-generator)[jbzoo/data

An extended version of the ArrayObject object for working with system settings or just for working with data arrays

891.6M23](/packages/jbzoo-data)[lireincore/ymlparser

YML (Yandex Market Language) parser

2429.6k1](/packages/lireincore-ymlparser)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
