Simple and requirements-free SimpleXML-based CommerceML parser and builder.
Usage:
composer require arsengoian/commerce-ml
Parse CommerceML:
use CommerceML\Client;
/**
* @var string $input
*/
$commercialInformation = Client::toCommerceML($input);
Build CommerceML string from CommerceML object:
use CommerceML\Client;
/**
* @var CommerceML\Implementation\CommercialInformation $commercialInformation
*/
$output = Client::toString($commercialInformation);
Namespaces:
CommerceML\Nodes
- abstract classes representing nodes. May have a custom implementation, including database storageCommerceML\Implementation
- simplest implementations storing variables in protected fields. This implementation will be returned while parsing. Nodes collecting arrays also implementArrayAccess
,IteratorAggregate
andCountable
.CommerceML\Constructors
- implementations with constructors, extend those fromCommerceML\Implementation
. Use these while building a custom CommerceML tree.
To use custom classes while parsing, before calling Client::toString()
, do:
use CommerceML\Node\Node
Node::overrideImplementations([
ProductCustomImplementation::class, // Must inherit from CommerceML\Implementations\Product
]);
Current implementation of the library doesn't cover all possible CommerceML nodes. E.g. product import nodes aren't covered.
Also complete test coverage would be welcomed.