bukashk0zzz / yml-generator
YML (Yandex Market Language) 文件生成器
v1.11.7
2023-03-22 07:37 UTC
Requires
- php: >=5.6.1
- ext-simplexml: *
- ext-xmlwriter: *
Requires (Dev)
- ext-dom: *
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.1
- 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
README
关于
YML (Yandex Market Language) 生成器。使用标准的 XMLWriter 生成 YML 文件。不需要其他库,只需 PHP 5.5.0 或更高版本。
生成器支持以下报价类型
- OfferCustom (vendor.model)
- OfferBook (book)
- OfferAudiobook (audiobook)
- OfferArtistTitle (artist.title)
- OfferTour (tour)
- OfferEventTicket (event-ticket)
- OfferSimple (empty)
安装
运行 composer require
composer require bukashk0zzz/yml-generator
或将其添加到您的 composer.json
文件中
"require": { "bukashk0zzz/yml-generator": "dev-master", }
使用示例
<?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) ; (new Generator($settings))->generate( $shopInfo, $currencies, $categories, $offers, $deliveries );
添加自定义元素
如果您需要在 YML 文件中使用额外的报价元素,请使用方法 addCustomElement('type','value')。例如
$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') ->addCustomElement('type', 'value') ;
版权 / 许可
查看 LICENSE