Marketplace Product Offer feature: Domain model and relationships
Edit on GitHubThe 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.
NAME | DESCRIPTION |
---|---|
MerchantProductOffer | Provides a collection of product offers by request. Extends ProductOffer with the merchant information. Used by MerchantSwitcher for enabling the merchant functionality. |
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 MerchantProductOfferStorage module from the other modules. |
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 ProductOffer module. |
ProductOfferGui | ProductOfferGui is the Zed Administrative Interface component for managing product offers. |
ProductOfferGuiExtension | Provides plugin interfaces for ProductOfferGui module functionality extending. |
ProductOfferStorage | Manages storage for product offers. |
ProductOfferStorageExtension | Provides interfaces for extension of ProductOfferStorage module with plugins. |
ProductOffersRestApi | Provides availability to add product offer resource relation. |
ProductOfferValidity | Defines validity period for an offer. |
ProductOfferValidityDataImport | Data importer for ProductOfferValidity . |
ProductOfferValidityGui | ProductOfferValidityGui is the Zed Administrative Interface component for managing product offer validity. |
MerchantProductOfferWidget | Provides merchant product offer information for the spryker-shop . |
MerchantProductOfferWidgetExtension | This module provides plugin interfaces to extend the MerchantProductOfferWidget module from the other modules. |
ProductOfferWidget | Provides widgets for displaying Product Offers. |
Domain model
The following schema illustrates the domain model of the Marketplace Product Offer feature:
Thank you!
For submitting the form