dartvadius/ymlgenerator

生成 YML (YandexMarket 语言)

dev-master / 0.9.x-dev 2018-01-11 13:45 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:49:12 UTC


README

关于

生成 YML (Yandex Market 语言)。使用标准的 XMLWriter 生成 XML 文件。

要求:PHP 5.5.0 或更高版本。

生成器支持以下报价类型

  • simple (产品报价的简化描述,无类型)
  • vendor (vendor.model)
  • bookAudio (有声书)
  • bookPaper (书籍)
  • event (event-ticket)
  • media (artist.title)
  • medicine (药品)
  • tour (旅游)

您可以使用以下名称创建合适的报价类型,以下为示例。

如何使用

<?php
use DartVadius\YmlGenerator\YmlFactory;

I. 为 yml 文档创建头部

$head = YmlFactory::getYml('head');

您可以通过几种方式设置头部

  1. 主要设置可以通过配置文件(offer/config/config.php)设置

  2. 或使用 setAllValues 方法

    $head->setAllValues($values);

其中 $values 是数组 ['tag name' => 'value'],例如

    [
        'name' => 'company name',
        'url' => 'url to your site main page',
        'platform' => 'platform name',
        etc....
    ]

以下是标签的完整列表

警告!此方法有限制。要设置表示值列表的 *tags,请使用它们自己的方法

*标签:'currencies', 'categories', 'delivery-options'

  1. 或逐个设置参数
    $head->setName($name)
    ->setCompany($company)
    ->setEmail($email)
    ->setCategory($categories)
    etc...;

II. 为 yml 文档创建报价

$simpleOffer = YmlFactory::getYml('simple');
$eventOffer = YmlFactory::getYml('event');
$audioBook = YmlFactory::getYml('bookAudio');

etc...

您可以通过几种方式设置报价

  1. 使用 setAllValues 方法
    $simpleOffer->setAllValues($values);
where $values is array ['tag name' => 'value'], for example:
    [
        'name' => 'product name',
        'price' => 'price',
        'vendor' => 'vendor name',
        etc....
    ]

以下是标签的完整列表

警告!此方法有限制。要设置 *tags 表示值列表,请使用它们自己的方法

*tags:'delivery-options', 'outlets', 'barcode', 'picture', 'param', 'dimensions', 'rec', 'options'

  1. 或逐个设置参数
    $simpleOffer->setName($name)
    ->setModel($model)
    ->setVendor($vendor)
    ->setDeliveryOptions($deliveryOptions)
    etc...;

III. 生成 XML

$generator = YmlFactory::getYml('generator');

您可以通过几种方式生成 XML (surprise)

  1. 通过使用值数组
$xml = $generator->generate($head->getHead(), $offers);
where $offers - array with offers:
    [
        $simpleOffer->getOffer(),
        $eventOffer->getOffer(),
        $audioBook->getOffer(),
        etc...
    ]
  1. 逐个设置报价
    $generator->generateHead($head->getHead());
    $generator->generateOffer($simpleOffer->getOffer());
    $generator->generateOffer($eventOffer->getOffer());
    $generator->generateOffer($audioBook->getOffer());
    etc...
    $xml = $generator->generateFooter();

支持的 YML 头部标签完整列表

  • name
  • company
  • url
  • currencies
  • categories
  • platform
  • version
  • agency
  • email
  • delivery-options
  • cpa
  • adult

支持的 YML 报价标签完整列表

  • name
  • id
  • type
  • url
  • price
  • currencyId
  • categoryId
  • picture
  • model
  • vendor
  • vendorCode
  • cbid
  • bid
  • fee
  • oldprice
  • delivery
  • delivery-options
  • available
  • store
  • outlets
  • description
  • sales_notes
  • min-quantity
  • step-quantity
  • manufacturer_warranty
  • country_of_origin
  • adult
  • barcode
  • cpa
  • param
  • weight
  • dimensions
  • downloadable
  • rec
  • ISBN
  • author
  • publisher
  • series
  • year
  • volume
  • part
  • language
  • table_of_contents
  • performed_by
  • performance_type
  • storage
  • format
  • recording_length
  • binding
  • page_extent
  • place
  • date
  • hall
  • hall_part
  • is_premiere
  • is_kids
  • title
  • artist
  • media
  • starring
  • director
  • originalName
  • country
  • days
  • included
  • transport
  • worldRegion
  • country
  • region
  • dataTour
  • hotel_stars
  • room
  • meal
  • price_min
  • price_max
  • options