@nuskin/ns-shop 6.4.4 → 6.4.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuskin/ns-shop",
3
- "version": "6.4.4",
3
+ "version": "6.4.5",
4
4
  "description": "The description that will amaze and astound your audience when they read it",
5
5
  "main": "src/shop.js",
6
6
  "scripts": {
@@ -480,7 +480,7 @@ function handleRedetermination(product, sapItem, sapSkus, adr, isAdrItem) {
480
480
  }
481
481
  }
482
482
 
483
- function addSapItem(newItem, sapItem, sapSkus, adr, isAdrItem, replace) {
483
+ async function addSapItem(newItem, sapItem, sapSkus, adr, isAdrItem, replace) {
484
484
  let product;
485
485
 
486
486
  product = new Product(newItem);
@@ -516,7 +516,7 @@ function addSapItem(newItem, sapItem, sapSkus, adr, isAdrItem, replace) {
516
516
  handleRedetermination(product, sapItem, sapSkus, adr, isAdrItem); // removes items from sapSkus
517
517
 
518
518
  // Only honor the OneTime flag from SAP if we are a ADR order
519
- CartService.addProductToCart({
519
+ await CartService.addProductToCart({
520
520
  product: product,
521
521
  qty: sapItem.LineItem.RequestedQuantity,
522
522
  adr: (adr && isAdrItem),
@@ -526,13 +526,12 @@ function addSapItem(newItem, sapItem, sapSkus, adr, isAdrItem, replace) {
526
526
  loyaltyPointsUsed: newItem.loyaltyPointsUsed,
527
527
  isBusinessPortfolio: newItem.businessPortfolio,
528
528
  replace: replace
529
- }).finally(() => {});
529
+ })
530
530
  }
531
531
 
532
- const syncProductItems = (order, sapProducts, adr, includeSapItems) => {
532
+ const syncProductItems = async (order, sapProducts, adr, includeSapItems) => {
533
533
  let sapSkus = [],
534
534
  cartItems,
535
- productPromises = [],
536
535
  runConfig = RunConfigService.getRunConfig();
537
536
 
538
537
  order.clearOutOfStock();
@@ -561,7 +560,7 @@ const syncProductItems = (order, sapProducts, adr, includeSapItems) => {
561
560
  }
562
561
 
563
562
  // first loop thru sapProducts to add new ones into the localProducts
564
- sapProducts.forEach(sapItem => {
563
+ for (const sapItem of sapProducts) {
565
564
  order.productDiscountAmount += sapItem.ProductPromoSavings;
566
565
  order.shippingDiscountAmount += sapItem.FreightPromoSavings;
567
566
  // We need to make sure it is not a BOM item
@@ -625,42 +624,30 @@ const syncProductItems = (order, sapProducts, adr, includeSapItems) => {
625
624
  newItem.thumbnail = existingItem.thumbnail;
626
625
  newItem.title = existingItem.title;
627
626
  newItem.marketAttributes = existingItem.marketAttributes;
628
- addSapItem(newItem, sapItem, sapSkus, adr, isAdrItem, !!includeSapItems);
627
+ await addSapItem(newItem, sapItem, sapSkus, adr, isAdrItem, !!includeSapItems);
629
628
  } else {
630
629
  //order.getItem returns objects of type nuskin.newShop.cartItem
631
- productPromises.push(ProductService.getProductData(newItemSku, runConfig.country, runConfig.language)
632
- .then(resp => {
633
- if (resp && resp.title) {
634
- if (runConfig.assessmentApp && newItem.thumbnail.search(/^http/g) === -1) {
635
- newItem.thumbnail = UrlService.getSiteUrl() + '/' + newItem.thumbnail;
636
- }
637
- newItem.title = resp.title; // overwrite with the localized title
638
- addSapItem(newItem, sapItem, sapSkus, adr, isAdrItem, !!includeSapItems);
630
+ try {
631
+ const data = await ProductService.getProductData(newItemSku, runConfig.country, runConfig.language);
632
+ if (data.title) {
633
+ if (runConfig.assessmentApp && newItem.thumbnail.search(/^http/g) === -1) {
634
+ newItem.thumbnail = UrlService.getSiteUrl() + '/' + newItem.thumbnail;
639
635
  }
640
- })
641
- .catch(err => {
642
- console.error(`Failed to get the product name for ${newItemSku} \n${err}`);
643
- // If the call to get the title fails then still add the item
644
- addSapItem(newItem,sapItem, sapSkus, adr, isAdrItem, !!includeSapItems);
645
- }));
636
+ newItem.title = data.title; // overwrite with the localized title
637
+ }
638
+ } catch (err) {
639
+ console.error(`Failed to get the product name for ${newItemSku} \n${err}`);
640
+ }
641
+ await addSapItem(newItem, sapItem, sapSkus, adr, isAdrItem, !!includeSapItems);
646
642
  }
647
643
  }
648
644
  }
649
- });
650
-
651
- if (productPromises.length > 0) {
652
- Promise.all(productPromises).then(function () {
653
- removeItems(cartItems, sapSkus);
654
- // this needs to be called here because of the async call to get product info for the
655
- // added items to be displayed in the order details section.
656
- events.publish(events.shop.SIMULATE_COMPLETE);
657
- }).catch(() => {
658
- // same comment as above.
659
- events.publish(events.shop.SIMULATE_COMPLETE);
660
- });
661
- } else {
662
- removeItems(cartItems, sapSkus);
663
645
  }
646
+
647
+ removeItems(cartItems, sapSkus);
648
+ // this needs to be called here because of the async call to get product info for the
649
+ // added items to be displayed in the order details section.
650
+ events.publish(events.shop.SIMULATE_COMPLETE);
664
651
  };
665
652
 
666
653
  const syncOrderTotals = (sapOrderTotals, orderTotals) => {
@@ -1071,7 +1058,7 @@ const populateSalesOrder = (action, adr) => {
1071
1058
  * @param {Object} adr - Adr object created during checkout. Needed to syncProductItems
1072
1059
  * @param {boolean} createResponse - Indicates that the salesOrderDetail object is from a createResponse
1073
1060
  */
1074
- const toOrder = (salesOrderDetail, adr, createResponse) => {
1061
+ const toOrder = async (salesOrderDetail, adr, createResponse) => {
1075
1062
  let order = OrderManager.getOrder();
1076
1063
  order.currencyCode = salesOrderDetail.Currency;
1077
1064
  order.orderId = salesOrderDetail.OrderID;
@@ -1100,7 +1087,7 @@ const toOrder = (salesOrderDetail, adr, createResponse) => {
1100
1087
  syncShipping(salesOrderDetail.Shipping, order);
1101
1088
  }
1102
1089
 
1103
- syncProductItems(order, salesOrderDetail.LineItemDetails, order.adr ? adr : null);
1090
+ await syncProductItems(order, salesOrderDetail.LineItemDetails, order.adr ? adr : null);
1104
1091
  syncOrderTotals(salesOrderDetail.OrderTotals, order.orderTotals);
1105
1092
  syncPayment(salesOrderDetail.Payment, order.selectedPayment);
1106
1093
  return order;
@@ -212,28 +212,28 @@ const adrShipImmediateSimulate = (adr) => {
212
212
  headers: _getHeaders(),
213
213
  timeout: SERVICE_TIMEOUT
214
214
  })
215
- .then((response) => {
215
+ .then(async (response) => {
216
216
  let data = response.data;
217
217
  if (data && data.messages) {
218
218
  order.messages = data.messages;
219
219
  }
220
220
  if (data && data.SalesOrderResponse && data.SalesOrderResponse.SalesOrderDetail) {
221
221
  syncSalesOrderResponse(data.SalesOrderResponse, order);
222
- OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail, adr);
222
+ await OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail, adr);
223
223
  } else {
224
224
  console.log("SAP Error while calling simulate...");
225
225
  events.publishError(events.errors.SAP, {messageString: "SAP Error while calling simulate..."});
226
226
  }
227
227
  resolve(response);
228
228
  })
229
- .catch((err) => {
229
+ .catch(async (err) => {
230
230
  console.log(err);
231
231
  let data;
232
232
  if (err && err.response) data = err.response.data;
233
233
  if (data && data.messages) {
234
234
  if ((data.messages[0].type === 'OrderException') && data.SalesOrderResponse && data.SalesOrderResponse.SalesOrderDetail) {
235
235
  syncSalesOrderResponse(data.SalesOrderResponse, order);
236
- OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail, adr);
236
+ await OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail, adr);
237
237
  } else if (data.messages[0].type === 'ProductDiscontinuedException') {
238
238
  handleDiscontinuedSku(order, adr, data.messages);
239
239
  }
@@ -281,7 +281,7 @@ const adrShipImmediateCreate = (adr) => {
281
281
  headers: _getHeaders(),
282
282
  timeout: SERVICE_TIMEOUT
283
283
  })
284
- .then((response) => {
284
+ .then(async (response) => {
285
285
  let data = response.data;
286
286
  if (data && data.AdrShipImmediateResponse && data.AdrShipImmediateResponse.salesOrderResponse) {
287
287
  let salesOrderDetail = data.AdrShipImmediateResponse.salesOrderResponse.SalesOrderDetail;
@@ -297,7 +297,7 @@ const adrShipImmediateCreate = (adr) => {
297
297
  }
298
298
 
299
299
  if (salesOrderDetail) {
300
- OrderAdapter.toOrder(salesOrderDetail, adr, true);
300
+ await OrderAdapter.toOrder(salesOrderDetail, adr, true);
301
301
  order.adrOverrideNumber = salesOrderDetail.ADROverrideNumber;
302
302
  }
303
303
  // Clear locally-cached ADR List
@@ -347,28 +347,28 @@ const adrSimulate = (adr) => {
347
347
  headers: _getHeaders(),
348
348
  timeout: SERVICE_TIMEOUT
349
349
  })
350
- .then((response) => {
350
+ .then(async (response) => {
351
351
  let data = response.data;
352
352
  if (data && data.messages) {
353
353
  order.messages = data.messages;
354
354
  }
355
355
  if (data && data.AdrResponse && data.AdrResponse.ADRDetail && data.AdrResponse.ADRDetail.SalesOrderDetail) {
356
356
  syncSalesOrderResponse(data.AdrResponse, order);
357
- OrderAdapter.toOrder(data.AdrResponse.ADRDetail.SalesOrderDetail, adr);
357
+ await OrderAdapter.toOrder(data.AdrResponse.ADRDetail.SalesOrderDetail, adr);
358
358
  } else {
359
359
  console.log("SAP Error while calling simulate...");
360
360
  events.publishError(events.errors.SAP, {messageString: "SAP Error while calling simulate..."});
361
361
  }
362
362
  resolve(response);
363
363
  })
364
- .catch((err) => {
364
+ .catch(async (err) => {
365
365
  console.log(err);
366
366
  let data;
367
367
  if (err && err.response) data = err.response.data;
368
368
  if (data && data.messages) {
369
369
  if ((data.messages[0].type === 'OrderException') && data.AdrResponse.ADRDetail && data.AdrResponse.ADRDetail.SalesOrderDetail) {
370
370
  syncSalesOrderResponse(data.AdrResponse, order);
371
- OrderAdapter.toOrder(data.AdrResponse.ADRDetail.SalesOrderDetail, adr);
371
+ await OrderAdapter.toOrder(data.AdrResponse.ADRDetail.SalesOrderDetail, adr);
372
372
  } else if (data.messages[0].type === 'ProductDiscontinuedException') {
373
373
  handleDiscontinuedSku(order, adr, data.messages);
374
374
  }
@@ -410,10 +410,10 @@ const adrCreate = (adr) => {
410
410
  headers: _getHeaders(),
411
411
  timeout: SERVICE_TIMEOUT
412
412
  })
413
- .then((response) => {
413
+ .then(async (response) => {
414
414
  let data = response.data;
415
415
  if (data && data.AdrResponse && data.AdrResponse.ADRDetail && data.AdrResponse.ADRDetail.SalesOrderDetail) {
416
- OrderAdapter.toOrder(data.AdrResponse.ADRDetail.SalesOrderDetail, adr, true);
416
+ await OrderAdapter.toOrder(data.AdrResponse.ADRDetail.SalesOrderDetail, adr, true);
417
417
  if (data.AdrResponse.redirectUrl) {
418
418
  syncRedirectUrls(data.AdrResponse, order);
419
419
  order.externalPayment = true;
@@ -460,28 +460,28 @@ const orderSimulate = () => {
460
460
  headers: _getHeaders(),
461
461
  timeout: SERVICE_TIMEOUT
462
462
  })
463
- .then((response) => {
463
+ .then(async (response) => {
464
464
  let data = response.data;
465
465
  if (data && data.messages) {
466
466
  order.messages = data.messages;
467
467
  }
468
468
  if (data && data.SalesOrderResponse && data.SalesOrderResponse.SalesOrderDetail) {
469
469
  syncSalesOrderResponse(data.SalesOrderResponse, order);
470
- OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail);
470
+ await OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail);
471
471
  } else {
472
472
  console.log("SAP Error while calling simulate...");
473
473
  events.publishError(events.errors.SAP, {messageString: "SAP Error while calling simulate..."});
474
474
  }
475
475
  resolve(response);
476
476
  })
477
- .catch((err) => {
477
+ .catch(async (err) => {
478
478
  let data;
479
479
  console.log(err);
480
480
  if (err && err.response) data = err.response.data;
481
481
  if (data && data.messages) {
482
482
  if ((data.messages[0].type === 'OrderException') && data.SalesOrderResponse && data.SalesOrderResponse.SalesOrderDetail) {
483
483
  syncSalesOrderResponse(data.SalesOrderResponse, order);
484
- OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail);
484
+ await OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail);
485
485
  } else if (data.messages[0].type === 'ProductDiscontinuedException') {
486
486
  handleDiscontinuedSku(order, null, data.messages);
487
487
  }
@@ -533,7 +533,7 @@ const orderCreate = async () => {
533
533
  order.paymentAuthorizationObject = data.SalesOrderResponse.paymentAuthorizationObject || null;
534
534
  syncRedirectUrls(data.SalesOrderResponse, order);
535
535
  if (data.SalesOrderResponse.SalesOrderDetail) {
536
- OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail, null, true);
536
+ await OrderAdapter.toOrder(data.SalesOrderResponse.SalesOrderDetail, null, true);
537
537
  }
538
538
  } else {
539
539
  console.log("SAP Error while calling create...");
@@ -223,7 +223,7 @@ const _readOrderStatus = async (order, tdc, sections, adr) => {
223
223
  _paymentErrorCallback(sections);
224
224
  } else {
225
225
  doingRedirect = true;
226
- _handleSuccess(OrderAdapter.toOrder(salesOrderResponse.SalesOrderDetail, adr, true));
226
+ _handleSuccess(await OrderAdapter.toOrder(salesOrderResponse.SalesOrderDetail, adr, true));
227
227
  }
228
228
  return doingRedirect;
229
229
  }
@@ -269,7 +269,7 @@ const _checkExternalPaymentStatus = async (order, tdc, sections, adr) => {
269
269
  doingRedirect = true;
270
270
  // look for SalesOrderResponse here
271
271
  if (status.salesOrderResponse) {
272
- order = OrderAdapter.toOrder(status.salesOrderResponse.SalesOrderDetail, adr, true);
272
+ order = await OrderAdapter.toOrder(status.salesOrderResponse.SalesOrderDetail, adr, true);
273
273
  }
274
274
  _handleSuccess(order);
275
275
  break;