rerobe-js-orm 2.4.2 → 2.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/factories/FormState/Address/AddressFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/Address/AddressFormStateFactory.js +1 -1
- package/lib/factories/FormState/Merchant/MerchantFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/Merchant/MerchantFormStateFactory.js +1 -1
- package/lib/factories/FormState/Order/OrderFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/Order/OrderFormStateFactory.js +1 -1
- package/lib/factories/FormState/Order/RefundFormStateFactory.d.ts +5 -0
- package/lib/factories/FormState/Order/RefundFormStateFactory.js +10 -0
- package/lib/factories/FormState/PickUp/PickUpFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/PickUp/PickUpFormStateFactory.js +1 -1
- package/lib/factories/FormState/Product/ProductFormStateFactory.d.ts +2 -2
- package/lib/factories/FormState/Product/ProductFormStateFactory.js +3 -3
- package/lib/factories/FormState/ProductCollection/ProductCollectionFormStateFactory.d.ts +5 -0
- package/lib/factories/FormState/ProductCollection/ProductCollectionFormStateFactory.js +10 -0
- package/lib/factories/FormState/SellRequest/SellRequestFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/SellRequest/SellRequestFormStateFactory.js +1 -1
- package/lib/factories/FormState/User/UserFormStateFactory.d.ts +1 -1
- package/lib/factories/FormState/User/UserFormStateFactory.js +1 -1
- package/lib/factories/Merchant/MerchantFactory.d.ts +1 -1
- package/lib/factories/Merchant/MerchantFromFormState.d.ts +1 -1
- package/lib/factories/Merchant/MerchantFromFormState.js +13 -1
- package/lib/factories/Order/OrderFactory.d.ts +1 -1
- package/lib/factories/Order/OrderFromApp.js +4 -2
- package/lib/factories/Order/OrderFromFormState.d.ts +1 -1
- package/lib/factories/Order/OrderFromFormState.js +17 -15
- package/lib/factories/Order/OrderFromShopifyWebhook.js +126 -10
- package/lib/factories/Order/RefundFactory.d.ts +5 -0
- package/lib/factories/Order/RefundFactory.js +6 -0
- package/lib/factories/Order/RefundFromFormState.d.ts +5 -0
- package/lib/factories/Order/RefundFromFormState.js +29 -0
- package/lib/factories/PayoutAccount/PayoutAccountFromFormState.d.ts +1 -1
- package/lib/factories/Product/ProductFactory.d.ts +1 -1
- package/lib/factories/Product/ProductFromFormState.d.ts +1 -1
- package/lib/factories/Product/ProductFromFormState.js +29 -3
- package/lib/factories/ProductCollection/ProductCollectionFactory.d.ts +5 -0
- package/lib/factories/ProductCollection/ProductCollectionFactory.js +6 -0
- package/lib/factories/ProductCollection/ProductCollectionFromFormState.d.ts +5 -0
- package/lib/factories/ProductCollection/ProductCollectionFromFormState.js +29 -0
- package/lib/factories/User/UserFactory.d.ts +1 -1
- package/lib/factories/User/UserFromFormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/Address/AddressFormState.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/Address/AddressFormState.js +1 -3
- package/lib/{models/FormStates → form-states}/FormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/FormState.js +1 -1
- package/lib/{models/FormStates → form-states}/Merchant/MerchantFormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/Merchant/MerchantFormState.js +19 -4
- package/lib/form-states/Merchant/WebhookFormState.d.ts +8 -0
- package/lib/form-states/Merchant/WebhookFormState.js +49 -0
- package/lib/{models/FormStates → form-states}/Merchant/options.d.ts +8 -0
- package/lib/{models/FormStates → form-states}/Merchant/options.js +15 -2
- package/lib/{models/FormStates → form-states}/Order/OrderFormState.d.ts +2 -2
- package/lib/{models/FormStates → form-states}/Order/OrderFormState.js +12 -13
- package/lib/form-states/Order/RefundFormState.d.ts +17 -0
- package/lib/form-states/Order/RefundFormState.js +122 -0
- package/lib/{models/FormStates → form-states}/Order/options.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/Order/options.js +1 -1
- package/lib/{models/FormStates → form-states}/PayoutAccount/PayoutAccountFormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/PayoutAccount/PayoutAccountFormState.js +2 -2
- package/lib/{models/FormStates → form-states}/PayoutAccount/options.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/PayoutAccount/options.js +0 -0
- package/lib/{models/FormStates → form-states}/PickUp/PickUpFormState.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/PickUp/PickUpFormState.js +0 -0
- package/lib/{models/FormStates → form-states}/Product/ProductFormState.d.ts +8 -2
- package/lib/{models/FormStates → form-states}/Product/ProductFormState.js +24 -4
- package/lib/{models/FormStates → form-states}/Product/options.d.ts +0 -0
- package/lib/form-states/Product/options.js +3455 -0
- package/lib/form-states/ProductCollection/ProductCollectionFormState.d.ts +12 -0
- package/lib/form-states/ProductCollection/ProductCollectionFormState.js +80 -0
- package/lib/{models/FormStates → form-states}/SellRequest/SellRequestFormState.d.ts +0 -0
- package/lib/{models/FormStates → form-states}/SellRequest/SellRequestFormState.js +1 -1
- package/lib/{models/FormStates → form-states}/User/UserFormState.d.ts +1 -1
- package/lib/{models/FormStates → form-states}/User/UserFormState.js +2 -2
- package/lib/helpers/AnalyticsHelpers.js +3 -3
- package/lib/helpers/OrderHelpers.d.ts +5 -0
- package/lib/helpers/OrderHelpers.js +107 -0
- package/lib/helpers/ProductCollectionHelpers.d.ts +4 -0
- package/lib/helpers/ProductCollectionHelpers.js +27 -0
- package/lib/helpers/ReRobeProductHelpers.d.ts +6 -0
- package/lib/helpers/ReRobeProductHelpers.js +221 -41
- package/lib/helpers/Utilities.d.ts +1 -0
- package/lib/helpers/Utilities.js +10 -0
- package/lib/index.d.ts +7 -3
- package/lib/index.js +11 -3
- package/lib/models/Merchant.d.ts +16 -0
- package/lib/models/Merchant.js +40 -0
- package/lib/models/Order.d.ts +4 -0
- package/lib/models/Order.js +7 -1
- package/lib/models/Product.d.ts +1 -0
- package/lib/models/Product.js +37 -3
- package/lib/models/ProductCollection.d.ts +15 -0
- package/lib/models/ProductCollection.js +34 -0
- package/lib/models/Refund.d.ts +13 -0
- package/lib/models/Refund.js +40 -0
- package/lib/models/User.js +7 -2
- package/lib/types/merchant-types.d.ts +46 -13
- package/lib/types/product-collection-types.d.ts +63 -0
- package/lib/types/product-collection-types.js +13 -0
- package/lib/types/rerobe-order-types.d.ts +88 -26
- package/lib/types/rerobe-product-types.d.ts +30 -0
- package/lib/types/rerobe-user-types.d.ts +27 -21
- package/lib/types/rerobe-user-types.js +0 -1
- package/package.json +3 -2
- package/lib/models/FormStates/Product/options.js +0 -3453
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import FormState from '../FormState';
|
|
2
|
+
import ProductCollection from '../../models/ProductCollection';
|
|
3
|
+
export default class ProductCollectionFormState extends FormState {
|
|
4
|
+
fields: ProductCollectionFormFields;
|
|
5
|
+
props: CompleteProductCollection;
|
|
6
|
+
opts: {
|
|
7
|
+
tagOptions: string[];
|
|
8
|
+
};
|
|
9
|
+
constructor(props?: any, opts?: any);
|
|
10
|
+
createProductCollection(): ProductCollection;
|
|
11
|
+
private fieldFactory;
|
|
12
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const FormState_1 = require("../FormState");
|
|
4
|
+
const ProductCollection_1 = require("../../models/ProductCollection");
|
|
5
|
+
const ProductCollectionFromFormState_1 = require("../../factories/ProductCollection/ProductCollectionFromFormState");
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
const lodash_1 = require("lodash");
|
|
8
|
+
class ProductCollectionFormState extends FormState_1.default {
|
|
9
|
+
constructor(props, opts) {
|
|
10
|
+
super();
|
|
11
|
+
this.props = new ProductCollection_1.default(props).toObj();
|
|
12
|
+
this.opts = opts;
|
|
13
|
+
this.fields.preTitle = this.fieldFactory('textInput', 'preTitle');
|
|
14
|
+
this.fields.title = this.fieldFactory('textInput', 'title');
|
|
15
|
+
this.fields.subTitle = this.fieldFactory('textInput', 'subTitle');
|
|
16
|
+
this.fields.description = this.fieldFactory('textInput', 'description');
|
|
17
|
+
this.fields.type = this.fieldFactory('singleSelect', 'type');
|
|
18
|
+
this.fields.imgUrl = this.fieldFactory('textInput', 'imgUrl');
|
|
19
|
+
this.fields.refinements = this.fieldFactory('singleSelect', 'refinements');
|
|
20
|
+
this.fields.tags = this.fieldFactory('multiSelect', 'tags', []);
|
|
21
|
+
this.fields.collectionId = this.fieldFactory('textInput', 'collectionId');
|
|
22
|
+
}
|
|
23
|
+
createProductCollection() {
|
|
24
|
+
const productCollectionFactory = new ProductCollectionFromFormState_1.default();
|
|
25
|
+
return productCollectionFactory.createProductCollection(this);
|
|
26
|
+
}
|
|
27
|
+
fieldFactory(fieldType, fieldKey, fieldOptions) {
|
|
28
|
+
let options = fieldOptions || [];
|
|
29
|
+
if (fieldType === 'singleSelect') {
|
|
30
|
+
const selectedValue = this.props[fieldKey] || '';
|
|
31
|
+
const valid = !!this.props[fieldKey];
|
|
32
|
+
const onChangeHandler = (val) => this.singleSelectChangeHandler(fieldKey, val);
|
|
33
|
+
return {
|
|
34
|
+
options,
|
|
35
|
+
selectedValue,
|
|
36
|
+
valid,
|
|
37
|
+
onChangeHandler,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
if (fieldType === 'textInput') {
|
|
41
|
+
const inputValue = this.props[fieldKey] || '';
|
|
42
|
+
const valid = !!this.props[fieldKey];
|
|
43
|
+
let onChangeHandler = (val) => this.textInputChangeHandler(fieldKey, String(val));
|
|
44
|
+
if (fieldKey === 'collectionId') {
|
|
45
|
+
onChangeHandler = (val) => this.textInputChangeHandler(fieldKey, lodash_1.camelCase(String(val)));
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
inputValue,
|
|
49
|
+
valid,
|
|
50
|
+
onChangeHandler,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
if (fieldType === 'multiSelect') {
|
|
54
|
+
let selectedValues = [];
|
|
55
|
+
let valid = true;
|
|
56
|
+
const onChangeHandler = (val) => this.multiSelectChangeHandler(fieldKey, val);
|
|
57
|
+
if (fieldKey === 'tags') {
|
|
58
|
+
if (this.props.tags) {
|
|
59
|
+
if (Array.isArray(this.props.tags)) {
|
|
60
|
+
selectedValues = this.props.tags;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (this.opts && this.opts.tagOptions && this.opts.tagOptions.length > 0) {
|
|
64
|
+
options = this.utilities.uniqObjArray([...options, ...this.opts.tagOptions.map((t) => ({ label: t, value: t }))], 'value');
|
|
65
|
+
}
|
|
66
|
+
valid = true;
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
options,
|
|
70
|
+
selectedValues,
|
|
71
|
+
valid,
|
|
72
|
+
onChangeHandler,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
valid: false,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.default = ProductCollectionFormState;
|
|
File without changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const FormState_1 = require("../FormState");
|
|
4
|
-
const Product_1 = require("
|
|
4
|
+
const Product_1 = require("../../models/Product");
|
|
5
5
|
class SellRequestFormState extends FormState_1.default {
|
|
6
6
|
constructor(sellRequest) {
|
|
7
7
|
super();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const FormState_1 = require("../FormState");
|
|
4
|
-
const User_1 = require("../../User");
|
|
5
|
-
const UserFromFormState_1 = require("
|
|
4
|
+
const User_1 = require("../../models/User");
|
|
5
|
+
const UserFromFormState_1 = require("../../factories/User/UserFromFormState");
|
|
6
6
|
class UserFormState extends FormState_1.default {
|
|
7
7
|
constructor(props) {
|
|
8
8
|
super();
|
|
@@ -13,16 +13,16 @@ class AnalyticsHelpers {
|
|
|
13
13
|
id: documentId,
|
|
14
14
|
address: prepareAddressTraits(addresses),
|
|
15
15
|
title,
|
|
16
|
-
createdAt: prepareCreatedOrUpdatedAt(createdAt)
|
|
16
|
+
createdAt: prepareCreatedOrUpdatedAt(createdAt),
|
|
17
17
|
};
|
|
18
18
|
// Step 2. Pass other user attributes to traits obj
|
|
19
19
|
const traitsObj = {
|
|
20
20
|
updatedAt: prepareCreatedOrUpdatedAt(updatedAt),
|
|
21
|
-
isSeller
|
|
21
|
+
isSeller,
|
|
22
22
|
};
|
|
23
23
|
return {
|
|
24
24
|
userId: documentId || '',
|
|
25
|
-
traits: Object.assign(Object.assign({}, reservedTraitsObj), traitsObj)
|
|
25
|
+
traits: Object.assign(Object.assign({}, reservedTraitsObj), traitsObj),
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -4,4 +4,9 @@ export default class OrderHelpers {
|
|
|
4
4
|
getPaymentTypeUsingTags(tags: string | null | undefined): string | null;
|
|
5
5
|
getSalesChannelUsingTags(tags: string | null | undefined): string | null;
|
|
6
6
|
buildLineItemFromProduct(product: CompleteProduct, currencyCode: string, quantity?: number): ReRobeOrderLineItem;
|
|
7
|
+
toFixedPointPrice(price: number | string): string;
|
|
8
|
+
getAmountSumByField(array: OrderRefund[], fieldKey: string): number;
|
|
9
|
+
getOrderInfoWithRefundsAndFulfillments(order: CompleteOrder): OrderWithRefundsAndFulfillmentsInfoObj;
|
|
10
|
+
getUpdatedOrderObjWithRefunds(orderObj: CompleteOrder, refundObj: OrderRefund): CompleteOrder;
|
|
11
|
+
getUpdatedOrderObjWithFulfillment(orderObj: CompleteOrder, fulfillmentObj: FulfillmentAdmin, totalUnfulfilledItems: number): CompleteOrder;
|
|
7
12
|
}
|
|
@@ -77,5 +77,112 @@ class OrderHelpers {
|
|
|
77
77
|
productId: product.documentId,
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
|
+
toFixedPointPrice(price) {
|
|
81
|
+
return Number(price).toFixed(2);
|
|
82
|
+
}
|
|
83
|
+
getAmountSumByField(array, fieldKey) {
|
|
84
|
+
return array.map((item) => Number(item[fieldKey].amount)).reduce((a, b) => a + b, 0);
|
|
85
|
+
}
|
|
86
|
+
getOrderInfoWithRefundsAndFulfillments(order) {
|
|
87
|
+
var _a;
|
|
88
|
+
const orderRefunds = order.refunds ? [...order.refunds] : [];
|
|
89
|
+
const orderFulfillment = order.fulfillments ? [...order.fulfillments] : [];
|
|
90
|
+
const preparedOrder = {
|
|
91
|
+
documentId: order.documentId || '',
|
|
92
|
+
name: order.name || '',
|
|
93
|
+
currencyCode: order.currencyCode,
|
|
94
|
+
fulfillmentStatus: order.fulfillmentStatus || '',
|
|
95
|
+
totalDiscount: order.totalDiscount ? Object.assign({}, order.totalDiscount) : { amount: 0 },
|
|
96
|
+
totalTax: order.totalTax ? Object.assign({}, order.totalTax) : { amount: 0 },
|
|
97
|
+
subtotalPrice: order.subtotalPrice ? Object.assign({}, order.subtotalPrice) : { amount: 0 },
|
|
98
|
+
totalRefunded: order.totalRefunded ? Object.assign({}, order.totalRefunded) : { amount: 0 },
|
|
99
|
+
totalShippingPrice: order.totalShippingPrice ? Object.assign({}, order.totalShippingPrice) : { amount: 0 },
|
|
100
|
+
totalPrice: order.totalPrice ? Object.assign({}, order.totalPrice) : { amount: 0 },
|
|
101
|
+
activeLineItems: !order.lineItems || !order.lineItems.length
|
|
102
|
+
? []
|
|
103
|
+
: order.lineItems.map((item) => (Object.assign(Object.assign({}, item), { unfulfilledQuantity: Number(item.quantity), fulfilledQuantity: 0, refundedQuantity: 0, canceledQuantity: 0 }))),
|
|
104
|
+
discountType: 'Custom discount',
|
|
105
|
+
shippingRate: 'Custom shipping rate',
|
|
106
|
+
unfulfilledItems: [],
|
|
107
|
+
fulfilledItems: [],
|
|
108
|
+
refundedItems: [],
|
|
109
|
+
canceledItems: [],
|
|
110
|
+
refunds: orderRefunds,
|
|
111
|
+
};
|
|
112
|
+
if (!preparedOrder.activeLineItems.length) {
|
|
113
|
+
return preparedOrder;
|
|
114
|
+
}
|
|
115
|
+
if (orderFulfillment.length) {
|
|
116
|
+
preparedOrder.activeLineItems = preparedOrder.activeLineItems.map((item) => {
|
|
117
|
+
const currentItem = item.productId;
|
|
118
|
+
const fulfilledWithRefundedQuantity = orderFulfillment.reduce((result, { fulfillmentLineItems }) => {
|
|
119
|
+
if (fulfillmentLineItems.length) {
|
|
120
|
+
const fulfillmentProdItem = fulfillmentLineItems.find((fli) => fli.lineItem.productId === currentItem);
|
|
121
|
+
if (fulfillmentProdItem) {
|
|
122
|
+
result = result + Number(fulfillmentProdItem.quantity);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return result;
|
|
126
|
+
}, 0);
|
|
127
|
+
return Object.assign(Object.assign({}, item), { unfulfilledQuantity: item.unfulfilledQuantity - fulfilledWithRefundedQuantity, fulfilledQuantity: fulfilledWithRefundedQuantity });
|
|
128
|
+
});
|
|
129
|
+
preparedOrder.fulfilledItems = preparedOrder.activeLineItems.filter(({ fulfilledQuantity }) => fulfilledQuantity > 0);
|
|
130
|
+
}
|
|
131
|
+
preparedOrder.unfulfilledItems = preparedOrder.activeLineItems.filter(({ unfulfilledQuantity }) => unfulfilledQuantity > 0);
|
|
132
|
+
if (!orderRefunds.length) {
|
|
133
|
+
return preparedOrder;
|
|
134
|
+
}
|
|
135
|
+
preparedOrder.totalDiscount.amount =
|
|
136
|
+
Number(order.totalDiscount.amount) - this.getAmountSumByField(orderRefunds, 'refundDiscount');
|
|
137
|
+
preparedOrder.subtotalPrice.amount =
|
|
138
|
+
Number(order.subtotalPrice.amount) - this.getAmountSumByField(orderRefunds, 'subtotalRefunded');
|
|
139
|
+
preparedOrder.totalShippingPrice.amount =
|
|
140
|
+
Number(((_a = order.totalShippingPrice) === null || _a === void 0 ? void 0 : _a.amount) || 0) - this.getAmountSumByField(orderRefunds, 'refundShipping');
|
|
141
|
+
preparedOrder.totalPrice.amount =
|
|
142
|
+
Number(order.totalPrice.amount) - this.getAmountSumByField(orderRefunds, 'totalRefunded');
|
|
143
|
+
const lineItemsWithQuantityInfo = preparedOrder.activeLineItems.map((item) => {
|
|
144
|
+
const currentItem = item.productId;
|
|
145
|
+
const refundedAndCanceledQuantity = orderRefunds.reduce((result, { refundLineItems }) => {
|
|
146
|
+
if (refundLineItems.length) {
|
|
147
|
+
const refundProdItem = refundLineItems.find(({ lineItem }) => lineItem.productId === currentItem);
|
|
148
|
+
if (refundProdItem) {
|
|
149
|
+
result.refundedQuantity = result.refundedQuantity + Number(refundProdItem.quantityRefund);
|
|
150
|
+
result.canceledQuantity = result.canceledQuantity + Number(refundProdItem.quantityCancel);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return result;
|
|
154
|
+
}, { refundedQuantity: 0, canceledQuantity: 0 });
|
|
155
|
+
// 3. fulfilledQuantity = (sum of order.fulfillment) - refundedQuantity
|
|
156
|
+
// 4. quantity = unfulfilled quantity (prev quantity - sum of order.fulfillment) - cancelled
|
|
157
|
+
return Object.assign(Object.assign(Object.assign({}, item), { fulfilledQuantity: Number(item.fulfilledQuantity) - refundedAndCanceledQuantity.refundedQuantity, unfulfilledQuantity: Number(item.unfulfilledQuantity) - refundedAndCanceledQuantity.canceledQuantity }), refundedAndCanceledQuantity);
|
|
158
|
+
});
|
|
159
|
+
preparedOrder.activeLineItems = lineItemsWithQuantityInfo.filter(({ unfulfilledQuantity, fulfilledQuantity }) => unfulfilledQuantity + fulfilledQuantity > 0);
|
|
160
|
+
preparedOrder.unfulfilledItems = lineItemsWithQuantityInfo.filter(({ unfulfilledQuantity }) => unfulfilledQuantity > 0);
|
|
161
|
+
preparedOrder.fulfilledItems = lineItemsWithQuantityInfo.filter(({ fulfilledQuantity }) => fulfilledQuantity > 0);
|
|
162
|
+
preparedOrder.refundedItems = lineItemsWithQuantityInfo.filter(({ refundedQuantity }) => refundedQuantity > 0);
|
|
163
|
+
preparedOrder.canceledItems = lineItemsWithQuantityInfo.filter(({ canceledQuantity }) => canceledQuantity > 0);
|
|
164
|
+
return preparedOrder;
|
|
165
|
+
}
|
|
166
|
+
getUpdatedOrderObjWithRefunds(orderObj, refundObj) {
|
|
167
|
+
const updatedOrder = Object.assign(Object.assign({}, orderObj), { refunds: orderObj.refunds ? [...orderObj.refunds] : [], totalRefunded: orderObj.totalRefunded ? Object.assign({}, orderObj.totalRefunded) : { amount: 0 } });
|
|
168
|
+
const totalRefundedAmount = Number(updatedOrder.totalRefunded.amount) + Number(refundObj.totalRefunded.amount);
|
|
169
|
+
updatedOrder.refunds = [...updatedOrder.refunds, Object.assign({}, refundObj)];
|
|
170
|
+
updatedOrder.totalRefunded.amount = Number(totalRefundedAmount).toFixed(2);
|
|
171
|
+
updatedOrder.financialStatus =
|
|
172
|
+
Number(orderObj.totalPrice.amount) - totalRefundedAmount > 0 ? 'PARTIALLY_REFUNDED' : 'REFUNDED';
|
|
173
|
+
return updatedOrder;
|
|
174
|
+
}
|
|
175
|
+
getUpdatedOrderObjWithFulfillment(orderObj, fulfillmentObj, totalUnfulfilledItems) {
|
|
176
|
+
const updatedOrder = Object.assign(Object.assign({}, orderObj), { fulfillments: orderObj.fulfillments ? [...orderObj.fulfillments] : [] });
|
|
177
|
+
const fulfilledItemsQuantity = !fulfillmentObj.fulfillmentLineItems.length
|
|
178
|
+
? 0
|
|
179
|
+
: fulfillmentObj.fulfillmentLineItems
|
|
180
|
+
.map(({ quantity }) => Number(quantity))
|
|
181
|
+
.reduce((a, b) => a + b, 0);
|
|
182
|
+
updatedOrder.fulfillments = [...updatedOrder.fulfillments, fulfillmentObj];
|
|
183
|
+
updatedOrder.fulfillmentStatus =
|
|
184
|
+
totalUnfulfilledItems - fulfilledItemsQuantity > 0 ? 'PARTIALLY_FULFILLED' : 'FULFILLED';
|
|
185
|
+
return updatedOrder;
|
|
186
|
+
}
|
|
80
187
|
}
|
|
81
188
|
exports.default = OrderHelpers;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class ProductCollectionHelpers {
|
|
4
|
+
getFiltersByCollectionConditions(collectionRefinementsVal) {
|
|
5
|
+
if (!collectionRefinementsVal && !Object.keys(collectionRefinementsVal).length) {
|
|
6
|
+
return {};
|
|
7
|
+
}
|
|
8
|
+
return Object.keys(collectionRefinementsVal).reduce((result, key) => {
|
|
9
|
+
const keyName = key.replace('Refinement', '');
|
|
10
|
+
result[keyName] = collectionRefinementsVal[key];
|
|
11
|
+
return result;
|
|
12
|
+
}, {});
|
|
13
|
+
}
|
|
14
|
+
getCollectionRefinementsFromFilters(filtersList) {
|
|
15
|
+
if (!filtersList && !Object.keys(filtersList).length) {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
return Object.keys(filtersList).reduce((result, key) => {
|
|
19
|
+
if (!filtersList[key].length) {
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
result[`${key}Refinement`] = [...filtersList[key]];
|
|
23
|
+
return result;
|
|
24
|
+
}, {});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = ProductCollectionHelpers;
|
|
@@ -7,10 +7,16 @@ export default class ReRobeProductHelpers {
|
|
|
7
7
|
static sizeCommentPretty(sizeComment: string): string;
|
|
8
8
|
static getSizeLabel(clothingSize: string[], shoeSize: string, jeanSize: string): string;
|
|
9
9
|
static generateArrForDetailsBulletList(productObj: CompleteProduct): string[];
|
|
10
|
+
static autoCreateFullDescriptionHTML(productObj: CompleteProduct, customHeading?: string): string;
|
|
11
|
+
static autoCreateFullSwedishDescriptionForTraderaHTML(productDescription: string, merchantName?: string): string;
|
|
10
12
|
static prepareProductForMutation(productObj: CompleteProduct, mediaInputArr?: {
|
|
11
13
|
originalSource: string;
|
|
12
14
|
}[]): CompleteProduct;
|
|
15
|
+
static createTimestampsForStates(productObj: CompleteProduct): {
|
|
16
|
+
[key: string]: number;
|
|
17
|
+
};
|
|
13
18
|
static getSubtitle(title: string): string;
|
|
14
19
|
static sizeFinder(sizeLabel: string, sizeToMatch: string): boolean;
|
|
20
|
+
static convertReRobeSizeToStandardSize(productObj: CompleteProduct): string;
|
|
15
21
|
static buildLineItem(productObj: CompleteProduct, quantity?: number): ProductLineItem;
|
|
16
22
|
}
|