Skip to content

Commit b056ed6

Browse files
author
Luis Sanchez
committed
feat(order): CHECKOUT-3047 Include payments by default in OrderRequestSender
1 parent d5f5cc8 commit b056ed6

30 files changed

+182
-294
lines changed

src/cart/map-to-internal-cart.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ export default function mapToInternalCart(checkout: Checkout): InternalCart {
1414
const discountedAmount = reduce(checkout.cart.discounts, (sum, discount) => {
1515
return sum + discount.discountedAmount;
1616
}, 0);
17-
// @todo: remove this once API returns shipping cost breakdown (CHECKOUT-3153)
18-
const shippingAmountBeforeDiscount = checkout.shippingCostTotal + getShippingDiscount(checkout);
1917

2018
return {
2119
id: checkout.cart.id,
@@ -41,8 +39,8 @@ export default function mapToInternalCart(checkout: Checkout): InternalCart {
4139
shipping: {
4240
amount: checkout.shippingCostTotal,
4341
integerAmount: amountTransformer.toInteger(checkout.shippingCostTotal),
44-
amountBeforeDiscount: shippingAmountBeforeDiscount,
45-
integerAmountBeforeDiscount: amountTransformer.toInteger(shippingAmountBeforeDiscount),
42+
amountBeforeDiscount: checkout.shippingCostBeforeDiscount,
43+
integerAmountBeforeDiscount: amountTransformer.toInteger(checkout.shippingCostBeforeDiscount),
4644
required: some(checkout.cart.lineItems.physicalItems, lineItem => lineItem.isShippingRequired),
4745
},
4846
subtotal: {
@@ -71,9 +69,3 @@ export default function mapToInternalCart(checkout: Checkout): InternalCart {
7169
},
7270
};
7371
}
74-
75-
function getShippingDiscount(checkout: Checkout): number {
76-
const coupon = checkout.cart.coupons.find(coupon => coupon.couponType === 'shipping_discount');
77-
78-
return coupon ? coupon.discountedAmount : 0;
79-
}

src/checkout/checkout-client.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { Config, ConfigRequestSender } from '../config';
88
import { GiftCertificateRequestSender } from '../coupon';
99
import { CustomerCredentials, CustomerRequestSender } from '../customer';
1010
import { CountryRequestSender, CountryResponseBody } from '../geography';
11-
import { InternalOrderResponseBody, Order, OrderParams, OrderRequestBody, OrderRequestSender } from '../order';
11+
import { InternalOrderResponseBody, Order, OrderRequestBody, OrderRequestSender } from '../order';
1212
import { PaymentMethodsResponseBody, PaymentMethodRequestSender, PaymentMethodResponseBody } from '../payment';
1313
import { QuoteRequestSender } from '../quote';
1414
import {
@@ -56,18 +56,10 @@ export default class CheckoutClient {
5656
return this._cartRequestSender.loadCart(options);
5757
}
5858

59-
loadOrder(orderId: number, options?: RequestOptions<OrderParams>): Promise<Response<Order>> {
59+
loadOrder(orderId: number, options?: RequestOptions): Promise<Response<Order>> {
6060
return this._orderRequestSender.loadOrder(orderId, options);
6161
}
6262

63-
/**
64-
* @deprecated
65-
* Remove once we fully transition to Storefront API
66-
*/
67-
loadInternalOrder(orderId: number, options?: RequestOptions): Promise<Response<InternalOrderResponseBody>> {
68-
return this._orderRequestSender.loadInternalOrder(orderId, options);
69-
}
70-
7163
submitOrder(body: OrderRequestBody, options?: RequestOptions): Promise<Response<InternalOrderResponseBody>> {
7264
return this._orderRequestSender.submitOrder(body, options);
7365
}

src/checkout/checkout-request-sender.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { RequestSender, Response } from '@bigcommerce/request-sender';
22

3-
import { transformParams, ContentType, RequestOptions } from '../common/http-request';
3+
import { ContentType, RequestOptions } from '../common/http-request';
44

55
import Checkout from './checkout';
66
import CheckoutParams from './checkout-params';
@@ -22,9 +22,9 @@ export default class CheckoutRequestSender {
2222
];
2323

2424
return this._requestSender.get(url, {
25-
params: transformParams({
26-
include: defaultIncludes.concat(params && params.include || []),
27-
}),
25+
params: {
26+
include: defaultIncludes.concat(params && params.include || []).join(','),
27+
},
2828
headers,
2929
timeout,
3030
});

src/checkout/checkout-service.spec.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,6 @@ describe('CheckoutService', () => {
7676
Promise.resolve(getResponse(getOrder()))
7777
),
7878

79-
loadInternalOrder: jest.fn(() =>
80-
Promise.resolve(getResponse(getCompleteOrderResponseBody()))
81-
),
82-
8379
submitOrder: jest.fn(() =>
8480
Promise.resolve(getResponse(getCompleteOrderResponseBody()))
8581
),

src/checkout/checkout-service.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,10 @@ export default class CheckoutService {
8585
}
8686

8787
loadOrder(orderId: number, options?: RequestOptions): Promise<CheckoutSelectors> {
88-
return Promise.all([
89-
this._store.dispatch(this._orderActionCreator.loadInternalOrder(orderId, options)),
90-
this._store.dispatch(this._orderActionCreator.loadOrder(orderId, options)),
91-
]).then(() => this.getState());
88+
const action = this._orderActionCreator.loadOrder(orderId, options);
89+
90+
return this._store.dispatch(action)
91+
.then(() => this.getState());
9292
}
9393

9494
submitOrder(payload: OrderRequestBody, options?: RequestOptions): Promise<CheckoutSelectors> {

src/checkout/checkout-store-reducers.typedef.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/checkout/checkout-store-selector.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { StoreConfig } from '../config/config';
77
import { CustomerSelector, InternalCustomer } from '../customer';
88
import { FormField, FormSelector } from '../form';
99
import { Country, CountrySelector } from '../geography';
10-
import { InternalIncompleteOrder, InternalOrder, OrderSelector } from '../order';
10+
import { InternalOrder, OrderSelector } from '../order';
1111
import { PaymentMethod, PaymentMethodSelector } from '../payment';
1212
import { Instrument, InstrumentSelector } from '../payment/instrument';
1313
import { InternalQuote, QuoteSelector } from '../quote';
@@ -68,7 +68,7 @@ export default class CheckoutStoreSelector {
6868
return this._checkout.getCheckout();
6969
}
7070

71-
getOrder(): InternalOrder | InternalIncompleteOrder | undefined {
71+
getOrder(): InternalOrder | undefined {
7272
return this._order.getOrder();
7373
}
7474

src/checkout/checkout.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export default interface Checkout {
1919
coupons: Coupon[];
2020
orderId: number;
2121
shippingCostTotal: number;
22+
shippingCostBeforeDiscount: number;
2223
handlingCostTotal: number;
2324
taxTotal: number;
2425
grandTotal: number;

src/checkout/checkouts.mock.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export function getCheckout(): Checkout {
4040
coupons: [],
4141
orderId: 295,
4242
shippingCostTotal: 15,
43+
shippingCostBeforeDiscount: 20,
4344
handlingCostTotal: 8,
4445
taxTotal: 0,
4546
grandTotal: 190,

src/common/http-request/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
export { default as InternalResponseBody } from './internal-response-body';
22
export { default as ContentType } from './content-type';
33
export { default as RequestOptions } from './request-options';
4-
export { default as transformParams } from './transform-params';

0 commit comments

Comments
 (0)