oskonnikov / yml-generator
YML (Yandex Market Language) file generator
v1.11.3
2020-07-29 16:53 UTC
Requires
- php: >=5.6.1
- ext-simplexml: *
- ext-xmlwriter: *
Requires (Dev)
- ext-dom: *
- dealerdirect/phpcodesniffer-composer-installer: ^0.5
- escapestudios/symfony2-coding-standard: ^3.0
- friendsofphp/php-cs-fixer: ^2.3
- fzaninotto/faker: ^1.6
- phpcompatibility/php-compatibility: ^9.0
- phpunit/phpunit: ^5.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
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:
- OfferCustom (vendor.model)
- OfferBook (book)
- OfferAudiobook (audiobook)
- OfferArtistTitle (artist.title)
- OfferTour (tour)
- OfferEventTicket (event-ticket)
- OfferSimple (empty)
This is updated version by Oleg Skonnikov (devopwr@gmail.com) with new features:
Installation
Run composer require
composer require oskonnikov/yml-generator
Or add this to your composer.json file:
"require": { "bukashk0zzz/yml-generator": "dev-master", }
Usage example
<?php use Bukashk0zzz\YmlGenerator\Model\Offer\OfferSimple; use Bukashk0zzz\YmlGenerator\Model\Category; use Bukashk0zzz\YmlGenerator\Model\Currency; use Bukashk0zzz\YmlGenerator\Model\Delivery; use Bukashk0zzz\YmlGenerator\Model\ShopInfo; use Bukashk0zzz\YmlGenerator\Settings; use Bukashk0zzz\YmlGenerator\Generator; $file = tempnam(sys_get_temp_dir(), 'YMLGenerator'); $settings = (new Settings()) ->setOutputFile($file) ->setEncoding('UTF-8') ; // Creating ShopInfo object (https://yandex.ru/support/webmaster/goods-prices/technical-requirements.xml#shop) $shopInfo = (new ShopInfo()) ->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[] = (new Currency()) ->setId('USD') ->setRate(1) ; // Creating categories array (https://yandex.ru/support/webmaster/goods-prices/technical-requirements.xml#categories) $categories = []; $categories[] = (new Category()) ->setId(1) ->setName($this->faker->name) ; // Creating offers array (https://yandex.ru/support/webmaster/goods-prices/technical-requirements.xml#offers) $offers = []; $offers[] = (new OfferSimple()) ->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[] = (new Delivery()) ->setCost(2) ->setDays(1) ->setOrderBefore(14) ; // Optional creating promos and gifts array (https://yandex.ru/support/partnermarket/elements/promos.html) $promo_product_offers = [111111111,22222222,333333333]; $promo_gifts = [111111111]; $promos[] = (new Promo()) ->setId('123456') ->setType('gift with purchase') ->setStartDate('2020-05-28 00:00') ->setEndDate('2020-05-30 00:00 ') ->setDescription('Gift Description Here!') ->setProductOffers($promo_product_offers) ->setPromoGifts($promo_gifts); (new Generator($settings))->generate( $shopInfo, $currencies, $categories, $offers, $deliveries, $promos );
Copyright / License
See LICENSE