Marketplace Product feature: Domain model and relationships

Edit on GitHub

The Marketplace Product feature provides a relation between Products and Merchants. MerchantProductAbstract is a database table used to store data with the Product and Merchant relations. The Product features work as in the Spryker Commerce OS. However, on the Storefront, there are additional plugins and widgets to support the relation between Products and Merchants. Products are extended with the merchant’s data and, when purchased, are assigned to the appropriate MerchantOrder.

Module dependency graph

The following diagram illustrates the dependencies between the modules for the Marketplace Product feature.

Module Dependency Graph

MerchantProduct Provides connection between the product and merchant entities.
MerchantProductDataImport Imports relations between the products and the merchants from the CSV file.
ProductMerchantPortalGui Provides components for merchant product management.
ProductMerchantPortalGuiExtension Provides extension interfaces for the ProductMerchantPortalGui module.
MerchantProductStorage Manages the storage for the merchant product abstract.
MerchantProductWidget Provides the merchant product abstract information.
Product Provides the base infrastructure and CRUD operations to handle the abstract and concrete products.
MerchantProductsRestApi Provides REST API endpoints to manage the marketplace products.
CartsRestApiExtension Provides plugin interfaces used by the CartsRestApi module.

Domain model

The following schema illustrates the Marketplace Product domain model:

Domain Model

                                                         |                                                              ||