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,IteratorAggregateandCountable.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.