aluch/yml-generator

YML (Yandex Market Language) 文件生成器

v1.0.1 2024-06-06 15:48 UTC

This package is auto-updated.

Last update: 2024-09-06 16:31:56 UTC


README

Build Status Code Coverage Scrutinizer Code Quality License Latest Stable Version Total Downloads

关于

YML (Yandex Market Language) 生成器。使用标准 XMLWriter 生成 YML 文件。不需要其他库,只需 PHP 5.5.0 或更高版本。

生成器支持以下报价类型

安装

运行 composer require

composer require aluch/yml-generator

或将以下内容添加到您的 composer.json 文件中

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

使用示例

<?php

use Aluch\YmlGenerator\Model\Offer\OfferSimple;
use Aluch\YmlGenerator\Model\Category;
use Aluch\YmlGenerator\Model\Currency;
use Aluch\YmlGenerator\Model\Delivery;
use Aluch\YmlGenerator\Model\ShopInfo;
use Aluch\YmlGenerator\Settings;
use Aluch\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