@delicity/client-cart 1.5.8 → 2.0.0
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/README.md +1 -0
- package/{classes → dist/cjs/classes}/Cart.d.ts +7 -6
- package/dist/cjs/classes/Cart.d.ts.map +1 -0
- package/{classes → dist/cjs/classes}/Cart.js +78 -51
- package/dist/cjs/classes/Cart.js.map +1 -0
- package/dist/cjs/classes/Checkout.d.ts.map +1 -0
- package/dist/cjs/classes/Checkout.js.map +1 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/service/CartLoaderService.d.ts.map +1 -0
- package/{service → dist/cjs/service}/CartLoaderService.js +3 -4
- package/dist/cjs/service/CartLoaderService.js.map +1 -0
- package/{service → dist/cjs/service}/CartService.d.ts +1 -0
- package/dist/cjs/service/CartService.d.ts.map +1 -0
- package/{service → dist/cjs/service}/CartService.js +31 -17
- package/dist/cjs/service/CartService.js.map +1 -0
- package/dist/cjs/service/CategoryAvailabilityService.d.ts.map +1 -0
- package/dist/cjs/service/CategoryAvailabilityService.js.map +1 -0
- package/dist/cjs/service/DeliveryService.d.ts.map +1 -0
- package/{service → dist/cjs/service}/DeliveryService.js +1 -2
- package/dist/cjs/service/DeliveryService.js.map +1 -0
- package/dist/cjs/service/HelperService.d.ts.map +1 -0
- package/dist/cjs/service/HelperService.js.map +1 -0
- package/{types → dist/cjs/types}/CartInterface.d.ts +10 -1
- package/dist/cjs/types/CartInterface.d.ts.map +1 -0
- package/dist/cjs/types/CartInterface.js.map +1 -0
- package/{types → dist/cjs/types}/MenuInterface.d.ts +2 -1
- package/dist/cjs/types/MenuInterface.d.ts.map +1 -0
- package/dist/cjs/types/MenuInterface.js.map +1 -0
- package/dist/cjs/types/MerchantInterface.d.ts.map +1 -0
- package/dist/cjs/types/MerchantInterface.js.map +1 -0
- package/dist/esm/classes/Cart.js +705 -0
- package/dist/esm/classes/Cart.js.map +1 -0
- package/dist/esm/classes/Checkout.js +342 -0
- package/dist/esm/classes/Checkout.js.map +1 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/service/CartLoaderService.js +113 -0
- package/dist/esm/service/CartLoaderService.js.map +1 -0
- package/dist/esm/service/CartService.js +355 -0
- package/dist/esm/service/CartService.js.map +1 -0
- package/dist/esm/service/CategoryAvailabilityService.js +95 -0
- package/dist/esm/service/CategoryAvailabilityService.js.map +1 -0
- package/dist/esm/service/DeliveryService.js +26 -0
- package/dist/esm/service/DeliveryService.js.map +1 -0
- package/dist/esm/service/HelperService.js +10 -0
- package/dist/esm/service/HelperService.js.map +1 -0
- package/dist/esm/types/CartInterface.js +7 -0
- package/dist/esm/types/CartInterface.js.map +1 -0
- package/dist/esm/types/MenuInterface.js +2 -0
- package/dist/esm/types/MenuInterface.js.map +1 -0
- package/dist/esm/types/MerchantInterface.js +2 -0
- package/dist/esm/types/MerchantInterface.js.map +1 -0
- package/package.json +21 -8
- package/classes/Cart.d.ts.map +0 -1
- package/classes/Cart.js.map +0 -1
- package/classes/Checkout.d.ts.map +0 -1
- package/classes/Checkout.js.map +0 -1
- package/index.d.ts.map +0 -1
- package/index.js.map +0 -1
- package/service/CartLoaderService.d.ts.map +0 -1
- package/service/CartLoaderService.js.map +0 -1
- package/service/CartService.d.ts.map +0 -1
- package/service/CartService.js.map +0 -1
- package/service/CategoryAvailabilityService.d.ts.map +0 -1
- package/service/CategoryAvailabilityService.js.map +0 -1
- package/service/DeliveryService.d.ts.map +0 -1
- package/service/DeliveryService.js.map +0 -1
- package/service/HelperService.d.ts.map +0 -1
- package/service/HelperService.js.map +0 -1
- package/service/UrlService.d.ts +0 -23
- package/service/UrlService.d.ts.map +0 -1
- package/service/UrlService.js +0 -78
- package/service/UrlService.js.map +0 -1
- package/types/CartInterface.d.ts.map +0 -1
- package/types/CartInterface.js.map +0 -1
- package/types/MenuInterface.d.ts.map +0 -1
- package/types/MenuInterface.js.map +0 -1
- package/types/MerchantInterface.d.ts.map +0 -1
- package/types/MerchantInterface.js.map +0 -1
- /package/{classes → dist/cjs/classes}/Checkout.d.ts +0 -0
- /package/{classes → dist/cjs/classes}/Checkout.js +0 -0
- /package/{index.d.ts → dist/cjs/index.d.ts} +0 -0
- /package/{index.js → dist/cjs/index.js} +0 -0
- /package/{service → dist/cjs/service}/CartLoaderService.d.ts +0 -0
- /package/{service → dist/cjs/service}/CategoryAvailabilityService.d.ts +0 -0
- /package/{service → dist/cjs/service}/CategoryAvailabilityService.js +0 -0
- /package/{service → dist/cjs/service}/DeliveryService.d.ts +0 -0
- /package/{service → dist/cjs/service}/HelperService.d.ts +0 -0
- /package/{service → dist/cjs/service}/HelperService.js +0 -0
- /package/{types → dist/cjs/types}/CartInterface.js +0 -0
- /package/{types → dist/cjs/types}/MenuInterface.js +0 -0
- /package/{types → dist/cjs/types}/MerchantInterface.d.ts +0 -0
- /package/{types → dist/cjs/types}/MerchantInterface.js +0 -0
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
export function getProductPriceSum(cart) {
|
|
2
|
+
return cart.items.reduce((acc, item) => acc + item.totalPrice, 0);
|
|
3
|
+
}
|
|
4
|
+
export function getProductCount(cart) {
|
|
5
|
+
return cart.items.reduce((acc, item) => acc + item.quantity, 0);
|
|
6
|
+
}
|
|
7
|
+
export function getItemModifierValue(item) {
|
|
8
|
+
return getItemModifierValueArray(item).join(', ');
|
|
9
|
+
}
|
|
10
|
+
export function getItemModifierValueArray(item) {
|
|
11
|
+
return (item.modifierGroups || [])
|
|
12
|
+
.filter(mg => mg.modifiers.length > 0)
|
|
13
|
+
.map(mg => {
|
|
14
|
+
return mg.item.name + ': ' + mg.modifiers.map(m => m.item.name).join(', ');
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export function mandatoryModifierCheck(item, cartModifier, menu) {
|
|
18
|
+
if (!item.children)
|
|
19
|
+
return true;
|
|
20
|
+
// get all mandatory modifiers in this item.
|
|
21
|
+
const modifierGroups = menu.modifierGroups.filter((m) => { var _a; return ((_a = item.children) === null || _a === void 0 ? void 0 : _a.includes(m.uid)) && m.min > 0 && m.min; });
|
|
22
|
+
for (let modifier of modifierGroups) {
|
|
23
|
+
const m = cartModifier.find((m) => m.item.uid === modifier.uid);
|
|
24
|
+
if (!m)
|
|
25
|
+
return false;
|
|
26
|
+
if (modifier.min === null)
|
|
27
|
+
continue;
|
|
28
|
+
const selectedOption = m.modifiers.reduce((acc, m) => acc + m.quantity, 0);
|
|
29
|
+
if (selectedOption < modifier.min)
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
export function isItemAvailable(item, menu) {
|
|
35
|
+
const menuItem = menu.items.find((i) => i.uid === item.uid);
|
|
36
|
+
if (!menuItem)
|
|
37
|
+
return false;
|
|
38
|
+
return !menuItem.unavailable;
|
|
39
|
+
}
|
|
40
|
+
export function getProductPrice(item, mode) {
|
|
41
|
+
if (!item.price) {
|
|
42
|
+
throw new Error('price_not_set');
|
|
43
|
+
}
|
|
44
|
+
if (typeof item.price === 'number') {
|
|
45
|
+
return item.price;
|
|
46
|
+
}
|
|
47
|
+
if (mode === 'delivery') {
|
|
48
|
+
return item.price.delivery;
|
|
49
|
+
}
|
|
50
|
+
else if (mode === 'pickup') {
|
|
51
|
+
return item.price.pickup;
|
|
52
|
+
}
|
|
53
|
+
else if (mode === 'on_site_counter') {
|
|
54
|
+
return item.price.onsite;
|
|
55
|
+
}
|
|
56
|
+
return item.price.delivery;
|
|
57
|
+
}
|
|
58
|
+
export function getTotalModifiersUnitPrice(modifierGroup) {
|
|
59
|
+
return modifierGroup.reduce((acc, mg) => acc + mg.modifiers.reduce((bcc, m) => bcc + m.price, 0), 0);
|
|
60
|
+
}
|
|
61
|
+
export function isItemAlreadyInCart(item, modifierGroups, cart, comment) {
|
|
62
|
+
// Check if item is already in cart
|
|
63
|
+
const sameCartProducts = cart.items
|
|
64
|
+
.filter((i) => i.item.uid === item.uid)
|
|
65
|
+
.filter((i) => i.comment === (comment || null))
|
|
66
|
+
.filter((c) => {
|
|
67
|
+
const cModifierGroups = c.modifierGroups || [];
|
|
68
|
+
if (cModifierGroups.length !== modifierGroups.length)
|
|
69
|
+
return false;
|
|
70
|
+
const newItemModifierGroupsKey = modifierGroups.flatMap((m) => {
|
|
71
|
+
return m.modifiers.map((o) => { return { id: o.item.id, quantity: o.quantity }; });
|
|
72
|
+
}).sort((a, b) => a.id - b.id).map((m) => m.id + ':' + m.quantity).join('|');
|
|
73
|
+
const CartItemModifierGroupsKey = cModifierGroups.flatMap((m) => {
|
|
74
|
+
return m.modifiers.map((o) => { return { id: o.item.id, quantity: o.quantity }; });
|
|
75
|
+
}).sort((a, b) => a.id - b.id).map((m) => m.id + ':' + m.quantity).join('|');
|
|
76
|
+
return newItemModifierGroupsKey === CartItemModifierGroupsKey;
|
|
77
|
+
});
|
|
78
|
+
// If not existing in cart, return -1
|
|
79
|
+
if (sameCartProducts.length === 0)
|
|
80
|
+
return -1;
|
|
81
|
+
return cart.items.findIndex((c) => c.uuid === sameCartProducts[0].uuid);
|
|
82
|
+
}
|
|
83
|
+
export function synchronizeCart(config, cart) {
|
|
84
|
+
return new Promise(((resolve, reject) => {
|
|
85
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/cart/' + cart.uuid, cart)
|
|
86
|
+
.then((response) => {
|
|
87
|
+
resolve(response.data);
|
|
88
|
+
})
|
|
89
|
+
.catch((error) => {
|
|
90
|
+
var _a, _b, _c;
|
|
91
|
+
console.error('Error synchronizing cart:', (_c = (_b = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data) !== null && _b !== void 0 ? _b : error === null || error === void 0 ? void 0 : error.message) !== null && _c !== void 0 ? _c : error);
|
|
92
|
+
reject(error);
|
|
93
|
+
});
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
export function fetchMerchantMenu(config, slug) {
|
|
97
|
+
return new Promise(((resolve, reject) => {
|
|
98
|
+
config.axiosClient.get(config.apiUrl + '/v1/client/merchant/' + slug + '/menu')
|
|
99
|
+
.then((response) => {
|
|
100
|
+
resolve(response.data);
|
|
101
|
+
})
|
|
102
|
+
.catch((error) => {
|
|
103
|
+
var _a;
|
|
104
|
+
console.error('Error fetching merchant menu:', (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.data);
|
|
105
|
+
reject(error);
|
|
106
|
+
});
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
109
|
+
export function addDiscountCode(config, cart, code) {
|
|
110
|
+
return new Promise(((resolve, reject) => {
|
|
111
|
+
config.axiosClient.put(config.apiUrl + '/v1/client/cart/' + cart.uuid + "/coupon", { code })
|
|
112
|
+
.then((response) => {
|
|
113
|
+
resolve(response.data);
|
|
114
|
+
})
|
|
115
|
+
.catch((error) => {
|
|
116
|
+
reject(error);
|
|
117
|
+
});
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
export function removeDiscountCode(config, cart, discountId) {
|
|
121
|
+
return new Promise(((resolve, reject) => {
|
|
122
|
+
config.axiosClient.delete(config.apiUrl + '/v1/client/cart/' + cart.uuid + '/coupon/' + discountId)
|
|
123
|
+
.then((response) => {
|
|
124
|
+
resolve(response.data);
|
|
125
|
+
})
|
|
126
|
+
.catch((error) => {
|
|
127
|
+
reject(error);
|
|
128
|
+
});
|
|
129
|
+
}));
|
|
130
|
+
}
|
|
131
|
+
export function getPaymentsStatus(config, cartUUID) {
|
|
132
|
+
return new Promise(((resolve, reject) => {
|
|
133
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/status', { cart: cartUUID })
|
|
134
|
+
.then((response) => {
|
|
135
|
+
resolve(response.data);
|
|
136
|
+
})
|
|
137
|
+
.catch((error) => {
|
|
138
|
+
reject(error);
|
|
139
|
+
});
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
export function cancelAllPayments(config, cartUUID) {
|
|
143
|
+
return new Promise(((resolve, reject) => {
|
|
144
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/cancel', { cart: cartUUID })
|
|
145
|
+
.then((response) => {
|
|
146
|
+
resolve(response.data);
|
|
147
|
+
})
|
|
148
|
+
.catch((error) => {
|
|
149
|
+
reject(error);
|
|
150
|
+
});
|
|
151
|
+
}));
|
|
152
|
+
}
|
|
153
|
+
export function triggerCashPayment(config, cartUUID, identifier) {
|
|
154
|
+
return new Promise(((resolve, reject) => {
|
|
155
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/onsite', { cart: cartUUID, identifier })
|
|
156
|
+
.then((response) => {
|
|
157
|
+
resolve(response.data);
|
|
158
|
+
})
|
|
159
|
+
.catch((error) => {
|
|
160
|
+
reject(error);
|
|
161
|
+
});
|
|
162
|
+
}));
|
|
163
|
+
}
|
|
164
|
+
export function triggerDeliveryCashPayment(config, cartUUID, identifier) {
|
|
165
|
+
return new Promise(((resolve, reject) => {
|
|
166
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/delivery_cash', { cart: cartUUID, identifier })
|
|
167
|
+
.then((response) => {
|
|
168
|
+
resolve(response.data);
|
|
169
|
+
})
|
|
170
|
+
.catch((error) => {
|
|
171
|
+
reject(error);
|
|
172
|
+
});
|
|
173
|
+
}));
|
|
174
|
+
}
|
|
175
|
+
export function triggerVoucherPayment(config, cartUUID, identifier) {
|
|
176
|
+
return new Promise(((resolve, reject) => {
|
|
177
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/voucher', { cart: cartUUID, identifier })
|
|
178
|
+
.then((response) => {
|
|
179
|
+
resolve(response.data);
|
|
180
|
+
})
|
|
181
|
+
.catch((error) => {
|
|
182
|
+
reject(error);
|
|
183
|
+
});
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
export function triggerCardTokenPayment(config, cartUUID, identifier) {
|
|
187
|
+
return new Promise(((resolve, reject) => {
|
|
188
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/cardToken', { cart: cartUUID, identifier })
|
|
189
|
+
.then((response) => {
|
|
190
|
+
resolve(response.data);
|
|
191
|
+
})
|
|
192
|
+
.catch((error) => {
|
|
193
|
+
reject(error);
|
|
194
|
+
});
|
|
195
|
+
}));
|
|
196
|
+
}
|
|
197
|
+
export function triggerCardPaymentMethodPayment(config, cartUUID, identifier) {
|
|
198
|
+
return new Promise(((resolve, reject) => {
|
|
199
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/cardPaymentMethod', { cart: cartUUID, identifier })
|
|
200
|
+
.then((response) => {
|
|
201
|
+
resolve(response.data);
|
|
202
|
+
})
|
|
203
|
+
.catch((error) => {
|
|
204
|
+
reject(error);
|
|
205
|
+
});
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
208
|
+
export function retryCardVerification(config, cartUUID, identifier) {
|
|
209
|
+
return new Promise(((resolve, reject) => {
|
|
210
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/cardRetry', { cart: cartUUID, identifier })
|
|
211
|
+
.then((response) => {
|
|
212
|
+
resolve(response.data);
|
|
213
|
+
})
|
|
214
|
+
.catch((error) => {
|
|
215
|
+
reject(error);
|
|
216
|
+
});
|
|
217
|
+
}));
|
|
218
|
+
}
|
|
219
|
+
export function triggerWalletRequest(config, cartUUID, identifier) {
|
|
220
|
+
return new Promise(((resolve, reject) => {
|
|
221
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/wallet/request', { cart: cartUUID, identifier })
|
|
222
|
+
.then((response) => {
|
|
223
|
+
resolve(response.data);
|
|
224
|
+
})
|
|
225
|
+
.catch((error) => {
|
|
226
|
+
reject(error);
|
|
227
|
+
});
|
|
228
|
+
}));
|
|
229
|
+
}
|
|
230
|
+
export function triggerWalletPayment(config, cartUUID, identifier) {
|
|
231
|
+
return new Promise(((resolve, reject) => {
|
|
232
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/wallet/complete', { cart: cartUUID, identifier })
|
|
233
|
+
.then((response) => {
|
|
234
|
+
resolve(response.data);
|
|
235
|
+
})
|
|
236
|
+
.catch((error) => {
|
|
237
|
+
reject(error);
|
|
238
|
+
});
|
|
239
|
+
}));
|
|
240
|
+
}
|
|
241
|
+
export function triggerFreeCheckout(config, cartUUID, identifier) {
|
|
242
|
+
return new Promise(((resolve, reject) => {
|
|
243
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/checkout/v2/free', { cart: cartUUID, identifier })
|
|
244
|
+
.then((response) => {
|
|
245
|
+
resolve(response.data);
|
|
246
|
+
})
|
|
247
|
+
.catch((error) => {
|
|
248
|
+
reject(error);
|
|
249
|
+
});
|
|
250
|
+
}));
|
|
251
|
+
}
|
|
252
|
+
export function transformMenuAddonInCartAddon(menuAddon) {
|
|
253
|
+
return {
|
|
254
|
+
identifier: generateRandomString(10),
|
|
255
|
+
name: menuAddon.name,
|
|
256
|
+
quantity: menuAddon.defaultQuantity,
|
|
257
|
+
quantitySelector: menuAddon.quantitySelector,
|
|
258
|
+
unitPriceWt: menuAddon.price_wt,
|
|
259
|
+
totalPriceWt: menuAddon.quantitySelector ? menuAddon.price_wt * menuAddon.defaultQuantity : menuAddon.price_wt * Math.min(menuAddon.defaultQuantity, 1),
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
export function addonIntegrity(cartAddons, menuAddons) {
|
|
263
|
+
const addons = [];
|
|
264
|
+
for (const cartAddon of cartAddons) {
|
|
265
|
+
const menuAddon = menuAddons.find(m => m.name === cartAddon.name);
|
|
266
|
+
// If the cartAddon is not in the menuAddon, skip it
|
|
267
|
+
if (!menuAddon)
|
|
268
|
+
continue;
|
|
269
|
+
cartAddon.unitPriceWt = menuAddon.price_wt;
|
|
270
|
+
cartAddon.quantitySelector = menuAddon.quantitySelector;
|
|
271
|
+
if (!menuAddon.quantitySelector && cartAddon.quantity > 0)
|
|
272
|
+
cartAddon.quantity = 1;
|
|
273
|
+
cartAddon.totalPriceWt = cartAddon.unitPriceWt * cartAddon.quantity;
|
|
274
|
+
addons.push(cartAddon);
|
|
275
|
+
}
|
|
276
|
+
return addons;
|
|
277
|
+
}
|
|
278
|
+
function generateRandomString(length) {
|
|
279
|
+
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
280
|
+
let result = '';
|
|
281
|
+
for (let i = 0; i < length; i++) {
|
|
282
|
+
const randomIndex = Math.floor(Math.random() * characters.length);
|
|
283
|
+
result += characters.charAt(randomIndex);
|
|
284
|
+
}
|
|
285
|
+
return result;
|
|
286
|
+
}
|
|
287
|
+
export function isBundleAvailable(bundle, menu) {
|
|
288
|
+
// For test bundles that might not be in the menu, just check if they're marked as available
|
|
289
|
+
if (bundle.type === 'bundle' && !bundle.unavailable) {
|
|
290
|
+
return true;
|
|
291
|
+
}
|
|
292
|
+
const menuItem = menu.items.find((i) => i.uid === bundle.uid);
|
|
293
|
+
if (!menuItem)
|
|
294
|
+
return bundle.type === 'bundle' && !bundle.unavailable;
|
|
295
|
+
return !menuItem.unavailable && menuItem.type === 'bundle';
|
|
296
|
+
}
|
|
297
|
+
export function validateBundleRequirements(bundle, bundleItems, menu) {
|
|
298
|
+
if (!bundle.children || !menu.bundleParts)
|
|
299
|
+
return;
|
|
300
|
+
const requiredBundleParts = menu.bundleParts.filter((bp) => { var _a; return ((_a = bundle.children) === null || _a === void 0 ? void 0 : _a.includes(bp.uid)) && bp.isRequired; });
|
|
301
|
+
for (const requiredPart of requiredBundleParts) {
|
|
302
|
+
const partItems = bundleItems.filter(bi => bi.bundlePart.uid === requiredPart.uid);
|
|
303
|
+
if (partItems.length === 0) {
|
|
304
|
+
throw new Error('missing_required_bundle_parts');
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
export function validateBundlePartQuantities(bundleItems) {
|
|
309
|
+
if (bundleItems.length === 0)
|
|
310
|
+
return; // Allow empty bundles for now
|
|
311
|
+
const partQuantities = new Map();
|
|
312
|
+
for (const bundleItem of bundleItems) {
|
|
313
|
+
const partUid = bundleItem.bundlePart.uid;
|
|
314
|
+
const currentQuantity = partQuantities.get(partUid) || 0;
|
|
315
|
+
partQuantities.set(partUid, currentQuantity + bundleItem.quantity);
|
|
316
|
+
}
|
|
317
|
+
for (const bundleItem of bundleItems) {
|
|
318
|
+
const part = bundleItem.bundlePart;
|
|
319
|
+
const totalQuantity = partQuantities.get(part.uid);
|
|
320
|
+
if (totalQuantity < part.min || totalQuantity > part.max) {
|
|
321
|
+
throw new Error('bundle_part_quantity_constraint_violation');
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
export function getBundlePrice(bundle, bundleItems, mode) {
|
|
326
|
+
let basePrice = getProductPrice(bundle, mode);
|
|
327
|
+
const supplementPrice = bundleItems.reduce((total, bundleItem) => {
|
|
328
|
+
const itemSupplementPrice = bundleItem.supplementPrice * bundleItem.quantity;
|
|
329
|
+
const modifierPrice = getTotalModifiersUnitPrice(bundleItem.modifierGroups || []);
|
|
330
|
+
return total + itemSupplementPrice + modifierPrice;
|
|
331
|
+
}, 0);
|
|
332
|
+
return basePrice + supplementPrice;
|
|
333
|
+
}
|
|
334
|
+
export function isBundleAlreadyInCart(bundle, bundleItems, cart, comment) {
|
|
335
|
+
const sameBundleProducts = cart.items
|
|
336
|
+
.filter((i) => i.item.uid === bundle.uid && i.type === 'BUNDLE')
|
|
337
|
+
.filter((i) => i.comment === (comment || null))
|
|
338
|
+
.filter((c) => {
|
|
339
|
+
if (!c.bundleItems || c.bundleItems.length !== bundleItems.length)
|
|
340
|
+
return false;
|
|
341
|
+
const newBundleKey = bundleItems
|
|
342
|
+
.map(bi => `${bi.bundlePart.uid}:${bi.bundlePartItem.uid}:${bi.item.uid}:${bi.quantity}:${bi.supplementPrice}:${JSON.stringify(bi.modifierGroups || [])}`)
|
|
343
|
+
.sort()
|
|
344
|
+
.join('|');
|
|
345
|
+
const cartBundleKey = (c.bundleItems || [])
|
|
346
|
+
.map(bi => `${bi.bundlePart.uid}:${bi.bundlePartItem.uid}:${bi.item.uid}:${bi.quantity}:${bi.supplementPrice}:${JSON.stringify(bi.modifierGroups || [])}`)
|
|
347
|
+
.sort()
|
|
348
|
+
.join('|');
|
|
349
|
+
return newBundleKey === cartBundleKey;
|
|
350
|
+
});
|
|
351
|
+
if (sameBundleProducts.length === 0)
|
|
352
|
+
return -1;
|
|
353
|
+
return cart.items.findIndex((c) => c.uuid === sameBundleProducts[0].uuid);
|
|
354
|
+
}
|
|
355
|
+
//# sourceMappingURL=CartService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartService.js","sourceRoot":"","sources":["../../../src/service/CartService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { DateTime, Interval } from "luxon";
|
|
2
|
+
//@ts-ignore
|
|
3
|
+
import ScheduleManagement from "@delicity/backend-schedule-management";
|
|
4
|
+
import ScheduleMerger from "@delicity/backend-schedule-management/ScheduleMerger";
|
|
5
|
+
export function categoryAvailable(availability, atDate, merchantSchedule) {
|
|
6
|
+
const category = new ScheduleManagement(availability.slots);
|
|
7
|
+
const categorySchedule = ScheduleMerger(category, merchantSchedule);
|
|
8
|
+
// If merchant is open
|
|
9
|
+
if (availability.type === 'some_days') {
|
|
10
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
11
|
+
return {
|
|
12
|
+
isAvailable: true,
|
|
13
|
+
willBeAvailableInTheFuture: true
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
else if (availability.type === 'some_shifts') {
|
|
18
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
19
|
+
return {
|
|
20
|
+
isAvailable: true,
|
|
21
|
+
willBeAvailableInTheFuture: true
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else if (availability.type === 'timetable') {
|
|
26
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
27
|
+
return {
|
|
28
|
+
isAvailable: true,
|
|
29
|
+
willBeAvailableInTheFuture: true
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// if category is open only at one date
|
|
34
|
+
else if (availability.type === 'one_date') {
|
|
35
|
+
// only this day ?
|
|
36
|
+
if (DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd').hasSame(atDate, 'day')) {
|
|
37
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
38
|
+
return {
|
|
39
|
+
isAvailable: true,
|
|
40
|
+
willBeAvailableInTheFuture: false
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else if (availability.type === 'between_two_date') {
|
|
46
|
+
const start = DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
|
|
47
|
+
const end = DateTime.fromFormat(availability.endDate, 'yyyy-LL-dd').endOf('day');
|
|
48
|
+
if (start.toSeconds() < atDate.toSeconds() && end.toSeconds() >= atDate.toSeconds()) {
|
|
49
|
+
if (categorySchedule.isOpenAt(atDate)) {
|
|
50
|
+
return {
|
|
51
|
+
isAvailable: true,
|
|
52
|
+
willBeAvailableInTheFuture: false
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
let willBeAvailableInTheFuture = true;
|
|
58
|
+
if (availability.type === 'between_two_date' || availability.type === 'one_date') {
|
|
59
|
+
willBeAvailableInTheFuture = DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd').toSeconds() > atDate.toSeconds();
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
isAvailable: false,
|
|
63
|
+
willBeAvailableInTheFuture
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export function getAvailabilityNextInterval(availability, merchantSchedule, atDate) {
|
|
67
|
+
const category = new ScheduleManagement(availability.slots);
|
|
68
|
+
const categorySchedule = ScheduleMerger(category, merchantSchedule);
|
|
69
|
+
if (availability.type === 'some_days' || availability.type === 'some_shifts' || availability.type === 'timetable') {
|
|
70
|
+
const nextOpen = categorySchedule.getNextOpen(atDate);
|
|
71
|
+
if (nextOpen) {
|
|
72
|
+
const dateIntervals = categorySchedule.getNextOpeningHoursInterval(Interval.fromDateTimes(nextOpen.startOf('day'), nextOpen.endOf('day')));
|
|
73
|
+
if (dateIntervals.length === 0)
|
|
74
|
+
return null;
|
|
75
|
+
return dateIntervals[0];
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else if (availability.type === 'one_date') {
|
|
79
|
+
const date = DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
|
|
80
|
+
const dateIntervals = categorySchedule.getNextOpeningHoursInterval(Interval.fromDateTimes(date.startOf('day'), date.endOf('day')));
|
|
81
|
+
if (dateIntervals.length === 0)
|
|
82
|
+
return null;
|
|
83
|
+
return dateIntervals[0];
|
|
84
|
+
}
|
|
85
|
+
else if (availability.type === 'between_two_date') {
|
|
86
|
+
const start = DateTime.fromFormat(availability.startDate, 'yyyy-LL-dd');
|
|
87
|
+
const end = DateTime.fromFormat(availability.endDate, 'yyyy-LL-dd');
|
|
88
|
+
const dateIntervals = categorySchedule.getNextOpeningHoursInterval(Interval.fromDateTimes(start.startOf('day'), end.endOf('day')));
|
|
89
|
+
if (dateIntervals.length === 0)
|
|
90
|
+
return null;
|
|
91
|
+
return dateIntervals[0];
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=CategoryAvailabilityService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryAvailabilityService.js","sourceRoot":"","sources":["../../../src/service/CategoryAvailabilityService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
export function getDeliveryDetails(config, merchantId, position) {
|
|
11
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
+
return new Promise(((resolve, reject) => {
|
|
13
|
+
config.axiosClient.post(config.apiUrl + '/v1/client/cart/delivery/infos', {
|
|
14
|
+
merchantId,
|
|
15
|
+
position
|
|
16
|
+
})
|
|
17
|
+
.then((response) => {
|
|
18
|
+
resolve(response.data);
|
|
19
|
+
})
|
|
20
|
+
.catch((error) => {
|
|
21
|
+
reject(error);
|
|
22
|
+
});
|
|
23
|
+
}));
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=DeliveryService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeliveryService.js","sourceRoot":"","sources":["../../../src/service/DeliveryService.ts"],"names":[],"mappings":";;;;;;;;;AAGA,MAAM,UAAgB,kBAAkB,CAAC,MAAoB,EAAE,UAAkB,EAAE,QAAe;;QAC9F,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,gCAAgC,EAAE;gBACtE,UAAU;gBACV,QAAQ;aACX,CAAC;iBACG,IAAI,CAAC,CAAC,QAAY,EAAE,EAAE;gBACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAS,EAAE,EAAE;gBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC,CAAC,CAAA;QACV,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function formatPrice(price) {
|
|
2
|
+
if (typeof price == 'string') {
|
|
3
|
+
price = parseFloat(price);
|
|
4
|
+
}
|
|
5
|
+
if (!price && typeof price !== 'number') {
|
|
6
|
+
return '--,-- €';
|
|
7
|
+
}
|
|
8
|
+
return new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(price / 100);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=HelperService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelperService.js","sourceRoot":"","sources":["../../../src/service/HelperService.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,KAAwB;IAChD,IAAG,OAAO,KAAK,IAAI,QAAQ,EAAC;QACxB,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;KAC7B;IACD,IAAG,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAC;QACnC,OAAO,SAAS,CAAA;KACnB;IACD,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,GAAG,CAAC,CAAA;AACnG,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export var OrderModesEnum;
|
|
2
|
+
(function (OrderModesEnum) {
|
|
3
|
+
OrderModesEnum["DELIVERY"] = "delivery";
|
|
4
|
+
OrderModesEnum["ON_SITE_COUNTER"] = "on_site_counter";
|
|
5
|
+
OrderModesEnum["PICKUP"] = "pickup";
|
|
6
|
+
})(OrderModesEnum || (OrderModesEnum = {}));
|
|
7
|
+
//# sourceMappingURL=CartInterface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartInterface.js","sourceRoot":"","sources":["../../../src/types/CartInterface.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,uCAAqB,CAAA;IACrB,qDAAmC,CAAA;IACnC,mCAAiB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuInterface.js","sourceRoot":"","sources":["../../../src/types/MenuInterface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MerchantInterface.js","sourceRoot":"","sources":["../../../src/types/MerchantInterface.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@delicity/client-cart",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Cart Client Package",
|
|
5
|
-
"main": "index.js",
|
|
5
|
+
"main": "./dist/cjs/index.js",
|
|
6
|
+
"module": "./dist/esm/index.js",
|
|
7
|
+
"types": "./dist/cjs/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
6
11
|
"scripts": {
|
|
7
|
-
"test": "
|
|
8
|
-
"build": "
|
|
9
|
-
"pub": "
|
|
10
|
-
"dev": "
|
|
12
|
+
"test": "jest",
|
|
13
|
+
"build": "rm -rf dist && tsc -p tsconfig.json && tsc -p tsconfig.esm.json",
|
|
14
|
+
"pub": "npm run build && npm publish",
|
|
15
|
+
"dev": "npm run build"
|
|
11
16
|
},
|
|
12
17
|
"exports": {
|
|
13
|
-
".":
|
|
14
|
-
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/cjs/index.d.ts",
|
|
20
|
+
"import": "./dist/esm/index.js",
|
|
21
|
+
"require": "./dist/cjs/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./CategoryAvailabilityService": {
|
|
24
|
+
"types": "./dist/cjs/service/CategoryAvailabilityService.d.ts",
|
|
25
|
+
"import": "./dist/esm/service/CategoryAvailabilityService.js",
|
|
26
|
+
"require": "./dist/cjs/service/CategoryAvailabilityService.js"
|
|
27
|
+
}
|
|
15
28
|
},
|
|
16
29
|
"author": "",
|
|
17
30
|
"license": "ISC",
|
package/classes/Cart.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Cart.d.ts","sourceRoot":"","sources":["../../src/classes/Cart.ts"],"names":[],"mappings":"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"}
|