Fix: Add Customer id in generate line item for customer specific pricing (#1245)
* initial * add logged in item to cart gets correct price * customer id or cart_id customer id * move customer_id to a config * update unit test * run pipelines
This commit is contained in:
@@ -101,12 +101,14 @@ describe("POST /store/carts", () => {
|
||||
expect(LineItemServiceMock.generate).toHaveBeenCalledWith(
|
||||
IdMap.getId("testVariant"),
|
||||
IdMap.getId("testRegion"),
|
||||
3
|
||||
3,
|
||||
{ customer_id: undefined }
|
||||
)
|
||||
expect(LineItemServiceMock.generate).toHaveBeenCalledWith(
|
||||
IdMap.getId("testVariant1"),
|
||||
IdMap.getId("testRegion"),
|
||||
1
|
||||
1,
|
||||
{ customer_id: undefined }
|
||||
)
|
||||
expect(CartServiceMock.addLineItem).toHaveBeenCalledTimes(2)
|
||||
})
|
||||
|
||||
@@ -129,7 +129,9 @@ export default async (req, res) => {
|
||||
validated.items.map(async (i) => {
|
||||
const lineItem = await lineItemService
|
||||
.withTransaction(manager)
|
||||
.generate(i.variant_id, regionId, i.quantity)
|
||||
.generate(i.variant_id, regionId, i.quantity, {
|
||||
customer_id: req.user?.customer_id,
|
||||
})
|
||||
await cartService
|
||||
.withTransaction(manager)
|
||||
.addLineItem(cart.id, lineItem)
|
||||
|
||||
@@ -30,6 +30,7 @@ import { validator } from "../../../../utils/validator"
|
||||
export default async (req, res) => {
|
||||
const { id } = req.params
|
||||
|
||||
const customerId = req.user?.customer_id
|
||||
const validated = await validator(StorePostCartsCartLineItemsReq, req.body)
|
||||
|
||||
const manager: EntityManager = req.scope.resolve("manager")
|
||||
@@ -43,6 +44,7 @@ export default async (req, res) => {
|
||||
const line = await lineItemService
|
||||
.withTransaction(m)
|
||||
.generate(validated.variant_id, cart.region_id, validated.quantity, {
|
||||
customer_id: customerId || cart.customer_id,
|
||||
metadata: validated.metadata,
|
||||
})
|
||||
await txCartService.addLineItem(id, line)
|
||||
|
||||
Reference in New Issue
Block a user