addio-admin-sdk 1.7.167 → 1.7.168
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 +15 -0
- package/.env.dev +14 -14
- package/.github/workflows/run_unit_test.yaml +48 -48
- package/addio-sdk-doc.md +1473 -1473
- package/changelog.md +573 -573
- package/dist/Interfaces/Address/index.d.ts +21 -21
- package/dist/Interfaces/Address/index.js +16 -16
- package/dist/Interfaces/Algolia/index.d.ts +182 -180
- 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/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 +451 -451
- package/dist/Interfaces/Cart/index.js +216 -216
- 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 +117 -117
- package/dist/Interfaces/Declination/index.js +66 -66
- 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 +60 -60
- 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 +556 -556
- package/dist/Interfaces/G2/index.js +38 -38
- 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 +105 -105
- package/dist/Interfaces/Indexed/Product/index.js +253 -253
- 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 +155 -155
- 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 -413
- package/dist/Interfaces/Space/index.js +176 -175
- package/dist/Interfaces/Space/index.js.map +1 -1
- 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 +194 -194
- package/dist/Interfaces/TCG/index.js +60 -60
- 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 +354 -354
- package/dist/lib/Cart/index.js +4031 -4031
- 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 +112 -112
- package/dist/lib/Inventory/index.js +492 -492
- 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/Queue/index.d.ts +40 -40
- package/dist/lib/Queue/index.js +254 -254
- 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 +5841 -5841
- 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 +290 -290
- package/dist/lib/TransferRequest/index.js +1026 -1026
- 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 +22 -22
- package/dist/rules/GR/constants/products.js +263 -263
- package/dist/rules/GR/interfaces/cart.d.ts +84 -84
- package/dist/rules/GR/interfaces/cart.js +41 -41
- 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 +839 -839
- 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 +2016 -2016
- 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 +215 -215
- package/dist/rules/GR/utils/products.d.ts +277 -277
- package/dist/rules/GR/utils/products.js +1350 -1350
- package/dist/rules/GR/utils/upsells.d.ts +111 -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 +967 -967
- package/dist/services/logs/index.d.ts +23 -23
- package/dist/services/logs/index.js +66 -66
- package/dist/services/marketplace/BaseMarketServiceClass.d.ts +69 -69
- package/dist/services/marketplace/BaseMarketServiceClass.js +133 -133
- package/dist/services/marketplace/CardtraderServiceClass.d.ts +33 -33
- package/dist/services/marketplace/CardtraderServiceClass.js +215 -215
- package/dist/services/marketplace/utils.d.ts +17 -17
- package/dist/services/marketplace/utils.js +32 -32
- package/dist/services/products/BaseClass.d.ts +50 -50
- package/dist/services/products/BaseClass.js +66 -66
- package/dist/services/products/TCGService.d.ts +32 -32
- package/dist/services/products/TCGService.js +555 -555
- 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 +272 -272
- package/dist/utils/cart.js +1169 -1169
- package/dist/utils/categories.d.ts +2 -2
- package/dist/utils/categories.js +54 -54
- package/dist/utils/cmv.d.ts +10 -10
- package/dist/utils/cmv.js +107 -107
- 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 +296 -296
- 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 +174 -174
- package/dist/utils/discount.js +1118 -1118
- package/dist/utils/errors.d.ts +118 -118
- package/dist/utils/errors.js +123 -123
- 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 +39 -39
- package/dist/utils/products.js +195 -195
- package/dist/utils/promiseToPurchase.d.ts +88 -88
- package/dist/utils/promiseToPurchase.js +229 -229
- 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 +42 -42
- package/dist/utils/services.js +409 -409
- package/dist/utils/shipment.d.ts +110 -110
- package/dist/utils/shipment.js +345 -345
- 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 +88 -88
- package/dist/utils/tcgService.js +408 -408
- 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,409 +1,409 @@
|
|
|
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.findCorrespondingDecliByAttributes = 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 object_1 = require("../utils/object");
|
|
13
|
-
const locale_1 = require("../utils/locale");
|
|
14
|
-
const getDefaultTcgExternalServiceParams = () => ({
|
|
15
|
-
cardgame_slugs: [],
|
|
16
|
-
default_parent_category: null
|
|
17
|
-
});
|
|
18
|
-
exports.getDefaultTcgExternalServiceParams = getDefaultTcgExternalServiceParams;
|
|
19
|
-
/**
|
|
20
|
-
* Get show order for a given value
|
|
21
|
-
* @param finishAttrValue
|
|
22
|
-
*/
|
|
23
|
-
const getTcgFinishAttrOrder = (finishAttrValue = TCG_2.TCGCardFinishEnum.NORMAL) => {
|
|
24
|
-
const expectedFinishOrder = [
|
|
25
|
-
TCG_2.TCGCardFinishEnum.NORMAL,
|
|
26
|
-
TCG_2.TCGCardFinishEnum.FOIL,
|
|
27
|
-
TCG_2.TCGCardFinishEnum.HOLO,
|
|
28
|
-
TCG_2.TCGCardFinishEnum.HOLOFOIL,
|
|
29
|
-
TCG_2.TCGCardFinishEnum.RAINBOW_FOIL,
|
|
30
|
-
TCG_2.TCGCardFinishEnum.COLDFOIL,
|
|
31
|
-
TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL,
|
|
32
|
-
TCG_2.TCGCardFinishEnum.ETCHED,
|
|
33
|
-
TCG_2.TCGCardFinishEnum.UNLIMITED,
|
|
34
|
-
TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL,
|
|
35
|
-
TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL,
|
|
36
|
-
TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL,
|
|
37
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION,
|
|
38
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
|
|
39
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
|
|
40
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
|
|
41
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
|
|
42
|
-
];
|
|
43
|
-
return expectedFinishOrder.indexOf(finishAttrValue) + 1;
|
|
44
|
-
};
|
|
45
|
-
exports.getTcgFinishAttrOrder = getTcgFinishAttrOrder;
|
|
46
|
-
const getGradientForFinish = (finish) => {
|
|
47
|
-
switch (finish) {
|
|
48
|
-
case TCG_2.TCGCardFinishEnum.NORMAL:
|
|
49
|
-
return 'normal';
|
|
50
|
-
case TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL:
|
|
51
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL:
|
|
52
|
-
case TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL:
|
|
53
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL:
|
|
54
|
-
case TCG_2.TCGCardFinishEnum.RAINBOW_FOIL:
|
|
55
|
-
case TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL:
|
|
56
|
-
return 'multi';
|
|
57
|
-
case TCG_2.TCGCardFinishEnum.COLDFOIL:
|
|
58
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL:
|
|
59
|
-
return 'cold';
|
|
60
|
-
case TCG_2.TCGCardFinishEnum.UNLIMITED:
|
|
61
|
-
case TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL:
|
|
62
|
-
case TCG_2.TCGCardFinishEnum.ETCHED:
|
|
63
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION:
|
|
64
|
-
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL:
|
|
65
|
-
return 'other';
|
|
66
|
-
case TCG_2.TCGCardFinishEnum.FOIL:
|
|
67
|
-
case TCG_2.TCGCardFinishEnum.HOLO:
|
|
68
|
-
case TCG_2.TCGCardFinishEnum.HOLOFOIL:
|
|
69
|
-
default:
|
|
70
|
-
return 'gold';
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
exports.getGradientForFinish = getGradientForFinish;
|
|
74
|
-
/**
|
|
75
|
-
* Get currently available declinations, ordered by finish attribute (TCG), and by current POS space lang (language attribute TCG)
|
|
76
|
-
* @param declinationData - Array of data used to order entries + full entry to return
|
|
77
|
-
* @param locale
|
|
78
|
-
* @param allInventories
|
|
79
|
-
*/
|
|
80
|
-
const filterAndOrderDeclinations = (declinationData = [],
|
|
81
|
-
// declinations: IIndexedDeclinationAlgolia[] | IIndexedDeclination[] | undefined,
|
|
82
|
-
locale, allInventories) => {
|
|
83
|
-
if (!declinationData.length)
|
|
84
|
-
return [];
|
|
85
|
-
// A. Filter out any unavailable declinations from possible options
|
|
86
|
-
const removedUnavailableDeclis = declinationData.filter((d) => {
|
|
87
|
-
return allInventories.some((i) => i.sku == d.sku);
|
|
88
|
-
});
|
|
89
|
-
// B. Order by finish attribute first, then by lang
|
|
90
|
-
const orderedValues = (0, orderBy_1.default)(removedUnavailableDeclis, (d) => {
|
|
91
|
-
let startNb = 2;
|
|
92
|
-
const finishAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_finish');
|
|
93
|
-
if (finishAttr) {
|
|
94
|
-
// Multiply start number by finish attr order
|
|
95
|
-
startNb *= (0, exports.getTcgFinishAttrOrder)(finishAttr[0]);
|
|
96
|
-
}
|
|
97
|
-
// If lang attr same as current lang for POS, remove 1 to bring higher up in array
|
|
98
|
-
const langAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_language');
|
|
99
|
-
if (locale && langAttr && langAttr[0] == `tcg_lang_${locale}`) {
|
|
100
|
-
startNb -= 1;
|
|
101
|
-
}
|
|
102
|
-
return startNb;
|
|
103
|
-
});
|
|
104
|
-
return orderedValues.map((o) => o.fullDecli);
|
|
105
|
-
};
|
|
106
|
-
exports.filterAndOrderDeclinations = filterAndOrderDeclinations;
|
|
107
|
-
const _getDefaultLangOption = (defaultLangToReturn, allTcgAttrLabels, locale) => {
|
|
108
|
-
if (!allTcgAttrLabels || !defaultLangToReturn)
|
|
109
|
-
return [];
|
|
110
|
-
const sameInAllLabels = allTcgAttrLabels.tcg_language[defaultLangToReturn];
|
|
111
|
-
if (sameInAllLabels) {
|
|
112
|
-
return [
|
|
113
|
-
{
|
|
114
|
-
slug: defaultLangToReturn,
|
|
115
|
-
label: sameInAllLabels.tag || defaultLangToReturn,
|
|
116
|
-
fullLabel: (0, locale_1.getLocaleOfDictionnary)(sameInAllLabels.value, locale)
|
|
117
|
-
}
|
|
118
|
-
];
|
|
119
|
-
}
|
|
120
|
-
return [];
|
|
121
|
-
};
|
|
122
|
-
/**
|
|
123
|
-
* Construct all options for Language attribute (TCG), based on available declinations
|
|
124
|
-
* @param declinations
|
|
125
|
-
* @param allTcgAttrLabels All constructed labels based on expected TCG attributes
|
|
126
|
-
* @param locale Current POS locale
|
|
127
|
-
* @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)
|
|
128
|
-
*/
|
|
129
|
-
const constructAllLangOptions = (declinations, allTcgAttrLabels, locale, defaultLangToReturn) => {
|
|
130
|
-
if (!declinations.length) {
|
|
131
|
-
// Check to return default value
|
|
132
|
-
return _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
|
|
133
|
-
}
|
|
134
|
-
const allOptions = [];
|
|
135
|
-
for (let variation of declinations) {
|
|
136
|
-
const tcgLangAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.LANG}`);
|
|
137
|
-
if (!tcgLangAttr) {
|
|
138
|
-
// Check to return default value
|
|
139
|
-
const defaultOpt = _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
|
|
140
|
-
if (!!defaultOpt.length)
|
|
141
|
-
allOptions.push(defaultOpt[0]);
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
const langSlug = tcgLangAttr[0];
|
|
145
|
-
if (langSlug && !allOptions.some((o) => o.slug == langSlug)) {
|
|
146
|
-
const sameLabel = !!allTcgAttrLabels ? allTcgAttrLabels.tcg_language[langSlug] : undefined;
|
|
147
|
-
allOptions.push({
|
|
148
|
-
slug: langSlug,
|
|
149
|
-
label: sameLabel && sameLabel.tag ? sameLabel.tag : tcgLangAttr[0],
|
|
150
|
-
fullLabel: sameLabel ? (0, locale_1.getLocaleOfDictionnary)(sameLabel.value, locale) : tcgLangAttr[0]
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return allOptions;
|
|
155
|
-
};
|
|
156
|
-
exports.constructAllLangOptions = constructAllLangOptions;
|
|
157
|
-
/**
|
|
158
|
-
* Construct all unique finish and condition attribute combinations (TCG), based on available declinations
|
|
159
|
-
* @param declinations
|
|
160
|
-
* @param allTcgAttrLabels
|
|
161
|
-
*/
|
|
162
|
-
const constructAllFinishOptions = (declinations, allTcgAttrLabels, locale) => {
|
|
163
|
-
if (!allTcgAttrLabels)
|
|
164
|
-
return [];
|
|
165
|
-
if (!declinations.length)
|
|
166
|
-
return [];
|
|
167
|
-
// a. Create combinations based on variations
|
|
168
|
-
// Only keep combos where condition attr is set
|
|
169
|
-
const allCombinaitions = declinations
|
|
170
|
-
.map((variation) => {
|
|
171
|
-
const tcgFinishAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.FINISH}`);
|
|
172
|
-
const tcgConditionAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${[TCG_2.TCGVariationAttributesEnum.CONDITION]}`);
|
|
173
|
-
return {
|
|
174
|
-
[TCG_2.TCGVariationAttributesEnum.CONDITION]: !tcgConditionAttr || !tcgConditionAttr.length
|
|
175
|
-
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.CONDITION]
|
|
176
|
-
: tcgConditionAttr[0],
|
|
177
|
-
[TCG_2.TCGVariationAttributesEnum.FINISH]: !tcgFinishAttr || !tcgFinishAttr.length
|
|
178
|
-
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.FINISH]
|
|
179
|
-
: tcgFinishAttr[0]
|
|
180
|
-
};
|
|
181
|
-
})
|
|
182
|
-
.filter((v) => v.tcg_condition);
|
|
183
|
-
// b. Filter out duplicates
|
|
184
|
-
const removedDuplicates = (0, uniqBy_1.default)(allCombinaitions, (v) => `${v.tcg_condition}${v.tcg_finish ? '_' + v.tcg_finish : ''}`);
|
|
185
|
-
// c. Return constructed options object array
|
|
186
|
-
return removedDuplicates.map((combAttr) => {
|
|
187
|
-
const condLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.value`);
|
|
188
|
-
const finishLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.FINISH}.${combAttr.tcg_finish}.value`);
|
|
189
|
-
let fullLabelArray = [];
|
|
190
|
-
if (finishLabel)
|
|
191
|
-
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(finishLabel, locale));
|
|
192
|
-
if (condLabel)
|
|
193
|
-
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(condLabel, locale));
|
|
194
|
-
return {
|
|
195
|
-
label: `${(0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.tag`) || combAttr.tcg_condition}`,
|
|
196
|
-
variant: combAttr.tcg_finish,
|
|
197
|
-
value: combAttr,
|
|
198
|
-
fullLabel: fullLabelArray.join(' - '),
|
|
199
|
-
extraLabel: [
|
|
200
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION,
|
|
201
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
|
|
202
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
|
|
203
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
|
|
204
|
-
TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
|
|
205
|
-
].includes(combAttr.tcg_finish)
|
|
206
|
-
? ' 1st'
|
|
207
|
-
: ''
|
|
208
|
-
};
|
|
209
|
-
});
|
|
210
|
-
};
|
|
211
|
-
exports.constructAllFinishOptions = constructAllFinishOptions;
|
|
212
|
-
/**
|
|
213
|
-
* Get set label for a given card attributes in specified locale
|
|
214
|
-
* @param prodAttributes
|
|
215
|
-
* @param allAttributes
|
|
216
|
-
* @param locale
|
|
217
|
-
*/
|
|
218
|
-
const getProductSetLabel = (prodAttributes, allAttributes, locale) => {
|
|
219
|
-
if (!prodAttributes)
|
|
220
|
-
return '';
|
|
221
|
-
const tcgSetAttr = prodAttributes[TCG_1.TCGAttributesEnum.SET];
|
|
222
|
-
if (!tcgSetAttr)
|
|
223
|
-
return '';
|
|
224
|
-
if (!allAttributes.length)
|
|
225
|
-
return tcgSetAttr[0];
|
|
226
|
-
const sameAttr = allAttributes.find((a) => a.slug == TCG_1.TCGAttributesEnum.SET);
|
|
227
|
-
if (!sameAttr)
|
|
228
|
-
return tcgSetAttr[0];
|
|
229
|
-
const sameValue = sameAttr.values.find((v) => v.slug == tcgSetAttr[0]);
|
|
230
|
-
return sameValue ? (0, locale_1.getLocaleOfDictionnary)(sameValue.value, locale) : tcgSetAttr[0];
|
|
231
|
-
};
|
|
232
|
-
exports.getProductSetLabel = getProductSetLabel;
|
|
233
|
-
/**
|
|
234
|
-
* Get first found declination from list where passed attribute values found in decli
|
|
235
|
-
* @param decliList
|
|
236
|
-
* @param attributesToCheck Values of chosen TCG attributes to check for in decli.
|
|
237
|
-
*/
|
|
238
|
-
const findCorrespondingDecliByAttributes = (decliList, attributesToCheck) => {
|
|
239
|
-
if (Object.values(attributesToCheck).every((attr) => attr == undefined))
|
|
240
|
-
return;
|
|
241
|
-
const decliWithSameValues = decliList.find((d) => {
|
|
242
|
-
let foundSameCount = 0;
|
|
243
|
-
const arrayToCheck = Object.entries(attributesToCheck);
|
|
244
|
-
for (let [attrSlug, value] of arrayToCheck) {
|
|
245
|
-
const attrValueToCheck = (0, object_1.recursiveCheckObject)(d, `attributes.${attrSlug}.0`) ||
|
|
246
|
-
(0, object_1.recursiveCheckObject)(TCG_2.defaultValuesForTcgAttributes, attrSlug);
|
|
247
|
-
if (attrValueToCheck == value) {
|
|
248
|
-
foundSameCount += 1;
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
return foundSameCount == arrayToCheck.length;
|
|
252
|
-
});
|
|
253
|
-
return decliWithSameValues;
|
|
254
|
-
};
|
|
255
|
-
exports.findCorrespondingDecliByAttributes = findCorrespondingDecliByAttributes;
|
|
256
|
-
/**
|
|
257
|
-
* Get the available inventory for the currently selected store (found in local storage)
|
|
258
|
-
* @param inventoryItem
|
|
259
|
-
*/
|
|
260
|
-
const getAvailableInventoryForCurrentStore = (inventoryItem) => {
|
|
261
|
-
const currentStore = localStorage.getItem('branch') || '';
|
|
262
|
-
const sameStoreInv = inventoryItem.inventories.find((i) => i.store_id == currentStore);
|
|
263
|
-
if (!sameStoreInv)
|
|
264
|
-
return 0;
|
|
265
|
-
return sameStoreInv.qty.available;
|
|
266
|
-
};
|
|
267
|
-
exports.getAvailableInventoryForCurrentStore = getAvailableInventoryForCurrentStore;
|
|
268
|
-
/**
|
|
269
|
-
* Construct product or decli name to show (mostly for cart item retroactions)
|
|
270
|
-
* @param item - The cart item
|
|
271
|
-
* @param locale
|
|
272
|
-
* @param type - Which name(s) to use (either parent name, decli name, or both)
|
|
273
|
-
*/
|
|
274
|
-
const getProductNameToUse = (item, locale, type) => {
|
|
275
|
-
const productName = !!item.parent_name ? (0, locale_1.getLocaleOfDictionnary)(item.parent_name, locale) : '';
|
|
276
|
-
const decliName = !!item.name ? (0, locale_1.getLocaleOfDictionnary)(item.name, locale) : '';
|
|
277
|
-
let bothNames = [];
|
|
278
|
-
if (!!productName)
|
|
279
|
-
bothNames.push(productName);
|
|
280
|
-
if (!!decliName)
|
|
281
|
-
bothNames.push(decliName);
|
|
282
|
-
const nameStr = type === TCG_1.ItemNameVariantEnum.BOTH
|
|
283
|
-
? bothNames.join(' | ')
|
|
284
|
-
: type === TCG_1.ItemNameVariantEnum.PARENT
|
|
285
|
-
? productName
|
|
286
|
-
: decliName;
|
|
287
|
-
return nameStr;
|
|
288
|
-
};
|
|
289
|
-
exports.getProductNameToUse = getProductNameToUse;
|
|
290
|
-
/**
|
|
291
|
-
* Construct labels for TCG Service attributes from full array of space attributes
|
|
292
|
-
* @param allAttributes
|
|
293
|
-
*/
|
|
294
|
-
const constructTcgAttributeLabels = (allAttributes) => {
|
|
295
|
-
let allValues = { tcg_finish: {}, tcg_condition: {}, tcg_language: {} };
|
|
296
|
-
if (!!!allAttributes.length)
|
|
297
|
-
return allValues;
|
|
298
|
-
const fullFinishAttr = allAttributes.find((a) => a.slug == 'tcg_finish');
|
|
299
|
-
const fullConditionAttr = allAttributes.find((a) => a.slug == 'tcg_condition');
|
|
300
|
-
const fullLangAttr = allAttributes.find((a) => a.slug == 'tcg_language');
|
|
301
|
-
// a. FINISH VALUES
|
|
302
|
-
if (fullFinishAttr && fullFinishAttr.values.length) {
|
|
303
|
-
for (let value of fullFinishAttr.values) {
|
|
304
|
-
if (value.default_tag) {
|
|
305
|
-
allValues.tcg_finish[value.slug] = Object.assign({ tag: value.default_tag, value: value.value }, (value.default_tag == 'nor' ? { shortLabel: value.value } : {}));
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
// b. CONDITION VALUES
|
|
310
|
-
if (fullConditionAttr && fullConditionAttr.values.length) {
|
|
311
|
-
for (let value of fullConditionAttr.values) {
|
|
312
|
-
if (value.default_tag) {
|
|
313
|
-
allValues.tcg_condition[value.slug] = { tag: value.default_tag, value: value.value };
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
// c. LANG VALUES
|
|
318
|
-
if (fullLangAttr && fullLangAttr.values.length) {
|
|
319
|
-
for (let value of fullLangAttr.values) {
|
|
320
|
-
if (value.default_tag) {
|
|
321
|
-
allValues.tcg_language[value.slug] = { tag: value.default_tag, value: value.value };
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
return allValues;
|
|
326
|
-
};
|
|
327
|
-
exports.constructTcgAttributeLabels = constructTcgAttributeLabels;
|
|
328
|
-
/**
|
|
329
|
-
* Construct and return attribute string for cart item based on TCG attribute values
|
|
330
|
-
* @param itemAttributes Current item attributes
|
|
331
|
-
* @param allTcgAttributes All potential TCG attribute values
|
|
332
|
-
* @returns {string} Pertinent attribute values seperated by '-'. Attributes options returned are : FINISH - CONDITION - LANG
|
|
333
|
-
*/
|
|
334
|
-
const getTcgAttributesToShow = (itemAttributes, allTcgAttributes) => {
|
|
335
|
-
if (!allTcgAttributes)
|
|
336
|
-
return '';
|
|
337
|
-
const attrStr = [];
|
|
338
|
-
for (let [id, values] of Object.entries(allTcgAttributes)) {
|
|
339
|
-
const sameAttr = itemAttributes[id];
|
|
340
|
-
if (!sameAttr)
|
|
341
|
-
continue;
|
|
342
|
-
const sameValue = values[sameAttr[0]];
|
|
343
|
-
if (!sameValue)
|
|
344
|
-
continue;
|
|
345
|
-
const strToUse = sameValue.shortLabel
|
|
346
|
-
? (0, locale_1.getLocaleOfDictionnary)(sameValue.shortLabel, 'en')
|
|
347
|
-
: id == TCG_1.TCGAttributesEnum.FINISH
|
|
348
|
-
? (0, locale_1.getLocaleOfDictionnary)(sameValue.value, 'en')
|
|
349
|
-
: sameValue.tag || '';
|
|
350
|
-
attrStr.push(id != TCG_1.TCGAttributesEnum.FINISH ? strToUse.toUpperCase() : strToUse);
|
|
351
|
-
}
|
|
352
|
-
return attrStr.join(' - ');
|
|
353
|
-
};
|
|
354
|
-
exports.getTcgAttributesToShow = getTcgAttributesToShow;
|
|
355
|
-
// -------------------------------------------------------------------------------------------
|
|
356
|
-
// #region BUYBACK PRICES
|
|
357
|
-
const _checkIfPriceInTier = (priceToCheck, operator, values) => {
|
|
358
|
-
if (typeof values[0] != 'number')
|
|
359
|
-
return false;
|
|
360
|
-
switch (operator) {
|
|
361
|
-
case '<':
|
|
362
|
-
return typeof values[0] == 'number' && priceToCheck < values[0];
|
|
363
|
-
case '<=':
|
|
364
|
-
return typeof values[0] == 'number' && priceToCheck <= values[0];
|
|
365
|
-
case '>':
|
|
366
|
-
return typeof values[0] == 'number' && priceToCheck > values[0];
|
|
367
|
-
case '>=':
|
|
368
|
-
return typeof values[0] == 'number' && priceToCheck >= values[0];
|
|
369
|
-
case 'between':
|
|
370
|
-
return (typeof values[0] == 'number' &&
|
|
371
|
-
typeof values[1] == 'number' &&
|
|
372
|
-
priceToCheck >= values[0] &&
|
|
373
|
-
priceToCheck <= values[1]);
|
|
374
|
-
}
|
|
375
|
-
};
|
|
376
|
-
/**
|
|
377
|
-
* Calculate buyback price for a specified regular price and category slug
|
|
378
|
-
* @param logicReferenceObj The logic reference object ot check. Defined and provided by space.
|
|
379
|
-
* @param price The price to check
|
|
380
|
-
* @param category The TCG category slug from supported list. Defined and provided by space.
|
|
381
|
-
*/
|
|
382
|
-
function _calculateBuyBackPrice(logicReferenceObj, price, category, finish) {
|
|
383
|
-
const sameCatLogic = logicReferenceObj[category];
|
|
384
|
-
let foundPrice = { buyback: false, regTcgPrice: price, finish };
|
|
385
|
-
for (let tier of sameCatLogic) {
|
|
386
|
-
if (_checkIfPriceInTier(price, tier.operator, tier.regPrice)) {
|
|
387
|
-
foundPrice.buyback = tier.buyback;
|
|
388
|
-
if (tier.buyback && tier.buyBackPercent) {
|
|
389
|
-
foundPrice.calculatedPrice = (0, round_1.default)((price * tier.buyBackPercent) / 100, 2);
|
|
390
|
-
}
|
|
391
|
-
break;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
return foundPrice;
|
|
395
|
-
}
|
|
396
|
-
/**
|
|
397
|
-
* Calculate buyback prices for a list of tcg card price data
|
|
398
|
-
* @param cards The tcg card prices to check
|
|
399
|
-
*/
|
|
400
|
-
function getBuybackPricesForTcgCards(logicReferenceObj, cards) {
|
|
401
|
-
let buybackPrices = {};
|
|
402
|
-
for (let [slug, values] of Object.entries(cards)) {
|
|
403
|
-
buybackPrices[slug] = values.map((v) => _calculateBuyBackPrice(logicReferenceObj, v.price, v.category, v.subType));
|
|
404
|
-
}
|
|
405
|
-
return buybackPrices;
|
|
406
|
-
}
|
|
407
|
-
exports.getBuybackPricesForTcgCards = getBuybackPricesForTcgCards;
|
|
408
|
-
// #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.findCorrespondingDecliByAttributes = 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 object_1 = require("../utils/object");
|
|
13
|
+
const locale_1 = require("../utils/locale");
|
|
14
|
+
const getDefaultTcgExternalServiceParams = () => ({
|
|
15
|
+
cardgame_slugs: [],
|
|
16
|
+
default_parent_category: null
|
|
17
|
+
});
|
|
18
|
+
exports.getDefaultTcgExternalServiceParams = getDefaultTcgExternalServiceParams;
|
|
19
|
+
/**
|
|
20
|
+
* Get show order for a given value
|
|
21
|
+
* @param finishAttrValue
|
|
22
|
+
*/
|
|
23
|
+
const getTcgFinishAttrOrder = (finishAttrValue = TCG_2.TCGCardFinishEnum.NORMAL) => {
|
|
24
|
+
const expectedFinishOrder = [
|
|
25
|
+
TCG_2.TCGCardFinishEnum.NORMAL,
|
|
26
|
+
TCG_2.TCGCardFinishEnum.FOIL,
|
|
27
|
+
TCG_2.TCGCardFinishEnum.HOLO,
|
|
28
|
+
TCG_2.TCGCardFinishEnum.HOLOFOIL,
|
|
29
|
+
TCG_2.TCGCardFinishEnum.RAINBOW_FOIL,
|
|
30
|
+
TCG_2.TCGCardFinishEnum.COLDFOIL,
|
|
31
|
+
TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL,
|
|
32
|
+
TCG_2.TCGCardFinishEnum.ETCHED,
|
|
33
|
+
TCG_2.TCGCardFinishEnum.UNLIMITED,
|
|
34
|
+
TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL,
|
|
35
|
+
TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL,
|
|
36
|
+
TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL,
|
|
37
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION,
|
|
38
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
|
|
39
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
|
|
40
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
|
|
41
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
|
|
42
|
+
];
|
|
43
|
+
return expectedFinishOrder.indexOf(finishAttrValue) + 1;
|
|
44
|
+
};
|
|
45
|
+
exports.getTcgFinishAttrOrder = getTcgFinishAttrOrder;
|
|
46
|
+
const getGradientForFinish = (finish) => {
|
|
47
|
+
switch (finish) {
|
|
48
|
+
case TCG_2.TCGCardFinishEnum.NORMAL:
|
|
49
|
+
return 'normal';
|
|
50
|
+
case TCG_2.TCGCardFinishEnum.REVERSE_HOLOFOIL:
|
|
51
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL:
|
|
52
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED_HOLOFOIL:
|
|
53
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL:
|
|
54
|
+
case TCG_2.TCGCardFinishEnum.RAINBOW_FOIL:
|
|
55
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED_RAINBOWFOIL:
|
|
56
|
+
return 'multi';
|
|
57
|
+
case TCG_2.TCGCardFinishEnum.COLDFOIL:
|
|
58
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL:
|
|
59
|
+
return 'cold';
|
|
60
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED:
|
|
61
|
+
case TCG_2.TCGCardFinishEnum.UNLIMITED_NORMAL:
|
|
62
|
+
case TCG_2.TCGCardFinishEnum.ETCHED:
|
|
63
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION:
|
|
64
|
+
case TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL:
|
|
65
|
+
return 'other';
|
|
66
|
+
case TCG_2.TCGCardFinishEnum.FOIL:
|
|
67
|
+
case TCG_2.TCGCardFinishEnum.HOLO:
|
|
68
|
+
case TCG_2.TCGCardFinishEnum.HOLOFOIL:
|
|
69
|
+
default:
|
|
70
|
+
return 'gold';
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.getGradientForFinish = getGradientForFinish;
|
|
74
|
+
/**
|
|
75
|
+
* Get currently available declinations, ordered by finish attribute (TCG), and by current POS space lang (language attribute TCG)
|
|
76
|
+
* @param declinationData - Array of data used to order entries + full entry to return
|
|
77
|
+
* @param locale
|
|
78
|
+
* @param allInventories
|
|
79
|
+
*/
|
|
80
|
+
const filterAndOrderDeclinations = (declinationData = [],
|
|
81
|
+
// declinations: IIndexedDeclinationAlgolia[] | IIndexedDeclination[] | undefined,
|
|
82
|
+
locale, allInventories) => {
|
|
83
|
+
if (!declinationData.length)
|
|
84
|
+
return [];
|
|
85
|
+
// A. Filter out any unavailable declinations from possible options
|
|
86
|
+
const removedUnavailableDeclis = declinationData.filter((d) => {
|
|
87
|
+
return allInventories.some((i) => i.sku == d.sku);
|
|
88
|
+
});
|
|
89
|
+
// B. Order by finish attribute first, then by lang
|
|
90
|
+
const orderedValues = (0, orderBy_1.default)(removedUnavailableDeclis, (d) => {
|
|
91
|
+
let startNb = 2;
|
|
92
|
+
const finishAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_finish');
|
|
93
|
+
if (finishAttr) {
|
|
94
|
+
// Multiply start number by finish attr order
|
|
95
|
+
startNb *= (0, exports.getTcgFinishAttrOrder)(finishAttr[0]);
|
|
96
|
+
}
|
|
97
|
+
// If lang attr same as current lang for POS, remove 1 to bring higher up in array
|
|
98
|
+
const langAttr = (0, object_1.recursiveCheckObject)(d, 'attributes.tcg_language');
|
|
99
|
+
if (locale && langAttr && langAttr[0] == `tcg_lang_${locale}`) {
|
|
100
|
+
startNb -= 1;
|
|
101
|
+
}
|
|
102
|
+
return startNb;
|
|
103
|
+
});
|
|
104
|
+
return orderedValues.map((o) => o.fullDecli);
|
|
105
|
+
};
|
|
106
|
+
exports.filterAndOrderDeclinations = filterAndOrderDeclinations;
|
|
107
|
+
const _getDefaultLangOption = (defaultLangToReturn, allTcgAttrLabels, locale) => {
|
|
108
|
+
if (!allTcgAttrLabels || !defaultLangToReturn)
|
|
109
|
+
return [];
|
|
110
|
+
const sameInAllLabels = allTcgAttrLabels.tcg_language[defaultLangToReturn];
|
|
111
|
+
if (sameInAllLabels) {
|
|
112
|
+
return [
|
|
113
|
+
{
|
|
114
|
+
slug: defaultLangToReturn,
|
|
115
|
+
label: sameInAllLabels.tag || defaultLangToReturn,
|
|
116
|
+
fullLabel: (0, locale_1.getLocaleOfDictionnary)(sameInAllLabels.value, locale)
|
|
117
|
+
}
|
|
118
|
+
];
|
|
119
|
+
}
|
|
120
|
+
return [];
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Construct all options for Language attribute (TCG), based on available declinations
|
|
124
|
+
* @param declinations
|
|
125
|
+
* @param allTcgAttrLabels All constructed labels based on expected TCG attributes
|
|
126
|
+
* @param locale Current POS locale
|
|
127
|
+
* @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)
|
|
128
|
+
*/
|
|
129
|
+
const constructAllLangOptions = (declinations, allTcgAttrLabels, locale, defaultLangToReturn) => {
|
|
130
|
+
if (!declinations.length) {
|
|
131
|
+
// Check to return default value
|
|
132
|
+
return _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
|
|
133
|
+
}
|
|
134
|
+
const allOptions = [];
|
|
135
|
+
for (let variation of declinations) {
|
|
136
|
+
const tcgLangAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.LANG}`);
|
|
137
|
+
if (!tcgLangAttr) {
|
|
138
|
+
// Check to return default value
|
|
139
|
+
const defaultOpt = _getDefaultLangOption(defaultLangToReturn, allTcgAttrLabels, locale);
|
|
140
|
+
if (!!defaultOpt.length)
|
|
141
|
+
allOptions.push(defaultOpt[0]);
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const langSlug = tcgLangAttr[0];
|
|
145
|
+
if (langSlug && !allOptions.some((o) => o.slug == langSlug)) {
|
|
146
|
+
const sameLabel = !!allTcgAttrLabels ? allTcgAttrLabels.tcg_language[langSlug] : undefined;
|
|
147
|
+
allOptions.push({
|
|
148
|
+
slug: langSlug,
|
|
149
|
+
label: sameLabel && sameLabel.tag ? sameLabel.tag : tcgLangAttr[0],
|
|
150
|
+
fullLabel: sameLabel ? (0, locale_1.getLocaleOfDictionnary)(sameLabel.value, locale) : tcgLangAttr[0]
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return allOptions;
|
|
155
|
+
};
|
|
156
|
+
exports.constructAllLangOptions = constructAllLangOptions;
|
|
157
|
+
/**
|
|
158
|
+
* Construct all unique finish and condition attribute combinations (TCG), based on available declinations
|
|
159
|
+
* @param declinations
|
|
160
|
+
* @param allTcgAttrLabels
|
|
161
|
+
*/
|
|
162
|
+
const constructAllFinishOptions = (declinations, allTcgAttrLabels, locale) => {
|
|
163
|
+
if (!allTcgAttrLabels)
|
|
164
|
+
return [];
|
|
165
|
+
if (!declinations.length)
|
|
166
|
+
return [];
|
|
167
|
+
// a. Create combinations based on variations
|
|
168
|
+
// Only keep combos where condition attr is set
|
|
169
|
+
const allCombinaitions = declinations
|
|
170
|
+
.map((variation) => {
|
|
171
|
+
const tcgFinishAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${TCG_2.TCGVariationAttributesEnum.FINISH}`);
|
|
172
|
+
const tcgConditionAttr = (0, object_1.recursiveCheckObject)(variation, `attributes.${[TCG_2.TCGVariationAttributesEnum.CONDITION]}`);
|
|
173
|
+
return {
|
|
174
|
+
[TCG_2.TCGVariationAttributesEnum.CONDITION]: !tcgConditionAttr || !tcgConditionAttr.length
|
|
175
|
+
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.CONDITION]
|
|
176
|
+
: tcgConditionAttr[0],
|
|
177
|
+
[TCG_2.TCGVariationAttributesEnum.FINISH]: !tcgFinishAttr || !tcgFinishAttr.length
|
|
178
|
+
? TCG_2.defaultValuesForTcgAttributes[TCG_2.TCGVariationAttributesEnum.FINISH]
|
|
179
|
+
: tcgFinishAttr[0]
|
|
180
|
+
};
|
|
181
|
+
})
|
|
182
|
+
.filter((v) => v.tcg_condition);
|
|
183
|
+
// b. Filter out duplicates
|
|
184
|
+
const removedDuplicates = (0, uniqBy_1.default)(allCombinaitions, (v) => `${v.tcg_condition}${v.tcg_finish ? '_' + v.tcg_finish : ''}`);
|
|
185
|
+
// c. Return constructed options object array
|
|
186
|
+
return removedDuplicates.map((combAttr) => {
|
|
187
|
+
const condLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.value`);
|
|
188
|
+
const finishLabel = (0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.FINISH}.${combAttr.tcg_finish}.value`);
|
|
189
|
+
let fullLabelArray = [];
|
|
190
|
+
if (finishLabel)
|
|
191
|
+
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(finishLabel, locale));
|
|
192
|
+
if (condLabel)
|
|
193
|
+
fullLabelArray.push((0, locale_1.getLocaleOfDictionnary)(condLabel, locale));
|
|
194
|
+
return {
|
|
195
|
+
label: `${(0, object_1.recursiveCheckObject)(allTcgAttrLabels, `${TCG_2.TCGVariationAttributesEnum.CONDITION}.${combAttr.tcg_condition}.tag`) || combAttr.tcg_condition}`,
|
|
196
|
+
variant: combAttr.tcg_finish,
|
|
197
|
+
value: combAttr,
|
|
198
|
+
fullLabel: fullLabelArray.join(' - '),
|
|
199
|
+
extraLabel: [
|
|
200
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION,
|
|
201
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_HOLOFOIL,
|
|
202
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_COLDFOIL,
|
|
203
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_NORMAL,
|
|
204
|
+
TCG_2.TCGCardFinishEnum.FIRST_EDITION_RAINBOWFOIL
|
|
205
|
+
].includes(combAttr.tcg_finish)
|
|
206
|
+
? ' 1st'
|
|
207
|
+
: ''
|
|
208
|
+
};
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
exports.constructAllFinishOptions = constructAllFinishOptions;
|
|
212
|
+
/**
|
|
213
|
+
* Get set label for a given card attributes in specified locale
|
|
214
|
+
* @param prodAttributes
|
|
215
|
+
* @param allAttributes
|
|
216
|
+
* @param locale
|
|
217
|
+
*/
|
|
218
|
+
const getProductSetLabel = (prodAttributes, allAttributes, locale) => {
|
|
219
|
+
if (!prodAttributes)
|
|
220
|
+
return '';
|
|
221
|
+
const tcgSetAttr = prodAttributes[TCG_1.TCGAttributesEnum.SET];
|
|
222
|
+
if (!tcgSetAttr)
|
|
223
|
+
return '';
|
|
224
|
+
if (!allAttributes.length)
|
|
225
|
+
return tcgSetAttr[0];
|
|
226
|
+
const sameAttr = allAttributes.find((a) => a.slug == TCG_1.TCGAttributesEnum.SET);
|
|
227
|
+
if (!sameAttr)
|
|
228
|
+
return tcgSetAttr[0];
|
|
229
|
+
const sameValue = sameAttr.values.find((v) => v.slug == tcgSetAttr[0]);
|
|
230
|
+
return sameValue ? (0, locale_1.getLocaleOfDictionnary)(sameValue.value, locale) : tcgSetAttr[0];
|
|
231
|
+
};
|
|
232
|
+
exports.getProductSetLabel = getProductSetLabel;
|
|
233
|
+
/**
|
|
234
|
+
* Get first found declination from list where passed attribute values found in decli
|
|
235
|
+
* @param decliList
|
|
236
|
+
* @param attributesToCheck Values of chosen TCG attributes to check for in decli.
|
|
237
|
+
*/
|
|
238
|
+
const findCorrespondingDecliByAttributes = (decliList, attributesToCheck) => {
|
|
239
|
+
if (Object.values(attributesToCheck).every((attr) => attr == undefined))
|
|
240
|
+
return;
|
|
241
|
+
const decliWithSameValues = decliList.find((d) => {
|
|
242
|
+
let foundSameCount = 0;
|
|
243
|
+
const arrayToCheck = Object.entries(attributesToCheck);
|
|
244
|
+
for (let [attrSlug, value] of arrayToCheck) {
|
|
245
|
+
const attrValueToCheck = (0, object_1.recursiveCheckObject)(d, `attributes.${attrSlug}.0`) ||
|
|
246
|
+
(0, object_1.recursiveCheckObject)(TCG_2.defaultValuesForTcgAttributes, attrSlug);
|
|
247
|
+
if (attrValueToCheck == value) {
|
|
248
|
+
foundSameCount += 1;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return foundSameCount == arrayToCheck.length;
|
|
252
|
+
});
|
|
253
|
+
return decliWithSameValues;
|
|
254
|
+
};
|
|
255
|
+
exports.findCorrespondingDecliByAttributes = findCorrespondingDecliByAttributes;
|
|
256
|
+
/**
|
|
257
|
+
* Get the available inventory for the currently selected store (found in local storage)
|
|
258
|
+
* @param inventoryItem
|
|
259
|
+
*/
|
|
260
|
+
const getAvailableInventoryForCurrentStore = (inventoryItem) => {
|
|
261
|
+
const currentStore = localStorage.getItem('branch') || '';
|
|
262
|
+
const sameStoreInv = inventoryItem.inventories.find((i) => i.store_id == currentStore);
|
|
263
|
+
if (!sameStoreInv)
|
|
264
|
+
return 0;
|
|
265
|
+
return sameStoreInv.qty.available;
|
|
266
|
+
};
|
|
267
|
+
exports.getAvailableInventoryForCurrentStore = getAvailableInventoryForCurrentStore;
|
|
268
|
+
/**
|
|
269
|
+
* Construct product or decli name to show (mostly for cart item retroactions)
|
|
270
|
+
* @param item - The cart item
|
|
271
|
+
* @param locale
|
|
272
|
+
* @param type - Which name(s) to use (either parent name, decli name, or both)
|
|
273
|
+
*/
|
|
274
|
+
const getProductNameToUse = (item, locale, type) => {
|
|
275
|
+
const productName = !!item.parent_name ? (0, locale_1.getLocaleOfDictionnary)(item.parent_name, locale) : '';
|
|
276
|
+
const decliName = !!item.name ? (0, locale_1.getLocaleOfDictionnary)(item.name, locale) : '';
|
|
277
|
+
let bothNames = [];
|
|
278
|
+
if (!!productName)
|
|
279
|
+
bothNames.push(productName);
|
|
280
|
+
if (!!decliName)
|
|
281
|
+
bothNames.push(decliName);
|
|
282
|
+
const nameStr = type === TCG_1.ItemNameVariantEnum.BOTH
|
|
283
|
+
? bothNames.join(' | ')
|
|
284
|
+
: type === TCG_1.ItemNameVariantEnum.PARENT
|
|
285
|
+
? productName
|
|
286
|
+
: decliName;
|
|
287
|
+
return nameStr;
|
|
288
|
+
};
|
|
289
|
+
exports.getProductNameToUse = getProductNameToUse;
|
|
290
|
+
/**
|
|
291
|
+
* Construct labels for TCG Service attributes from full array of space attributes
|
|
292
|
+
* @param allAttributes
|
|
293
|
+
*/
|
|
294
|
+
const constructTcgAttributeLabels = (allAttributes) => {
|
|
295
|
+
let allValues = { tcg_finish: {}, tcg_condition: {}, tcg_language: {} };
|
|
296
|
+
if (!!!allAttributes.length)
|
|
297
|
+
return allValues;
|
|
298
|
+
const fullFinishAttr = allAttributes.find((a) => a.slug == 'tcg_finish');
|
|
299
|
+
const fullConditionAttr = allAttributes.find((a) => a.slug == 'tcg_condition');
|
|
300
|
+
const fullLangAttr = allAttributes.find((a) => a.slug == 'tcg_language');
|
|
301
|
+
// a. FINISH VALUES
|
|
302
|
+
if (fullFinishAttr && fullFinishAttr.values.length) {
|
|
303
|
+
for (let value of fullFinishAttr.values) {
|
|
304
|
+
if (value.default_tag) {
|
|
305
|
+
allValues.tcg_finish[value.slug] = Object.assign({ tag: value.default_tag, value: value.value }, (value.default_tag == 'nor' ? { shortLabel: value.value } : {}));
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
// b. CONDITION VALUES
|
|
310
|
+
if (fullConditionAttr && fullConditionAttr.values.length) {
|
|
311
|
+
for (let value of fullConditionAttr.values) {
|
|
312
|
+
if (value.default_tag) {
|
|
313
|
+
allValues.tcg_condition[value.slug] = { tag: value.default_tag, value: value.value };
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
// c. LANG VALUES
|
|
318
|
+
if (fullLangAttr && fullLangAttr.values.length) {
|
|
319
|
+
for (let value of fullLangAttr.values) {
|
|
320
|
+
if (value.default_tag) {
|
|
321
|
+
allValues.tcg_language[value.slug] = { tag: value.default_tag, value: value.value };
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return allValues;
|
|
326
|
+
};
|
|
327
|
+
exports.constructTcgAttributeLabels = constructTcgAttributeLabels;
|
|
328
|
+
/**
|
|
329
|
+
* Construct and return attribute string for cart item based on TCG attribute values
|
|
330
|
+
* @param itemAttributes Current item attributes
|
|
331
|
+
* @param allTcgAttributes All potential TCG attribute values
|
|
332
|
+
* @returns {string} Pertinent attribute values seperated by '-'. Attributes options returned are : FINISH - CONDITION - LANG
|
|
333
|
+
*/
|
|
334
|
+
const getTcgAttributesToShow = (itemAttributes, allTcgAttributes) => {
|
|
335
|
+
if (!allTcgAttributes)
|
|
336
|
+
return '';
|
|
337
|
+
const attrStr = [];
|
|
338
|
+
for (let [id, values] of Object.entries(allTcgAttributes)) {
|
|
339
|
+
const sameAttr = itemAttributes[id];
|
|
340
|
+
if (!sameAttr)
|
|
341
|
+
continue;
|
|
342
|
+
const sameValue = values[sameAttr[0]];
|
|
343
|
+
if (!sameValue)
|
|
344
|
+
continue;
|
|
345
|
+
const strToUse = sameValue.shortLabel
|
|
346
|
+
? (0, locale_1.getLocaleOfDictionnary)(sameValue.shortLabel, 'en')
|
|
347
|
+
: id == TCG_1.TCGAttributesEnum.FINISH
|
|
348
|
+
? (0, locale_1.getLocaleOfDictionnary)(sameValue.value, 'en')
|
|
349
|
+
: sameValue.tag || '';
|
|
350
|
+
attrStr.push(id != TCG_1.TCGAttributesEnum.FINISH ? strToUse.toUpperCase() : strToUse);
|
|
351
|
+
}
|
|
352
|
+
return attrStr.join(' - ');
|
|
353
|
+
};
|
|
354
|
+
exports.getTcgAttributesToShow = getTcgAttributesToShow;
|
|
355
|
+
// -------------------------------------------------------------------------------------------
|
|
356
|
+
// #region BUYBACK PRICES
|
|
357
|
+
const _checkIfPriceInTier = (priceToCheck, operator, values) => {
|
|
358
|
+
if (typeof values[0] != 'number')
|
|
359
|
+
return false;
|
|
360
|
+
switch (operator) {
|
|
361
|
+
case '<':
|
|
362
|
+
return typeof values[0] == 'number' && priceToCheck < values[0];
|
|
363
|
+
case '<=':
|
|
364
|
+
return typeof values[0] == 'number' && priceToCheck <= values[0];
|
|
365
|
+
case '>':
|
|
366
|
+
return typeof values[0] == 'number' && priceToCheck > values[0];
|
|
367
|
+
case '>=':
|
|
368
|
+
return typeof values[0] == 'number' && priceToCheck >= values[0];
|
|
369
|
+
case 'between':
|
|
370
|
+
return (typeof values[0] == 'number' &&
|
|
371
|
+
typeof values[1] == 'number' &&
|
|
372
|
+
priceToCheck >= values[0] &&
|
|
373
|
+
priceToCheck <= values[1]);
|
|
374
|
+
}
|
|
375
|
+
};
|
|
376
|
+
/**
|
|
377
|
+
* Calculate buyback price for a specified regular price and category slug
|
|
378
|
+
* @param logicReferenceObj The logic reference object ot check. Defined and provided by space.
|
|
379
|
+
* @param price The price to check
|
|
380
|
+
* @param category The TCG category slug from supported list. Defined and provided by space.
|
|
381
|
+
*/
|
|
382
|
+
function _calculateBuyBackPrice(logicReferenceObj, price, category, finish) {
|
|
383
|
+
const sameCatLogic = logicReferenceObj[category];
|
|
384
|
+
let foundPrice = { buyback: false, regTcgPrice: price, finish };
|
|
385
|
+
for (let tier of sameCatLogic) {
|
|
386
|
+
if (_checkIfPriceInTier(price, tier.operator, tier.regPrice)) {
|
|
387
|
+
foundPrice.buyback = tier.buyback;
|
|
388
|
+
if (tier.buyback && tier.buyBackPercent) {
|
|
389
|
+
foundPrice.calculatedPrice = (0, round_1.default)((price * tier.buyBackPercent) / 100, 2);
|
|
390
|
+
}
|
|
391
|
+
break;
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
return foundPrice;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Calculate buyback prices for a list of tcg card price data
|
|
398
|
+
* @param cards The tcg card prices to check
|
|
399
|
+
*/
|
|
400
|
+
function getBuybackPricesForTcgCards(logicReferenceObj, cards) {
|
|
401
|
+
let buybackPrices = {};
|
|
402
|
+
for (let [slug, values] of Object.entries(cards)) {
|
|
403
|
+
buybackPrices[slug] = values.map((v) => _calculateBuyBackPrice(logicReferenceObj, v.price, v.category, v.subType));
|
|
404
|
+
}
|
|
405
|
+
return buybackPrices;
|
|
406
|
+
}
|
|
407
|
+
exports.getBuybackPricesForTcgCards = getBuybackPricesForTcgCards;
|
|
408
|
+
// #endregion
|
|
409
409
|
//# sourceMappingURL=tcgService.js.map
|