addio-admin-sdk 1.7.196 → 1.7.197
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/.babelrc +17 -17
- package/.env +14 -0
- package/.env.dev +14 -14
- package/.github/workflows/run_unit_test.yaml +48 -48
- package/.github/workflows/update_docs.yaml +32 -32
- package/addio-sdk-doc.md +1473 -1473
- package/changelog.md +582 -582
- package/dist/Interfaces/Address/index.d.ts +21 -21
- package/dist/Interfaces/Address/index.js +16 -16
- package/dist/Interfaces/Algolia/index.d.ts +183 -182
- package/dist/Interfaces/Algolia/index.js +2 -2
- package/dist/Interfaces/Attachement/index.d.ts +5 -5
- package/dist/Interfaces/Attachement/index.js +2 -2
- package/dist/Interfaces/Attribute/index.d.ts +53 -53
- package/dist/Interfaces/Attribute/index.js +10 -10
- package/dist/Interfaces/BGJob/index.d.ts +56 -56
- package/dist/Interfaces/BGJob/index.js +25 -25
- package/dist/Interfaces/BaseClass/index.d.ts +8 -8
- package/dist/Interfaces/BaseClass/index.js +2 -2
- package/dist/Interfaces/Blog/IBlogArticle.d.ts +18 -18
- package/dist/Interfaces/Blog/IBlogArticle.js +2 -2
- package/dist/Interfaces/Blog/IBlogAuthor.d.ts +7 -7
- package/dist/Interfaces/Blog/IBlogAuthor.js +2 -2
- package/dist/Interfaces/Blog/IBlogCategory.d.ts +9 -9
- package/dist/Interfaces/Blog/IBlogCategory.js +2 -2
- package/dist/Interfaces/Blog/IBlogComment.d.ts +13 -13
- package/dist/Interfaces/Blog/IBlogComment.js +2 -2
- package/dist/Interfaces/Blog/IBlogKeywords.d.ts +9 -9
- package/dist/Interfaces/Blog/IBlogKeywords.js +2 -2
- package/dist/Interfaces/Booking/index.d.ts +74 -74
- package/dist/Interfaces/Booking/index.js +17 -17
- package/dist/Interfaces/Brand/index.d.ts +15 -15
- package/dist/Interfaces/Brand/index.js +2 -2
- package/dist/Interfaces/Buylist/index.d.ts +19 -19
- package/dist/Interfaces/Buylist/index.js +2 -2
- package/dist/Interfaces/CMS/index.d.ts +28 -28
- package/dist/Interfaces/CMS/index.js +5 -5
- package/dist/Interfaces/Cart/IElavonPayload.d.ts +93 -93
- package/dist/Interfaces/Cart/IElavonPayload.js +17 -17
- package/dist/Interfaces/Cart/IMarketPayload.d.ts +12 -12
- package/dist/Interfaces/Cart/IMarketPayload.js +2 -2
- package/dist/Interfaces/Cart/IPandaPayload.d.ts +64 -64
- package/dist/Interfaces/Cart/IPandaPayload.js +18 -18
- package/dist/Interfaces/Cart/IPaymentCard.d.ts +22 -22
- package/dist/Interfaces/Cart/IPaymentCard.js +44 -44
- package/dist/Interfaces/Cart/IPaypalPayload.d.ts +9 -9
- package/dist/Interfaces/Cart/IPaypalPayload.js +2 -2
- package/dist/Interfaces/Cart/IPaysafePayload.d.ts +72 -72
- package/dist/Interfaces/Cart/IPaysafePayload.js +2 -2
- package/dist/Interfaces/Cart/IStripePayload.d.ts +66 -66
- package/dist/Interfaces/Cart/IStripePayload.js +2 -2
- package/dist/Interfaces/Cart/index.d.ts +478 -476
- package/dist/Interfaces/Cart/index.js +283 -283
- package/dist/Interfaces/Cart/index.js.map +1 -1
- package/dist/Interfaces/CartReservedQuantities/index.d.ts +10 -10
- package/dist/Interfaces/CartReservedQuantities/index.js +2 -2
- package/dist/Interfaces/CashDrawers/index.d.ts +38 -38
- package/dist/Interfaces/CashDrawers/index.js +19 -19
- package/dist/Interfaces/Catalogue/index.d.ts +68 -68
- package/dist/Interfaces/Catalogue/index.js +37 -37
- package/dist/Interfaces/Category/index.d.ts +33 -33
- package/dist/Interfaces/Category/index.js +2 -2
- package/dist/Interfaces/Chart/index.d.ts +11 -11
- package/dist/Interfaces/Chart/index.js +2 -2
- package/dist/Interfaces/Class/index.d.ts +8 -8
- package/dist/Interfaces/Class/index.js +2 -2
- package/dist/Interfaces/Consent/index.d.ts +6 -6
- package/dist/Interfaces/Consent/index.js +2 -2
- package/dist/Interfaces/Context/IContextProps.d.ts +4 -4
- package/dist/Interfaces/Context/IContextProps.js +2 -2
- package/dist/Interfaces/Context/IContextState.d.ts +15 -15
- package/dist/Interfaces/Context/IContextState.js +2 -2
- package/dist/Interfaces/Customer/ICustomerBadge.d.ts +2 -2
- package/dist/Interfaces/Customer/ICustomerBadge.js +2 -2
- package/dist/Interfaces/Customer/ICustomerRating.d.ts +10 -10
- package/dist/Interfaces/Customer/ICustomerRating.js +2 -2
- package/dist/Interfaces/Customer/IStoreCredit.d.ts +13 -13
- package/dist/Interfaces/Customer/IStoreCredit.js +2 -2
- package/dist/Interfaces/Customer/index.d.ts +104 -104
- package/dist/Interfaces/Customer/index.js +148 -148
- package/dist/Interfaces/Declination/index.d.ts +133 -117
- package/dist/Interfaces/Declination/index.js +83 -66
- package/dist/Interfaces/Declination/index.js.map +1 -1
- package/dist/Interfaces/Document/index.d.ts +8 -8
- package/dist/Interfaces/Document/index.js +2 -2
- package/dist/Interfaces/Elastic/index.d.ts +89 -89
- package/dist/Interfaces/Elastic/index.js +2 -2
- package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.d.ts +11 -11
- package/dist/Interfaces/Email/CustomGR/I3DPrintEmail.js +2 -2
- package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.d.ts +15 -15
- package/dist/Interfaces/Email/CustomGR/IBorrowToolsEmail.js +2 -2
- package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.d.ts +12 -12
- package/dist/Interfaces/Email/CustomGR/IPickupMaterialsEmail.js +2 -2
- package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.d.ts +36 -36
- package/dist/Interfaces/Email/CustomGR/IPreMeetingFormEmail.js +2 -2
- package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.d.ts +12 -12
- package/dist/Interfaces/Email/CustomGR/ISponsorRequestEmail.js +2 -2
- package/dist/Interfaces/Email/CustomGR/ITransportEmail.d.ts +12 -12
- package/dist/Interfaces/Email/CustomGR/ITransportEmail.js +2 -2
- package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.d.ts +12 -12
- package/dist/Interfaces/Email/CustomGR/ITransportQuoteEmail.js +2 -2
- package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.d.ts +16 -16
- package/dist/Interfaces/Email/CustomGR/IVegetalsEmail.js +2 -2
- package/dist/Interfaces/Email/CustomGR/IWishlistEmail.d.ts +15 -15
- package/dist/Interfaces/Email/CustomGR/IWishlistEmail.js +2 -2
- package/dist/Interfaces/Email/IAbandonnedCartEmail.d.ts +29 -29
- package/dist/Interfaces/Email/IAbandonnedCartEmail.js +2 -2
- package/dist/Interfaces/Email/IAccountConfirmationEmail.d.ts +22 -22
- package/dist/Interfaces/Email/IAccountConfirmationEmail.js +2 -2
- package/dist/Interfaces/Email/IApplicationEmail.d.ts +19 -19
- package/dist/Interfaces/Email/IApplicationEmail.js +2 -2
- package/dist/Interfaces/Email/IBackInStockEmail.d.ts +21 -21
- package/dist/Interfaces/Email/IBackInStockEmail.js +2 -2
- package/dist/Interfaces/Email/IContactEmail.d.ts +20 -20
- package/dist/Interfaces/Email/IContactEmail.js +2 -2
- package/dist/Interfaces/Email/ICustomerBookingAdminEmail.d.ts +15 -15
- package/dist/Interfaces/Email/ICustomerBookingAdminEmail.js +2 -2
- package/dist/Interfaces/Email/ICustomerBookingEmail.d.ts +14 -14
- package/dist/Interfaces/Email/ICustomerBookingEmail.js +2 -2
- package/dist/Interfaces/Email/IEmail.d.ts +20 -20
- package/dist/Interfaces/Email/IEmail.js +46 -46
- package/dist/Interfaces/Email/IOrderConfirmationEmail.d.ts +47 -47
- package/dist/Interfaces/Email/IOrderConfirmationEmail.js +2 -2
- package/dist/Interfaces/Email/IPasswordResetEmail.d.ts +17 -17
- package/dist/Interfaces/Email/IPasswordResetEmail.js +2 -2
- package/dist/Interfaces/Email/IPhotoShootEmail.d.ts +14 -14
- package/dist/Interfaces/Email/IPhotoShootEmail.js +2 -2
- package/dist/Interfaces/Email/IPickupConfirmation.d.ts +23 -23
- package/dist/Interfaces/Email/IPickupConfirmation.js +2 -2
- package/dist/Interfaces/Email/IShippingConfirmation.d.ts +23 -23
- package/dist/Interfaces/Email/IShippingConfirmation.js +2 -2
- package/dist/Interfaces/Email/IWelcomeEmail.d.ts +19 -19
- package/dist/Interfaces/Email/IWelcomeEmail.js +2 -2
- package/dist/Interfaces/ExportSchema/index.d.ts +7 -7
- package/dist/Interfaces/ExportSchema/index.js +2 -2
- package/dist/Interfaces/ExternalService/BaseExternalService.d.ts +12 -12
- package/dist/Interfaces/ExternalService/BaseExternalService.js +2 -2
- package/dist/Interfaces/ExternalService/ExternalProductsService.d.ts +4 -4
- package/dist/Interfaces/ExternalService/ExternalProductsService.js +2 -2
- package/dist/Interfaces/ExternalService/index.d.ts +9 -9
- package/dist/Interfaces/ExternalService/index.js +2 -2
- package/dist/Interfaces/FirstOrderTracking/index.d.ts +5 -5
- package/dist/Interfaces/FirstOrderTracking/index.js +2 -2
- package/dist/Interfaces/G2/index.d.ts +557 -557
- package/dist/Interfaces/G2/index.js +39 -39
- package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.d.ts +20 -20
- package/dist/Interfaces/Indexed/Product/IIndexedLastSavedProduct.js +2 -2
- package/dist/Interfaces/Indexed/Product/index.d.ts +126 -111
- package/dist/Interfaces/Indexed/Product/index.js +372 -302
- package/dist/Interfaces/Indexed/Product/index.js.map +1 -1
- package/dist/Interfaces/Inventory/index.d.ts +19 -19
- package/dist/Interfaces/Inventory/index.js +8 -8
- package/dist/Interfaces/Invoice/index.d.ts +4 -4
- package/dist/Interfaces/Invoice/index.js +2 -2
- package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.d.ts +3 -3
- package/dist/Interfaces/MarketplacePublication/MarketplaceOrderData.js +2 -2
- package/dist/Interfaces/MarketplacePublication/index.d.ts +23 -23
- package/dist/Interfaces/MarketplacePublication/index.js +22 -22
- package/dist/Interfaces/Menu/index.d.ts +40 -40
- package/dist/Interfaces/Menu/index.js +16 -16
- package/dist/Interfaces/Note/index.d.ts +10 -10
- package/dist/Interfaces/Note/index.js +7 -7
- package/dist/Interfaces/Operations/ICreatedBy.d.ts +6 -6
- package/dist/Interfaces/Operations/ICreatedBy.js +2 -2
- package/dist/Interfaces/Operations/IUpdate.d.ts +5 -5
- package/dist/Interfaces/Operations/IUpdate.js +2 -2
- package/dist/Interfaces/Order/index.d.ts +4 -4
- package/dist/Interfaces/Order/index.js +2 -2
- package/dist/Interfaces/Org/IRelUser.d.ts +9 -9
- package/dist/Interfaces/Org/IRelUser.js +2 -2
- package/dist/Interfaces/Org/index.d.ts +29 -29
- package/dist/Interfaces/Org/index.js +12 -12
- package/dist/Interfaces/Payment/index.d.ts +26 -26
- package/dist/Interfaces/Payment/index.js +14 -14
- package/dist/Interfaces/Product/IAttributeFamily.d.ts +6 -6
- package/dist/Interfaces/Product/IAttributeFamily.js +2 -2
- package/dist/Interfaces/Product/IImportProduct.d.ts +42 -42
- package/dist/Interfaces/Product/IImportProduct.js +882 -882
- package/dist/Interfaces/Product/IInventoryItem.d.ts +74 -74
- package/dist/Interfaces/Product/IInventoryItem.js +38 -38
- package/dist/Interfaces/Product/IPricing.d.ts +177 -177
- package/dist/Interfaces/Product/IPricing.js +180 -180
- package/dist/Interfaces/Product/index.d.ts +137 -137
- package/dist/Interfaces/Product/index.js +64 -64
- package/dist/Interfaces/ProductAttribute/index.d.ts +11 -11
- package/dist/Interfaces/ProductAttribute/index.js +2 -2
- package/dist/Interfaces/PromiseToPurchase/BankType.d.ts +41 -41
- package/dist/Interfaces/PromiseToPurchase/BankType.js +41 -41
- package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.d.ts +33 -33
- package/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed.js +15 -15
- package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.d.ts +19 -19
- package/dist/Interfaces/PromiseToPurchase/IIndexedCustomerPromiseToPurchase.js +2 -2
- package/dist/Interfaces/PromiseToPurchase/index.d.ts +50 -50
- package/dist/Interfaces/PromiseToPurchase/index.js +13 -13
- package/dist/Interfaces/PurchaseOrder/index.d.ts +17 -17
- package/dist/Interfaces/PurchaseOrder/index.js +2 -2
- package/dist/Interfaces/Query/IBrandQueryOptions.d.ts +11 -11
- package/dist/Interfaces/Query/IBrandQueryOptions.js +2 -2
- package/dist/Interfaces/Query/ICategoryQueryOptions.d.ts +11 -11
- package/dist/Interfaces/Query/ICategoryQueryOptions.js +2 -2
- package/dist/Interfaces/Query/IProductQueryOptions.d.ts +16 -16
- package/dist/Interfaces/Query/IProductQueryOptions.js +2 -2
- package/dist/Interfaces/Quote/index.d.ts +5 -5
- package/dist/Interfaces/Quote/index.js +2 -2
- package/dist/Interfaces/Refunds/index.d.ts +106 -106
- package/dist/Interfaces/Refunds/index.js +2 -2
- package/dist/Interfaces/Rules/IDiscountRule.d.ts +156 -156
- package/dist/Interfaces/Rules/IDiscountRule.js +114 -114
- package/dist/Interfaces/Schedule/index.d.ts +48 -48
- package/dist/Interfaces/Schedule/index.js +2 -2
- package/dist/Interfaces/Services/IAddServiceResponse.d.ts +4 -4
- package/dist/Interfaces/Services/IAddServiceResponse.js +2 -2
- package/dist/Interfaces/Services/IService.d.ts +16 -16
- package/dist/Interfaces/Services/IService.js +2 -2
- package/dist/Interfaces/Services/IServiceSecret.d.ts +8 -8
- package/dist/Interfaces/Services/IServiceSecret.js +2 -2
- package/dist/Interfaces/Shipping/Shipstation/carriers.d.ts +10 -10
- package/dist/Interfaces/Shipping/Shipstation/carriers.js +2 -2
- package/dist/Interfaces/Shipping/Shipstation/order.d.ts +227 -227
- package/dist/Interfaces/Shipping/Shipstation/order.js +2 -2
- package/dist/Interfaces/Shipping/Shipstation/quote.d.ts +31 -31
- package/dist/Interfaces/Shipping/Shipstation/quote.js +2 -2
- package/dist/Interfaces/Shipping/Shiptime/order.d.ts +54 -54
- package/dist/Interfaces/Shipping/Shiptime/order.js +71 -71
- package/dist/Interfaces/Shipping/Shiptime/quote.d.ts +111 -111
- package/dist/Interfaces/Shipping/Shiptime/quote.js +2 -2
- package/dist/Interfaces/Slider/GR.d.ts +114 -114
- package/dist/Interfaces/Slider/GR.js +271 -271
- package/dist/Interfaces/Slider/index.d.ts +30 -30
- package/dist/Interfaces/Slider/index.js +2 -2
- package/dist/Interfaces/Space/IExternalService.d.ts +54 -54
- package/dist/Interfaces/Space/IExternalService.js +45 -45
- package/dist/Interfaces/Space/IMember.d.ts +16 -16
- package/dist/Interfaces/Space/IMember.js +9 -9
- package/dist/Interfaces/Space/index.d.ts +414 -414
- package/dist/Interfaces/Space/index.js +176 -176
- package/dist/Interfaces/Specials/gr.d.ts +61 -61
- package/dist/Interfaces/Specials/gr.js +2 -2
- package/dist/Interfaces/StockNotification/index.d.ts +7 -7
- package/dist/Interfaces/StockNotification/index.js +2 -2
- package/dist/Interfaces/Store/index.d.ts +63 -63
- package/dist/Interfaces/Store/index.js +27 -27
- package/dist/Interfaces/Supplier/ICommand.d.ts +11 -11
- package/dist/Interfaces/Supplier/ICommand.js +2 -2
- package/dist/Interfaces/Supplier/index.d.ts +36 -36
- package/dist/Interfaces/Supplier/index.js +24 -24
- package/dist/Interfaces/TCG/index.d.ts +200 -200
- package/dist/Interfaces/TCG/index.js +59 -59
- package/dist/Interfaces/Tag/index.d.ts +18 -18
- package/dist/Interfaces/Tag/index.js +2 -2
- package/dist/Interfaces/Tax/index.d.ts +13 -13
- package/dist/Interfaces/Tax/index.js +2 -2
- package/dist/Interfaces/TransferRequest/index.d.ts +103 -103
- package/dist/Interfaces/TransferRequest/index.js +46 -46
- package/dist/Interfaces/Translation/index.d.ts +8 -8
- package/dist/Interfaces/Translation/index.js +5 -5
- package/dist/Interfaces/Update/index.d.ts +10 -10
- package/dist/Interfaces/Update/index.js +2 -2
- package/dist/Interfaces/User/IUser.d.ts +65 -65
- package/dist/Interfaces/User/IUser.js +8 -8
- package/dist/Interfaces/Version/index.d.ts +11 -11
- package/dist/Interfaces/Version/index.js +2 -2
- package/dist/Interfaces/Wishlist/index.d.ts +7 -7
- package/dist/Interfaces/Wishlist/index.js +2 -2
- package/dist/constants/Interfaces/IBaseApi.d.ts +15 -15
- package/dist/constants/Interfaces/IBaseApi.js +2 -2
- package/dist/constants/Interfaces/IEndpointResult.d.ts +9 -9
- package/dist/constants/Interfaces/IEndpointResult.js +2 -2
- package/dist/constants/enums.d.ts +6 -6
- package/dist/constants/enums.js +10 -10
- package/dist/constants/services.d.ts +2 -2
- package/dist/constants/services.js +122 -122
- package/dist/constants/version.d.ts +2 -2
- package/dist/constants/version.js +5 -5
- package/dist/index.d.ts +50 -50
- package/dist/index.js +266 -266
- package/dist/lib/Attribute/index.d.ts +14 -14
- package/dist/lib/Attribute/index.js +186 -186
- package/dist/lib/BGJob/index.d.ts +9 -9
- package/dist/lib/BGJob/index.js +216 -216
- package/dist/lib/BackgroundWorker/index.d.ts +34 -34
- package/dist/lib/BackgroundWorker/index.js +59 -59
- package/dist/lib/Blog/BlogArticle.d.ts +5 -5
- package/dist/lib/Blog/BlogArticle.js +10 -10
- package/dist/lib/Blog/BlogAuthor.d.ts +5 -5
- package/dist/lib/Blog/BlogAuthor.js +10 -10
- package/dist/lib/Blog/BlogCategory.d.ts +5 -5
- package/dist/lib/Blog/BlogCategory.js +10 -10
- package/dist/lib/Blog/BlogKeyword.d.ts +5 -5
- package/dist/lib/Blog/BlogKeyword.js +10 -10
- package/dist/lib/Booking/index.d.ts +85 -85
- package/dist/lib/Booking/index.js +596 -596
- package/dist/lib/Brand/index.d.ts +26 -26
- package/dist/lib/Brand/index.js +131 -131
- package/dist/lib/Cart/index.d.ts +357 -357
- package/dist/lib/Cart/index.js +4052 -4052
- package/dist/lib/CartReservedQuantities/index.d.ts +49 -49
- package/dist/lib/CartReservedQuantities/index.js +159 -159
- package/dist/lib/CashDrawerShift/index.d.ts +84 -84
- package/dist/lib/CashDrawerShift/index.js +206 -206
- package/dist/lib/Catalogue/index.d.ts +15 -15
- package/dist/lib/Catalogue/index.js +78 -78
- package/dist/lib/Category/index.d.ts +34 -34
- package/dist/lib/Category/index.js +230 -230
- package/dist/lib/Class/index.d.ts +16 -16
- package/dist/lib/Class/index.js +66 -66
- package/dist/lib/Consent/index.d.ts +4 -4
- package/dist/lib/Consent/index.js +29 -29
- package/dist/lib/Customer/index.d.ts +30 -30
- package/dist/lib/Customer/index.js +92 -92
- package/dist/lib/Declination/index.d.ts +9 -9
- package/dist/lib/Declination/index.js +26 -26
- package/dist/lib/Discount/index.d.ts +27 -27
- package/dist/lib/Discount/index.js +493 -493
- package/dist/lib/ElasticSearch/index.d.ts +13 -13
- package/dist/lib/ElasticSearch/index.js +50 -50
- package/dist/lib/Elavon/index.d.ts +18 -18
- package/dist/lib/Elavon/index.js +135 -135
- package/dist/lib/Email/AbandonedCartEmail.d.ts +16 -16
- package/dist/lib/Email/AbandonedCartEmail.js +24 -24
- package/dist/lib/Email/AccountConfirmationEmail.d.ts +19 -19
- package/dist/lib/Email/AccountConfirmationEmail.js +30 -30
- package/dist/lib/Email/AdminOrderConfirmationEmail.d.ts +16 -16
- package/dist/lib/Email/AdminOrderConfirmationEmail.js +24 -24
- package/dist/lib/Email/ApplicationEmail.d.ts +16 -16
- package/dist/lib/Email/ApplicationEmail.js +24 -24
- package/dist/lib/Email/BackInStockEmail.d.ts +16 -16
- package/dist/lib/Email/BackInStockEmail.js +24 -24
- package/dist/lib/Email/ContactEmail.d.ts +16 -16
- package/dist/lib/Email/ContactEmail.js +24 -24
- package/dist/lib/Email/CustomerBookingAdminEmail.d.ts +16 -16
- package/dist/lib/Email/CustomerBookingAdminEmail.js +24 -24
- package/dist/lib/Email/CustomerBookingEmail.d.ts +16 -16
- package/dist/lib/Email/CustomerBookingEmail.js +24 -24
- package/dist/lib/Email/OrderConfirmationEmail.d.ts +16 -16
- package/dist/lib/Email/OrderConfirmationEmail.js +24 -24
- package/dist/lib/Email/OrderDenounciationEmail.d.ts +16 -16
- package/dist/lib/Email/OrderDenounciationEmail.js +24 -24
- package/dist/lib/Email/OrderSampleEmail.d.ts +16 -16
- package/dist/lib/Email/OrderSampleEmail.js +24 -24
- package/dist/lib/Email/OtherTypeEmails.d.ts +16 -16
- package/dist/lib/Email/OtherTypeEmails.js +27 -27
- package/dist/lib/Email/PasswordResetEmail.d.ts +16 -16
- package/dist/lib/Email/PasswordResetEmail.js +24 -24
- package/dist/lib/Email/PhotoShootEmail.d.ts +16 -16
- package/dist/lib/Email/PhotoShootEmail.js +24 -24
- package/dist/lib/Email/PickUpConfirmation.d.ts +16 -16
- package/dist/lib/Email/PickUpConfirmation.js +24 -24
- package/dist/lib/Email/ShippingConfirmation.d.ts +16 -16
- package/dist/lib/Email/ShippingConfirmation.js +24 -24
- package/dist/lib/Email/WelcomeEmail.d.ts +16 -16
- package/dist/lib/Email/WelcomeEmail.js +24 -24
- package/dist/lib/Email/index.d.ts +16 -16
- package/dist/lib/Email/index.js +31 -31
- package/dist/lib/ExternalService/Ebay.d.ts +74 -74
- package/dist/lib/ExternalService/Ebay.js +124 -124
- package/dist/lib/ExternalService/index.d.ts +5 -5
- package/dist/lib/ExternalService/index.js +10 -10
- package/dist/lib/FirstOrderTracking/index.d.ts +5 -5
- package/dist/lib/FirstOrderTracking/index.js +10 -10
- package/dist/lib/Indexed/IndexedCart.d.ts +13 -13
- package/dist/lib/Indexed/IndexedCart.js +91 -91
- package/dist/lib/Indexed/Product.d.ts +17 -17
- package/dist/lib/Indexed/Product.js +98 -98
- package/dist/lib/Inventory/index.d.ts +131 -131
- package/dist/lib/Inventory/index.js +545 -545
- package/dist/lib/Invoice/index.d.ts +16 -16
- package/dist/lib/Invoice/index.js +21 -21
- package/dist/lib/MarketplacePublication/index.d.ts +9 -9
- package/dist/lib/MarketplacePublication/index.js +426 -426
- package/dist/lib/Menu/index.d.ts +11 -11
- package/dist/lib/Menu/index.js +107 -107
- package/dist/lib/MongoDB/BaseAPI.d.ts +18 -18
- package/dist/lib/MongoDB/BaseAPI.js +200 -200
- package/dist/lib/Note/index.d.ts +4 -4
- package/dist/lib/Note/index.js +6 -6
- package/dist/lib/Order/index.d.ts +27 -27
- package/dist/lib/Order/index.js +56 -56
- package/dist/lib/Org/index.d.ts +68 -68
- package/dist/lib/Org/index.js +216 -216
- package/dist/lib/PandaPay/index.d.ts +16 -16
- package/dist/lib/PandaPay/index.js +176 -176
- package/dist/lib/Paysafe/index.d.ts +11 -11
- package/dist/lib/Paysafe/index.js +41 -41
- package/dist/lib/Product/index.d.ts +182 -182
- package/dist/lib/Product/index.js +847 -847
- package/dist/lib/ProductAttribute/index.d.ts +15 -15
- package/dist/lib/ProductAttribute/index.js +45 -45
- package/dist/lib/PromiseToPurchase/index.d.ts +109 -109
- package/dist/lib/PromiseToPurchase/index.js +343 -343
- package/dist/lib/PurchaseOrder/index.d.ts +20 -20
- package/dist/lib/PurchaseOrder/index.js +28 -28
- package/dist/lib/Schedule/index.d.ts +5 -5
- package/dist/lib/Schedule/index.js +12 -12
- package/dist/lib/Service/Enum/ServiceEnum.d.ts +3 -3
- package/dist/lib/Service/Enum/ServiceEnum.js +7 -7
- package/dist/lib/Service/index.d.ts +13 -13
- package/dist/lib/Service/index.js +21 -21
- package/dist/lib/Shipment/index.d.ts +28 -28
- package/dist/lib/Shipment/index.js +370 -370
- package/dist/lib/Slider/index.d.ts +22 -22
- package/dist/lib/Slider/index.js +119 -119
- package/dist/lib/Space/index.d.ts +1181 -1181
- package/dist/lib/Space/index.js +5860 -5856
- package/dist/lib/Space/index.js.map +1 -1
- package/dist/lib/StockNotification/index.d.ts +4 -4
- package/dist/lib/StockNotification/index.js +6 -6
- package/dist/lib/Store/index.d.ts +5 -5
- package/dist/lib/Store/index.js +12 -12
- package/dist/lib/Supplier/Command.d.ts +5 -5
- package/dist/lib/Supplier/Command.js +10 -10
- package/dist/lib/Supplier/index.d.ts +25 -25
- package/dist/lib/Supplier/index.js +27 -27
- package/dist/lib/Tags/index.d.ts +6 -6
- package/dist/lib/Tags/index.js +26 -26
- package/dist/lib/Tax/index.d.ts +8 -8
- package/dist/lib/Tax/index.js +54 -54
- package/dist/lib/TransferRequest/index.d.ts +298 -298
- package/dist/lib/TransferRequest/index.js +1106 -1106
- package/dist/lib/Update/index.d.ts +10 -10
- package/dist/lib/Update/index.js +22 -22
- package/dist/lib/User/index.d.ts +89 -89
- package/dist/lib/User/index.js +328 -328
- package/dist/lib/Wishlist/index.d.ts +5 -5
- package/dist/lib/Wishlist/index.js +10 -10
- package/dist/lib/base.d.ts +14 -14
- package/dist/lib/base.js +62 -62
- package/dist/lib/baseService.d.ts +17 -17
- package/dist/lib/baseService.js +69 -69
- package/dist/rules/ADD/utils/buyback.d.ts +4 -4
- package/dist/rules/ADD/utils/buyback.js +135 -135
- package/dist/rules/GR/constants/data.d.ts +26 -26
- package/dist/rules/GR/constants/data.js +81 -81
- package/dist/rules/GR/constants/expedition.d.ts +4 -4
- package/dist/rules/GR/constants/expedition.js +9 -9
- package/dist/rules/GR/constants/products.d.ts +27 -22
- package/dist/rules/GR/constants/products.js +272 -263
- package/dist/rules/GR/constants/products.js.map +1 -1
- package/dist/rules/GR/interfaces/cart.d.ts +85 -84
- package/dist/rules/GR/interfaces/cart.js +42 -41
- package/dist/rules/GR/interfaces/cart.js.map +1 -1
- package/dist/rules/GR/interfaces/data.d.ts +101 -101
- package/dist/rules/GR/interfaces/data.js +114 -114
- package/dist/rules/GR/interfaces/products.d.ts +61 -61
- package/dist/rules/GR/interfaces/products.js +10 -10
- package/dist/rules/GR/utils/cart.d.ts +95 -95
- package/dist/rules/GR/utils/cart.js +879 -839
- package/dist/rules/GR/utils/cart.js.map +1 -1
- package/dist/rules/GR/utils/data.d.ts +3 -3
- package/dist/rules/GR/utils/data.js +28 -28
- package/dist/rules/GR/utils/expedition.d.ts +140 -140
- package/dist/rules/GR/utils/expedition.js +2098 -2017
- package/dist/rules/GR/utils/expedition.js.map +1 -1
- package/dist/rules/GR/utils/g2.d.ts +209 -209
- package/dist/rules/GR/utils/g2.js +1002 -1002
- package/dist/rules/GR/utils/invoices.d.ts +51 -51
- package/dist/rules/GR/utils/invoices.js +218 -215
- package/dist/rules/GR/utils/invoices.js.map +1 -1
- package/dist/rules/GR/utils/products.d.ts +277 -277
- package/dist/rules/GR/utils/products.js +1358 -1350
- package/dist/rules/GR/utils/products.js.map +1 -1
- package/dist/rules/GR/utils/upsells.d.ts +113 -111
- package/dist/rules/GR/utils/upsells.js +215 -215
- package/dist/services/database/BaseProvider.d.ts +29 -29
- package/dist/services/database/BaseProvider.js +28 -28
- package/dist/services/database/BatchUtils.d.ts +14 -14
- package/dist/services/database/BatchUtils.js +43 -43
- package/dist/services/database/Config.d.ts +2 -2
- package/dist/services/database/Config.js +5 -5
- package/dist/services/database/DatabaseService.d.ts +125 -125
- package/dist/services/database/DatabaseService.js +237 -237
- package/dist/services/database/FirebaseProvider.d.ts +17 -17
- package/dist/services/database/FirebaseProvider.js +235 -235
- package/dist/services/database/NotFirebaseProvider.d.ts +49 -49
- package/dist/services/database/NotFirebaseProvider.js +262 -262
- package/dist/services/g2/G2OrderSlip.d.ts +49 -49
- package/dist/services/g2/G2OrderSlip.js +228 -228
- package/dist/services/g2/utils.d.ts +19 -19
- package/dist/services/g2/utils.js +969 -968
- package/dist/services/g2/utils.js.map +1 -1
- package/dist/services/logs/index.d.ts +23 -23
- package/dist/services/logs/index.js +66 -66
- package/dist/services/marketplace/BaseMarketServiceClass.d.ts +78 -78
- package/dist/services/marketplace/BaseMarketServiceClass.js +141 -141
- package/dist/services/marketplace/CardtraderServiceClass.d.ts +38 -38
- package/dist/services/marketplace/CardtraderServiceClass.js +226 -226
- package/dist/services/marketplace/utils.d.ts +17 -17
- package/dist/services/marketplace/utils.js +32 -32
- package/dist/services/products/BaseClass.d.ts +79 -79
- package/dist/services/products/BaseClass.js +144 -144
- package/dist/services/products/TCGService.d.ts +29 -29
- package/dist/services/products/TCGService.js +503 -503
- package/dist/services/products/utils.d.ts +31 -31
- package/dist/services/products/utils.js +144 -144
- package/dist/utils/algolia.d.ts +46 -46
- package/dist/utils/algolia.js +21 -21
- package/dist/utils/anonymisation.d.ts +54 -54
- package/dist/utils/anonymisation.js +280 -280
- package/dist/utils/array.d.ts +5 -5
- package/dist/utils/array.js +14 -14
- package/dist/utils/aws.d.ts +36 -36
- package/dist/utils/aws.js +154 -154
- package/dist/utils/booking.d.ts +30 -30
- package/dist/utils/booking.js +127 -127
- package/dist/utils/cart.d.ts +279 -274
- package/dist/utils/cart.js +1152 -1143
- package/dist/utils/cart.js.map +1 -1
- package/dist/utils/categories.d.ts +2 -2
- package/dist/utils/categories.js +54 -54
- package/dist/utils/cmv.d.ts +12 -12
- package/dist/utils/cmv.js +108 -108
- package/dist/utils/console.d.ts +6 -6
- package/dist/utils/console.js +59 -59
- package/dist/utils/context.d.ts +20 -20
- package/dist/utils/context.js +61 -61
- package/dist/utils/currency.d.ts +6 -6
- package/dist/utils/currency.js +91 -91
- package/dist/utils/data.d.ts +31 -31
- package/dist/utils/data.js +302 -302
- package/dist/utils/date.d.ts +1 -1
- package/dist/utils/date.js +16 -16
- package/dist/utils/dimensions.d.ts +3 -3
- package/dist/utils/dimensions.js +16 -16
- package/dist/utils/discount.d.ts +192 -192
- package/dist/utils/discount.js +1180 -1180
- package/dist/utils/errors.d.ts +133 -133
- package/dist/utils/errors.js +171 -171
- package/dist/utils/file-admin.d.ts +8 -8
- package/dist/utils/file-admin.js +39 -39
- package/dist/utils/file.d.ts +39 -39
- package/dist/utils/file.js +208 -208
- package/dist/utils/firebase-admin.d.ts +11 -11
- package/dist/utils/firebase-admin.js +73 -73
- package/dist/utils/firebase.d.ts +58 -58
- package/dist/utils/firebase.js +148 -148
- package/dist/utils/import.d.ts +1 -1
- package/dist/utils/import.js +21 -21
- package/dist/utils/inventories.d.ts +101 -101
- package/dist/utils/inventories.js +467 -467
- package/dist/utils/locale.d.ts +24 -24
- package/dist/utils/locale.js +91 -91
- package/dist/utils/mailchimp.d.ts +58 -58
- package/dist/utils/mailchimp.js +531 -531
- package/dist/utils/mathUtils.d.ts +17 -17
- package/dist/utils/mathUtils.js +324 -324
- package/dist/utils/mongodb.d.ts +1 -1
- package/dist/utils/mongodb.js +22 -22
- package/dist/utils/object.d.ts +32 -32
- package/dist/utils/object.js +133 -133
- package/dist/utils/payment.d.ts +10 -10
- package/dist/utils/payment.js +23 -23
- package/dist/utils/products.d.ts +47 -47
- package/dist/utils/products.js +214 -214
- package/dist/utils/promiseToPurchase.d.ts +121 -121
- package/dist/utils/promiseToPurchase.js +329 -329
- package/dist/utils/prosprsearch.d.ts +42 -42
- package/dist/utils/prosprsearch.js +216 -216
- package/dist/utils/refunds.d.ts +2 -2
- package/dist/utils/refunds.js +21 -21
- package/dist/utils/sdc.d.ts +10 -10
- package/dist/utils/sdc.js +1309 -1309
- package/dist/utils/searchIndexes.d.ts +58 -58
- package/dist/utils/searchIndexes.js +247 -247
- package/dist/utils/services.d.ts +44 -44
- package/dist/utils/services.js +415 -415
- package/dist/utils/shipment.d.ts +110 -110
- package/dist/utils/shipment.js +341 -345
- package/dist/utils/shipment.js.map +1 -1
- package/dist/utils/simpletexting.d.ts +2 -2
- package/dist/utils/simpletexting.js +45 -45
- package/dist/utils/sliders.d.ts +4 -4
- package/dist/utils/sliders.js +24 -24
- package/dist/utils/string.d.ts +16 -16
- package/dist/utils/string.js +192 -192
- package/dist/utils/tcgService.d.ts +129 -129
- package/dist/utils/tcgService.js +494 -494
- package/dist/utils/tools.d.ts +5 -5
- package/dist/utils/tools.js +13 -13
- package/dist/utils/transferRequests.d.ts +43 -43
- package/dist/utils/transferRequests.js +67 -67
- package/dist/utils/update.d.ts +7 -7
- package/dist/utils/update.js +137 -137
- package/dist/utils/weight.d.ts +3 -3
- package/dist/utils/weight.js +16 -16
- package/dist/utils/zones.d.ts +11 -11
- package/dist/utils/zones.js +218 -218
- package/package.json +107 -107
- package/publish.sh +143 -143
- package/readme.md +182 -182
package/dist/utils/tcgService.js
CHANGED
|
@@ -1,495 +1,495 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getBuybackPricesForTcgCards = exports.getTcgAttributesToShow = exports.constructTcgAttributeLabels = exports.getProductNameToUse = exports.getAvailableInventoryForCurrentStore = exports.constructEmptyTcgInventoryItem = exports.constructTcgDeclinationFromCartItem = exports.constructTcgDeclinationAttributesFromCartItem = exports.constructTcgSkuFromAttributes = exports.findCorrespondingDecliByAttributes = exports.getProductSetLabelTranslationObj = exports.getProductSetLabel = exports.constructAllFinishOptions = exports.constructAllLangOptions = exports.filterAndOrderDeclinations = exports.getGradientForFinish = exports.getTcgFinishAttrOrder = exports.getDefaultTcgExternalServiceParams = void 0;
|
|
7
|
-
const uniqBy_1 = __importDefault(require("lodash/uniqBy"));
|
|
8
|
-
const orderBy_1 = __importDefault(require("lodash/orderBy"));
|
|
9
|
-
const round_1 = __importDefault(require("lodash/round"));
|
|
10
|
-
const TCG_1 = require("../Interfaces/TCG");
|
|
11
|
-
const TCG_2 = require("../Interfaces/TCG");
|
|
12
|
-
const IInventoryItem_1 = require("../Interfaces/Product/IInventoryItem");
|
|
13
|
-
const Declination_1 = require("../Interfaces/Declination");
|
|
14
|
-
const IExternalService_1 = require("../Interfaces/Space/IExternalService");
|
|
15
|
-
const object_1 = require("../utils/object");
|
|
16
|
-
const locale_1 = require("../utils/locale");
|
|
17
|
-
const getDefaultTcgExternalServiceParams = () => ({
|
|
18
|
-
cardgame_slugs: [],
|
|
19
|
-
default_parent_category: null,
|
|
20
|
-
buyback_cards_active: false
|
|
21
|
-
});
|
|
22
|
-
exports.getDefaultTcgExternalServiceParams = getDefaultTcgExternalServiceParams;
|
|
23
|
-
/**
|
|
24
|
-
* Get show order for a given value
|
|
25
|
-
* @param finishAttrValue
|
|
26
|
-
*/
|
|
27
|
-
const getTcgFinishAttrOrder = (finishAttrValue = TCG_2.TCGCardFinishEnum.NORMAL) => {
|
|
28
|
-
const expectedFinishOrder = [
|
|
29
|
-
TCG_2.TCGCardFinishEnum.NORMAL,
|
|
30
|
-
TCG_2.TCGCardFinishEnum.FOIL,
|
|
31
|
-
TCG_2.TCGCardFinishEnum.HOLO,
|
|
32
|
-
TCG_2.TCGCardFinishEnum.HOLOFOIL,
|
|
33
|
-
TCG_2.TCGCardFinishEnum.RAINBOW_FOIL,
|
|
34
|
-
TCG_2.TCGCardFinishEnum.COLDFOIL,
|
|
35
|
-
TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL,
|
|
36
|
-
TCG_2.TCGCardFinishEnum.ETCHED,
|
|
37
|
-
TCG_2.TCGCardFinishEnum.UNLIMITED,
|
|
38
|
-
TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL,
|
|
39
|
-
TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL,
|
|
40
|
-
TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL,
|
|
41
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION,
|
|
42
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
|
|
43
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
|
|
44
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
|
|
45
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
|
|
46
|
-
];
|
|
47
|
-
return expectedFinishOrder.indexOf(finishAttrValue) + 1;
|
|
48
|
-
};
|
|
49
|
-
exports.getTcgFinishAttrOrder = getTcgFinishAttrOrder;
|
|
50
|
-
const getGradientForFinish = (finish) => {
|
|
51
|
-
switch (finish) {
|
|
52
|
-
case TCG_2.TCGCardFinishEnum.NORMAL:
|
|
53
|
-
return 'normal';
|
|
54
|
-
case TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL:
|
|
55
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL:
|
|
56
|
-
case TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL:
|
|
57
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL:
|
|
58
|
-
case TCG_2.TCGCardFinishEnum.RAINBOW_FOIL:
|
|
59
|
-
case TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL:
|
|
60
|
-
return 'multi';
|
|
61
|
-
case TCG_2.TCGCardFinishEnum.COLDFOIL:
|
|
62
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL:
|
|
63
|
-
return 'cold';
|
|
64
|
-
case TCG_2.TCGCardFinishEnum.UNLIMITED:
|
|
65
|
-
case TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL:
|
|
66
|
-
case TCG_2.TCGCardFinishEnum.ETCHED:
|
|
67
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION:
|
|
68
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL:
|
|
69
|
-
return 'other';
|
|
70
|
-
case TCG_2.TCGCardFinishEnum.FOIL:
|
|
71
|
-
case TCG_2.TCGCardFinishEnum.HOLO:
|
|
72
|
-
case TCG_2.TCGCardFinishEnum.HOLOFOIL:
|
|
73
|
-
default:
|
|
74
|
-
return 'gold';
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
exports.getGradientForFinish = getGradientForFinish;
|
|
78
|
-
/**
|
|
79
|
-
* Get currently available declinations, ordered by finish attribute (TCG), and by current POS space lang (language attribute TCG)
|
|
80
|
-
* @param declinationData - Array of data used to order entries + full entry to return
|
|
81
|
-
* @param locale
|
|
82
|
-
* @param allInventories
|
|
83
|
-
*/
|
|
84
|
-
const filterAndOrderDeclinations = (declinationData = [],
|
|
85
|
-
// declinations: IIndexedDeclinationAlgolia[] | IIndexedDeclination[] | undefined,
|
|
86
|
-
locale, allInventories, skipInventoryCheck) => {
|
|
87
|
-
if (!declinationData.length)
|
|
88
|
-
return [];
|
|
89
|
-
// A. Filter out any unavailable declinations from possible options
|
|
90
|
-
const removedUnavailableDeclis = skipInventoryCheck
|
|
91
|
-
? declinationData
|
|
92
|
-
: declinationData.filter((d) => {
|
|
93
|
-
return allInventories.some((i) => i.sku == d.sku);
|
|
94
|
-
});
|
|
95
|
-
// B. Order by finish attribute first, then by lang
|
|
96
|
-
const orderedValues = (0, orderBy_1.default)(removedUnavailableDeclis, (d) => {
|
|
97
|
-
let startNb = 2;
|
|
98
|
-
const finishAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_finish');
|
|
99
|
-
if (finishAttr) {
|
|
100
|
-
// Multiply start number by finish attr order
|
|
101
|
-
startNb *= (0, exports.getTcgFinishAttrOrder)(finishAttr[0]);
|
|
102
|
-
}
|
|
103
|
-
// If lang attr same as current lang for POS, remove 1 to bring higher up in array
|
|
104
|
-
const langAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_language');
|
|
105
|
-
if (locale && langAttr && langAttr[0] == `tcg_lang_${locale}`) {
|
|
106
|
-
startNb -= 1;
|
|
107
|
-
}
|
|
108
|
-
return startNb;
|
|
109
|
-
});
|
|
110
|
-
return orderedValues.map((o) => o.fullDecli);
|
|
111
|
-
};
|
|
112
|
-
exports.filterAndOrderDeclinations = filterAndOrderDeclinations;
|
|
113
|
-
const _getDefaultLangOption = (defaultLangToReturn, allTcgAttrLabels, locale) => {
|
|
114
|
-
if (!allTcgAttrLabels || !defaultLangToReturn)
|
|
115
|
-
return [];
|
|
116
|
-
const sameInAllLabels = allTcgAttrLabels.tcg_language[defaultLangToReturn];
|
|
117
|
-
if (sameInAllLabels) {
|
|
118
|
-
return [
|
|
119
|
-
{
|
|
120
|
-
slug: defaultLangToReturn,
|
|
121
|
-
label: sameInAllLabels.tag || defaultLangToReturn,
|
|
122
|
-
fullLabel: (0, locale_1.getLocaleOfDictionnary)(sameInAllLabels.value, locale)
|
|
123
|
-
}
|
|
124
|
-
];
|
|
125
|
-
}
|
|
126
|
-
return [];
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* Construct all options for Language attribute (TCG), based on available declinations
|
|
130
|
-
* @param declinations
|
|
131
|
-
* @param allTcgAttrLabels All constructed labels based on expected TCG attributes
|
|
132
|
-
* @param locale Current POS locale
|
|
133
|
-
* @param defaultLangToReturn Optionnal. If a default value should be returned, even if declination array is empty. Corresponds to the value for the specific language attribute (ex. tcg_lang_en)
|
|
134
|
-
*/
|
|
135
|
-
const constructAllLangOptions = (declinations, allTcgAttrLabels, locale, defaultLangToReturn) => {
|
|
136
|
-
if (!declinations.length) {
|
|
137
|
-
// Check to return default value
|
|
138
|
-
return _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
|
|
139
|
-
}
|
|
140
|
-
const allOptions = [];
|
|
141
|
-
for (let variation of declinations) {
|
|
142
|
-
const tcgLangAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.LANG}`);
|
|
143
|
-
if (!tcgLangAttr) {
|
|
144
|
-
// Check to return default value
|
|
145
|
-
const defaultOpt = _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
|
|
146
|
-
if (!!defaultOpt.length)
|
|
147
|
-
allOptions.push(defaultOpt[0]);
|
|
148
|
-
continue;
|
|
149
|
-
}
|
|
150
|
-
const langSlug = tcgLangAttr[0];
|
|
151
|
-
if (langSlug && !allOptions.some((o) => o.slug == langSlug)) {
|
|
152
|
-
const sameLabel = !!allTcgAttrLabels ? allTcgAttrLabels.tcg_language[langSlug] : undefined;
|
|
153
|
-
allOptions.push({
|
|
154
|
-
slug: langSlug,
|
|
155
|
-
label: sameLabel && sameLabel.tag ? sameLabel.tag : tcgLangAttr[0],
|
|
156
|
-
fullLabel: sameLabel ? (0, locale_1.getLocaleOfDictionnary)(sameLabel.value, locale) : tcgLangAttr[0]
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
return allOptions;
|
|
161
|
-
};
|
|
162
|
-
exports.constructAllLangOptions = constructAllLangOptions;
|
|
163
|
-
/**
|
|
164
|
-
* Construct all unique finish and condition attribute combinations (TCG), based on available declinations
|
|
165
|
-
* @param declinations
|
|
166
|
-
* @param allTcgAttrLabels
|
|
167
|
-
*/
|
|
168
|
-
const constructAllFinishOptions = (declinations, allTcgAttrLabels, locale) => {
|
|
169
|
-
if (!allTcgAttrLabels)
|
|
170
|
-
return [];
|
|
171
|
-
if (!declinations.length)
|
|
172
|
-
return [];
|
|
173
|
-
// a. Create combinations based on variations
|
|
174
|
-
// Only keep combos where condition attr is set
|
|
175
|
-
const allCombinaitions = declinations
|
|
176
|
-
.map((variation) => {
|
|
177
|
-
const tcgFinishAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.FINISH}`);
|
|
178
|
-
const tcgConditionAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${[TCG_2.TCGVariationAttributesEnum.CONDITION]}`);
|
|
179
|
-
return {
|
|
180
|
-
[TCG_2.TCGVariationAttributesEnum.CONDITION]: !tcgConditionAttr || !tcgConditionAttr.length
|
|
181
|
-
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.CONDITION]
|
|
182
|
-
: tcgConditionAttr[0],
|
|
183
|
-
[TCG_2.TCGVariationAttributesEnum.FINISH]: !tcgFinishAttr || !tcgFinishAttr.length
|
|
184
|
-
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.FINISH]
|
|
185
|
-
: tcgFinishAttr[0]
|
|
186
|
-
};
|
|
187
|
-
})
|
|
188
|
-
.filter((v) => v.tcg_condition);
|
|
189
|
-
// b. Filter out duplicates
|
|
190
|
-
const removedDuplicates = (0, uniqBy_1.default)(allCombinaitions, (v) => `${v.tcg_condition}${v.tcg_finish ? '_' + v.tcg_finish : ''}`);
|
|
191
|
-
// c. Return constructed options object array
|
|
192
|
-
return removedDuplicates.map((combAttr) => {
|
|
193
|
-
const condLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.value`);
|
|
194
|
-
const finishLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.FINISH}.${combAttr.tcg_finish}.value`);
|
|
195
|
-
let fullLabelArray = [];
|
|
196
|
-
if (finishLabel)
|
|
197
|
-
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(finishLabel, locale));
|
|
198
|
-
if (condLabel)
|
|
199
|
-
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(condLabel, locale));
|
|
200
|
-
return {
|
|
201
|
-
label: `${(0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.tag`) || combAttr.tcg_condition}`,
|
|
202
|
-
variant: combAttr.tcg_finish,
|
|
203
|
-
value: combAttr,
|
|
204
|
-
fullLabel: fullLabelArray.join(' - '),
|
|
205
|
-
extraLabel: [
|
|
206
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION,
|
|
207
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
|
|
208
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
|
|
209
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
|
|
210
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
|
|
211
|
-
].includes(combAttr.tcg_finish)
|
|
212
|
-
? ' 1st'
|
|
213
|
-
: ''
|
|
214
|
-
};
|
|
215
|
-
});
|
|
216
|
-
};
|
|
217
|
-
exports.constructAllFinishOptions = constructAllFinishOptions;
|
|
218
|
-
/**
|
|
219
|
-
* Get set label for a given card attributes in specified locale
|
|
220
|
-
* @param prodAttributes
|
|
221
|
-
* @param allAttributes
|
|
222
|
-
* @param locale
|
|
223
|
-
*/
|
|
224
|
-
const getProductSetLabel = (prodAttributes, allAttributes, locale) => {
|
|
225
|
-
if (!prodAttributes)
|
|
226
|
-
return '';
|
|
227
|
-
const result = (0, exports.getProductSetLabelTranslationObj)(prodAttributes, allAttributes, [locale || 'fr']);
|
|
228
|
-
return (0, locale_1.getLocaleOfDictionnary)(result, locale);
|
|
229
|
-
};
|
|
230
|
-
exports.getProductSetLabel = getProductSetLabel;
|
|
231
|
-
/**
|
|
232
|
-
* Get set label ITranslation array for a given card attributes
|
|
233
|
-
* @param prodAttributes Indexed product attributes to check
|
|
234
|
-
* @param allAttributes Full IAttribute array
|
|
235
|
-
* @param spaceSupportedLocales Optionnal. Defaults to ['fr', 'en']
|
|
236
|
-
*/
|
|
237
|
-
const getProductSetLabelTranslationObj = (prodAttributes, allAttributes, spaceSupportedLocales = ['fr', 'en']) => {
|
|
238
|
-
if (!prodAttributes)
|
|
239
|
-
return [];
|
|
240
|
-
const tcgSetAttr = prodAttributes[TCG_1.TCGAttributesEnum.SET];
|
|
241
|
-
if (!tcgSetAttr)
|
|
242
|
-
return [];
|
|
243
|
-
const defaultValue = (0, locale_1.getLanguageDictFromString)(tcgSetAttr[0], spaceSupportedLocales);
|
|
244
|
-
if (!allAttributes.length)
|
|
245
|
-
return defaultValue;
|
|
246
|
-
const sameAttr = allAttributes.find((a) => a.slug == TCG_1.TCGAttributesEnum.SET);
|
|
247
|
-
if (!sameAttr)
|
|
248
|
-
return defaultValue;
|
|
249
|
-
const sameValue = sameAttr.values.find((v) => v.slug == tcgSetAttr[0]);
|
|
250
|
-
return (sameValue === null || sameValue === void 0 ? void 0 : sameValue.value) || defaultValue;
|
|
251
|
-
};
|
|
252
|
-
exports.getProductSetLabelTranslationObj = getProductSetLabelTranslationObj;
|
|
253
|
-
/**
|
|
254
|
-
* Get first found declination from list where passed attribute values found in decli
|
|
255
|
-
* @param decliList
|
|
256
|
-
* @param attributesToCheck Values of chosen TCG attributes to check for in decli.
|
|
257
|
-
*/
|
|
258
|
-
const findCorrespondingDecliByAttributes = (decliList, attributesToCheck) => {
|
|
259
|
-
if (Object.values(attributesToCheck).every((attr) => attr == undefined))
|
|
260
|
-
return;
|
|
261
|
-
const decliWithSameValues = decliList.find((d) => {
|
|
262
|
-
let foundSameCount = 0;
|
|
263
|
-
const arrayToCheck = Object.entries(attributesToCheck);
|
|
264
|
-
for (let [attrSlug, value] of arrayToCheck) {
|
|
265
|
-
const attrValueToCheck = (0, object_1.recursiveCheckObject)(d, `attributes.${attrSlug}.0`) ||
|
|
266
|
-
(0, object_1.recursiveCheckObject)(TCG_2.defaultValuesForTcgAttributes, attrSlug);
|
|
267
|
-
if (attrValueToCheck == value) {
|
|
268
|
-
foundSameCount += 1;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
return foundSameCount == arrayToCheck.length;
|
|
272
|
-
});
|
|
273
|
-
return decliWithSameValues;
|
|
274
|
-
};
|
|
275
|
-
exports.findCorrespondingDecliByAttributes = findCorrespondingDecliByAttributes;
|
|
276
|
-
/**
|
|
277
|
-
* Construct sku for declinations from parent product slug and TCG attributes (one segment per attribute's
|
|
278
|
-
* default_tag, in the order given, e.g. <product_slug>_<finish>_<condition>_<language>)
|
|
279
|
-
* @param baseSlug The parent product slug
|
|
280
|
-
* @param declinationsToUse Array of declinations to use, in Addio DeclinationAttribut form
|
|
281
|
-
*/
|
|
282
|
-
const constructTcgSkuFromAttributes = (baseSlug, declinationsToUse) => baseSlug +
|
|
283
|
-
'_' +
|
|
284
|
-
declinationsToUse
|
|
285
|
-
.filter((x) => x.values.length > 0 && x.values[0].default_tag)
|
|
286
|
-
.map((x) => x.values[0].default_tag)
|
|
287
|
-
.join('_');
|
|
288
|
-
exports.constructTcgSkuFromAttributes = constructTcgSkuFromAttributes;
|
|
289
|
-
/**
|
|
290
|
-
* Get a single TCG variation attribute's (finish / condition / language) value off a cart item's attributes
|
|
291
|
-
* @param itemAttributes The cart item's attributes to check
|
|
292
|
-
* @param attributeId Which TCG variation attribute to read
|
|
293
|
-
*/
|
|
294
|
-
const getTcgVariationAttributeValue = (itemAttributes, attributeId) => { var _a; return (_a = itemAttributes === null || itemAttributes === void 0 ? void 0 : itemAttributes[attributeId]) === null || _a === void 0 ? void 0 : _a[0]; };
|
|
295
|
-
/**
|
|
296
|
-
* Construct declination attributes (TCG finish / condition / language) based on a cart item's own attributes
|
|
297
|
-
* @param itemAttributes The cart item's attributes to check
|
|
298
|
-
*/
|
|
299
|
-
const constructTcgDeclinationAttributesFromCartItem = (itemAttributes) => {
|
|
300
|
-
const attributes = [];
|
|
301
|
-
for (const attributeId of [
|
|
302
|
-
TCG_2.TCGVariationAttributesEnum.FINISH,
|
|
303
|
-
TCG_2.TCGVariationAttributesEnum.CONDITION,
|
|
304
|
-
TCG_2.TCGVariationAttributesEnum.LANG
|
|
305
|
-
]) {
|
|
306
|
-
const value = getTcgVariationAttributeValue(itemAttributes, attributeId);
|
|
307
|
-
if (!!!value)
|
|
308
|
-
continue;
|
|
309
|
-
attributes.push({ attribute_id: attributeId, values: [{ slug: value, value: [], default_tag: value }] });
|
|
310
|
-
}
|
|
311
|
-
return attributes;
|
|
312
|
-
};
|
|
313
|
-
exports.constructTcgDeclinationAttributesFromCartItem = constructTcgDeclinationAttributesFromCartItem;
|
|
314
|
-
/**
|
|
315
|
-
* Build a new declination for a TCG product variant that doesn't exist yet on the product, based on a cart item
|
|
316
|
-
* that references it. Returns undefined if the item isn't a valid TCG variant reference (missing attributes, or
|
|
317
|
-
* the resulting sku doesn't actually correspond to the cart item's sku)
|
|
318
|
-
* @param item The cart item referencing the missing variant
|
|
319
|
-
* @param productData The parent TCG product
|
|
320
|
-
*/
|
|
321
|
-
const constructTcgDeclinationFromCartItem = (item, productData) => {
|
|
322
|
-
const attributes = (0, exports.constructTcgDeclinationAttributesFromCartItem)(item.attributes);
|
|
323
|
-
if (!!!attributes.length)
|
|
324
|
-
return undefined;
|
|
325
|
-
const sku = (0, exports.constructTcgSkuFromAttributes)(productData.slug, attributes);
|
|
326
|
-
// Only build the declination when it actually reproduces the cart item's sku - otherwise the freshly
|
|
327
|
-
// created declination/inventory would be orphaned from item.sku
|
|
328
|
-
if (!!!sku || sku !== item.sku)
|
|
329
|
-
return undefined;
|
|
330
|
-
return Object.assign(Object.assign({}, (0, Declination_1.emptyDeclination)()), { sku, slug: productData.slug, name: productData.name, description: productData.description || [], attributes, created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE });
|
|
331
|
-
};
|
|
332
|
-
exports.constructTcgDeclinationFromCartItem = constructTcgDeclinationFromCartItem;
|
|
333
|
-
/**
|
|
334
|
-
* Build an empty (no quantities) inventory item for a newly created TCG declination
|
|
335
|
-
* @param declination The declination the inventory item is for
|
|
336
|
-
* @param productData The parent product
|
|
337
|
-
* @param stores All current stores for space. Used to poppulate inventories property
|
|
338
|
-
* @param userId The current user behind the request
|
|
339
|
-
*/
|
|
340
|
-
const constructEmptyTcgInventoryItem = (declination, productData, stores, userId) => (Object.assign(Object.assign({}, (0, IInventoryItem_1.getDefaultInventoryItem)(stores, userId, { addEmptyWebInventory: true })), { sku: declination.sku, parent_slug: productData.slug, parent_name: productData.name, name: declination.name, brand: productData.brand || '', categories: productData.category ? [productData.category] : [] }));
|
|
341
|
-
exports.constructEmptyTcgInventoryItem = constructEmptyTcgInventoryItem;
|
|
342
|
-
/**
|
|
343
|
-
* Get the available inventory for the currently selected store (found in local storage)
|
|
344
|
-
* @param inventoryItem
|
|
345
|
-
*/
|
|
346
|
-
const getAvailableInventoryForCurrentStore = (inventoryItem) => {
|
|
347
|
-
const currentStore = localStorage.getItem('branch') || '';
|
|
348
|
-
const sameStoreInv = inventoryItem.inventories.find((i) => i.store_id == currentStore);
|
|
349
|
-
if (!sameStoreInv)
|
|
350
|
-
return 0;
|
|
351
|
-
return sameStoreInv.qty.available;
|
|
352
|
-
};
|
|
353
|
-
exports.getAvailableInventoryForCurrentStore = getAvailableInventoryForCurrentStore;
|
|
354
|
-
/**
|
|
355
|
-
* Construct product or decli name to show (mostly for cart item retroactions)
|
|
356
|
-
* @param item - The cart item
|
|
357
|
-
* @param locale
|
|
358
|
-
* @param type - Which name(s) to use (either parent name, decli name, or both)
|
|
359
|
-
*/
|
|
360
|
-
const getProductNameToUse = (item, locale, type) => {
|
|
361
|
-
const productName = !!item.parent_name ? (0, locale_1.getLocaleOfDictionnary)(item.parent_name, locale) : '';
|
|
362
|
-
const decliName = !!item.name ? (0, locale_1.getLocaleOfDictionnary)(item.name, locale) : '';
|
|
363
|
-
let bothNames = [];
|
|
364
|
-
if (!!productName)
|
|
365
|
-
bothNames.push(productName);
|
|
366
|
-
if (!!decliName)
|
|
367
|
-
bothNames.push(decliName);
|
|
368
|
-
const nameStr = type === TCG_1.ItemNameVariantEnum.BOTH
|
|
369
|
-
? bothNames.join(' | ')
|
|
370
|
-
: type === TCG_1.ItemNameVariantEnum.PARENT
|
|
371
|
-
? productName
|
|
372
|
-
: decliName;
|
|
373
|
-
return nameStr;
|
|
374
|
-
};
|
|
375
|
-
exports.getProductNameToUse = getProductNameToUse;
|
|
376
|
-
/**
|
|
377
|
-
* Construct labels for TCG Service attributes from full array of space attributes
|
|
378
|
-
* @param allAttributes
|
|
379
|
-
*/
|
|
380
|
-
const constructTcgAttributeLabels = (allAttributes) => {
|
|
381
|
-
let allValues = { tcg_finish: {}, tcg_condition: {}, tcg_language: {} };
|
|
382
|
-
if (!!!allAttributes.length)
|
|
383
|
-
return allValues;
|
|
384
|
-
const fullFinishAttr = allAttributes.find((a) => a.slug == 'tcg_finish');
|
|
385
|
-
const fullConditionAttr = allAttributes.find((a) => a.slug == 'tcg_condition');
|
|
386
|
-
const fullLangAttr = allAttributes.find((a) => a.slug == 'tcg_language');
|
|
387
|
-
// a. FINISH VALUES
|
|
388
|
-
if (fullFinishAttr && fullFinishAttr.values.length) {
|
|
389
|
-
for (let value of fullFinishAttr.values) {
|
|
390
|
-
if (value.default_tag) {
|
|
391
|
-
allValues.tcg_finish[value.slug] = Object.assign({ tag: value.default_tag, value: value.value }, (value.default_tag == 'nor' ? { shortLabel: value.value } : {}));
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
// b. CONDITION VALUES
|
|
396
|
-
if (fullConditionAttr && fullConditionAttr.values.length) {
|
|
397
|
-
for (let value of fullConditionAttr.values) {
|
|
398
|
-
if (value.default_tag) {
|
|
399
|
-
allValues.tcg_condition[value.slug] = { tag: value.default_tag, value: value.value };
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
// c. LANG VALUES
|
|
404
|
-
if (fullLangAttr && fullLangAttr.values.length) {
|
|
405
|
-
for (let value of fullLangAttr.values) {
|
|
406
|
-
if (value.default_tag) {
|
|
407
|
-
allValues.tcg_language[value.slug] = { tag: value.default_tag, value: value.value };
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
return allValues;
|
|
412
|
-
};
|
|
413
|
-
exports.constructTcgAttributeLabels = constructTcgAttributeLabels;
|
|
414
|
-
/**
|
|
415
|
-
* Construct and return attribute string for cart item based on TCG attribute values
|
|
416
|
-
* @param itemAttributes Current item attributes
|
|
417
|
-
* @param allTcgAttributes All potential TCG attribute values
|
|
418
|
-
* @returns {string} Pertinent attribute values seperated by '-'. Attributes options returned are : FINISH - CONDITION - LANG
|
|
419
|
-
*/
|
|
420
|
-
const getTcgAttributesToShow = (itemAttributes, allTcgAttributes) => {
|
|
421
|
-
if (!allTcgAttributes)
|
|
422
|
-
return '';
|
|
423
|
-
const attrStr = [];
|
|
424
|
-
for (let [id, values] of Object.entries(allTcgAttributes)) {
|
|
425
|
-
const sameAttr = itemAttributes[id];
|
|
426
|
-
if (!sameAttr)
|
|
427
|
-
continue;
|
|
428
|
-
const sameValue = values[sameAttr[0]];
|
|
429
|
-
if (!sameValue)
|
|
430
|
-
continue;
|
|
431
|
-
const strToUse = sameValue.shortLabel
|
|
432
|
-
? (0, locale_1.getLocaleOfDictionnary)(sameValue.shortLabel, 'en')
|
|
433
|
-
: id == TCG_1.TCGAttributesEnum.FINISH
|
|
434
|
-
? (0, locale_1.getLocaleOfDictionnary)(sameValue.value, 'en')
|
|
435
|
-
: sameValue.tag || '';
|
|
436
|
-
attrStr.push(id != TCG_1.TCGAttributesEnum.FINISH ? strToUse.toUpperCase() : strToUse);
|
|
437
|
-
}
|
|
438
|
-
return attrStr.join(' - ');
|
|
439
|
-
};
|
|
440
|
-
exports.getTcgAttributesToShow = getTcgAttributesToShow;
|
|
441
|
-
// -------------------------------------------------------------------------------------------
|
|
442
|
-
// #region BUYBACK PRICES
|
|
443
|
-
const _checkIfPriceInTier = (priceToCheck, operator, values) => {
|
|
444
|
-
if (typeof values[0] != 'number')
|
|
445
|
-
return false;
|
|
446
|
-
switch (operator) {
|
|
447
|
-
case '<':
|
|
448
|
-
return typeof values[0] == 'number' && priceToCheck < values[0];
|
|
449
|
-
case '<=':
|
|
450
|
-
return typeof values[0] == 'number' && priceToCheck <= values[0];
|
|
451
|
-
case '>':
|
|
452
|
-
return typeof values[0] == 'number' && priceToCheck > values[0];
|
|
453
|
-
case '>=':
|
|
454
|
-
return typeof values[0] == 'number' && priceToCheck >= values[0];
|
|
455
|
-
case 'between':
|
|
456
|
-
return (typeof values[0] == 'number' &&
|
|
457
|
-
typeof values[1] == 'number' &&
|
|
458
|
-
priceToCheck >= values[0] &&
|
|
459
|
-
priceToCheck <= values[1]);
|
|
460
|
-
}
|
|
461
|
-
};
|
|
462
|
-
/**
|
|
463
|
-
* Calculate buyback price for a specified regular price and category slug
|
|
464
|
-
* @param logicReferenceObj The logic reference object ot check. Defined and provided by space.
|
|
465
|
-
* @param price The price to check
|
|
466
|
-
* @param category The TCG category slug from supported list. Defined and provided by space.
|
|
467
|
-
*/
|
|
468
|
-
function _calculateBuyBackPrice(logicReferenceObj, price, category, finish) {
|
|
469
|
-
const sameCatLogic = logicReferenceObj[category];
|
|
470
|
-
let foundPrice = { buyback: false, regTcgPrice: price, finish };
|
|
471
|
-
for (let tier of sameCatLogic) {
|
|
472
|
-
if (_checkIfPriceInTier(price, tier.operator, tier.regPrice)) {
|
|
473
|
-
foundPrice.buyback = tier.buyback;
|
|
474
|
-
if (tier.buyback && tier.buyBackPercent) {
|
|
475
|
-
foundPrice.calculatedPrice = (0, round_1.default)((price * tier.buyBackPercent) / 100, 2);
|
|
476
|
-
}
|
|
477
|
-
break;
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
return foundPrice;
|
|
481
|
-
}
|
|
482
|
-
/**
|
|
483
|
-
* Calculate buyback prices for a list of tcg card price data
|
|
484
|
-
* @param cards The tcg card prices to check
|
|
485
|
-
*/
|
|
486
|
-
function getBuybackPricesForTcgCards(logicReferenceObj, cards) {
|
|
487
|
-
let buybackPrices = {};
|
|
488
|
-
for (let [slug, values] of Object.entries(cards)) {
|
|
489
|
-
buybackPrices[slug] = values.map((v) => _calculateBuyBackPrice(logicReferenceObj, v.price, v.category, v.subType));
|
|
490
|
-
}
|
|
491
|
-
return buybackPrices;
|
|
492
|
-
}
|
|
493
|
-
exports.getBuybackPricesForTcgCards = getBuybackPricesForTcgCards;
|
|
494
|
-
// #endregion
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getBuybackPricesForTcgCards = exports.getTcgAttributesToShow = exports.constructTcgAttributeLabels = exports.getProductNameToUse = exports.getAvailableInventoryForCurrentStore = exports.constructEmptyTcgInventoryItem = exports.constructTcgDeclinationFromCartItem = exports.constructTcgDeclinationAttributesFromCartItem = exports.constructTcgSkuFromAttributes = exports.findCorrespondingDecliByAttributes = exports.getProductSetLabelTranslationObj = exports.getProductSetLabel = exports.constructAllFinishOptions = exports.constructAllLangOptions = exports.filterAndOrderDeclinations = exports.getGradientForFinish = exports.getTcgFinishAttrOrder = exports.getDefaultTcgExternalServiceParams = void 0;
|
|
7
|
+
const uniqBy_1 = __importDefault(require("lodash/uniqBy"));
|
|
8
|
+
const orderBy_1 = __importDefault(require("lodash/orderBy"));
|
|
9
|
+
const round_1 = __importDefault(require("lodash/round"));
|
|
10
|
+
const TCG_1 = require("../Interfaces/TCG");
|
|
11
|
+
const TCG_2 = require("../Interfaces/TCG");
|
|
12
|
+
const IInventoryItem_1 = require("../Interfaces/Product/IInventoryItem");
|
|
13
|
+
const Declination_1 = require("../Interfaces/Declination");
|
|
14
|
+
const IExternalService_1 = require("../Interfaces/Space/IExternalService");
|
|
15
|
+
const object_1 = require("../utils/object");
|
|
16
|
+
const locale_1 = require("../utils/locale");
|
|
17
|
+
const getDefaultTcgExternalServiceParams = () => ({
|
|
18
|
+
cardgame_slugs: [],
|
|
19
|
+
default_parent_category: null,
|
|
20
|
+
buyback_cards_active: false
|
|
21
|
+
});
|
|
22
|
+
exports.getDefaultTcgExternalServiceParams = getDefaultTcgExternalServiceParams;
|
|
23
|
+
/**
|
|
24
|
+
* Get show order for a given value
|
|
25
|
+
* @param finishAttrValue
|
|
26
|
+
*/
|
|
27
|
+
const getTcgFinishAttrOrder = (finishAttrValue = TCG_2.TCGCardFinishEnum.NORMAL) => {
|
|
28
|
+
const expectedFinishOrder = [
|
|
29
|
+
TCG_2.TCGCardFinishEnum.NORMAL,
|
|
30
|
+
TCG_2.TCGCardFinishEnum.FOIL,
|
|
31
|
+
TCG_2.TCGCardFinishEnum.HOLO,
|
|
32
|
+
TCG_2.TCGCardFinishEnum.HOLOFOIL,
|
|
33
|
+
TCG_2.TCGCardFinishEnum.RAINBOW_FOIL,
|
|
34
|
+
TCG_2.TCGCardFinishEnum.COLDFOIL,
|
|
35
|
+
TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL,
|
|
36
|
+
TCG_2.TCGCardFinishEnum.ETCHED,
|
|
37
|
+
TCG_2.TCGCardFinishEnum.UNLIMITED,
|
|
38
|
+
TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL,
|
|
39
|
+
TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL,
|
|
40
|
+
TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL,
|
|
41
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION,
|
|
42
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
|
|
43
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
|
|
44
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
|
|
45
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
|
|
46
|
+
];
|
|
47
|
+
return expectedFinishOrder.indexOf(finishAttrValue) + 1;
|
|
48
|
+
};
|
|
49
|
+
exports.getTcgFinishAttrOrder = getTcgFinishAttrOrder;
|
|
50
|
+
const getGradientForFinish = (finish) => {
|
|
51
|
+
switch (finish) {
|
|
52
|
+
case TCG_2.TCGCardFinishEnum.NORMAL:
|
|
53
|
+
return 'normal';
|
|
54
|
+
case TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL:
|
|
55
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL:
|
|
56
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL:
|
|
57
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL:
|
|
58
|
+
case TCG_2.TCGCardFinishEnum.RAINBOW_FOIL:
|
|
59
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL:
|
|
60
|
+
return 'multi';
|
|
61
|
+
case TCG_2.TCGCardFinishEnum.COLDFOIL:
|
|
62
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL:
|
|
63
|
+
return 'cold';
|
|
64
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED:
|
|
65
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL:
|
|
66
|
+
case TCG_2.TCGCardFinishEnum.ETCHED:
|
|
67
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION:
|
|
68
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL:
|
|
69
|
+
return 'other';
|
|
70
|
+
case TCG_2.TCGCardFinishEnum.FOIL:
|
|
71
|
+
case TCG_2.TCGCardFinishEnum.HOLO:
|
|
72
|
+
case TCG_2.TCGCardFinishEnum.HOLOFOIL:
|
|
73
|
+
default:
|
|
74
|
+
return 'gold';
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
exports.getGradientForFinish = getGradientForFinish;
|
|
78
|
+
/**
|
|
79
|
+
* Get currently available declinations, ordered by finish attribute (TCG), and by current POS space lang (language attribute TCG)
|
|
80
|
+
* @param declinationData - Array of data used to order entries + full entry to return
|
|
81
|
+
* @param locale
|
|
82
|
+
* @param allInventories
|
|
83
|
+
*/
|
|
84
|
+
const filterAndOrderDeclinations = (declinationData = [],
|
|
85
|
+
// declinations: IIndexedDeclinationAlgolia[] | IIndexedDeclination[] | undefined,
|
|
86
|
+
locale, allInventories, skipInventoryCheck) => {
|
|
87
|
+
if (!declinationData.length)
|
|
88
|
+
return [];
|
|
89
|
+
// A. Filter out any unavailable declinations from possible options
|
|
90
|
+
const removedUnavailableDeclis = skipInventoryCheck
|
|
91
|
+
? declinationData
|
|
92
|
+
: declinationData.filter((d) => {
|
|
93
|
+
return allInventories.some((i) => i.sku == d.sku);
|
|
94
|
+
});
|
|
95
|
+
// B. Order by finish attribute first, then by lang
|
|
96
|
+
const orderedValues = (0, orderBy_1.default)(removedUnavailableDeclis, (d) => {
|
|
97
|
+
let startNb = 2;
|
|
98
|
+
const finishAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_finish');
|
|
99
|
+
if (finishAttr) {
|
|
100
|
+
// Multiply start number by finish attr order
|
|
101
|
+
startNb *= (0, exports.getTcgFinishAttrOrder)(finishAttr[0]);
|
|
102
|
+
}
|
|
103
|
+
// If lang attr same as current lang for POS, remove 1 to bring higher up in array
|
|
104
|
+
const langAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_language');
|
|
105
|
+
if (locale && langAttr && langAttr[0] == `tcg_lang_${locale}`) {
|
|
106
|
+
startNb -= 1;
|
|
107
|
+
}
|
|
108
|
+
return startNb;
|
|
109
|
+
});
|
|
110
|
+
return orderedValues.map((o) => o.fullDecli);
|
|
111
|
+
};
|
|
112
|
+
exports.filterAndOrderDeclinations = filterAndOrderDeclinations;
|
|
113
|
+
const _getDefaultLangOption = (defaultLangToReturn, allTcgAttrLabels, locale) => {
|
|
114
|
+
if (!allTcgAttrLabels || !defaultLangToReturn)
|
|
115
|
+
return [];
|
|
116
|
+
const sameInAllLabels = allTcgAttrLabels.tcg_language[defaultLangToReturn];
|
|
117
|
+
if (sameInAllLabels) {
|
|
118
|
+
return [
|
|
119
|
+
{
|
|
120
|
+
slug: defaultLangToReturn,
|
|
121
|
+
label: sameInAllLabels.tag || defaultLangToReturn,
|
|
122
|
+
fullLabel: (0, locale_1.getLocaleOfDictionnary)(sameInAllLabels.value, locale)
|
|
123
|
+
}
|
|
124
|
+
];
|
|
125
|
+
}
|
|
126
|
+
return [];
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Construct all options for Language attribute (TCG), based on available declinations
|
|
130
|
+
* @param declinations
|
|
131
|
+
* @param allTcgAttrLabels All constructed labels based on expected TCG attributes
|
|
132
|
+
* @param locale Current POS locale
|
|
133
|
+
* @param defaultLangToReturn Optionnal. If a default value should be returned, even if declination array is empty. Corresponds to the value for the specific language attribute (ex. tcg_lang_en)
|
|
134
|
+
*/
|
|
135
|
+
const constructAllLangOptions = (declinations, allTcgAttrLabels, locale, defaultLangToReturn) => {
|
|
136
|
+
if (!declinations.length) {
|
|
137
|
+
// Check to return default value
|
|
138
|
+
return _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
|
|
139
|
+
}
|
|
140
|
+
const allOptions = [];
|
|
141
|
+
for (let variation of declinations) {
|
|
142
|
+
const tcgLangAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.LANG}`);
|
|
143
|
+
if (!tcgLangAttr) {
|
|
144
|
+
// Check to return default value
|
|
145
|
+
const defaultOpt = _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
|
|
146
|
+
if (!!defaultOpt.length)
|
|
147
|
+
allOptions.push(defaultOpt[0]);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
const langSlug = tcgLangAttr[0];
|
|
151
|
+
if (langSlug && !allOptions.some((o) => o.slug == langSlug)) {
|
|
152
|
+
const sameLabel = !!allTcgAttrLabels ? allTcgAttrLabels.tcg_language[langSlug] : undefined;
|
|
153
|
+
allOptions.push({
|
|
154
|
+
slug: langSlug,
|
|
155
|
+
label: sameLabel && sameLabel.tag ? sameLabel.tag : tcgLangAttr[0],
|
|
156
|
+
fullLabel: sameLabel ? (0, locale_1.getLocaleOfDictionnary)(sameLabel.value, locale) : tcgLangAttr[0]
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return allOptions;
|
|
161
|
+
};
|
|
162
|
+
exports.constructAllLangOptions = constructAllLangOptions;
|
|
163
|
+
/**
|
|
164
|
+
* Construct all unique finish and condition attribute combinations (TCG), based on available declinations
|
|
165
|
+
* @param declinations
|
|
166
|
+
* @param allTcgAttrLabels
|
|
167
|
+
*/
|
|
168
|
+
const constructAllFinishOptions = (declinations, allTcgAttrLabels, locale) => {
|
|
169
|
+
if (!allTcgAttrLabels)
|
|
170
|
+
return [];
|
|
171
|
+
if (!declinations.length)
|
|
172
|
+
return [];
|
|
173
|
+
// a. Create combinations based on variations
|
|
174
|
+
// Only keep combos where condition attr is set
|
|
175
|
+
const allCombinaitions = declinations
|
|
176
|
+
.map((variation) => {
|
|
177
|
+
const tcgFinishAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.FINISH}`);
|
|
178
|
+
const tcgConditionAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${[TCG_2.TCGVariationAttributesEnum.CONDITION]}`);
|
|
179
|
+
return {
|
|
180
|
+
[TCG_2.TCGVariationAttributesEnum.CONDITION]: !tcgConditionAttr || !tcgConditionAttr.length
|
|
181
|
+
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.CONDITION]
|
|
182
|
+
: tcgConditionAttr[0],
|
|
183
|
+
[TCG_2.TCGVariationAttributesEnum.FINISH]: !tcgFinishAttr || !tcgFinishAttr.length
|
|
184
|
+
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.FINISH]
|
|
185
|
+
: tcgFinishAttr[0]
|
|
186
|
+
};
|
|
187
|
+
})
|
|
188
|
+
.filter((v) => v.tcg_condition);
|
|
189
|
+
// b. Filter out duplicates
|
|
190
|
+
const removedDuplicates = (0, uniqBy_1.default)(allCombinaitions, (v) => `${v.tcg_condition}${v.tcg_finish ? '_' + v.tcg_finish : ''}`);
|
|
191
|
+
// c. Return constructed options object array
|
|
192
|
+
return removedDuplicates.map((combAttr) => {
|
|
193
|
+
const condLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.value`);
|
|
194
|
+
const finishLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.FINISH}.${combAttr.tcg_finish}.value`);
|
|
195
|
+
let fullLabelArray = [];
|
|
196
|
+
if (finishLabel)
|
|
197
|
+
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(finishLabel, locale));
|
|
198
|
+
if (condLabel)
|
|
199
|
+
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(condLabel, locale));
|
|
200
|
+
return {
|
|
201
|
+
label: `${(0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.tag`) || combAttr.tcg_condition}`,
|
|
202
|
+
variant: combAttr.tcg_finish,
|
|
203
|
+
value: combAttr,
|
|
204
|
+
fullLabel: fullLabelArray.join(' - '),
|
|
205
|
+
extraLabel: [
|
|
206
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION,
|
|
207
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
|
|
208
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
|
|
209
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
|
|
210
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
|
|
211
|
+
].includes(combAttr.tcg_finish)
|
|
212
|
+
? ' 1st'
|
|
213
|
+
: ''
|
|
214
|
+
};
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
exports.constructAllFinishOptions = constructAllFinishOptions;
|
|
218
|
+
/**
|
|
219
|
+
* Get set label for a given card attributes in specified locale
|
|
220
|
+
* @param prodAttributes
|
|
221
|
+
* @param allAttributes
|
|
222
|
+
* @param locale
|
|
223
|
+
*/
|
|
224
|
+
const getProductSetLabel = (prodAttributes, allAttributes, locale) => {
|
|
225
|
+
if (!prodAttributes)
|
|
226
|
+
return '';
|
|
227
|
+
const result = (0, exports.getProductSetLabelTranslationObj)(prodAttributes, allAttributes, [locale || 'fr']);
|
|
228
|
+
return (0, locale_1.getLocaleOfDictionnary)(result, locale);
|
|
229
|
+
};
|
|
230
|
+
exports.getProductSetLabel = getProductSetLabel;
|
|
231
|
+
/**
|
|
232
|
+
* Get set label ITranslation array for a given card attributes
|
|
233
|
+
* @param prodAttributes Indexed product attributes to check
|
|
234
|
+
* @param allAttributes Full IAttribute array
|
|
235
|
+
* @param spaceSupportedLocales Optionnal. Defaults to ['fr', 'en']
|
|
236
|
+
*/
|
|
237
|
+
const getProductSetLabelTranslationObj = (prodAttributes, allAttributes, spaceSupportedLocales = ['fr', 'en']) => {
|
|
238
|
+
if (!prodAttributes)
|
|
239
|
+
return [];
|
|
240
|
+
const tcgSetAttr = prodAttributes[TCG_1.TCGAttributesEnum.SET];
|
|
241
|
+
if (!tcgSetAttr)
|
|
242
|
+
return [];
|
|
243
|
+
const defaultValue = (0, locale_1.getLanguageDictFromString)(tcgSetAttr[0], spaceSupportedLocales);
|
|
244
|
+
if (!allAttributes.length)
|
|
245
|
+
return defaultValue;
|
|
246
|
+
const sameAttr = allAttributes.find((a) => a.slug == TCG_1.TCGAttributesEnum.SET);
|
|
247
|
+
if (!sameAttr)
|
|
248
|
+
return defaultValue;
|
|
249
|
+
const sameValue = sameAttr.values.find((v) => v.slug == tcgSetAttr[0]);
|
|
250
|
+
return (sameValue === null || sameValue === void 0 ? void 0 : sameValue.value) || defaultValue;
|
|
251
|
+
};
|
|
252
|
+
exports.getProductSetLabelTranslationObj = getProductSetLabelTranslationObj;
|
|
253
|
+
/**
|
|
254
|
+
* Get first found declination from list where passed attribute values found in decli
|
|
255
|
+
* @param decliList
|
|
256
|
+
* @param attributesToCheck Values of chosen TCG attributes to check for in decli.
|
|
257
|
+
*/
|
|
258
|
+
const findCorrespondingDecliByAttributes = (decliList, attributesToCheck) => {
|
|
259
|
+
if (Object.values(attributesToCheck).every((attr) => attr == undefined))
|
|
260
|
+
return;
|
|
261
|
+
const decliWithSameValues = decliList.find((d) => {
|
|
262
|
+
let foundSameCount = 0;
|
|
263
|
+
const arrayToCheck = Object.entries(attributesToCheck);
|
|
264
|
+
for (let [attrSlug, value] of arrayToCheck) {
|
|
265
|
+
const attrValueToCheck = (0, object_1.recursiveCheckObject)(d, `attributes.${attrSlug}.0`) ||
|
|
266
|
+
(0, object_1.recursiveCheckObject)(TCG_2.defaultValuesForTcgAttributes, attrSlug);
|
|
267
|
+
if (attrValueToCheck == value) {
|
|
268
|
+
foundSameCount += 1;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return foundSameCount == arrayToCheck.length;
|
|
272
|
+
});
|
|
273
|
+
return decliWithSameValues;
|
|
274
|
+
};
|
|
275
|
+
exports.findCorrespondingDecliByAttributes = findCorrespondingDecliByAttributes;
|
|
276
|
+
/**
|
|
277
|
+
* Construct sku for declinations from parent product slug and TCG attributes (one segment per attribute's
|
|
278
|
+
* default_tag, in the order given, e.g. <product_slug>_<finish>_<condition>_<language>)
|
|
279
|
+
* @param baseSlug The parent product slug
|
|
280
|
+
* @param declinationsToUse Array of declinations to use, in Addio DeclinationAttribut form
|
|
281
|
+
*/
|
|
282
|
+
const constructTcgSkuFromAttributes = (baseSlug, declinationsToUse) => baseSlug +
|
|
283
|
+
'_' +
|
|
284
|
+
declinationsToUse
|
|
285
|
+
.filter((x) => x.values.length > 0 && x.values[0].default_tag)
|
|
286
|
+
.map((x) => x.values[0].default_tag)
|
|
287
|
+
.join('_');
|
|
288
|
+
exports.constructTcgSkuFromAttributes = constructTcgSkuFromAttributes;
|
|
289
|
+
/**
|
|
290
|
+
* Get a single TCG variation attribute's (finish / condition / language) value off a cart item's attributes
|
|
291
|
+
* @param itemAttributes The cart item's attributes to check
|
|
292
|
+
* @param attributeId Which TCG variation attribute to read
|
|
293
|
+
*/
|
|
294
|
+
const getTcgVariationAttributeValue = (itemAttributes, attributeId) => { var _a; return (_a = itemAttributes === null || itemAttributes === void 0 ? void 0 : itemAttributes[attributeId]) === null || _a === void 0 ? void 0 : _a[0]; };
|
|
295
|
+
/**
|
|
296
|
+
* Construct declination attributes (TCG finish / condition / language) based on a cart item's own attributes
|
|
297
|
+
* @param itemAttributes The cart item's attributes to check
|
|
298
|
+
*/
|
|
299
|
+
const constructTcgDeclinationAttributesFromCartItem = (itemAttributes) => {
|
|
300
|
+
const attributes = [];
|
|
301
|
+
for (const attributeId of [
|
|
302
|
+
TCG_2.TCGVariationAttributesEnum.FINISH,
|
|
303
|
+
TCG_2.TCGVariationAttributesEnum.CONDITION,
|
|
304
|
+
TCG_2.TCGVariationAttributesEnum.LANG
|
|
305
|
+
]) {
|
|
306
|
+
const value = getTcgVariationAttributeValue(itemAttributes, attributeId);
|
|
307
|
+
if (!!!value)
|
|
308
|
+
continue;
|
|
309
|
+
attributes.push({ attribute_id: attributeId, values: [{ slug: value, value: [], default_tag: value }] });
|
|
310
|
+
}
|
|
311
|
+
return attributes;
|
|
312
|
+
};
|
|
313
|
+
exports.constructTcgDeclinationAttributesFromCartItem = constructTcgDeclinationAttributesFromCartItem;
|
|
314
|
+
/**
|
|
315
|
+
* Build a new declination for a TCG product variant that doesn't exist yet on the product, based on a cart item
|
|
316
|
+
* that references it. Returns undefined if the item isn't a valid TCG variant reference (missing attributes, or
|
|
317
|
+
* the resulting sku doesn't actually correspond to the cart item's sku)
|
|
318
|
+
* @param item The cart item referencing the missing variant
|
|
319
|
+
* @param productData The parent TCG product
|
|
320
|
+
*/
|
|
321
|
+
const constructTcgDeclinationFromCartItem = (item, productData) => {
|
|
322
|
+
const attributes = (0, exports.constructTcgDeclinationAttributesFromCartItem)(item.attributes);
|
|
323
|
+
if (!!!attributes.length)
|
|
324
|
+
return undefined;
|
|
325
|
+
const sku = (0, exports.constructTcgSkuFromAttributes)(productData.slug, attributes);
|
|
326
|
+
// Only build the declination when it actually reproduces the cart item's sku - otherwise the freshly
|
|
327
|
+
// created declination/inventory would be orphaned from item.sku
|
|
328
|
+
if (!!!sku || sku !== item.sku)
|
|
329
|
+
return undefined;
|
|
330
|
+
return Object.assign(Object.assign({}, (0, Declination_1.emptyDeclination)()), { sku, slug: productData.slug, name: productData.name, description: productData.description || [], attributes, created_from_external_service: IExternalService_1.ExternalServiceSlugEnum.TCG_SERVICE });
|
|
331
|
+
};
|
|
332
|
+
exports.constructTcgDeclinationFromCartItem = constructTcgDeclinationFromCartItem;
|
|
333
|
+
/**
|
|
334
|
+
* Build an empty (no quantities) inventory item for a newly created TCG declination
|
|
335
|
+
* @param declination The declination the inventory item is for
|
|
336
|
+
* @param productData The parent product
|
|
337
|
+
* @param stores All current stores for space. Used to poppulate inventories property
|
|
338
|
+
* @param userId The current user behind the request
|
|
339
|
+
*/
|
|
340
|
+
const constructEmptyTcgInventoryItem = (declination, productData, stores, userId) => (Object.assign(Object.assign({}, (0, IInventoryItem_1.getDefaultInventoryItem)(stores, userId, { addEmptyWebInventory: true })), { sku: declination.sku, parent_slug: productData.slug, parent_name: productData.name, name: declination.name, brand: productData.brand || '', categories: productData.category ? [productData.category] : [] }));
|
|
341
|
+
exports.constructEmptyTcgInventoryItem = constructEmptyTcgInventoryItem;
|
|
342
|
+
/**
|
|
343
|
+
* Get the available inventory for the currently selected store (found in local storage)
|
|
344
|
+
* @param inventoryItem
|
|
345
|
+
*/
|
|
346
|
+
const getAvailableInventoryForCurrentStore = (inventoryItem) => {
|
|
347
|
+
const currentStore = localStorage.getItem('branch') || '';
|
|
348
|
+
const sameStoreInv = inventoryItem.inventories.find((i) => i.store_id == currentStore);
|
|
349
|
+
if (!sameStoreInv)
|
|
350
|
+
return 0;
|
|
351
|
+
return sameStoreInv.qty.available;
|
|
352
|
+
};
|
|
353
|
+
exports.getAvailableInventoryForCurrentStore = getAvailableInventoryForCurrentStore;
|
|
354
|
+
/**
|
|
355
|
+
* Construct product or decli name to show (mostly for cart item retroactions)
|
|
356
|
+
* @param item - The cart item
|
|
357
|
+
* @param locale
|
|
358
|
+
* @param type - Which name(s) to use (either parent name, decli name, or both)
|
|
359
|
+
*/
|
|
360
|
+
const getProductNameToUse = (item, locale, type) => {
|
|
361
|
+
const productName = !!item.parent_name ? (0, locale_1.getLocaleOfDictionnary)(item.parent_name, locale) : '';
|
|
362
|
+
const decliName = !!item.name ? (0, locale_1.getLocaleOfDictionnary)(item.name, locale) : '';
|
|
363
|
+
let bothNames = [];
|
|
364
|
+
if (!!productName)
|
|
365
|
+
bothNames.push(productName);
|
|
366
|
+
if (!!decliName)
|
|
367
|
+
bothNames.push(decliName);
|
|
368
|
+
const nameStr = type === TCG_1.ItemNameVariantEnum.BOTH
|
|
369
|
+
? bothNames.join(' | ')
|
|
370
|
+
: type === TCG_1.ItemNameVariantEnum.PARENT
|
|
371
|
+
? productName
|
|
372
|
+
: decliName;
|
|
373
|
+
return nameStr;
|
|
374
|
+
};
|
|
375
|
+
exports.getProductNameToUse = getProductNameToUse;
|
|
376
|
+
/**
|
|
377
|
+
* Construct labels for TCG Service attributes from full array of space attributes
|
|
378
|
+
* @param allAttributes
|
|
379
|
+
*/
|
|
380
|
+
const constructTcgAttributeLabels = (allAttributes) => {
|
|
381
|
+
let allValues = { tcg_finish: {}, tcg_condition: {}, tcg_language: {} };
|
|
382
|
+
if (!!!allAttributes.length)
|
|
383
|
+
return allValues;
|
|
384
|
+
const fullFinishAttr = allAttributes.find((a) => a.slug == 'tcg_finish');
|
|
385
|
+
const fullConditionAttr = allAttributes.find((a) => a.slug == 'tcg_condition');
|
|
386
|
+
const fullLangAttr = allAttributes.find((a) => a.slug == 'tcg_language');
|
|
387
|
+
// a. FINISH VALUES
|
|
388
|
+
if (fullFinishAttr && fullFinishAttr.values.length) {
|
|
389
|
+
for (let value of fullFinishAttr.values) {
|
|
390
|
+
if (value.default_tag) {
|
|
391
|
+
allValues.tcg_finish[value.slug] = Object.assign({ tag: value.default_tag, value: value.value }, (value.default_tag == 'nor' ? { shortLabel: value.value } : {}));
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
// b. CONDITION VALUES
|
|
396
|
+
if (fullConditionAttr && fullConditionAttr.values.length) {
|
|
397
|
+
for (let value of fullConditionAttr.values) {
|
|
398
|
+
if (value.default_tag) {
|
|
399
|
+
allValues.tcg_condition[value.slug] = { tag: value.default_tag, value: value.value };
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
// c. LANG VALUES
|
|
404
|
+
if (fullLangAttr && fullLangAttr.values.length) {
|
|
405
|
+
for (let value of fullLangAttr.values) {
|
|
406
|
+
if (value.default_tag) {
|
|
407
|
+
allValues.tcg_language[value.slug] = { tag: value.default_tag, value: value.value };
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
return allValues;
|
|
412
|
+
};
|
|
413
|
+
exports.constructTcgAttributeLabels = constructTcgAttributeLabels;
|
|
414
|
+
/**
|
|
415
|
+
* Construct and return attribute string for cart item based on TCG attribute values
|
|
416
|
+
* @param itemAttributes Current item attributes
|
|
417
|
+
* @param allTcgAttributes All potential TCG attribute values
|
|
418
|
+
* @returns {string} Pertinent attribute values seperated by '-'. Attributes options returned are : FINISH - CONDITION - LANG
|
|
419
|
+
*/
|
|
420
|
+
const getTcgAttributesToShow = (itemAttributes, allTcgAttributes) => {
|
|
421
|
+
if (!allTcgAttributes)
|
|
422
|
+
return '';
|
|
423
|
+
const attrStr = [];
|
|
424
|
+
for (let [id, values] of Object.entries(allTcgAttributes)) {
|
|
425
|
+
const sameAttr = itemAttributes[id];
|
|
426
|
+
if (!sameAttr)
|
|
427
|
+
continue;
|
|
428
|
+
const sameValue = values[sameAttr[0]];
|
|
429
|
+
if (!sameValue)
|
|
430
|
+
continue;
|
|
431
|
+
const strToUse = sameValue.shortLabel
|
|
432
|
+
? (0, locale_1.getLocaleOfDictionnary)(sameValue.shortLabel, 'en')
|
|
433
|
+
: id == TCG_1.TCGAttributesEnum.FINISH
|
|
434
|
+
? (0, locale_1.getLocaleOfDictionnary)(sameValue.value, 'en')
|
|
435
|
+
: sameValue.tag || '';
|
|
436
|
+
attrStr.push(id != TCG_1.TCGAttributesEnum.FINISH ? strToUse.toUpperCase() : strToUse);
|
|
437
|
+
}
|
|
438
|
+
return attrStr.join(' - ');
|
|
439
|
+
};
|
|
440
|
+
exports.getTcgAttributesToShow = getTcgAttributesToShow;
|
|
441
|
+
// -------------------------------------------------------------------------------------------
|
|
442
|
+
// #region BUYBACK PRICES
|
|
443
|
+
const _checkIfPriceInTier = (priceToCheck, operator, values) => {
|
|
444
|
+
if (typeof values[0] != 'number')
|
|
445
|
+
return false;
|
|
446
|
+
switch (operator) {
|
|
447
|
+
case '<':
|
|
448
|
+
return typeof values[0] == 'number' && priceToCheck < values[0];
|
|
449
|
+
case '<=':
|
|
450
|
+
return typeof values[0] == 'number' && priceToCheck <= values[0];
|
|
451
|
+
case '>':
|
|
452
|
+
return typeof values[0] == 'number' && priceToCheck > values[0];
|
|
453
|
+
case '>=':
|
|
454
|
+
return typeof values[0] == 'number' && priceToCheck >= values[0];
|
|
455
|
+
case 'between':
|
|
456
|
+
return (typeof values[0] == 'number' &&
|
|
457
|
+
typeof values[1] == 'number' &&
|
|
458
|
+
priceToCheck >= values[0] &&
|
|
459
|
+
priceToCheck <= values[1]);
|
|
460
|
+
}
|
|
461
|
+
};
|
|
462
|
+
/**
|
|
463
|
+
* Calculate buyback price for a specified regular price and category slug
|
|
464
|
+
* @param logicReferenceObj The logic reference object ot check. Defined and provided by space.
|
|
465
|
+
* @param price The price to check
|
|
466
|
+
* @param category The TCG category slug from supported list. Defined and provided by space.
|
|
467
|
+
*/
|
|
468
|
+
function _calculateBuyBackPrice(logicReferenceObj, price, category, finish) {
|
|
469
|
+
const sameCatLogic = logicReferenceObj[category];
|
|
470
|
+
let foundPrice = { buyback: false, regTcgPrice: price, finish };
|
|
471
|
+
for (let tier of sameCatLogic) {
|
|
472
|
+
if (_checkIfPriceInTier(price, tier.operator, tier.regPrice)) {
|
|
473
|
+
foundPrice.buyback = tier.buyback;
|
|
474
|
+
if (tier.buyback && tier.buyBackPercent) {
|
|
475
|
+
foundPrice.calculatedPrice = (0, round_1.default)((price * tier.buyBackPercent) / 100, 2);
|
|
476
|
+
}
|
|
477
|
+
break;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
return foundPrice;
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Calculate buyback prices for a list of tcg card price data
|
|
484
|
+
* @param cards The tcg card prices to check
|
|
485
|
+
*/
|
|
486
|
+
function getBuybackPricesForTcgCards(logicReferenceObj, cards) {
|
|
487
|
+
let buybackPrices = {};
|
|
488
|
+
for (let [slug, values] of Object.entries(cards)) {
|
|
489
|
+
buybackPrices[slug] = values.map((v) => _calculateBuyBackPrice(logicReferenceObj, v.price, v.category, v.subType));
|
|
490
|
+
}
|
|
491
|
+
return buybackPrices;
|
|
492
|
+
}
|
|
493
|
+
exports.getBuybackPricesForTcgCards = getBuybackPricesForTcgCards;
|
|
494
|
+
// #endregion
|
|
495
495
|
//# sourceMappingURL=tcgService.js.map
|