addio-admin-sdk 1.7.117 → 1.7.119

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.
@@ -19,6 +19,7 @@ import { IBank } from '../PromiseToPurchase';
19
19
  import { IG2OrderExternalValues, IG2ProductExternalValues } from '../G2';
20
20
  import { ExternalServiceSlugEnum } from '../Space/IExternalService';
21
21
  import { IElavonPayload } from './IElavonPayload';
22
+ import ILang from '../../utils/string';
22
23
  export declare enum PaymentTypeEnum {
23
24
  CREDIT = "credit",
24
25
  DEBIT = "debit",
@@ -39,6 +40,11 @@ export declare enum CustomPaymentTypeEnum {
39
40
  DEPOT = "depot",
40
41
  INCENTIVE = "payment_incentive"
41
42
  }
43
+ export interface IPaymentServicePayload {
44
+ type?: ExternalServiceSlugEnum;
45
+ payload?: IStripePayload | IElavonPayload | IPandaPayload | IPaysafePayload;
46
+ error?: ILang;
47
+ }
42
48
  export declare enum CartPromoAppliesToEnum {
43
49
  ITEMS = "items",
44
50
  SHIPPING = "shipping",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Interfaces/Cart/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Interfaces/Cart/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import ICart, { ICartItem, IShippingQuote, IBoxItem, CartStatusEnum, CartErrorEnum, IActionDoneOnCart, ICartAssignedUser, IBankUsed, PaymentTypeEnum, IIndexedDeclination, ICartPaymentPayloadOptions, ICartPromoApplied, IApplicablePromiseBank, ICartPromiseToPurchase, UpdateTypeEnum } from '../../Interfaces/Cart';
1
+ import ICart, { ICartItem, IShippingQuote, IBoxItem, CartStatusEnum, CartErrorEnum, IActionDoneOnCart, ICartAssignedUser, IBankUsed, PaymentTypeEnum, IIndexedDeclination, ICartPaymentPayloadOptions, ICartPromoApplied, IApplicablePromiseBank, ICartPromiseToPurchase, UpdateTypeEnum, IPaymentServicePayload } from '../../Interfaces/Cart';
2
2
  import ISpace from '../../Interfaces/Space';
3
3
  import IStore from '../../Interfaces/Store';
4
4
  import ITax from '../../Interfaces/Tax';
@@ -22,6 +22,7 @@ import { TransferRequest } from '../TransferRequest';
22
22
  import ITransferRequest from '../../Interfaces/TransferRequest';
23
23
  import { IExternalServices } from '../../Interfaces/Space/IExternalService';
24
24
  import CartReservedQuantities from '../CartReservedQuantities';
25
+ import IPaypalPayload from '../../Interfaces/Cart/IPaypalPayload';
25
26
  export default class Cart extends BaseServiceClass<ICart> {
26
27
  private _allTaxes;
27
28
  constructor(data: any, collection: {
@@ -118,11 +119,32 @@ export default class Cart extends BaseServiceClass<ICart> {
118
119
  };
119
120
  accessToken?: string;
120
121
  }>;
122
+ processPOSPaymentV2: (newCartPayments: IPayment[], cart: Cart, space: Space, options: {
123
+ isDev?: boolean;
124
+ saveToDatabase?: boolean;
125
+ indexCart?: boolean;
126
+ replacePaymentsArray?: boolean;
127
+ }) => Promise<{
128
+ error?: {
129
+ fr: string;
130
+ en: string;
131
+ };
132
+ accessToken?: string;
133
+ }>;
121
134
  getPaymentMethod: (options: ICartPaymentPayloadOptions) => PaymentTypeEnum;
122
135
  createOrderWithSuccessfulPaymentPayload: ({ paypal_payload, stripe_payload, pandapay_payload, elavon_payload, paysafe_payload, charge_credit, other_payment_method, multi_payment_methods, isDev, saveToDatabase }: {
123
136
  isDev: boolean;
124
137
  saveToDatabase: boolean;
125
138
  } & ICartPaymentPayloadOptions) => Promise<this>;
139
+ createOrderWithSuccessfulPaymentPayloadV2: ({ newPaymentsToSave, creditCardServicePayload, paypalServicePayload, customPaymentMethod, isDev, saveToDatabase, replacePaymentsArray }: {
140
+ newPaymentsToSave: IPayment[];
141
+ creditCardServicePayload: IPaymentServicePayload | undefined;
142
+ paypalServicePayload: IPaypalPayload | undefined;
143
+ customPaymentMethod?: IPayment | undefined;
144
+ isDev: boolean;
145
+ saveToDatabase?: boolean | undefined;
146
+ replacePaymentsArray?: boolean | undefined;
147
+ }) => Promise<this>;
126
148
  /**
127
149
  * Sets a cart to status completed, and generates invoice_ref if necessary.
128
150
  * @param saveToDatabase - Optional, defaults to true.
@@ -70,7 +70,9 @@ const cart_3 = require("../../rules/GR/interfaces/cart");
70
70
  const TransferRequest_1 = require("../TransferRequest");
71
71
  const TransferRequest_2 = require("../../Interfaces/TransferRequest");
72
72
  const inventories_1 = require("../../utils/inventories");
73
+ const IExternalService_1 = require("../../Interfaces/Space/IExternalService");
73
74
  const CartReservedQuantities_1 = __importDefault(require("../CartReservedQuantities"));
75
+ const searchIndexes_1 = require("../../utils/searchIndexes");
74
76
  //#endregion
75
77
  class Cart extends baseService_1.BaseServiceClass {
76
78
  //#endregion
@@ -1187,31 +1189,6 @@ class Cart extends baseService_1.BaseServiceClass {
1187
1189
  let paysafe_payload = undefined;
1188
1190
  console.log('====================');
1189
1191
  console.log('in processPOSPayment');
1190
- // TODO - Uncomment when ready to use store credits!
1191
- // // Valider les store credits si utilisés comme mode de paiement
1192
- // let usedCredit = 0
1193
- // type IPaymentWithRef = IPayment & { ref: string }
1194
- // const foundStoreCreditPayment = !!payment_request_payload.multi_payment_methods
1195
- // ? (payment_request_payload.multi_payment_methods.find(
1196
- // (p) => p.method == PaymentTypeEnum.STORE_CREDITS && !!p.ref
1197
- // ) as IPaymentWithRef | undefined)
1198
- // : undefined
1199
- // if (foundStoreCreditPayment) {
1200
- // const creditCheck = await validateStoreCreditUsage(
1201
- // foundStoreCreditPayment.amount,
1202
- // cart.data().customer_id,
1203
- // space,
1204
- // foundStoreCreditPayment.ref!
1205
- // )
1206
- // if (!creditCheck.valid)
1207
- // return {
1208
- // error: creditCheck.error || {
1209
- // fr: 'Impossible de vérifier le crédit magasin pour la commande',
1210
- // en: 'Could not check store credit for order'
1211
- // }
1212
- // }
1213
- // usedCredit = foundStoreCreditPayment.amount
1214
- // }
1215
1192
  // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1216
1193
  // Apply payments to cart and create ref
1217
1194
  // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
@@ -1241,30 +1218,6 @@ class Cart extends baseService_1.BaseServiceClass {
1241
1218
  }
1242
1219
  console.log('createOrderWithSuccessfulPaymentPayload delay: ', (0, moment_1.default)().diff(delay1, 'seconds'));
1243
1220
  // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1244
- // Check for store credits to update in customer data
1245
- // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1246
- // TODO - Uncomment when ready to use store credits!
1247
- // const cartData = cart.data()
1248
- // if (usedCredit > 0 && !!cartData.customer_id && foundStoreCreditPayment) {
1249
- // try {
1250
- // const lastUserToTakePayment = getLastUserWhoTookPayment(cartData)
1251
- // await space.customers.credits.modify(
1252
- // cartData.customer_id,
1253
- // foundStoreCreditPayment.ref,
1254
- // -usedCredit,
1255
- // `Commande #${cart.getCartRef(space).order}`,
1256
- // `POS ${lastUserToTakePayment ? lastUserToTakePayment.user_id || lastUserToTakePayment.user_name : 'Unknown'}`
1257
- // )
1258
- // } catch (err) {
1259
- // return {
1260
- // error: {
1261
- // fr: "Impossible d'ajuster les crédits magasin.",
1262
- // en: 'Could not store credits.'
1263
- // }
1264
- // }
1265
- // }
1266
- // }
1267
- // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1268
1221
  // Check if Algolia is on -- save cart in algo
1269
1222
  // ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1270
1223
  if (!!indexCart) {
@@ -1349,6 +1302,118 @@ class Cart extends baseService_1.BaseServiceClass {
1349
1302
  };
1350
1303
  }
1351
1304
  };
1305
+ this.processPOSPaymentV2 = async (newCartPayments, cart, space, options) => {
1306
+ console.log('====================');
1307
+ console.log('in processPOSPayment');
1308
+ const indexCart = typeof options.indexCart == 'undefined' ? true : options.indexCart;
1309
+ // Valider les store credits si utilisés comme mode de paiement
1310
+ let usedCredit = 0;
1311
+ const foundStoreCreditPayment = !!newCartPayments
1312
+ ? newCartPayments.find((p) => p.method == Cart_1.PaymentTypeEnum.STORE_CREDITS && !!p.ref)
1313
+ : undefined;
1314
+ if (foundStoreCreditPayment) {
1315
+ const creditCheck = await (0, cart_1.validateStoreCreditUsage)(foundStoreCreditPayment.amount, cart.data().customer_id, space, foundStoreCreditPayment.ref // Where ref in payment corresponds to store credit slug
1316
+ );
1317
+ if (!creditCheck.valid)
1318
+ return {
1319
+ error: creditCheck.error || {
1320
+ fr: 'Impossible de vérifier le crédit magasin pour la commande',
1321
+ en: 'Could not check store credit for order'
1322
+ }
1323
+ };
1324
+ usedCredit = foundStoreCreditPayment.amount;
1325
+ }
1326
+ // -------------------------------------------
1327
+ // Apply payments to cart and create ref
1328
+ try {
1329
+ console.log('---------------');
1330
+ let delay1 = (0, moment_1.default)();
1331
+ try {
1332
+ await cart.createOrderWithSuccessfulPaymentPayloadV2({
1333
+ newPaymentsToSave: newCartPayments,
1334
+ creditCardServicePayload: undefined,
1335
+ paypalServicePayload: undefined,
1336
+ isDev: !!options.isDev,
1337
+ saveToDatabase: options.saveToDatabase,
1338
+ replacePaymentsArray: options.replacePaymentsArray
1339
+ });
1340
+ }
1341
+ catch (err) {
1342
+ return {
1343
+ error: {
1344
+ fr: "Impossible de créer la commande avec une charge de paiement réussie. Aucune charge n'a été reçue.",
1345
+ en: 'Could not create order with successful payment payload. No payload was sent.'
1346
+ }
1347
+ };
1348
+ }
1349
+ console.log('createOrderWithSuccessfulPaymentPayload delay: ', (0, moment_1.default)().diff(delay1, 'seconds'));
1350
+ // -------------------------------------------------------
1351
+ // Check for store credits to update in customer data
1352
+ const cartData = cart.data();
1353
+ if (usedCredit > 0 && !!cartData.customer_id && foundStoreCreditPayment && foundStoreCreditPayment.ref) {
1354
+ try {
1355
+ const lastUserToTakePayment = (0, cart_1.getLastUserWhoTookPayment)(cartData);
1356
+ await space.customers.credits.modify(cartData.customer_id, foundStoreCreditPayment.ref, -usedCredit, `Commande #${cart.getCartRef(space).order}`, `POS ${lastUserToTakePayment ? lastUserToTakePayment.user_id || lastUserToTakePayment.user_name : 'Unknown'}`);
1357
+ }
1358
+ catch (err) {
1359
+ return {
1360
+ error: {
1361
+ fr: "Impossible d'ajuster les crédits magasin.",
1362
+ en: 'Could not store credits.'
1363
+ }
1364
+ };
1365
+ }
1366
+ }
1367
+ // --------------------------------------------------
1368
+ // Check if Algolia is on -- save cart in algo
1369
+ if (!!indexCart) {
1370
+ console.log('---------------');
1371
+ let delay2 = (0, moment_1.default)();
1372
+ const searchIndexServices = (0, searchIndexes_1.getIndexServices)(space, 'orders');
1373
+ let customer;
1374
+ if (!!cart.data().customer_id) {
1375
+ try {
1376
+ const customerQuery = await space.customers.get({
1377
+ query: [{ field: 'id', operator: '==', value: cart.data().customer_id }]
1378
+ });
1379
+ if (!!customerQuery && !!customerQuery.length) {
1380
+ customer = customerQuery[0];
1381
+ }
1382
+ }
1383
+ catch (e) {
1384
+ console.log('error while fetching customer: ', e.toString());
1385
+ }
1386
+ }
1387
+ // NEW FUNCTION - returns indexedCartData
1388
+ const indexedCartData = (0, cart_1.getIndexedCartData)(cart.data(), space, {
1389
+ setPaidAtIfUndefined: true,
1390
+ customer: !!customer ? customer.data() : undefined,
1391
+ createdAt: (0, moment_1.default)().toDate()
1392
+ });
1393
+ try {
1394
+ await (0, searchIndexes_1.partialSaveNewEntryToIndex)(searchIndexServices, indexedCartData, `updating cart data on POS payment for cart #${cartData.ref || cartData.id || 'unknown'}`);
1395
+ }
1396
+ catch (e) {
1397
+ console.log('error on indexing cart: ', e.toString());
1398
+ }
1399
+ console.log('indexing cart delay: ', (0, moment_1.default)().diff(delay2, 'seconds'));
1400
+ }
1401
+ console.log('=================');
1402
+ return {
1403
+ accessToken: cart.data().id
1404
+ };
1405
+ }
1406
+ catch (err) {
1407
+ console.log(err);
1408
+ console.log('=================');
1409
+ return {
1410
+ error: {
1411
+ fr: 'Nous avons rencontré une erreur...',
1412
+ en: 'We encountered an error'
1413
+ }
1414
+ };
1415
+ }
1416
+ };
1352
1417
  this.getPaymentMethod = (options) => {
1353
1418
  if (!!options.multi_payment_methods && !!options.multi_payment_methods.length)
1354
1419
  return Cart_1.PaymentTypeEnum.MULTIPLE;
@@ -1565,6 +1630,200 @@ class Cart extends baseService_1.BaseServiceClass {
1565
1630
  console.log('====================');
1566
1631
  return this;
1567
1632
  };
1633
+ this.createOrderWithSuccessfulPaymentPayloadV2 = async ({ newPaymentsToSave, creditCardServicePayload, paypalServicePayload, customPaymentMethod, isDev, saveToDatabase = true, replacePaymentsArray }) => {
1634
+ var _b, _c;
1635
+ console.log('====================');
1636
+ console.log('in V2 createOrderWithSuccessfulPaymentPayload');
1637
+ const cartType = this.data().cart_type;
1638
+ // If web cart with card payement and no payload provided, throw an error
1639
+ if (cartType === Cart_1.CartTypeEnum.WEB &&
1640
+ newPaymentsToSave.some((p) => [Cart_1.PaymentTypeEnum.CREDIT, Cart_1.PaymentTypeEnum.DEBIT].includes(p.method)) &&
1641
+ !!!creditCardServicePayload)
1642
+ throw new Error(`Payment intent payload must be set for a card payment!`);
1643
+ const space = await Space_2.default.getCurrentSpaceWithRef(this._collection.path, this._user);
1644
+ const getPaymentRef = () => {
1645
+ // use default props in cart as default value
1646
+ let refToUse = this.data().payment_reference || '';
1647
+ // check for card ref
1648
+ if (!!creditCardServicePayload && !!creditCardServicePayload.payload) {
1649
+ refToUse = creditCardServicePayload.payload.unique_ref
1650
+ ? creditCardServicePayload.payload.unique_ref
1651
+ : creditCardServicePayload.payload.id
1652
+ ? creditCardServicePayload.payload.id
1653
+ : '';
1654
+ }
1655
+ return refToUse;
1656
+ };
1657
+ // Fetch space invoice next ref
1658
+ let newRef = !!isDev ? 123456789 : undefined;
1659
+ // -----------------------------------------------------------------------------------------
1660
+ // We will fetch the next avaible ref number from the api
1661
+ // in case of issue up to 3 attemps will be done
1662
+ // if none of these worked we raise an exception
1663
+ // -----------------------------------------------------------------------------------------
1664
+ if (!!this._data.ref) {
1665
+ console.log('Cart already has ref #', this._data.ref, ', skipping ref increment');
1666
+ // if ref already in cart, set newRef with ref value so empty string is not saved in cart afterwards
1667
+ newRef = (0, toNumber_1.default)(this._data.ref);
1668
+ await (0, logs_1.SystemLog)({
1669
+ clientName: `sdk-admin | Cart | ...SuccPayPayload, space: ${(0, services_1.getSpaceInitialsByID)(space.data().id)}`,
1670
+ clientToken: (_b = process.env.NEXT_PUBLIC_LOG_SYSTEM_KEY) !== null && _b !== void 0 ? _b : ''
1671
+ }, logs_1.LogType.WARNING, `Cart already has ref #${this._data.ref}, skipping ref increment`);
1672
+ }
1673
+ else {
1674
+ console.log('---------------');
1675
+ let delay1 = (0, moment_1.default)();
1676
+ if (!isDev) {
1677
+ const token = (0, context_1.getSpaceTokenFromSpaceOnly)(space);
1678
+ const api = __1.API_URL;
1679
+ let triesLeft = 3;
1680
+ while (triesLeft > 0) {
1681
+ try {
1682
+ const resp = await fetch(`${api}/carts/refnumber`, {
1683
+ method: 'GET',
1684
+ headers: {
1685
+ 'Content-Type': 'application/json',
1686
+ Authorization: `Bearer ${token}`
1687
+ }
1688
+ });
1689
+ if (resp.status >= 200 && resp.status < 300) {
1690
+ const data = await resp.json();
1691
+ if (data.status == 'success') {
1692
+ newRef = (0, toNumber_1.default)(data.result);
1693
+ break;
1694
+ }
1695
+ }
1696
+ else
1697
+ console.log('response error ' + (await resp.text()));
1698
+ }
1699
+ catch (e) {
1700
+ console.log('Error fetching invoice number', e);
1701
+ }
1702
+ await (0, tools_1.waitFor)(1000); // whait a second before trying again, server need to recover
1703
+ triesLeft--;
1704
+ }
1705
+ if (triesLeft == 0)
1706
+ throw new Error('could not get a Ref number');
1707
+ }
1708
+ console.log('increment space ref delay: ', (0, moment_1.default)().diff(delay1, 'seconds'));
1709
+ }
1710
+ // Update customer last_activity prop.
1711
+ const customerId = this.data().customer_id;
1712
+ if (!!customerId) {
1713
+ try {
1714
+ await space.customers.updateCustomerLastActivity(customerId, this._user);
1715
+ }
1716
+ catch (e) {
1717
+ console.log(`Could not update last_activity prop for customer: ${customerId}, ${e}`);
1718
+ }
1719
+ }
1720
+ const getCreditCardPayloadToSaveForType = (type) => {
1721
+ return creditCardServicePayload && creditCardServicePayload.type == type
1722
+ ? creditCardServicePayload.payload
1723
+ : undefined;
1724
+ };
1725
+ // -----------------------------------------------------------------------------------------
1726
+ // Create new partial cart data with info
1727
+ // -----------------------------------------------------------------------------------------
1728
+ const isPOSTransactionnal = this.data().cart_type === Cart_1.CartTypeEnum.POS_TRANSACTIONNAL;
1729
+ const currentPaymentDetails = this.data().payment_details || [];
1730
+ const partialCartPaidData = Object.assign(Object.assign(Object.assign(Object.assign({}, (this._data.cart_type === Cart_1.CartTypeEnum.WEB && !!customPaymentMethod && !!customPaymentMethod.method
1731
+ ? {
1732
+ custom_payment_type: Object.assign({ method: customPaymentMethod.method }, (!!customPaymentMethod.amount ? { amount: customPaymentMethod.amount } : {}))
1733
+ }
1734
+ : {})), (!!currentPaymentDetails.length || newPaymentsToSave.length > 1
1735
+ ? {
1736
+ paid_by: Cart_1.PaymentTypeEnum.MULTIPLE,
1737
+ payment_details: !!replacePaymentsArray
1738
+ ? newPaymentsToSave
1739
+ : [...currentPaymentDetails, ...newPaymentsToSave]
1740
+ }
1741
+ : { paid_by: newPaymentsToSave[0].method })), { paypal_payload: paypalServicePayload, stripe_payload: getCreditCardPayloadToSaveForType(IExternalService_1.ExternalServiceSlugEnum.STRIPE), pandapay_payload: getCreditCardPayloadToSaveForType(IExternalService_1.ExternalServiceSlugEnum.PANDAPAY), elavon_payload: getCreditCardPayloadToSaveForType(IExternalService_1.ExternalServiceSlugEnum.ELAVON), paysafe_payload: getCreditCardPayloadToSaveForType(IExternalService_1.ExternalServiceSlugEnum.PAYSAFE), paid_at: (0, moment_1.default)().toDate(), status: !!isPOSTransactionnal ? Cart_1.CartStatusEnum.COMPLETED : Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS, payment_reference: getPaymentRef(), ref: isDev ? `${(0, toString_1.default)(newRef)}-test` : (0, toString_1.default)(newRef), is_test: isDev, is: this.defineWhatICanBe() }), (this._data.id ? { id: this._data.id } : {}));
1742
+ try {
1743
+ console.log('---------------');
1744
+ if (!!this._data.ref && !!!this._data.id) {
1745
+ console.log('cart has ref but no id?!?');
1746
+ await (0, logs_1.SystemLog)({
1747
+ clientName: `sdk-admin | Cart | ...SuccPayPayload, space: ${(0, services_1.getSpaceInitialsByID)(space.data().id)}`,
1748
+ clientToken: (_c = process.env.NEXT_PUBLIC_LOG_SYSTEM_KEY) !== null && _c !== void 0 ? _c : ''
1749
+ }, logs_1.LogType.WARNING, `Cart already has ref #${this._data.ref}, but doesn't have an id??, ${this._data.id}`);
1750
+ }
1751
+ let delay2 = (0, moment_1.default)();
1752
+ // -----------------------------------
1753
+ // Save the cart and set it as "PAID"
1754
+ const newCartId = await this.save(partialCartPaidData, undefined, saveToDatabase);
1755
+ console.log('saving to DB delay: ', (0, moment_1.default)().diff(delay2, 'seconds'));
1756
+ // -----------------------------------------------------------------------------------------
1757
+ // If cart is of type POS_TRANSACTIONNAL, check if should create invoice_ref & add order to G2
1758
+ // If so, save partial data to cart
1759
+ if (!!isPOSTransactionnal) {
1760
+ console.log('---------------');
1761
+ let delay3 = (0, moment_1.default)();
1762
+ // a. Create invoice_ref
1763
+ const invoiceRef = await this.setCartWithInvoiceRef(space, false, partialCartPaidData.ref);
1764
+ console.log('setting invoice ref delay: ', (0, moment_1.default)().diff(delay3, 'seconds'));
1765
+ console.log('---------------');
1766
+ let delay4 = (0, moment_1.default)();
1767
+ // b. Add order to G2
1768
+ const skipRef = !!this.data().is_booking || !!this.data().is_booking_beton;
1769
+ let g2OrderRef;
1770
+ if (!skipRef && !(0, cart_2.checkIfCartContainsType)(cart_3.CartGeneralTypeEnum.SAMPLE, this.data())) {
1771
+ g2OrderRef = await this.setG2ExternalOrderRef(space, false, {
1772
+ ref: this.data().ref || partialCartPaidData.ref,
1773
+ id: (this.data().id || newCartId)
1774
+ });
1775
+ }
1776
+ console.log('saving g2 order & setting external_value delay: ', (0, moment_1.default)().diff(delay4, 'seconds'));
1777
+ console.log(`saving POS transactionnal cart to database: ${!!saveToDatabase}, with ref: ${partialCartPaidData.ref}, status: ${partialCartPaidData.status} and invoice ref: ${invoiceRef}${!!g2OrderRef ? ' and external_value.noCommande: ' + g2OrderRef : ''}`);
1778
+ // c. save to database
1779
+ await this.save(Object.assign({ id: this.data().id || newCartId, invoice_ref: invoiceRef }, (!!g2OrderRef ? { external_values: { noCommande: g2OrderRef } } : {})), undefined, saveToDatabase, true);
1780
+ }
1781
+ // -----------------------------------
1782
+ // Save inventory for cart items
1783
+ console.log('---------------');
1784
+ let delay5 = (0, moment_1.default)();
1785
+ // Check for space reserved quantities option
1786
+ // If defined for space, or if all items are already reserved, skip all inventory ajustments here - was already ajusted on items added to card!
1787
+ const spaceHasReservedQuantities = space.options.checkIfOptionIsSet('inventory.reserve_on_add_to_cart');
1788
+ const allItemsHaveReservedQuantities = this.data().items.every((i) => (0, cart_1.shouldIgnoreInventoryForItem)(i) || (typeof i.qte_reserved == 'number' && i.qte_reserved == i.qte));
1789
+ if (spaceHasReservedQuantities || allItemsHaveReservedQuantities) {
1790
+ console.log(`skipping inventory update in createOrderWithSuccessfulPaymentPayload for space ${space.getName()}. Inventory ajusted on items added to cart!`);
1791
+ }
1792
+ else {
1793
+ try {
1794
+ // Adjust cart items inventory
1795
+ await space.inventory.ajust(this.data().items, 'paid', this.data().cart_type, {
1796
+ currentStoreId: this.data().current_store_id || '',
1797
+ shouldCheckReservedQte: this.data().items.some((i) => typeof i.qte_reserved == 'number')
1798
+ });
1799
+ }
1800
+ catch (error) {
1801
+ console.log('error while updating inventory', error);
1802
+ await (0, console_1.alertAdminV2)(`Error while updating inventory`, `We are here: /src/lib/Cart/index.ts#2100. We are in space ${space.data().id}. JSON error: ${JSON.stringify(error)}`, error.toString(), space.getRef());
1803
+ }
1804
+ }
1805
+ console.log('adjusting inventory delay: ', (0, moment_1.default)().diff(delay5, 'seconds'));
1806
+ // -----------------------------------
1807
+ // If cart has promises to purchase, check if banks used are now empty
1808
+ if (!!this._data.promise_to_purchase) {
1809
+ console.log('---------------');
1810
+ let delay6 = (0, moment_1.default)();
1811
+ try {
1812
+ await this.checkForEmptyBanksAfterPayment(space);
1813
+ }
1814
+ catch (e) {
1815
+ console.log('error on checking for empty banks after payment: ', e.toString());
1816
+ }
1817
+ console.log('checkForEmptyBanks delay: ', (0, moment_1.default)().diff(delay6, 'seconds'));
1818
+ }
1819
+ }
1820
+ catch (error) {
1821
+ await (0, console_1.alertAdminV2)(`Error while saving new cart`, `We are here: /src/lib/Cart/index.ts#2125. We are in space ${space.data().id}. JSON error: ${JSON.stringify(error)}`, error.toString(), space.getRef());
1822
+ throw error;
1823
+ }
1824
+ console.log('====================');
1825
+ return this;
1826
+ };
1568
1827
  /**
1569
1828
  * Sets a cart to status completed, and generates invoice_ref if necessary.
1570
1829
  * @param saveToDatabase - Optional, defaults to true.