Models for value-based goods and services, which are exchanged for Money or other goods and services.
- 1. Overview
- 2. Installation
- 3. Usage
- 4. API
- 4.1.
Product - 4.2.
ProductType - 4.3.
ProductIdentifier - 4.4.
ProductInstance - 4.5.
SerialNumber - 4.6.
Batch - 4.7.
ProductFeatureType - 4.8.
ProductFeatureInstance - 4.9.
ProductCatalog - 4.10.
CatalogEntry - 4.11.
Package - 4.12.
PackageType - 4.13.
PackageInstance - 4.14.
ProductSet - 4.15.
PropositionOfInclusion - 4.16.
ProductRelationship - 4.17.
Price - 4.18.
ArbitraryPrice - 4.19.
PricingStrategy - 4.20.
MeasuredProductType - 4.21.
MeasuredProductInstance - 4.22.
Service - 4.23.
ServiceType - 4.24.
ServiceInstance - 4.25.
ServiceDeliveryStatus
- 4.1.
- 5. Maintainers
- 6. Contributions
- 7. License
Businesses and people make money by selling either goods or services. We call these goods and services "products."
@archetypes/product focuses on selling products, rather than manufacturing them. A clear and explicit model of Products enables flexible applications that can adapt to new business opportunities.
@archetypes/product comply with the standards in Table 1.1.
Table 1.1
| Standard | Description |
|---|---|
| [EAN.UCC System][ean-ucc-url] | Product identification standards. |
| [ISO 2108][iso-2108-url] | International Standard Book Number (ISBN) |
| [ISO 10957][iso-10957-url] | International Standard Music Number (ISMN) |
Figure 1: @archetypes/product module UML class diagram. 1
npm install @archetypes/productsA Product is a generalized model for representing goods and services.
Represents types of Products (e.g., a type of LCD monitor).
Uniquely identifies ProductTypes.
Represents specific instances of a product type (e.g., a particular LCD monitor).
Uniquely identifies a ProductInstance.
Uniquely identifies a set or ProductInstances of the same ProductType that are
tracked together.
Represents a type of feature associated with a ProductType.
Represents a specific feature of a ProductInstance.
Represents a persistent store of product information.
Represents the information about a particular type of product in a ProductCatalog.
Represents how to sell selections of products grouped together as a unit.
Represents how to specify the possible contents of a particular type of package.
Represents a particular instance of a PackageType.
Represents how to represent a set of ProductTypes from which selections may be made.
Represents how to describe the possible contents of a package in a rule of the form:
– P: isSubsetOf( T, S, min, max )
Represents fixed relationships between ProductTypes.
-
UpgradableTorepresents an upgrade relationship. -
SubstitutedByrepresents a substitution relationship. -
ReplacedByrepresents a replacement relationship. -
ComplementedByrepresents a relationship where oneProductTypecomplements or enhances another. -
CompatibleWithrepresents a relationship that shows that oneProductTypeis compatible with another. -
IncompatibleWithrepresents a relationship that shows that oneProductTypeis incompatible with another.
Represents the amount of money that must be paid in order to purchase a good or service.
• Pricing approaches
• Price reductions: how to represent different types of price reduction
Represents an ad hoc Price applied to a specific ProductInstance.
• Rules-based pricing: a walk-through of a pricing process that is driven by business rules
• Package pricing: how to represent the Price of a package
Represents pricing algorithm for a package, such as products sold by units of measure.
Represents how to represent a ProductType, such as gasoline, that is sold by measure.
Represents how to represent the amount of a MeasuredProductType (e.g., 10 gallons of gasoline) involved in a specific sale.
Represents how to represent processes or activities that are offered for sale.
Represents how to represent a type of service.
Represents an instance or execution of a type of service.
Records the status of the delivery process for a particular ServiceInstance.
The Maintainer Guide describes how we develop and release archetype-rules (and has useful information for Maintainers and Trusted Committers).
We gratefully accept Pull Requests. Here's what you
need to know to get started.
Before submitting a Pull Request, please read our:
- Code of Conduct
- Contributing Aggreement
- Developer Guide
- Maintainer/Trusted Committer Guide
- Architecture Decision Records
MIT © 2019 Greg Swindle
Footnotes
-
Arlow, J., & Neustadt, I. (2004). Enterprise Patterns and MDA (p. 205). Boston: Addison-Wesley. ↩

