antimattr/common-product

This package is abandoned and no longer maintained. No replacement package was suggested.

Common Product Model

Maintainers

👁 matthewfitz

Package info

github.com/antimattr/common-product

Homepage

pkg:composer/antimattr/common-product

Statistics

Installs: 165 097

Dependents: 1

Suggesters: 0

Stars: 6

Open Issues: 0

v1.0.1 2014-12-23 22:48 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT eac827a2844dd7db69082952d3853d76389d2a0a

  • Matthew Fitzgerald <matthewfitz.woop@gmail.com>

productantimattr

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/