feat(core-flows,link-modules,modules-sdk): add cart <> promotion link as source of truth (#6561)

what:

- adds promotion cart link
- update steps to create and remove links
This commit is contained in:
Riqwan Thamir
2024-03-04 09:50:49 +00:00
committed by GitHub
parent 8dad2b51a2
commit d550be3685
14 changed files with 272 additions and 51 deletions
@@ -0,0 +1,55 @@
import { Modules } from "@medusajs/modules-sdk"
import { ModuleJoinerConfig } from "@medusajs/types"
import { LINKS } from "../links"
export const CartPromotion: ModuleJoinerConfig = {
serviceName: LINKS.CartPromotion,
isLink: true,
databaseConfig: {
tableName: "cart_promotion",
idPrefix: "cartpromo",
},
alias: [
{
name: ["cart_promotion", "cart_promotions"],
args: {
entity: "LinkCartPromotion",
},
},
],
primaryKeys: ["id", "cart_id", "promotion_id"],
relationships: [
{
serviceName: Modules.CART,
primaryKey: "id",
foreignKey: "cart_id",
alias: "cart",
},
{
serviceName: Modules.PROMOTION,
primaryKey: "id",
foreignKey: "promotion_id",
alias: "promotion",
},
],
extends: [
{
serviceName: Modules.CART,
relationship: {
serviceName: LINKS.CartPromotion,
primaryKey: "cart_id",
foreignKey: "id",
alias: "cart_link",
},
},
{
serviceName: Modules.PROMOTION,
relationship: {
serviceName: LINKS.CartPromotion,
primaryKey: "promotion_id",
foreignKey: "id",
alias: "promotion_link",
},
},
],
}
@@ -1,5 +1,6 @@
export * from "./cart-customer"
export * from "./cart-payment-collection"
export * from "./cart-promotion"
export * from "./cart-region"
export * from "./cart-sales-channel"
export * from "./inventory-level-stock-location"
+6
View File
@@ -20,6 +20,12 @@ export const LINKS = {
Modules.PAYMENT,
"payment_collection_id"
),
CartPromotion: composeLinkName(
Modules.CART,
"cart_id",
Modules.PROMOTION,
"promotion_id"
),
// Internal services
ProductShippingProfile: composeLinkName(