arsengoian / commerce-ml
Easy-peasy CommerceML 2.10 PHP library
Installs: 10 821
Dependents: 1
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 14
Open Issues: 1
Requires
- php: >=7.1.0
- ext-dom: *
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 6.5
This package is auto-updated.
Last update: 2025-02-27 20:18:08 UTC
README
Simple and requirements-free SimpleXML-based CommerceML parser and builder.
Features
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.
Advanced:
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 ]);
Contributions
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.