Skip to content

Commit f2502a7

Browse files
fix: allow free delivery price in Vipps Checkout
1 parent ea67baf commit f2502a7

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

backend/app/controllers/checkout_controller.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@ export default class CheckoutController {
1919
initializeCheckoutValidator,
2020
);
2121
const order = await OrderService.createFromCart(detailsId, cartItems);
22+
const branch = await StorageService.Branches.get(order.branch);
23+
const isDeliveryFree = branch.paymentInfo?.responsibleForDelivery ?? false;
2224

2325
if (order.amount === 0) {
24-
const branch = await StorageService.Branches.get(order.branch);
25-
if (
26-
!branch.deliveryMethods?.byMail ||
27-
branch.paymentInfo?.responsibleForDelivery
28-
) {
26+
if (!branch.deliveryMethods?.byMail || isDeliveryFree) {
2927
return { nextStep: "confirm", orderId: order.id } as const;
3028
}
3129
}
3230

33-
const { token, checkoutFrontendUrl } =
34-
await VippsCheckoutService.create(order);
31+
const { token, checkoutFrontendUrl } = await VippsCheckoutService.create(
32+
order,
33+
isDeliveryFree,
34+
);
3535
return { nextStep: "payment", token, checkoutFrontendUrl } as const;
3636
}
3737
async confirmCheckout(ctx: HttpContext) {

backend/app/services/vipps/vipps_checkout_service.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ async function updateUserDetailWithBillingDetails(
3434
return await StorageService.UserDetails.get(customerId);
3535
}
3636

37-
async function createLogistics(order: Order) {
37+
async function createLogistics(order: Order, isDeliveryFree: boolean) {
3838
const needLogistics = order.orderItems.some(
3939
(orderItem) =>
4040
orderItem.type === "rent" ||
@@ -82,7 +82,7 @@ async function createLogistics(order: Order) {
8282
{
8383
id: needPickupPoint ? "mail_pickup_point" : "mailbox",
8484
amount: {
85-
value: deliveryPrice * 100,
85+
value: isDeliveryFree ? 0 : deliveryPrice * 100,
8686
currency: "NOK",
8787
},
8888
brand: "POSTEN",
@@ -101,7 +101,7 @@ async function createLogistics(order: Order) {
101101
}
102102

103103
export const VippsCheckoutService = {
104-
async create(order: Order) {
104+
async create(order: Order, isDeliveryFree: boolean) {
105105
const userDetail = await StorageService.UserDetails.get(order.customer);
106106
const { token, checkoutFrontendUrl } =
107107
await VippsPaymentService.checkout.create({
@@ -146,7 +146,7 @@ export const VippsCheckoutService = {
146146
},
147147
},
148148
},
149-
logistics: await createLogistics(order),
149+
logistics: await createLogistics(order, isDeliveryFree),
150150
configuration: {
151151
showOrderSummary: true,
152152
},

0 commit comments

Comments
 (0)