Interface Product

All Superinterfaces:
BaseResource, DomainResource<Product>, Identifiable<Product>, ProductMixin, Referencable<Product>, ResourceIdentifiable<Product>, Versioned<Product>, WithKey
All Known Implementing Classes:
ProductImpl

An abstract sellable good with a set of Attributes defined by a Product Type. Products themselves are not sellable. Instead, they act as a parent structure for Product Variants. Each Product must have at least one Product Variant, which is called the Master Variant. A single Product representation contains the current and the staged representation of its product data.


Example to create an instance using the builder pattern

     Product product = Product.builder()
             .id("{id}")
             .version(0.3)
             .createdAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z"))
             .lastModifiedAt(ZonedDateTime.parse("2022-01-01T12:00:00.301Z"))
             .productType(productTypeBuilder -> productTypeBuilder)
             .masterData(masterDataBuilder -> masterDataBuilder)
             .build()