dartvadius / ymlgenerator
生成 YML (YandexMarket 语言)
dev-master / 0.9.x-dev
2018-01-11 13:45 UTC
Requires
- php: >=5.4.0
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');
您可以通过几种方式设置头部
-
主要设置可以通过配置文件(offer/config/config.php)设置
-
或使用 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'
- 或逐个设置参数
$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...
您可以通过几种方式设置报价
- 使用 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'
- 或逐个设置参数
$simpleOffer->setName($name) ->setModel($model) ->setVendor($vendor) ->setDeliveryOptions($deliveryOptions) etc...;
III. 生成 XML
$generator = YmlFactory::getYml('generator');
您可以通过几种方式生成 XML (surprise)
- 通过使用值数组
$xml = $generator->generate($head->getHead(), $offers);
where $offers - array with offers:
[ $simpleOffer->getOffer(), $eventOffer->getOffer(), $audioBook->getOffer(), etc... ]
- 逐个设置报价
$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
- 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