feat(core-flows,pricing,medusa,pricing,types,utils): Price List Prices can have their own rules (#5752)

**What**
- Add price-rules for prices in price-lists
- make rules object optional when creating prices

**Why**
- more price granularity

Co-authored-by: Philip Korsholm <88927411+pKorsholm@users.noreply.github.com>
This commit is contained in:
Riqwan Thamir
2023-12-12 09:20:21 +01:00
committed by GitHub
parent f05c20695e
commit 079f0da83f
41 changed files with 984 additions and 370 deletions

View File

@@ -90,8 +90,8 @@ describe("POST /admin/price-lists/:id/prices/batch", () => {
{
title: "test price list",
description: "test",
ends_at: new Date(),
starts_at: new Date(),
ends_at: new Date().toISOString(),
starts_at: new Date().toISOString(),
status: PriceListStatus.ACTIVE,
type: PriceListType.OVERRIDE,
},
@@ -104,7 +104,6 @@ describe("POST /admin/price-lists/:id/prices/batch", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
})
@@ -117,6 +116,11 @@ describe("POST /admin/price-lists/:id/prices/batch", () => {
amount: 5000,
currency_code: "usd",
},
{
amount: 6000,
region_id: "test-region",
variant_id: variant.id,
},
],
}
@@ -184,6 +188,44 @@ describe("POST /admin/price-lists/:id/prices/batch", () => {
}),
variant_id: expect.any(String),
}),
expect.objectContaining({
id: expect.any(String),
created_at: expect.any(String),
updated_at: expect.any(String),
deleted_at: null,
currency_code: "usd",
amount: 6000,
min_quantity: null,
max_quantity: null,
price_list_id: expect.any(String),
region_id: "test-region",
variant: expect.objectContaining({
id: expect.any(String),
created_at: expect.any(String),
updated_at: expect.any(String),
deleted_at: null,
title: expect.any(String),
product_id: expect.any(String),
sku: null,
barcode: null,
ean: null,
upc: null,
variant_rank: 0,
inventory_quantity: 10,
allow_backorder: false,
manage_inventory: true,
hs_code: null,
origin_country: null,
mid_code: null,
material: null,
weight: null,
length: null,
height: null,
width: null,
metadata: null,
}),
variant_id: expect.any(String),
}),
],
})
)

View File

@@ -94,7 +94,6 @@ describe("POST /admin/price-lists", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
})

View File

@@ -87,7 +87,6 @@ describe("DELETE /admin/price-lists/:id/products/:productId/batch", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
})

View File

@@ -89,7 +89,6 @@ describe("DELETE /admin/price-lists/:id/variants/:variantId/prices", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
})

View File

@@ -89,7 +89,6 @@ describe("DELETE /admin/price-lists/:id", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
})

View File

@@ -89,7 +89,6 @@ describe("DELETE /admin/price-lists/:id", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
})

View File

@@ -81,7 +81,6 @@ describe("GET /admin/price-lists/:id", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
rules: [],

View File

@@ -99,7 +99,6 @@ describe("GET /admin/price-lists/:id/products", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
rules: [],
@@ -210,7 +209,6 @@ describe("GET /admin/price-lists/:id/products", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
rules: [],

View File

@@ -81,7 +81,6 @@ describe("GET /admin/price-lists", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
rules: [],

View File

@@ -131,7 +131,6 @@ describe("POST /admin/price-lists/:id", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
})

View File

@@ -91,12 +91,10 @@ describe("GET /store/products/:id", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
{
amount: 4000,
currency_code: "usd",
rules: {},
},
],
rules: [],

View File

@@ -140,7 +140,6 @@ describe("POST /admin/products/:id/variants/:id", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
})

View File

@@ -142,7 +142,6 @@ describe("POST /admin/products/:id", () => {
{
amount: 3000,
currency_code: "usd",
rules: {},
},
],
})

View File

@@ -9,7 +9,6 @@ const defaultPrices = [
{
amount: 3000,
currency_code: "usd",
rules: {},
},
]