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/products
A 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
.
-
UpgradableTo
represents an upgrade relationship. -
SubstitutedBy
represents a substitution relationship. -
ReplacedBy
represents a replacement relationship. -
ComplementedBy
represents a relationship where oneProductType
complements or enhances another. -
CompatibleWith
represents a relationship that shows that oneProductType
is compatible with another. -
IncompatibleWith
represents a relationship that shows that oneProductType
is 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. ↩