About, (*1)
Generator YML (Yandex Market Language). Uses standard XMLWriter for generating XML file., (*2)
Requirements: PHP 5.5.0 or >= version., (*3)
Generator supports this offer types:
- simple (Simplified description of the product offer, no type)
- vendor (vendor.model)
- bookAudio (audiobook)
- bookPaper (book)
- event (event-ticket)
- media (artist.title)
- medicine (medicine)
- tour (tour), (*4)
You can create suitable type of offer using this names, see examples below., (*5)
How to use:, (*6)
<?php
use DartVadius\YmlGenerator\YmlFactory;
I. Creating header for yml document, (*7)
$head = YmlFactory::getYml('head');
You can setting up header by few ways:, (*8)
-
Main part of settings you can set by config file (offer/config/config.php), (*9)
-
Or using method setAllValues:, (*10)
$head->setAllValues($values);
where $values is array ['tag name' => 'value'], for example:, (*11)
[
'name' => 'company name',
'url' => 'url to your site main page',
'platform' => 'platform name',
etc....
]
Full list of tags see below, (*12)
Warning! This method has limitations. To set tags* that represent a list of values,
use their own methods, (*13)
*Tags: 'currencies', 'categories', 'delivery-options', (*14)
- Or set parameters one by one:
$head->setName($name)
->setCompany($company)
->setEmail($email)
->setCategory($categories)
etc...;
II. Creating offers for yml document, (*15)
$simpleOffer = YmlFactory::getYml('simple');
$eventOffer = YmlFactory::getYml('event');
$audioBook = YmlFactory::getYml('bookAudio');
etc..., (*16)
You can setting up offer by few ways:, (*17)
- Using method setAllValues:
$simpleOffer->setAllValues($values);
where $values is array ['tag name' => 'value'], for example:
[
'name' => 'product name',
'price' => 'price',
'vendor' => 'vendor name',
etc....
]
Full list of tags see below, (*18)
Warning! This method has limitations. To set *tags that represent a list of values,
use their own methods, (*19)
*tags: 'delivery-options', 'outlets', 'barcode', 'picture', 'param', 'dimensions',
'rec', 'options', (*20)
- Or set parameters one by one:
$simpleOffer->setName($name)
->setModel($model)
->setVendor($vendor)
->setDeliveryOptions($deliveryOptions)
etc...;
III. Generating XML, (*21)
$generator = YmlFactory::getYml('generator');
You can generate XML (surprise) by few ways, (*22)
- By using array of values
$xml = $generator->generate($head->getHead(), $offers);
where $offers - array with offers:
[
$simpleOffer->getOffer(),
$eventOffer->getOffer(),
$audioBook->getOffer(),
etc...
]
- Setting up offers one by one
$generator->generateHead($head->getHead());
$generator->generateOffer($simpleOffer->getOffer());
$generator->generateOffer($eventOffer->getOffer());
$generator->generateOffer($audioBook->getOffer());
etc...
$xml = $generator->generateFooter();
Full list of supported YML Header Tags:, (*23)
- name
- company
- url
- currencies
- categories
- platform
- version
- agency
- email
- delivery-options
- cpa
- adult
Full list of supported YML Offer Tags, (*24)
- 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