antimattr / common-product
Common Product Model
Installs: 160 059
Dependents: 1
Suggesters: 0
Security: 0
Stars: 6
Watchers: 6
Forks: 1
Open Issues: 0
Requires
- php: >=5.3.2
- doctrine/collections: 1.*
Requires (Dev)
- antimattr/test-case: ~1.0@stable
- fabpot/php-cs-fixer: dev-master
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2018-07-08 19:59:20 UTC
README
The AntiMattr common product is a library that provides a shared Product interface.
Installation
Add the following to your composer.json file:
{ "require": { "antimattr/common-product": "~1.0@stable" } }
Install the libraries by running:
composer install
If everything worked, the Common Product can now be found at vendor/antimattr/common-product.
Model
/* * A configurable Product has Attributes (ex. size, color) * Those Attributes have Options (ex. red, blue, small, medium) * A configurable Product has Variations which are unique combinations of Options. */ Product = { attributes: [ Attribute, // color Attribute, // size ], createdAt: Date, currency: string, // USD description: string, dimensionUnit: string, // For Height, Length, Width height: int, // Smallest unit for measurement system id: string || int, images: [ Image, Image, Image, ], length: int, // Smallest unit for measurement system mpn: string, msrp: int, // Smallest unit for currency price: int, // Smallest unit for currency publishedAt: Date, quantity: int, sku: string, status: string, title: string, upc: string, updatedAt: Date, variations: [ Variation, // color_red size_small (an object containing to Variants, one for color red and one for size medium) Variation, // color_red size_medium Variation, // color_red size_large Variation, // color_blue size_small Variation, // color_blue size_medium Variation // color_blue size_large ], weight: int, // Smallest unit for measurement system weigthUnit: string, width: int, // Smallest unit for measurement system }; Attribute { id: 'id', name: 'Color', options: [ Option, // red Option, // orange Option, // yellow Option, // green Option, // blue Option, // indigo Option, // violet ] }; Option { attribute: Attribute, // ReferenceOne value: 'Red', uniqueIdentifier: 'color_red', // Concatenate Attribute name and variant value. This ensures there can be only one "red". variation: Variation, }; Variation extends Product { image: Image, options: [ // A single permutation of options creating a unique mapping of options Option, // color_red Option, // size_medium ], position: int, // Default sort order for Variations, product: Product, // Parent Product uniqueIdentifier: 'color_red_size_medium', // Concatenate Option::uniqueIdentifier };
Pull Requests
Pull Requests - PSR Standards
Please use the pre-commit hook to run the fix all code to PSR standards
Install once with
./bin/install.sh
Copying /antimattr-common-product/bin/pre-commit.sh -> /antimattr-common-product/bin/../.git/hooks/pre-commit
Pull Requests
Pull Requests - PSR Standards
Please use the pre-commit hook to fix all code to PSR standards
Install once with
./bin/install.sh
Copying /antimattr-common-product/bin/pre-commit.sh -> /antimattr-common-product/bin/../.git/hooks/pre-commit
Pull Requests - Testing
Please make sure tests pass
$ vendor/bin/phpunit tests
Pull Requests - Code Sniffer and Fixer
Don't have the pre-commit hook running, please make sure to run the fixer/sniffer manually
$ vendor/bin/php-cs-fixer fix src/ $ vendor/bin/php-cs-fixer fix tests/