@unchainedshop/core 3.0.0-alpha7 → 3.0.0-rc.12
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/lib/core-index.d.ts +8 -61
- package/lib/core-index.d.ts.map +1 -1
- package/lib/core-index.js +9 -140
- package/lib/core-index.js.map +1 -1
- package/lib/directors/BaseDiscountAdapter.d.ts +36 -0
- package/lib/directors/BaseDiscountAdapter.d.ts.map +1 -0
- package/lib/directors/BaseDiscountAdapter.js +48 -0
- package/lib/directors/BaseDiscountAdapter.js.map +1 -0
- package/lib/directors/BaseDiscountDirector.d.ts +15 -0
- package/lib/directors/BaseDiscountDirector.d.ts.map +1 -0
- package/lib/directors/BaseDiscountDirector.js +45 -0
- package/lib/directors/BaseDiscountDirector.js.map +1 -0
- package/lib/directors/BasePricingAdapter.d.ts +34 -0
- package/lib/directors/BasePricingAdapter.d.ts.map +1 -0
- package/lib/directors/BasePricingAdapter.js +25 -0
- package/lib/directors/BasePricingAdapter.js.map +1 -0
- package/lib/directors/BasePricingDirector.d.ts +17 -0
- package/lib/directors/BasePricingDirector.d.ts.map +1 -0
- package/lib/directors/BasePricingDirector.js +70 -0
- package/lib/directors/BasePricingDirector.js.map +1 -0
- package/lib/directors/BasePricingSheet.d.ts +46 -0
- package/lib/directors/BasePricingSheet.d.ts.map +1 -0
- package/lib/directors/BasePricingSheet.js +74 -0
- package/lib/directors/BasePricingSheet.js.map +1 -0
- package/lib/directors/DeliveryAdapter.d.ts +46 -0
- package/lib/directors/DeliveryAdapter.d.ts.map +1 -0
- package/lib/directors/DeliveryAdapter.js +50 -0
- package/lib/directors/DeliveryAdapter.js.map +1 -0
- package/lib/directors/DeliveryDirector.d.ts +15 -0
- package/lib/directors/DeliveryDirector.d.ts.map +1 -0
- package/lib/directors/DeliveryDirector.js +96 -0
- package/lib/directors/DeliveryDirector.js.map +1 -0
- package/lib/directors/DeliveryPricingAdapter.d.ts +49 -0
- package/lib/directors/DeliveryPricingAdapter.d.ts.map +1 -0
- package/lib/directors/DeliveryPricingAdapter.js +25 -0
- package/lib/directors/DeliveryPricingAdapter.js.map +1 -0
- package/lib/directors/DeliveryPricingDirector.d.ts +20 -0
- package/lib/directors/DeliveryPricingDirector.d.ts.map +1 -0
- package/lib/directors/DeliveryPricingDirector.js +50 -0
- package/lib/directors/DeliveryPricingDirector.js.map +1 -0
- package/lib/directors/DeliveryPricingSheet.d.ts +10 -0
- package/lib/directors/DeliveryPricingSheet.d.ts.map +1 -0
- package/lib/directors/DeliveryPricingSheet.js +75 -0
- package/lib/directors/DeliveryPricingSheet.js.map +1 -0
- package/lib/directors/EnrollmentAdapter.d.ts +27 -0
- package/lib/directors/EnrollmentAdapter.d.ts.map +1 -0
- package/lib/directors/EnrollmentAdapter.js +73 -0
- package/lib/directors/EnrollmentAdapter.js.map +1 -0
- package/lib/directors/EnrollmentDirector.d.ts +14 -0
- package/lib/directors/EnrollmentDirector.d.ts.map +1 -0
- package/lib/directors/EnrollmentDirector.js +44 -0
- package/lib/directors/EnrollmentDirector.js.map +1 -0
- package/lib/directors/FilterAdapter.d.ts +54 -0
- package/lib/directors/FilterAdapter.d.ts.map +1 -0
- package/lib/directors/FilterAdapter.js +38 -0
- package/lib/directors/FilterAdapter.js.map +1 -0
- package/lib/directors/FilterDirector.d.ts +40 -0
- package/lib/directors/FilterDirector.d.ts.map +1 -0
- package/lib/directors/FilterDirector.js +177 -0
- package/lib/directors/FilterDirector.js.map +1 -0
- package/lib/directors/MessagingDirector.d.ts +46 -0
- package/lib/directors/MessagingDirector.d.ts.map +1 -0
- package/lib/directors/MessagingDirector.js +10 -0
- package/lib/directors/MessagingDirector.js.map +1 -0
- package/lib/directors/OrderDiscountAdapter.d.ts +3 -0
- package/lib/directors/OrderDiscountAdapter.d.ts.map +1 -0
- package/lib/directors/OrderDiscountAdapter.js +3 -0
- package/lib/directors/OrderDiscountAdapter.js.map +1 -0
- package/lib/directors/OrderDiscountConfiguration.d.ts +6 -0
- package/lib/directors/OrderDiscountConfiguration.d.ts.map +1 -0
- package/lib/directors/OrderDiscountConfiguration.js +2 -0
- package/lib/directors/OrderDiscountConfiguration.js.map +1 -0
- package/lib/directors/OrderDiscountDirector.d.ts +3 -0
- package/lib/directors/OrderDiscountDirector.d.ts.map +1 -0
- package/lib/directors/OrderDiscountDirector.js +3 -0
- package/lib/directors/OrderDiscountDirector.js.map +1 -0
- package/lib/directors/OrderPricingAdapter.d.ts +18 -0
- package/lib/directors/OrderPricingAdapter.d.ts.map +1 -0
- package/lib/directors/OrderPricingAdapter.js +24 -0
- package/lib/directors/OrderPricingAdapter.js.map +1 -0
- package/lib/directors/OrderPricingDirector.d.ts +18 -0
- package/lib/directors/OrderPricingDirector.d.ts.map +1 -0
- package/lib/directors/OrderPricingDirector.js +31 -0
- package/lib/directors/OrderPricingDirector.js.map +1 -0
- package/lib/directors/OrderPricingSheet.d.ts +37 -0
- package/lib/directors/OrderPricingSheet.d.ts.map +1 -0
- package/lib/directors/OrderPricingSheet.js +108 -0
- package/lib/directors/OrderPricingSheet.js.map +1 -0
- package/lib/directors/PaymentAdapter.d.ts +50 -0
- package/lib/directors/PaymentAdapter.d.ts.map +1 -0
- package/lib/directors/PaymentAdapter.js +55 -0
- package/lib/directors/PaymentAdapter.js.map +1 -0
- package/lib/directors/PaymentDirector.d.ts +21 -0
- package/lib/directors/PaymentDirector.d.ts.map +1 -0
- package/lib/directors/PaymentDirector.js +172 -0
- package/lib/directors/PaymentDirector.js.map +1 -0
- package/lib/directors/PaymentPricingAdapter.d.ts +48 -0
- package/lib/directors/PaymentPricingAdapter.d.ts.map +1 -0
- package/lib/directors/PaymentPricingAdapter.js +25 -0
- package/lib/directors/PaymentPricingAdapter.js.map +1 -0
- package/lib/directors/PaymentPricingDirector.d.ts +18 -0
- package/lib/directors/PaymentPricingDirector.d.ts.map +1 -0
- package/lib/directors/PaymentPricingDirector.js +51 -0
- package/lib/directors/PaymentPricingDirector.js.map +1 -0
- package/lib/directors/PaymentPricingSheet.d.ts +9 -0
- package/lib/directors/PaymentPricingSheet.d.ts.map +1 -0
- package/lib/directors/PaymentPricingSheet.js +75 -0
- package/lib/directors/PaymentPricingSheet.js.map +1 -0
- package/lib/directors/ProductDiscountAdapter.d.ts +3 -0
- package/lib/directors/ProductDiscountAdapter.d.ts.map +1 -0
- package/lib/directors/ProductDiscountAdapter.js +3 -0
- package/lib/directors/ProductDiscountAdapter.js.map +1 -0
- package/lib/directors/ProductDiscountConfiguration.d.ts +13 -0
- package/lib/directors/ProductDiscountConfiguration.d.ts.map +1 -0
- package/lib/directors/ProductDiscountConfiguration.js +2 -0
- package/lib/directors/ProductDiscountConfiguration.js.map +1 -0
- package/lib/directors/ProductDiscountDirector.d.ts +3 -0
- package/lib/directors/ProductDiscountDirector.d.ts.map +1 -0
- package/lib/directors/ProductDiscountDirector.js +3 -0
- package/lib/directors/ProductDiscountDirector.js.map +1 -0
- package/lib/directors/ProductPricingAdapter.d.ts +19 -0
- package/lib/directors/ProductPricingAdapter.d.ts.map +1 -0
- package/lib/directors/ProductPricingAdapter.js +24 -0
- package/lib/directors/ProductPricingAdapter.js.map +1 -0
- package/lib/directors/ProductPricingDirector.d.ts +21 -0
- package/lib/directors/ProductPricingDirector.d.ts.map +1 -0
- package/lib/directors/ProductPricingDirector.js +52 -0
- package/lib/directors/ProductPricingDirector.js.map +1 -0
- package/lib/directors/ProductPricingSheet.d.ts +35 -0
- package/lib/directors/ProductPricingSheet.d.ts.map +1 -0
- package/lib/directors/ProductPricingSheet.js +83 -0
- package/lib/directors/ProductPricingSheet.js.map +1 -0
- package/lib/directors/QuotationAdapter.d.ts +28 -0
- package/lib/directors/QuotationAdapter.d.ts.map +1 -0
- package/lib/directors/QuotationAdapter.js +46 -0
- package/lib/directors/QuotationAdapter.js.map +1 -0
- package/lib/directors/QuotationDirector.d.ts +7 -0
- package/lib/directors/QuotationDirector.d.ts.map +1 -0
- package/lib/directors/QuotationDirector.js +84 -0
- package/lib/directors/QuotationDirector.js.map +1 -0
- package/lib/directors/WarehousingAdapter.d.ts +40 -0
- package/lib/directors/WarehousingAdapter.d.ts.map +1 -0
- package/lib/directors/WarehousingAdapter.js +32 -0
- package/lib/directors/WarehousingAdapter.js.map +1 -0
- package/lib/directors/WarehousingDirector.d.ts +41 -0
- package/lib/directors/WarehousingDirector.d.ts.map +1 -0
- package/lib/directors/WarehousingDirector.js +169 -0
- package/lib/directors/WarehousingDirector.js.map +1 -0
- package/lib/directors/WorkerAdapter.d.ts +17 -0
- package/lib/directors/WorkerAdapter.d.ts.map +1 -0
- package/lib/directors/WorkerAdapter.js +11 -0
- package/lib/directors/WorkerAdapter.js.map +1 -0
- package/lib/directors/WorkerDirector.d.ts +26 -0
- package/lib/directors/WorkerDirector.d.ts.map +1 -0
- package/lib/directors/WorkerDirector.js +102 -0
- package/lib/directors/WorkerDirector.js.map +1 -0
- package/lib/directors/index.d.ts +39 -0
- package/lib/directors/index.d.ts.map +1 -0
- package/lib/directors/index.js +39 -0
- package/lib/directors/index.js.map +1 -0
- package/lib/modules.d.ts +59 -0
- package/lib/modules.d.ts.map +1 -0
- package/lib/modules.js +126 -0
- package/lib/modules.js.map +1 -0
- package/lib/services/activateEnrollment.d.ts +4 -0
- package/lib/services/activateEnrollment.d.ts.map +1 -0
- package/lib/services/activateEnrollment.js +25 -0
- package/lib/services/activateEnrollment.js.map +1 -0
- package/lib/services/calculateDiscountTotal.d.ts +7 -0
- package/lib/services/calculateDiscountTotal.d.ts.map +1 -0
- package/lib/services/calculateDiscountTotal.js +49 -0
- package/lib/services/calculateDiscountTotal.js.map +1 -0
- package/lib/services/checkoutOrder.d.ts +9 -0
- package/lib/services/checkoutOrder.d.ts.map +1 -0
- package/lib/services/checkoutOrder.js +28 -0
- package/lib/services/checkoutOrder.js.map +1 -0
- package/lib/services/confirmOrder.d.ts +9 -0
- package/lib/services/confirmOrder.d.ts.map +1 -0
- package/lib/services/confirmOrder.js +17 -0
- package/lib/services/confirmOrder.js.map +1 -0
- package/lib/services/createDownloadStream.d.ts +5 -0
- package/lib/services/createDownloadStream.d.ts.map +1 -0
- package/lib/services/createDownloadStream.js +8 -0
- package/lib/services/createDownloadStream.js.map +1 -0
- package/lib/services/createEnrollmentFromCheckout.d.ts +15 -0
- package/lib/services/createEnrollmentFromCheckout.d.ts.map +1 -0
- package/lib/services/createEnrollmentFromCheckout.js +40 -0
- package/lib/services/createEnrollmentFromCheckout.js.map +1 -0
- package/lib/services/createManualOrderDiscount.d.ts +7 -0
- package/lib/services/createManualOrderDiscount.d.ts.map +1 -0
- package/lib/services/createManualOrderDiscount.js +47 -0
- package/lib/services/createManualOrderDiscount.js.map +1 -0
- package/lib/services/createSignedURL.d.ts +8 -0
- package/lib/services/createSignedURL.d.ts.map +1 -0
- package/lib/services/createSignedURL.js +15 -0
- package/lib/services/createSignedURL.js.map +1 -0
- package/lib/services/deleteUser.d.ts +5 -0
- package/lib/services/deleteUser.d.ts.map +1 -0
- package/lib/services/deleteUser.js +26 -0
- package/lib/services/deleteUser.js.map +1 -0
- package/lib/services/discountedEntities.d.ts +5 -0
- package/lib/services/discountedEntities.d.ts.map +1 -0
- package/lib/services/discountedEntities.js +61 -0
- package/lib/services/discountedEntities.js.map +1 -0
- package/lib/services/ercMetadata.d.ts +7 -0
- package/lib/services/ercMetadata.d.ts.map +1 -0
- package/lib/services/ercMetadata.js +22 -0
- package/lib/services/ercMetadata.js.map +1 -0
- package/lib/services/findOrInitCart.d.ts +9 -0
- package/lib/services/findOrInitCart.d.ts.map +1 -0
- package/lib/services/findOrInitCart.js +15 -0
- package/lib/services/findOrInitCart.js.map +1 -0
- package/lib/services/fullfillQuotation.d.ts +4 -0
- package/lib/services/fullfillQuotation.d.ts.map +1 -0
- package/lib/services/fullfillQuotation.js +12 -0
- package/lib/services/fullfillQuotation.js.map +1 -0
- package/lib/services/index.d.ts +118 -0
- package/lib/services/index.d.ts.map +1 -0
- package/lib/services/index.js +132 -0
- package/lib/services/index.js.map +1 -0
- package/lib/services/initCartProviders.d.ts +4 -0
- package/lib/services/initCartProviders.d.ts.map +1 -0
- package/lib/services/initCartProviders.js +55 -0
- package/lib/services/initCartProviders.js.map +1 -0
- package/lib/services/initializeEnrollment.d.ts +7 -0
- package/lib/services/initializeEnrollment.d.ts.map +1 -0
- package/lib/services/initializeEnrollment.js +28 -0
- package/lib/services/initializeEnrollment.js.map +1 -0
- package/lib/services/invalidateFilterCache.d.ts +3 -0
- package/lib/services/invalidateFilterCache.d.ts.map +1 -0
- package/lib/services/invalidateFilterCache.js +12 -0
- package/lib/services/invalidateFilterCache.js.map +1 -0
- package/lib/services/linkFileService.d.ts +7 -0
- package/lib/services/linkFileService.d.ts.map +1 -0
- package/lib/services/linkFileService.js +18 -0
- package/lib/services/linkFileService.js.map +1 -0
- package/lib/services/loadFilterOptions.d.ts +14 -0
- package/lib/services/loadFilterOptions.d.ts.map +1 -0
- package/lib/services/loadFilterOptions.js +29 -0
- package/lib/services/loadFilterOptions.js.map +1 -0
- package/lib/services/loadFilters.d.ts +14 -0
- package/lib/services/loadFilters.d.ts.map +1 -0
- package/lib/services/loadFilters.js +36 -0
- package/lib/services/loadFilters.js.map +1 -0
- package/lib/services/migrateBookmarks.d.ts +8 -0
- package/lib/services/migrateBookmarks.d.ts.map +1 -0
- package/lib/services/migrateBookmarks.js +26 -0
- package/lib/services/migrateBookmarks.js.map +1 -0
- package/lib/services/migrateOrderCart.d.ts +8 -0
- package/lib/services/migrateOrderCart.d.ts.map +1 -0
- package/lib/services/migrateOrderCart.js +32 -0
- package/lib/services/migrateOrderCart.js.map +1 -0
- package/lib/services/migrateUserData.d.ts +2 -0
- package/lib/services/migrateUserData.d.ts.map +1 -0
- package/lib/services/migrateUserData.js +20 -0
- package/lib/services/migrateUserData.js.map +1 -0
- package/lib/services/nextUserCart.d.ts +9 -0
- package/lib/services/nextUserCart.d.ts.map +1 -0
- package/lib/services/nextUserCart.js +34 -0
- package/lib/services/nextUserCart.js.map +1 -0
- package/lib/services/processEnrollment.d.ts +4 -0
- package/lib/services/processEnrollment.d.ts.map +1 -0
- package/lib/services/processEnrollment.js +33 -0
- package/lib/services/processEnrollment.js.map +1 -0
- package/lib/services/processOrder.d.ts +9 -0
- package/lib/services/processOrder.d.ts.map +1 -0
- package/lib/services/processOrder.js +161 -0
- package/lib/services/processOrder.js.map +1 -0
- package/lib/services/processQuotation.d.ts +6 -0
- package/lib/services/processQuotation.d.ts.map +1 -0
- package/lib/services/processQuotation.js +60 -0
- package/lib/services/processQuotation.js.map +1 -0
- package/lib/services/proposeQuotation.d.ts +6 -0
- package/lib/services/proposeQuotation.d.ts.map +1 -0
- package/lib/services/proposeQuotation.js +12 -0
- package/lib/services/proposeQuotation.js.map +1 -0
- package/lib/services/registerPaymentCredentials.d.ts +5 -0
- package/lib/services/registerPaymentCredentials.d.ts.map +1 -0
- package/lib/services/registerPaymentCredentials.js +21 -0
- package/lib/services/registerPaymentCredentials.js.map +1 -0
- package/lib/services/rejectOrder.d.ts +9 -0
- package/lib/services/rejectOrder.d.ts.map +1 -0
- package/lib/services/rejectOrder.js +17 -0
- package/lib/services/rejectOrder.js.map +1 -0
- package/lib/services/rejectQuotation.d.ts +6 -0
- package/lib/services/rejectQuotation.d.ts.map +1 -0
- package/lib/services/rejectQuotation.js +12 -0
- package/lib/services/rejectQuotation.js.map +1 -0
- package/lib/services/removeFiles.d.ts +5 -0
- package/lib/services/removeFiles.d.ts.map +1 -0
- package/lib/services/removeFiles.js +19 -0
- package/lib/services/removeFiles.js.map +1 -0
- package/lib/services/removeProduct.d.ts +5 -0
- package/lib/services/removeProduct.d.ts.map +1 -0
- package/lib/services/removeProduct.js +26 -0
- package/lib/services/removeProduct.js.map +1 -0
- package/lib/services/searchAssortments.d.ts +19 -0
- package/lib/services/searchAssortments.d.ts.map +1 -0
- package/lib/services/searchAssortments.js +33 -0
- package/lib/services/searchAssortments.js.map +1 -0
- package/lib/services/searchProducts.d.ts +16 -0
- package/lib/services/searchProducts.d.ts.map +1 -0
- package/lib/services/searchProducts.js +41 -0
- package/lib/services/searchProducts.js.map +1 -0
- package/lib/services/simulateProductDispatching.d.ts +15 -0
- package/lib/services/simulateProductDispatching.d.ts.map +1 -0
- package/lib/services/simulateProductDispatching.js +30 -0
- package/lib/services/simulateProductDispatching.js.map +1 -0
- package/lib/services/simulateProductInventory.d.ts +15 -0
- package/lib/services/simulateProductInventory.d.ts.map +1 -0
- package/lib/services/simulateProductInventory.js +29 -0
- package/lib/services/simulateProductInventory.js.map +1 -0
- package/lib/services/simulateProductPricing.d.ts +12 -0
- package/lib/services/simulateProductPricing.d.ts.map +1 -0
- package/lib/services/simulateProductPricing.js +8 -0
- package/lib/services/simulateProductPricing.js.map +1 -0
- package/lib/services/supportedDeliveryProviders.d.ts +5 -0
- package/lib/services/supportedDeliveryProviders.d.ts.map +1 -0
- package/lib/services/supportedDeliveryProviders.js +14 -0
- package/lib/services/supportedDeliveryProviders.js.map +1 -0
- package/lib/services/supportedPaymentProviders.d.ts +5 -0
- package/lib/services/supportedPaymentProviders.d.ts.map +1 -0
- package/lib/services/supportedPaymentProviders.js +14 -0
- package/lib/services/supportedPaymentProviders.js.map +1 -0
- package/lib/services/supportedWarehousingProviders.d.ts +5 -0
- package/lib/services/supportedWarehousingProviders.d.ts.map +1 -0
- package/lib/services/supportedWarehousingProviders.js +10 -0
- package/lib/services/supportedWarehousingProviders.js.map +1 -0
- package/lib/services/terminateEnrollment.d.ts +3 -0
- package/lib/services/terminateEnrollment.d.ts.map +1 -0
- package/lib/services/terminateEnrollment.js +25 -0
- package/lib/services/terminateEnrollment.js.map +1 -0
- package/lib/services/updateCalculation.d.ts +3 -0
- package/lib/services/updateCalculation.d.ts.map +1 -0
- package/lib/services/updateCalculation.js +101 -0
- package/lib/services/updateCalculation.js.map +1 -0
- package/lib/services/updateScheduling.d.ts +8 -0
- package/lib/services/updateScheduling.d.ts.map +1 -0
- package/lib/services/updateScheduling.js +42 -0
- package/lib/services/updateScheduling.js.map +1 -0
- package/lib/services/updateUserAvatarAfterUpload.d.ts +6 -0
- package/lib/services/updateUserAvatarAfterUpload.d.ts.map +1 -0
- package/lib/services/updateUserAvatarAfterUpload.js +25 -0
- package/lib/services/updateUserAvatarAfterUpload.js.map +1 -0
- package/lib/services/uploadFileFromStream.d.ts +8 -0
- package/lib/services/uploadFileFromStream.d.ts.map +1 -0
- package/lib/services/uploadFileFromStream.js +11 -0
- package/lib/services/uploadFileFromStream.js.map +1 -0
- package/lib/services/uploadFileFromURL.d.ts +13 -0
- package/lib/services/uploadFileFromURL.d.ts.map +1 -0
- package/lib/services/uploadFileFromURL.js +11 -0
- package/lib/services/uploadFileFromURL.js.map +1 -0
- package/lib/services/validateOrder.d.ts +4 -0
- package/lib/services/validateOrder.d.ts.map +1 -0
- package/lib/services/validateOrder.js +45 -0
- package/lib/services/validateOrder.js.map +1 -0
- package/lib/services/verifyQuotation.d.ts +6 -0
- package/lib/services/verifyQuotation.d.ts.map +1 -0
- package/lib/services/verifyQuotation.js +12 -0
- package/lib/services/verifyQuotation.js.map +1 -0
- package/package.json +30 -29
- package/src/core-index.ts +14 -241
- package/src/directors/BaseDiscountAdapter.test.ts +49 -0
- package/src/directors/BaseDiscountAdapter.ts +90 -0
- package/src/directors/BaseDiscountDirector.ts +73 -0
- package/src/directors/BasePricingAdapter.ts +80 -0
- package/src/directors/BasePricingDirector.ts +137 -0
- package/src/directors/BasePricingSheet.test.ts +43 -0
- package/src/directors/BasePricingSheet.ts +140 -0
- package/src/directors/DeliveryAdapter.ts +110 -0
- package/src/directors/DeliveryDirector.ts +135 -0
- package/src/directors/DeliveryPricingAdapter.ts +87 -0
- package/src/directors/DeliveryPricingDirector.ts +92 -0
- package/src/directors/DeliveryPricingSheet.ts +86 -0
- package/src/directors/EnrollmentAdapter.ts +113 -0
- package/src/directors/EnrollmentDirector.ts +70 -0
- package/src/directors/FilterAdapter.ts +103 -0
- package/src/directors/FilterDirector.ts +313 -0
- package/src/directors/MessagingDirector.test.ts +5 -0
- package/src/directors/MessagingDirector.ts +59 -0
- package/src/directors/OrderDiscountAdapter.ts +10 -0
- package/src/directors/OrderDiscountConfiguration.ts +5 -0
- package/src/directors/OrderDiscountDirector.ts +5 -0
- package/src/directors/OrderPricingAdapter.ts +63 -0
- package/src/directors/OrderPricingDirector.ts +74 -0
- package/src/directors/OrderPricingSheet.ts +147 -0
- package/src/directors/PaymentAdapter.ts +118 -0
- package/src/directors/PaymentDirector.ts +275 -0
- package/src/directors/PaymentPricingAdapter.ts +86 -0
- package/src/directors/PaymentPricingDirector.ts +94 -0
- package/src/directors/PaymentPricingSheet.ts +91 -0
- package/src/directors/ProductDiscountAdapter.ts +10 -0
- package/src/directors/ProductDiscountConfiguration.ts +18 -0
- package/src/directors/ProductDiscountDirector.ts +4 -0
- package/src/directors/ProductPricingAdapter.ts +58 -0
- package/src/directors/ProductPricingDirector.ts +100 -0
- package/src/directors/ProductPricingSheet.test.ts +129 -0
- package/src/directors/ProductPricingSheet.ts +124 -0
- package/src/directors/QuotationAdapter.ts +86 -0
- package/src/directors/QuotationDirector.ts +105 -0
- package/src/directors/WarehousingAdapter.ts +83 -0
- package/src/directors/WarehousingDirector.ts +236 -0
- package/src/directors/WorkerAdapter.ts +30 -0
- package/src/directors/WorkerDirector.ts +154 -0
- package/src/directors/index.ts +49 -0
- package/src/directors/periodForReferenceDate.test.ts +23 -0
- package/src/modules.ts +208 -0
- package/src/services/activateEnrollment.ts +30 -0
- package/src/services/calculateDiscountTotal.ts +71 -0
- package/src/services/checkoutOrder.ts +43 -0
- package/src/services/confirmOrder.ts +26 -0
- package/src/services/createDownloadStream.ts +16 -0
- package/src/services/createEnrollmentFromCheckout.ts +66 -0
- package/src/services/createManualOrderDiscount.ts +56 -0
- package/src/services/createSignedURL.ts +20 -0
- package/src/services/deleteUser.ts +33 -0
- package/src/services/discountedEntities.ts +81 -0
- package/src/services/ercMetadata.ts +33 -0
- package/src/services/findOrInitCart.ts +29 -0
- package/src/services/fullfillQuotation.ts +14 -0
- package/src/services/index.ts +168 -0
- package/src/services/initCartProviders.ts +86 -0
- package/src/services/initializeEnrollment.ts +38 -0
- package/src/services/invalidateFilterCache.ts +16 -0
- package/src/services/linkFileService.ts +22 -0
- package/src/services/loadFilterOptions.ts +49 -0
- package/src/services/loadFilters.ts +52 -0
- package/src/services/migrateBookmarks.ts +39 -0
- package/src/services/migrateOrderCart.ts +52 -0
- package/src/services/migrateUserData.ts +22 -0
- package/src/services/nextUserCart.ts +52 -0
- package/src/services/processEnrollment.ts +37 -0
- package/src/services/processOrder.ts +241 -0
- package/src/services/processQuotation.ts +75 -0
- package/src/services/proposeQuotation.ts +18 -0
- package/src/services/registerPaymentCredentials.ts +30 -0
- package/src/services/rejectOrder.ts +26 -0
- package/src/services/rejectQuotation.ts +18 -0
- package/src/services/removeFiles.ts +25 -0
- package/src/services/removeProduct.ts +34 -0
- package/src/services/searchAssortments.ts +58 -0
- package/src/services/searchProducts.ts +73 -0
- package/src/services/simulateProductDispatching.ts +59 -0
- package/src/services/simulateProductInventory.ts +56 -0
- package/src/services/simulateProductPricing.ts +20 -0
- package/src/services/supportedDeliveryProviders.ts +24 -0
- package/src/services/supportedPaymentProviders.ts +25 -0
- package/src/services/supportedWarehousingProviders.ts +18 -0
- package/src/services/terminateEnrollment.ts +29 -0
- package/src/services/updateCalculation.ts +143 -0
- package/src/services/updateScheduling.ts +64 -0
- package/src/services/updateUserAvatarAfterUpload.ts +30 -0
- package/src/services/uploadFileFromStream.ts +15 -0
- package/src/services/uploadFileFromURL.ts +29 -0
- package/src/services/validateOrder.ts +53 -0
- package/src/services/verifyQuotation.ts +18 -0
- package/tsconfig.json +5 -7
- package/lib/types.d.ts +0 -4
- package/lib/types.d.ts.map +0 -1
- package/lib/types.js +0 -5
- package/lib/types.js.map +0 -1
- package/src/types.ts +0 -7
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Enrollment, EnrollmentStatus } from '@unchainedshop/core-enrollments';
|
|
2
|
+
import { Modules } from '../modules.js';
|
|
3
|
+
import { processEnrollmentService } from './processEnrollment.js';
|
|
4
|
+
|
|
5
|
+
export async function activateEnrollmentService(this: Modules, enrollment: Enrollment) {
|
|
6
|
+
if (enrollment.status === EnrollmentStatus.TERMINATED) return enrollment;
|
|
7
|
+
|
|
8
|
+
let updatedEnrollment = await this.enrollments.updateStatus(enrollment._id, {
|
|
9
|
+
status: EnrollmentStatus.ACTIVE,
|
|
10
|
+
info: 'activated manually',
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
updatedEnrollment = await processEnrollmentService.bind(this)(updatedEnrollment);
|
|
14
|
+
|
|
15
|
+
const user = await this.users.findUserById(enrollment.userId);
|
|
16
|
+
const locale = this.users.userLocale(user);
|
|
17
|
+
|
|
18
|
+
await this.worker.addWork({
|
|
19
|
+
type: 'MESSAGE',
|
|
20
|
+
retries: 0,
|
|
21
|
+
input: {
|
|
22
|
+
reason: 'status_change',
|
|
23
|
+
locale: locale.baseName,
|
|
24
|
+
template: 'ENROLLMENT_STATUS',
|
|
25
|
+
enrollmentId: updatedEnrollment._id,
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
return updatedEnrollment;
|
|
30
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Order, OrderDiscount } from '@unchainedshop/core-orders';
|
|
2
|
+
import { Modules } from '../modules.js';
|
|
3
|
+
import {
|
|
4
|
+
OrderPricingRowCategory,
|
|
5
|
+
OrderPricingSheet,
|
|
6
|
+
DeliveryPricingRowCategory,
|
|
7
|
+
DeliveryPricingSheet,
|
|
8
|
+
ProductPricingRowCategory,
|
|
9
|
+
ProductPricingSheet,
|
|
10
|
+
PaymentPricingRowCategory,
|
|
11
|
+
PaymentPricingSheet,
|
|
12
|
+
} from '../directors/index.js';
|
|
13
|
+
|
|
14
|
+
export async function calculateDiscountTotalService(
|
|
15
|
+
this: Modules,
|
|
16
|
+
order: Order,
|
|
17
|
+
orderDiscount: OrderDiscount,
|
|
18
|
+
) {
|
|
19
|
+
const orderDiscountId = orderDiscount._id;
|
|
20
|
+
|
|
21
|
+
// Delivery discounts
|
|
22
|
+
const orderDelivery = await this.orders.deliveries.findDelivery({
|
|
23
|
+
orderDeliveryId: order.deliveryId,
|
|
24
|
+
});
|
|
25
|
+
const orderDeliveryDiscountSum = DeliveryPricingSheet({
|
|
26
|
+
calculation: orderDelivery.calculation || [],
|
|
27
|
+
currency: order.currency,
|
|
28
|
+
}).total({ category: DeliveryPricingRowCategory.Discount, discountId: orderDiscountId });
|
|
29
|
+
|
|
30
|
+
// Payment discounts
|
|
31
|
+
const orderPayment = await this.orders.payments.findOrderPayment({
|
|
32
|
+
orderPaymentId: order.paymentId,
|
|
33
|
+
});
|
|
34
|
+
const orderPaymentDiscountSum = PaymentPricingSheet({
|
|
35
|
+
calculation: orderPayment.calculation || [],
|
|
36
|
+
currency: order.currency,
|
|
37
|
+
}).total({ category: PaymentPricingRowCategory.Discount, discountId: orderDiscountId });
|
|
38
|
+
|
|
39
|
+
// Position discounts
|
|
40
|
+
const orderPositions = await this.orders.positions.findOrderPositions({
|
|
41
|
+
orderId: order._id,
|
|
42
|
+
});
|
|
43
|
+
const orderPositionDiscounts = orderPositions.map((orderPosition) =>
|
|
44
|
+
ProductPricingSheet({
|
|
45
|
+
calculation: orderPosition.calculation || [],
|
|
46
|
+
currency: order.currency,
|
|
47
|
+
quantity: orderPosition.quantity,
|
|
48
|
+
}).total({
|
|
49
|
+
category: ProductPricingRowCategory.Discount,
|
|
50
|
+
discountId: orderDiscountId,
|
|
51
|
+
}),
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
// order discounts
|
|
55
|
+
const orderDiscountSum = OrderPricingSheet({
|
|
56
|
+
calculation: order.calculation,
|
|
57
|
+
currency: order.currency,
|
|
58
|
+
}).total({ category: OrderPricingRowCategory.Discounts, discountId: orderDiscountId });
|
|
59
|
+
|
|
60
|
+
const prices = [
|
|
61
|
+
orderDeliveryDiscountSum.amount,
|
|
62
|
+
orderPaymentDiscountSum.amount,
|
|
63
|
+
...orderPositionDiscounts.map((positionDiscount) => positionDiscount.amount),
|
|
64
|
+
orderDiscountSum.amount,
|
|
65
|
+
];
|
|
66
|
+
const amount = prices.reduce((oldValue, price) => oldValue + (price || 0), 0);
|
|
67
|
+
return {
|
|
68
|
+
amount,
|
|
69
|
+
currency: order.currency,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { OrderStatus } from '@unchainedshop/core-orders';
|
|
2
|
+
import { Modules } from '../modules.js';
|
|
3
|
+
import { nextUserCartService } from './nextUserCart.js';
|
|
4
|
+
import { validateOrderService } from './validateOrder.js';
|
|
5
|
+
import { processOrderService } from './processOrder.js';
|
|
6
|
+
|
|
7
|
+
export async function checkoutOrderService(
|
|
8
|
+
this: Modules,
|
|
9
|
+
orderId: string,
|
|
10
|
+
transactionContext: {
|
|
11
|
+
paymentContext?: any;
|
|
12
|
+
deliveryContext?: any;
|
|
13
|
+
comment?: string;
|
|
14
|
+
nextStatus?: OrderStatus;
|
|
15
|
+
},
|
|
16
|
+
) {
|
|
17
|
+
const order = await this.orders.findOrder({ orderId });
|
|
18
|
+
if (order.status !== null) return order;
|
|
19
|
+
|
|
20
|
+
await validateOrderService.bind(this)(order);
|
|
21
|
+
|
|
22
|
+
const lock = await this.orders.acquireLock(order._id, 'checkout');
|
|
23
|
+
|
|
24
|
+
try {
|
|
25
|
+
const processedOrder = await processOrderService.bind(this)(order, transactionContext);
|
|
26
|
+
|
|
27
|
+
// After checkout, store last checkout information on user
|
|
28
|
+
await this.users.updateLastBillingAddress(processedOrder.userId, processedOrder.billingAddress);
|
|
29
|
+
await this.users.updateLastContact(processedOrder.userId, processedOrder.contact);
|
|
30
|
+
|
|
31
|
+
// Then eventually build next cart
|
|
32
|
+
const user = await this.users.findUserById(processedOrder.userId);
|
|
33
|
+
const locale = this.users.userLocale(user);
|
|
34
|
+
await nextUserCartService.bind(this)({
|
|
35
|
+
user,
|
|
36
|
+
countryCode: locale.region,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
return processedOrder;
|
|
40
|
+
} finally {
|
|
41
|
+
await lock.release();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Order, OrderStatus } from '@unchainedshop/core-orders';
|
|
2
|
+
import { Modules } from '../modules.js';
|
|
3
|
+
import { processOrderService } from './processOrder.js';
|
|
4
|
+
|
|
5
|
+
export async function confirmOrderService(
|
|
6
|
+
this: Modules,
|
|
7
|
+
order: Order,
|
|
8
|
+
transactionContext: {
|
|
9
|
+
paymentContext?: any;
|
|
10
|
+
deliveryContext?: any;
|
|
11
|
+
comment?: string;
|
|
12
|
+
nextStatus?: OrderStatus;
|
|
13
|
+
},
|
|
14
|
+
) {
|
|
15
|
+
if (order.status !== OrderStatus.PENDING) return order;
|
|
16
|
+
|
|
17
|
+
const lock = await this.orders.acquireLock(order._id, 'confirm-reject', 1500);
|
|
18
|
+
try {
|
|
19
|
+
return await processOrderService.bind(this)(order, {
|
|
20
|
+
...transactionContext,
|
|
21
|
+
nextStatus: OrderStatus.CONFIRMED,
|
|
22
|
+
});
|
|
23
|
+
} finally {
|
|
24
|
+
await lock.release();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getFileAdapter } from '@unchainedshop/core-files';
|
|
2
|
+
import { Modules } from '../modules.js';
|
|
3
|
+
|
|
4
|
+
export async function createDownloadStreamService(
|
|
5
|
+
this: Modules,
|
|
6
|
+
{
|
|
7
|
+
fileId,
|
|
8
|
+
}: {
|
|
9
|
+
fileId: string;
|
|
10
|
+
},
|
|
11
|
+
) {
|
|
12
|
+
const fileAdapter = getFileAdapter();
|
|
13
|
+
const file = await this.files.findFile({ fileId });
|
|
14
|
+
const stream = fileAdapter.createDownloadStream(file, { modules: this });
|
|
15
|
+
return stream;
|
|
16
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Order, OrderPosition } from '@unchainedshop/core-orders';
|
|
2
|
+
import { Product } from '@unchainedshop/core-products';
|
|
3
|
+
import { Enrollment } from '@unchainedshop/core-enrollments';
|
|
4
|
+
import { Modules } from '../modules.js';
|
|
5
|
+
import { EnrollmentDirector } from '../directors/index.js';
|
|
6
|
+
import { initializeEnrollmentService } from './initializeEnrollment.js';
|
|
7
|
+
|
|
8
|
+
export async function createEnrollmentFromCheckoutService(
|
|
9
|
+
this: Modules,
|
|
10
|
+
order: Order,
|
|
11
|
+
{
|
|
12
|
+
items,
|
|
13
|
+
context,
|
|
14
|
+
}: {
|
|
15
|
+
items: Array<{
|
|
16
|
+
orderPosition: OrderPosition;
|
|
17
|
+
product: Product;
|
|
18
|
+
}>;
|
|
19
|
+
context: {
|
|
20
|
+
paymentContext?: any;
|
|
21
|
+
deliveryContext?: any;
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
): Promise<Array<Enrollment>> {
|
|
25
|
+
const orderId = order._id;
|
|
26
|
+
|
|
27
|
+
const payment = await this.orders.payments.findOrderPayment({
|
|
28
|
+
orderPaymentId: order.paymentId,
|
|
29
|
+
});
|
|
30
|
+
const delivery = await this.orders.deliveries.findDelivery({
|
|
31
|
+
orderDeliveryId: order.deliveryId,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const template = {
|
|
35
|
+
billingAddress: order.billingAddress,
|
|
36
|
+
contact: order.contact,
|
|
37
|
+
countryCode: order.countryCode,
|
|
38
|
+
currencyCode: order.currency,
|
|
39
|
+
delivery: {
|
|
40
|
+
deliveryProviderId: delivery.deliveryProviderId,
|
|
41
|
+
context: delivery.context,
|
|
42
|
+
},
|
|
43
|
+
orderIdForFirstPeriod: orderId,
|
|
44
|
+
payment: {
|
|
45
|
+
paymentProviderId: payment.paymentProviderId,
|
|
46
|
+
context: payment.context,
|
|
47
|
+
},
|
|
48
|
+
userId: order.userId,
|
|
49
|
+
meta: order.context,
|
|
50
|
+
...context,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
return Promise.all(
|
|
54
|
+
items.map(async (item) => {
|
|
55
|
+
const enrollmentData = await EnrollmentDirector.transformOrderItemToEnrollment(item, template, {
|
|
56
|
+
modules: this,
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const enrollment = await this.enrollments.create(enrollmentData);
|
|
60
|
+
return await initializeEnrollmentService.bind(this)(enrollment, {
|
|
61
|
+
orderIdForFirstPeriod: enrollment.orderIdForFirstPeriod,
|
|
62
|
+
reason: 'new_enrollment',
|
|
63
|
+
});
|
|
64
|
+
}),
|
|
65
|
+
);
|
|
66
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Order, OrderDiscount } from '@unchainedshop/core-orders';
|
|
2
|
+
import { OrderDiscountDirector } from '../directors/OrderDiscountDirector.js';
|
|
3
|
+
import { Modules } from '../modules.js';
|
|
4
|
+
|
|
5
|
+
export async function createManualOrderDiscountService(
|
|
6
|
+
this: Modules,
|
|
7
|
+
{ order, code }: { code: string; order: Order },
|
|
8
|
+
): Promise<OrderDiscount> {
|
|
9
|
+
// Use an already existing discount if available!
|
|
10
|
+
const spareDiscount = await this.orders.discounts.findSpareDiscount({ code });
|
|
11
|
+
if (spareDiscount) {
|
|
12
|
+
const Adapter = OrderDiscountDirector.getAdapter(spareDiscount.discountKey);
|
|
13
|
+
if (!Adapter) return null;
|
|
14
|
+
|
|
15
|
+
const actions = await Adapter.actions({
|
|
16
|
+
context: { order, orderDiscount: spareDiscount, code, modules: this },
|
|
17
|
+
});
|
|
18
|
+
const reservation = await actions.reserve({
|
|
19
|
+
code,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
return this.orders.discounts.update(spareDiscount._id, { orderId: order._id, reservation });
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const director = await OrderDiscountDirector.actions({ order, code }, { modules: this });
|
|
26
|
+
const Adapter = await director.resolveDiscountAdapterFromStaticCode({
|
|
27
|
+
code,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
if (!Adapter) return null;
|
|
31
|
+
|
|
32
|
+
const newDiscount = await this.orders.discounts.create({
|
|
33
|
+
orderId: order._id,
|
|
34
|
+
code,
|
|
35
|
+
discountKey: Adapter.key,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const adapter = await Adapter.actions({
|
|
39
|
+
context: { order, orderDiscount: newDiscount, code: newDiscount.code, modules: this },
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
const reservation = await adapter.reserve({
|
|
44
|
+
code: newDiscount.code,
|
|
45
|
+
});
|
|
46
|
+
const reservedDiscount = this.orders.discounts.update(newDiscount._id, {
|
|
47
|
+
orderId: newDiscount.orderId,
|
|
48
|
+
reservation,
|
|
49
|
+
});
|
|
50
|
+
return reservedDiscount;
|
|
51
|
+
} catch (error) {
|
|
52
|
+
await adapter.release();
|
|
53
|
+
await this.orders.discounts.delete(newDiscount._id);
|
|
54
|
+
throw error;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getFileFromFileData, getFileAdapter, SignedFileUpload } from '@unchainedshop/core-files';
|
|
2
|
+
import { Modules } from '../modules.js';
|
|
3
|
+
|
|
4
|
+
export async function createSignedURLService(
|
|
5
|
+
this: Modules,
|
|
6
|
+
{ directoryName, fileName, meta }: { directoryName: string; fileName: string; meta?: any },
|
|
7
|
+
) {
|
|
8
|
+
const fileUploadAdapter = getFileAdapter();
|
|
9
|
+
const preparedFileData = await fileUploadAdapter.createSignedURL(directoryName, fileName, {
|
|
10
|
+
modules: this,
|
|
11
|
+
});
|
|
12
|
+
const fileData = getFileFromFileData(preparedFileData, meta);
|
|
13
|
+
const fileId = await this.files.create(fileData);
|
|
14
|
+
const file = await this.files.findFile({ fileId });
|
|
15
|
+
|
|
16
|
+
return {
|
|
17
|
+
...file,
|
|
18
|
+
putURL: preparedFileData.putURL as string,
|
|
19
|
+
} as SignedFileUpload;
|
|
20
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Modules } from '../modules.js';
|
|
2
|
+
|
|
3
|
+
export async function deleteUserService(this: Modules, { userId }: { userId: string }) {
|
|
4
|
+
const user = await this.users.markDeleted(userId);
|
|
5
|
+
|
|
6
|
+
if (!user) return null;
|
|
7
|
+
|
|
8
|
+
await this.bookmarks.deleteByUserId(userId);
|
|
9
|
+
await this.quotations.deleteRequestedUserQuotations(userId);
|
|
10
|
+
await this.enrollments.deleteInactiveUserEnrollments(userId);
|
|
11
|
+
|
|
12
|
+
const carts = await this.orders.findOrders({ userId, status: null });
|
|
13
|
+
|
|
14
|
+
await Array.fromAsync(carts, async (userCart) => {
|
|
15
|
+
await this.orders.positions.deleteOrderPositions(userCart?._id);
|
|
16
|
+
await this.orders.payments.deleteOrderPayments(userCart?._id);
|
|
17
|
+
await this.orders.deliveries.deleteOrderDeliveries(userCart?._id);
|
|
18
|
+
await this.orders.discounts.deleteOrderDiscounts(userCart?._id);
|
|
19
|
+
await this.orders.delete(userCart?._id);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const ordersCount = await this.orders.count({ userId, includeCarts: true });
|
|
23
|
+
const quotationsCount = await this.quotations.count({ userId });
|
|
24
|
+
const reviewsCount = await this.products.reviews.count({ authorId: userId });
|
|
25
|
+
const enrollmentsCount = await this.enrollments.count({ userId });
|
|
26
|
+
const tokens = await this.warehousing.findTokensForUser({ userId });
|
|
27
|
+
|
|
28
|
+
if (!ordersCount && !reviewsCount && !enrollmentsCount && !quotationsCount && !tokens?.length) {
|
|
29
|
+
await this.users.deletePermanently({ userId });
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return user;
|
|
33
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Order, OrderDiscount } from '@unchainedshop/core-orders';
|
|
2
|
+
import {
|
|
3
|
+
DeliveryPricingSheet,
|
|
4
|
+
OrderPricingDiscount,
|
|
5
|
+
OrderPricingSheet,
|
|
6
|
+
PaymentPricingSheet,
|
|
7
|
+
ProductPricingSheet,
|
|
8
|
+
} from '../directors/index.js';
|
|
9
|
+
import { Modules } from '../modules.js';
|
|
10
|
+
|
|
11
|
+
export async function discountedEntitiesService(
|
|
12
|
+
this: Modules,
|
|
13
|
+
order: Order,
|
|
14
|
+
orderDiscount: OrderDiscount,
|
|
15
|
+
): Promise<Array<OrderPricingDiscount>> {
|
|
16
|
+
// Delivery discounts
|
|
17
|
+
const orderDelivery = await this.orders.deliveries.findDelivery({
|
|
18
|
+
orderDeliveryId: order.deliveryId,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const deliveryPricingSheet = DeliveryPricingSheet({
|
|
22
|
+
calculation: orderDelivery.calculation || [],
|
|
23
|
+
currency: order.currency,
|
|
24
|
+
});
|
|
25
|
+
const orderDeliveryDiscounts = deliveryPricingSheet
|
|
26
|
+
.discountPrices(orderDiscount._id)
|
|
27
|
+
.map((discount) => ({
|
|
28
|
+
delivery: orderDelivery,
|
|
29
|
+
...discount,
|
|
30
|
+
}));
|
|
31
|
+
|
|
32
|
+
// Payment discounts
|
|
33
|
+
const orderPayment = await this.orders.payments.findOrderPayment({
|
|
34
|
+
orderPaymentId: order.paymentId,
|
|
35
|
+
});
|
|
36
|
+
const paymentPricingSheet = PaymentPricingSheet({
|
|
37
|
+
calculation: orderPayment.calculation || [],
|
|
38
|
+
currency: order.currency,
|
|
39
|
+
});
|
|
40
|
+
const orderPaymentDiscounts = paymentPricingSheet
|
|
41
|
+
.discountPrices(orderDiscount._id)
|
|
42
|
+
.map((discount) => ({
|
|
43
|
+
payment: orderPayment,
|
|
44
|
+
...discount,
|
|
45
|
+
}));
|
|
46
|
+
|
|
47
|
+
// Position discounts
|
|
48
|
+
const orderPositions = await this.orders.positions.findOrderPositions({
|
|
49
|
+
orderId: order._id,
|
|
50
|
+
});
|
|
51
|
+
const orderPositionDiscounts = orderPositions.flatMap((orderPosition) =>
|
|
52
|
+
ProductPricingSheet({
|
|
53
|
+
calculation: orderPosition.calculation,
|
|
54
|
+
currency: order.currency,
|
|
55
|
+
quantity: orderPosition.quantity,
|
|
56
|
+
})
|
|
57
|
+
.discountPrices(orderDiscount._id)
|
|
58
|
+
.map((discount) => ({
|
|
59
|
+
item: orderPosition,
|
|
60
|
+
...discount,
|
|
61
|
+
})),
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
// order discounts
|
|
65
|
+
const orderDiscounts = OrderPricingSheet({
|
|
66
|
+
calculation: order.calculation || [],
|
|
67
|
+
currency: order.currency,
|
|
68
|
+
})
|
|
69
|
+
.discountPrices(orderDiscount._id)
|
|
70
|
+
.map((discount) => ({ order, ...discount }));
|
|
71
|
+
|
|
72
|
+
// All discounts
|
|
73
|
+
const discounted = [
|
|
74
|
+
...orderPaymentDiscounts,
|
|
75
|
+
...orderDeliveryDiscounts,
|
|
76
|
+
...orderPositionDiscounts,
|
|
77
|
+
...orderDiscounts,
|
|
78
|
+
].filter(Boolean);
|
|
79
|
+
|
|
80
|
+
return discounted;
|
|
81
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { WarehousingProviderType } from '@unchainedshop/core-warehousing';
|
|
2
|
+
import { WarehousingDirector } from '../directors/WarehousingDirector.js';
|
|
3
|
+
import { Modules } from '../modules.js';
|
|
4
|
+
|
|
5
|
+
export async function ercMetadataService(
|
|
6
|
+
this: Modules,
|
|
7
|
+
{ productId, chainTokenId, locale }: { productId: string; chainTokenId: string; locale: Intl.Locale },
|
|
8
|
+
) {
|
|
9
|
+
const product = await this.products.findProduct({
|
|
10
|
+
productId,
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
const [token] = await this.warehousing.findTokens({
|
|
14
|
+
chainTokenId,
|
|
15
|
+
contractAddress: product?.tokenization?.contractAddress,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
const virtualProviders = await this.warehousing.findProviders({
|
|
19
|
+
type: WarehousingProviderType.VIRTUAL,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
return await WarehousingDirector.tokenMetadata(
|
|
23
|
+
virtualProviders,
|
|
24
|
+
{
|
|
25
|
+
product,
|
|
26
|
+
token,
|
|
27
|
+
locale,
|
|
28
|
+
quantity: token?.quantity || 1,
|
|
29
|
+
referenceDate: new Date(),
|
|
30
|
+
},
|
|
31
|
+
{ modules: this },
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { User } from '@unchainedshop/core-users';
|
|
2
|
+
import { Order } from '@unchainedshop/core-orders';
|
|
3
|
+
import { Modules } from '../modules.js';
|
|
4
|
+
import { nextUserCartService } from './nextUserCart.js';
|
|
5
|
+
|
|
6
|
+
export async function findOrInitCartService(
|
|
7
|
+
this: Modules,
|
|
8
|
+
{
|
|
9
|
+
user,
|
|
10
|
+
countryCode,
|
|
11
|
+
orderId,
|
|
12
|
+
}: {
|
|
13
|
+
user: User;
|
|
14
|
+
countryCode: string;
|
|
15
|
+
orderId?: string;
|
|
16
|
+
},
|
|
17
|
+
) {
|
|
18
|
+
if (orderId) {
|
|
19
|
+
const order = await this.orders.findOrder({ orderId });
|
|
20
|
+
if (!order) return null;
|
|
21
|
+
return order;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return nextUserCartService.bind(this)({
|
|
25
|
+
user,
|
|
26
|
+
countryCode,
|
|
27
|
+
forceCartCreation: true,
|
|
28
|
+
}) as Order;
|
|
29
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Quotation, QuotationStatus } from '@unchainedshop/core-quotations';
|
|
2
|
+
import { Modules } from '../modules.js';
|
|
3
|
+
import { processQuotationService } from './processQuotation.js';
|
|
4
|
+
|
|
5
|
+
export async function fullfillQuotationService(this: Modules, quotation: Quotation, info) {
|
|
6
|
+
if (quotation.status === QuotationStatus.FULLFILLED) return quotation;
|
|
7
|
+
|
|
8
|
+
const updatedQuotation = await this.quotations.updateStatus(quotation._id, {
|
|
9
|
+
status: QuotationStatus.FULLFILLED,
|
|
10
|
+
info: JSON.stringify(info),
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
return processQuotationService.bind(this)(updatedQuotation, {});
|
|
14
|
+
}
|