Skip to content

Repository files navigation

YML (Yandex Market Language) file generator

Build StatusCode CoverageScrutinizer Code QualityLicenseLatest Stable VersionTotal Downloads

About

YML (Yandex Market Language) generator. Uses standard XMLWriter for generating YML file. Not required any other library you just need PHP 5.5.0 or >= version.

Generator supports this offer types:

Installation

Run composer require

composer require bukashk0zzz/yml-generator

Or add this to your composer.json file:

"require": {
"bukashk0zzz/yml-generator": "dev-master",
}

Usage examples

<?phpuseBukashk0zzz\YmlGenerator\Model\Offer\OfferSimple;
useBukashk0zzz\YmlGenerator\Model\Category;
useBukashk0zzz\YmlGenerator\Model\Currency;
useBukashk0zzz\YmlGenerator\Model\Delivery;
useBukashk0zzz\YmlGenerator\Model\ShopInfo;
useBukashk0zzz\YmlGenerator\Settings;
useBukashk0zzz\YmlGenerator\Generator;
$file = tempnam(sys_get_temp_dir(), 'YMLGenerator');
$settings = (newSettings())
->setOutputFile($file)
->setEncoding('UTF-8')
;
// Creating ShopInfo object (https://yandex.ru/support/webmaster/goods-prices/technical-requirements.xml#shop)$shopInfo = (newShopInfo())
->setName('BestShop')
->setCompany('Best online seller Inc.')
->setUrl('http://www.best.seller.com/')
;
// Creating currencies array (https://yandex.ru/support/webmaster/goods-prices/technical-requirements.xml#currencies)$currencies = [];
$currencies[] = (newCurrency())
->setId('USD')
->setRate(1)
;
// Creating categories array (https://yandex.ru/support/webmaster/goods-prices/technical-requirements.xml#categories)$categories = [];
$categories[] = (newCategory())
->setId(1)
->setName($this->faker->name)
;
// Creating offers array (https://yandex.ru/support/webmaster/goods-prices/technical-requirements.xml#offers)$offers = [];
$offers[] = (newOfferSimple())
->setId(12346)
->setAvailable(true)
->setUrl('http://www.best.seller.com/product_page.php?pid=12348')
->setPrice($this->faker->numberBetween(1, 9999))
->setCurrencyId('USD')
->setCategoryId(1)
->setDelivery(false)
->setName('Best product ever')
;
// Optional creating deliveries array (https://yandex.ru/support/partnermarket/elements/delivery-options.xml)$deliveries = [];
$deliveries[] = (newDelivery())
->setCost(2)
->setDays(1)
->setOrderBefore(14)
;
(newGenerator($settings))->generate(
$shopInfo,
$currencies,
$categories,
$offers,
$deliveries
);

Adding custom elements

if you need additional offers elements in your yml file using method addCustomElement('type','value'). For example:

$offers[] = (newOfferSimple())
->setId(12346)
->setAvailable(true)
->setUrl('http://www.best.seller.com/product_page.php?pid=12348')
->setPrice($this->faker->numberBetween(1, 9999))
->setCurrencyId('USD')
->setCategoryId(1)
->setDelivery(false)
->setName('Best product ever')
->addCustomElement('type', 'value')
;

Copyright / License

See LICENSE

About

YML (Yandex Market Language) file generator

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages