Links between Cart Module and Other Modules
This document showcases the module links defined between the Cart Module and other Commerce Modules.
Summary#
The Cart Module has the following links to other modules:
First Data Model | Second Data Model | Type | Description |
|---|---|---|---|
Cart | Customer in Customer Module | Read-only - has one | |
ShippingMethod | ShippingOption in Fulfillment Module | Read-only - has one | |
Order in Order Module | Cart | Stored - one-to-one | |
Cart | PaymentCollection in Payment Module | Stored - one-to-one | |
LineItem | Product in Product Module | Read-only - has one | |
LineItem | ProductVariant in Product Module | Read-only - has one | |
Cart | Promotion in Promotion Module | Stored - many-to-many | |
Cart | Region in Region Module | Read-only - has one | |
Cart | SalesChannel in Sales Channel Module | Read-only - has one |
Customer Module#
Medusa defines a read-only link between the Cart data model and the Customer Module's Customer data model. This means you can retrieve the details of a cart's customer, but you don't manage the links in a pivot table in the database. The customer of a cart is determined by the customer_id property of the Cart data model.
Fulfillment Module#
Medusa defines a read-only link between the ShippingMethod data model and the Fulfillment Module's ShippingOption data model. This means you can retrieve the details of a shipping method's shipping option, but you don't manage the links in a pivot table in the database. The shipping option of a shipping method is determined by the shipping_option_id property of the ShippingMethod data model.
This link allows you to retrieve the shipping option that a shipping method was created from.
Order Module#
The Order Module provides order-management features.
Medusa defines a link between the Cart and Order data models. The cart is linked to the order created once the cart is completed.
Payment Module#
The Payment Module handles payment processing and management.
Medusa defines a link between the Cart and PaymentCollection data models. A cart has a payment collection which holds all the authorized payment sessions and payments made related to the cart.
Product Module#
Medusa defines read-only links between:
- the
LineItemdata model and the Product Module'sProductdata model. This means you can retrieve the details of a line item's product, but you don't manage the links in a pivot table in the database. The product of a line item is determined by theproduct_idproperty of theLineItemdata model. - the
LineItemdata model and the Product Module'sProductVariantdata model. This means you can retrieve the details of a line item's variant, but you don't manage the links in a pivot table in the database. The variant of a line item is determined by thevariant_idproperty of theLineItemdata model.
Promotion Module#
The Promotion Module provides discount features.
Medusa defines a link between the Cart and Promotion data models. This indicates the promotions applied on a cart.
Medusa also defines a read-only link between the LineItemAdjustment and Promotion data models. This means you can retrieve the details of the promotion applied on a line item, but you don't manage the links in a pivot table in the database. The promotion of a line item is determined by the promotion_id property of the LineItemAdjustment data model.
Region Module#
Medusa defines a read-only link between the Cart data model and the Region Module's Region data model. This means you can retrieve the details of a cart's region, but you don't manage the links in a pivot table in the database. The region of a cart is determined by the region_id property of the Cart data model.
Sales Channel Module#
Medusa defines a read-only link between the Cart data model and the Sales Channel Module's SalesChannel data model. This means you can retrieve the details of a cart's sales channel, but you don't manage the links in a pivot table in the database. The sales channel of a cart is determined by the sales_channel_id property of the Cart data model.