Marketplace Product Offer feature: Domain model and relationshipsEdit on GitHub
The Marketplace Product Offer entity is created when multiple merchants sell the same product on the Marketplace. The product offer is a variation of a concrete product with its own specific price (and volume price) and stock. It can be “owned” by any entity, however, in a B2C or B2B Marketplace, it is owned by a merchant.
The Marketplace product offer has its own validity dates and its own availability calculation based on its reservations.
The product offer re-uses and extends concrete product features. All product-related data is stored and processed as concrete products. All offer-related data is stored in a separate entity and linked to a concrete product.
The Marketplace Product Offer feature contains both merchant product offer and product offer concepts. Merchant product offer extends product offer by adding a pointer to a merchant.
Module dependency graph
The following diagram illustrates the dependencies between the modules for the Marketplace Product Offer feature.
The following table lists the main modules of the Marketplace Product Offer feature.
|MerchantProductOffer||Provides a collection of product offers by request. Extends
|MerchantProductOfferDataImport||Module for importing Merchant offers from the CSV file.|
|MerchantProductOfferGui||Provides Zed UI interface for merchant product offer management.|
|MerchantProductOfferSearch||Manages Elasticsearch documents for merchant product offer entities.|
|MerchantProductOfferStorage||Manages storage for merchant product offers.|
|MerchantProductOfferStorageExtension||Provides an interfaces of plugins to extend
|MerchantProductOffersRestApi||Provides Glue API endpoints to manage merchant product offers.|
|Product||Provides base infrastructure and CRUD operations to handle abstract product and concrete products.|
|ProductOffer||Provides the main create-read-update product offer functionality.|
|ProductOfferExtension||Provides extension interfaces for
|ProductOfferGuiExtension||Provides plugin interfaces for
|ProductOfferStorage||Manages storage for product offers.|
|ProductOfferStorageExtension||Provides interfaces for extension of
|ProductOffersRestApi||Provides availability to add product offer resource relation.|
|ProductOfferValidity||Defines validity period for an offer.|
|ProductOfferValidityDataImport||Data importer for
|MerchantProductOfferWidget||Provides merchant product offer information for the
|MerchantProductOfferWidgetExtension||This module provides plugin interfaces to extend the
|ProductOfferWidget||Provides widgets for displaying Product Offers.|
The following schema illustrates the domain model of the Marketplace Product Offer feature:
For submitting the form