@unchainedshop/core 4.0.0-rc.16 → 4.0.0-rc.18
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/bulk-importer/createBulkImporter.d.ts +29 -6
- package/lib/bulk-importer/createBulkImporter.d.ts.map +1 -1
- package/lib/bulk-importer/createBulkImporter.js +26 -19
- package/lib/bulk-importer/createBulkImporter.js.map +1 -1
- package/lib/bulk-importer/handlers/assortment/create.d.ts +552 -2
- package/lib/bulk-importer/handlers/assortment/create.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/assortment/create.js +32 -5
- package/lib/bulk-importer/handlers/assortment/create.js.map +1 -1
- package/lib/bulk-importer/handlers/assortment/remove.d.ts +20 -2
- package/lib/bulk-importer/handlers/assortment/remove.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/assortment/remove.js +7 -2
- package/lib/bulk-importer/handlers/assortment/remove.js.map +1 -1
- package/lib/bulk-importer/handlers/assortment/update.d.ts +552 -2
- package/lib/bulk-importer/handlers/assortment/update.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/assortment/update.js +43 -7
- package/lib/bulk-importer/handlers/assortment/update.js.map +1 -1
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.d.ts +23 -3
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.js +14 -6
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentChildren.js.map +1 -1
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.d.ts +23 -3
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.js +15 -6
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentFilters.js.map +1 -1
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.d.ts +23 -3
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.js +17 -8
- package/lib/bulk-importer/handlers/assortment/upsertAssortmentProducts.js.map +1 -1
- package/lib/bulk-importer/handlers/assortment/upsertMedia.d.ts +67 -2
- package/lib/bulk-importer/handlers/assortment/upsertMedia.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/assortment/upsertMedia.js +18 -4
- package/lib/bulk-importer/handlers/assortment/upsertMedia.js.map +1 -1
- package/lib/bulk-importer/handlers/filter/create.d.ts +125 -0
- package/lib/bulk-importer/handlers/filter/create.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/filter/create.js +22 -0
- package/lib/bulk-importer/handlers/filter/create.js.map +1 -1
- package/lib/bulk-importer/handlers/filter/remove.d.ts +10 -2
- package/lib/bulk-importer/handlers/filter/remove.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/filter/remove.js +4 -0
- package/lib/bulk-importer/handlers/filter/remove.js.map +1 -1
- package/lib/bulk-importer/handlers/filter/update.d.ts +125 -0
- package/lib/bulk-importer/handlers/filter/update.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/filter/update.js +22 -0
- package/lib/bulk-importer/handlers/filter/update.js.map +1 -1
- package/lib/bulk-importer/handlers/product/create.d.ts +1317 -2
- package/lib/bulk-importer/handlers/product/create.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/product/create.js +87 -8
- package/lib/bulk-importer/handlers/product/create.js.map +1 -1
- package/lib/bulk-importer/handlers/product/remove.d.ts +20 -2
- package/lib/bulk-importer/handlers/product/remove.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/product/remove.js +5 -0
- package/lib/bulk-importer/handlers/product/remove.js.map +1 -1
- package/lib/bulk-importer/handlers/product/transformSpecificationToProductStructure.d.ts +278 -1
- package/lib/bulk-importer/handlers/product/transformSpecificationToProductStructure.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/product/transformSpecificationToProductStructure.js +64 -3
- package/lib/bulk-importer/handlers/product/transformSpecificationToProductStructure.js.map +1 -1
- package/lib/bulk-importer/handlers/product/update.d.ts +1317 -2
- package/lib/bulk-importer/handlers/product/update.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/product/update.js +89 -5
- package/lib/bulk-importer/handlers/product/update.js.map +1 -1
- package/lib/bulk-importer/handlers/product/upsertMedia.d.ts +67 -2
- package/lib/bulk-importer/handlers/product/upsertMedia.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/product/upsertMedia.js +16 -2
- package/lib/bulk-importer/handlers/product/upsertMedia.js.map +1 -1
- package/lib/bulk-importer/handlers/product/upsertVariations.d.ts +73 -2
- package/lib/bulk-importer/handlers/product/upsertVariations.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/product/upsertVariations.js +26 -2
- package/lib/bulk-importer/handlers/product/upsertVariations.js.map +1 -1
- package/lib/bulk-importer/handlers/utils/convertTagsToLowerCase.d.ts +1 -1
- package/lib/bulk-importer/handlers/utils/convertTagsToLowerCase.d.ts.map +1 -1
- package/lib/bulk-importer/handlers/utils/convertTagsToLowerCase.js.map +1 -1
- package/lib/bulk-importer/handlers/utils/event-schema.d.ts +21 -0
- package/lib/bulk-importer/handlers/utils/event-schema.d.ts.map +1 -0
- package/lib/bulk-importer/handlers/utils/event-schema.js +64 -0
- package/lib/bulk-importer/handlers/utils/event-schema.js.map +1 -0
- package/lib/bulk-importer/index.d.ts +4 -0
- package/lib/bulk-importer/index.d.ts.map +1 -0
- package/lib/bulk-importer/index.js +4 -0
- package/lib/bulk-importer/index.js.map +1 -0
- package/lib/bulk-importer/upsertAsset.d.ts +21 -5
- package/lib/bulk-importer/upsertAsset.d.ts.map +1 -1
- package/lib/bulk-importer/upsertAsset.js +8 -0
- package/lib/bulk-importer/upsertAsset.js.map +1 -1
- package/lib/core-index.d.ts +4 -3
- package/lib/core-index.d.ts.map +1 -1
- package/lib/core-index.js +2 -2
- package/lib/core-index.js.map +1 -1
- package/lib/directors/BaseDiscountAdapter.d.ts +4 -4
- package/lib/directors/BaseDiscountAdapter.d.ts.map +1 -1
- package/lib/directors/BaseDiscountAdapter.js +1 -1
- package/lib/directors/BaseDiscountAdapter.js.map +1 -1
- package/lib/directors/BaseDiscountDirector.d.ts +1 -1
- package/lib/directors/BaseDiscountDirector.d.ts.map +1 -1
- package/lib/directors/BaseDiscountDirector.js +1 -1
- package/lib/directors/BaseDiscountDirector.js.map +1 -1
- package/lib/directors/BasePricingAdapter.d.ts +2 -2
- package/lib/directors/BasePricingAdapter.d.ts.map +1 -1
- package/lib/directors/BasePricingDirector.d.ts.map +1 -1
- package/lib/directors/BasePricingDirector.js +3 -3
- package/lib/directors/BasePricingDirector.js.map +1 -1
- package/lib/directors/BasePricingSheet.js.map +1 -1
- package/lib/directors/BaseWorker.js +1 -1
- package/lib/directors/BaseWorker.js.map +1 -1
- package/lib/directors/DeliveryAdapter.d.ts +3 -3
- package/lib/directors/DeliveryAdapter.d.ts.map +1 -1
- package/lib/directors/DeliveryDirector.d.ts +3 -3
- package/lib/directors/DeliveryDirector.d.ts.map +1 -1
- package/lib/directors/DeliveryDirector.js +29 -16
- package/lib/directors/DeliveryDirector.js.map +1 -1
- package/lib/directors/DeliveryPricingAdapter.d.ts +1 -1
- package/lib/directors/DeliveryPricingAdapter.d.ts.map +1 -1
- package/lib/directors/DeliveryPricingDirector.d.ts.map +1 -1
- package/lib/directors/DeliveryPricingDirector.js +3 -4
- package/lib/directors/DeliveryPricingDirector.js.map +1 -1
- package/lib/directors/DeliveryPricingSheet.d.ts.map +1 -1
- package/lib/directors/DeliveryPricingSheet.js +2 -1
- package/lib/directors/DeliveryPricingSheet.js.map +1 -1
- package/lib/directors/EnrollmentAdapter.d.ts +7 -4
- package/lib/directors/EnrollmentAdapter.d.ts.map +1 -1
- package/lib/directors/EnrollmentAdapter.js +1 -4
- package/lib/directors/EnrollmentAdapter.js.map +1 -1
- package/lib/directors/EnrollmentDirector.d.ts +1 -1
- package/lib/directors/EnrollmentDirector.d.ts.map +1 -1
- package/lib/directors/EnrollmentDirector.js +1 -5
- package/lib/directors/EnrollmentDirector.js.map +1 -1
- package/lib/directors/FilterAdapter.d.ts +3 -3
- package/lib/directors/FilterAdapter.d.ts.map +1 -1
- package/lib/directors/FilterDirector.d.ts +1 -1
- package/lib/directors/FilterDirector.d.ts.map +1 -1
- package/lib/directors/FilterDirector.js +1 -1
- package/lib/directors/FilterDirector.js.map +1 -1
- package/lib/directors/MessagingDirector.d.ts +1 -1
- package/lib/directors/OrderDiscountAdapter.d.ts +1 -1
- package/lib/directors/OrderDiscountAdapter.d.ts.map +1 -1
- package/lib/directors/OrderDiscountAdapter.js.map +1 -1
- package/lib/directors/OrderPricingAdapter.d.ts +2 -2
- package/lib/directors/OrderPricingAdapter.d.ts.map +1 -1
- package/lib/directors/OrderPricingDirector.d.ts +2 -2
- package/lib/directors/OrderPricingDirector.d.ts.map +1 -1
- package/lib/directors/OrderPricingDirector.js +1 -1
- package/lib/directors/OrderPricingDirector.js.map +1 -1
- package/lib/directors/OrderPricingSheet.d.ts.map +1 -1
- package/lib/directors/OrderPricingSheet.js +2 -1
- package/lib/directors/OrderPricingSheet.js.map +1 -1
- package/lib/directors/PaymentAdapter.d.ts +2 -2
- package/lib/directors/PaymentAdapter.d.ts.map +1 -1
- package/lib/directors/PaymentDirector.d.ts +4 -4
- package/lib/directors/PaymentDirector.d.ts.map +1 -1
- package/lib/directors/PaymentDirector.js +22 -4
- package/lib/directors/PaymentDirector.js.map +1 -1
- package/lib/directors/PaymentPricingAdapter.d.ts +2 -2
- package/lib/directors/PaymentPricingAdapter.d.ts.map +1 -1
- package/lib/directors/PaymentPricingDirector.d.ts +1 -1
- package/lib/directors/PaymentPricingDirector.d.ts.map +1 -1
- package/lib/directors/PaymentPricingDirector.js +3 -5
- package/lib/directors/PaymentPricingDirector.js.map +1 -1
- package/lib/directors/PaymentPricingSheet.d.ts.map +1 -1
- package/lib/directors/PaymentPricingSheet.js +2 -1
- package/lib/directors/PaymentPricingSheet.js.map +1 -1
- package/lib/directors/ProductDiscountAdapter.d.ts +1 -1
- package/lib/directors/ProductDiscountAdapter.d.ts.map +1 -1
- package/lib/directors/ProductDiscountAdapter.js.map +1 -1
- package/lib/directors/ProductDiscountConfiguration.d.ts +1 -1
- package/lib/directors/ProductDiscountConfiguration.d.ts.map +1 -1
- package/lib/directors/ProductPricingAdapter.d.ts +1 -1
- package/lib/directors/ProductPricingAdapter.d.ts.map +1 -1
- package/lib/directors/ProductPricingDirector.d.ts +2 -2
- package/lib/directors/ProductPricingDirector.d.ts.map +1 -1
- package/lib/directors/ProductPricingDirector.js +3 -3
- package/lib/directors/ProductPricingDirector.js.map +1 -1
- package/lib/directors/ProductPricingSheet.d.ts +2 -2
- package/lib/directors/ProductPricingSheet.d.ts.map +1 -1
- package/lib/directors/ProductPricingSheet.js +2 -1
- package/lib/directors/ProductPricingSheet.js.map +1 -1
- package/lib/directors/QuotationAdapter.d.ts +2 -2
- package/lib/directors/QuotationAdapter.d.ts.map +1 -1
- package/lib/directors/QuotationDirector.js +2 -2
- package/lib/directors/WarehousingAdapter.d.ts +3 -4
- package/lib/directors/WarehousingAdapter.d.ts.map +1 -1
- package/lib/directors/WarehousingAdapter.js.map +1 -1
- package/lib/directors/WarehousingDirector.d.ts +5 -5
- package/lib/directors/WarehousingDirector.d.ts.map +1 -1
- package/lib/directors/WarehousingDirector.js +10 -13
- package/lib/directors/WarehousingDirector.js.map +1 -1
- package/lib/directors/WorkerAdapter.d.ts +1 -1
- package/lib/directors/WorkerAdapter.d.ts.map +1 -1
- package/lib/directors/WorkerAdapter.js +1 -1
- package/lib/directors/WorkerAdapter.js.map +1 -1
- package/lib/directors/WorkerDirector.d.ts +2 -2
- package/lib/directors/WorkerDirector.d.ts.map +1 -1
- package/lib/directors/WorkerDirector.js +2 -3
- package/lib/directors/WorkerDirector.js.map +1 -1
- package/lib/modules.d.ts +1 -1
- package/lib/modules.d.ts.map +1 -1
- package/lib/services/activateEnrollment.js +3 -3
- package/lib/services/activateEnrollment.js.map +1 -1
- package/lib/services/calculateDiscountTotal.js +2 -2
- package/lib/services/calculateDiscountTotal.js.map +1 -1
- package/lib/services/checkoutOrder.d.ts +1 -1
- package/lib/services/checkoutOrder.d.ts.map +1 -1
- package/lib/services/checkoutOrder.js +9 -3
- package/lib/services/checkoutOrder.js.map +1 -1
- package/lib/services/confirmOrder.d.ts +1 -1
- package/lib/services/confirmOrder.d.ts.map +1 -1
- package/lib/services/createDownloadStream.d.ts +1 -1
- package/lib/services/createDownloadStream.d.ts.map +1 -1
- package/lib/services/createDownloadStream.js +2 -0
- package/lib/services/createDownloadStream.js.map +1 -1
- package/lib/services/createEnrollmentFromCheckout.d.ts.map +1 -1
- package/lib/services/createEnrollmentFromCheckout.js +2 -2
- package/lib/services/createEnrollmentFromCheckout.js.map +1 -1
- package/lib/services/createManualOrderDiscount.d.ts +2 -2
- package/lib/services/createManualOrderDiscount.d.ts.map +1 -1
- package/lib/services/createSignedURL.d.ts.map +1 -1
- package/lib/services/createSignedURL.js +2 -0
- package/lib/services/createSignedURL.js.map +1 -1
- package/lib/services/deleteUser.d.ts +1 -1
- package/lib/services/deleteUser.d.ts.map +1 -1
- package/lib/services/deleteUser.js +4 -2
- package/lib/services/deleteUser.js.map +1 -1
- package/lib/services/discountedEntities.js.map +1 -1
- package/lib/services/findOrInitCart.d.ts +1 -2
- package/lib/services/findOrInitCart.d.ts.map +1 -1
- package/lib/services/findOrInitCart.js.map +1 -1
- package/lib/services/fullfillQuotation.d.ts +1 -1
- package/lib/services/fullfillQuotation.d.ts.map +1 -1
- package/lib/services/fullfillQuotation.js.map +1 -1
- package/lib/services/generateOrderFromEnrollment.d.ts +7 -0
- package/lib/services/generateOrderFromEnrollment.d.ts.map +1 -0
- package/lib/services/generateOrderFromEnrollment.js +34 -0
- package/lib/services/generateOrderFromEnrollment.js.map +1 -0
- package/lib/services/index.d.ts +2 -0
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/index.js +2 -0
- package/lib/services/index.js.map +1 -1
- package/lib/services/initCartProviders.js.map +1 -1
- package/lib/services/initializeEnrollment.d.ts +1 -1
- package/lib/services/initializeEnrollment.d.ts.map +1 -1
- package/lib/services/initializeEnrollment.js +6 -3
- package/lib/services/initializeEnrollment.js.map +1 -1
- package/lib/services/linkFileService.d.ts +1 -1
- package/lib/services/linkFileService.d.ts.map +1 -1
- package/lib/services/linkFileService.js +3 -1
- package/lib/services/linkFileService.js.map +1 -1
- package/lib/services/loadFilterOptions.d.ts +2 -2
- package/lib/services/loadFilterOptions.d.ts.map +1 -1
- package/lib/services/migrateOrderCart.d.ts +1 -1
- package/lib/services/migrateOrderCart.d.ts.map +1 -1
- package/lib/services/nextUserCart.d.ts +1 -1
- package/lib/services/nextUserCart.d.ts.map +1 -1
- package/lib/services/nextUserCart.js +1 -1
- package/lib/services/nextUserCart.js.map +1 -1
- package/lib/services/processEnrollment.d.ts.map +1 -1
- package/lib/services/processEnrollment.js +13 -5
- package/lib/services/processEnrollment.js.map +1 -1
- package/lib/services/processOrder.d.ts.map +1 -1
- package/lib/services/processOrder.js +26 -30
- package/lib/services/processOrder.js.map +1 -1
- package/lib/services/processQuotation.js +6 -6
- package/lib/services/processQuotation.js.map +1 -1
- package/lib/services/proposeQuotation.d.ts +1 -1
- package/lib/services/proposeQuotation.d.ts.map +1 -1
- package/lib/services/proposeQuotation.js +2 -2
- package/lib/services/proposeQuotation.js.map +1 -1
- package/lib/services/registerPaymentCredentials.d.ts +1 -2
- package/lib/services/registerPaymentCredentials.d.ts.map +1 -1
- package/lib/services/registerPaymentCredentials.js +4 -6
- package/lib/services/registerPaymentCredentials.js.map +1 -1
- package/lib/services/rejectOrder.d.ts +1 -1
- package/lib/services/rejectOrder.d.ts.map +1 -1
- package/lib/services/rejectQuotation.d.ts +1 -1
- package/lib/services/rejectQuotation.d.ts.map +1 -1
- package/lib/services/rejectQuotation.js +2 -2
- package/lib/services/rejectQuotation.js.map +1 -1
- package/lib/services/removeProduct.js +3 -3
- package/lib/services/removeProduct.js.map +1 -1
- package/lib/services/searchAssortments.js +1 -1
- package/lib/services/searchAssortments.js.map +1 -1
- package/lib/services/searchProducts.js +1 -1
- package/lib/services/searchProducts.js.map +1 -1
- package/lib/services/simulateProductDispatching.d.ts +1 -1
- package/lib/services/simulateProductDispatching.d.ts.map +1 -1
- package/lib/services/simulateProductInventory.d.ts +1 -1
- package/lib/services/simulateProductInventory.d.ts.map +1 -1
- package/lib/services/simulateProductInventory.js.map +1 -1
- package/lib/services/simulateProductPricing.d.ts +7 -4
- package/lib/services/simulateProductPricing.d.ts.map +1 -1
- package/lib/services/simulateProductPricing.js.map +1 -1
- package/lib/services/updateCalculation.d.ts +2 -1
- package/lib/services/updateCalculation.d.ts.map +1 -1
- package/lib/services/updateCalculation.js +16 -10
- package/lib/services/updateCalculation.js.map +1 -1
- package/lib/services/updateScheduling.d.ts +1 -1
- package/lib/services/updateScheduling.d.ts.map +1 -1
- package/lib/services/updateScheduling.js +7 -11
- package/lib/services/updateScheduling.js.map +1 -1
- package/lib/services/updateUserAvatarAfterUpload.d.ts +1 -1
- package/lib/services/updateUserAvatarAfterUpload.d.ts.map +1 -1
- package/lib/services/updateUserAvatarAfterUpload.js.map +1 -1
- package/lib/services/uploadFileFromStream.d.ts.map +1 -1
- package/lib/services/uploadFileFromStream.js +4 -1
- package/lib/services/uploadFileFromStream.js.map +1 -1
- package/lib/services/uploadFileFromURL.d.ts +1 -2
- package/lib/services/uploadFileFromURL.d.ts.map +1 -1
- package/lib/services/uploadFileFromURL.js.map +1 -1
- package/lib/services/validateOrder.d.ts +1 -1
- package/lib/services/validateOrder.d.ts.map +1 -1
- package/lib/services/validateOrder.js +17 -24
- package/lib/services/validateOrder.js.map +1 -1
- package/lib/services/verifyQuotation.d.ts +1 -1
- package/lib/services/verifyQuotation.d.ts.map +1 -1
- package/lib/services/verifyQuotation.js +2 -2
- package/lib/services/verifyQuotation.js.map +1 -1
- package/package.json +20 -20
- package/src/bulk-importer/createBulkImporter.ts +34 -22
- package/src/bulk-importer/handlers/assortment/create.ts +38 -7
- package/src/bulk-importer/handlers/assortment/remove.ts +14 -3
- package/src/bulk-importer/handlers/assortment/update.ts +53 -9
- package/src/bulk-importer/handlers/assortment/upsertAssortmentChildren.ts +44 -19
- package/src/bulk-importer/handlers/assortment/upsertAssortmentFilters.ts +37 -9
- package/src/bulk-importer/handlers/assortment/upsertAssortmentProducts.ts +35 -9
- package/src/bulk-importer/handlers/assortment/upsertMedia.ts +23 -5
- package/src/bulk-importer/handlers/filter/create.ts +28 -0
- package/src/bulk-importer/handlers/filter/remove.ts +6 -1
- package/src/bulk-importer/handlers/filter/update.ts +28 -1
- package/src/bulk-importer/handlers/product/create.ts +109 -9
- package/src/bulk-importer/handlers/product/remove.ts +7 -1
- package/src/bulk-importer/handlers/product/update.ts +117 -8
- package/src/bulk-importer/handlers/product/upsertMedia.ts +20 -3
- package/src/bulk-importer/handlers/product/upsertVariations.ts +43 -4
- package/src/bulk-importer/handlers/utils/convertTagsToLowerCase.ts +1 -1
- package/src/bulk-importer/index.ts +3 -0
- package/src/bulk-importer/upsertAsset.ts +10 -2
- package/src/core-index.ts +4 -6
- package/src/directors/BaseDiscountAdapter.test.ts +1 -1
- package/src/directors/BaseDiscountAdapter.ts +5 -5
- package/src/directors/BaseDiscountDirector.ts +2 -2
- package/src/directors/BasePricingAdapter.ts +2 -2
- package/src/directors/BasePricingDirector.ts +47 -44
- package/src/directors/BasePricingSheet.ts +1 -1
- package/src/directors/BaseWorker.ts +1 -1
- package/src/directors/DeliveryAdapter.ts +3 -3
- package/src/directors/DeliveryDirector.ts +33 -23
- package/src/directors/DeliveryPricingAdapter.ts +1 -1
- package/src/directors/DeliveryPricingDirector.ts +5 -6
- package/src/directors/DeliveryPricingSheet.ts +3 -2
- package/src/directors/EnrollmentAdapter.ts +9 -6
- package/src/directors/EnrollmentDirector.ts +9 -8
- package/src/directors/FilterAdapter.ts +3 -3
- package/src/directors/FilterDirector.ts +5 -5
- package/src/directors/OrderDiscountAdapter.ts +2 -2
- package/src/directors/OrderPricingAdapter.ts +2 -2
- package/src/directors/OrderPricingDirector.ts +3 -3
- package/src/directors/OrderPricingSheet.ts +3 -2
- package/src/directors/PaymentAdapter.ts +2 -2
- package/src/directors/PaymentDirector.ts +32 -8
- package/src/directors/PaymentPricingAdapter.ts +2 -2
- package/src/directors/PaymentPricingDirector.ts +6 -8
- package/src/directors/PaymentPricingSheet.ts +3 -2
- package/src/directors/ProductDiscountAdapter.ts +2 -2
- package/src/directors/ProductDiscountConfiguration.ts +1 -1
- package/src/directors/ProductPricingAdapter.ts +1 -1
- package/src/directors/ProductPricingDirector.ts +7 -7
- package/src/directors/ProductPricingSheet.ts +4 -3
- package/src/directors/QuotationAdapter.ts +2 -2
- package/src/directors/QuotationDirector.ts +2 -2
- package/src/directors/WarehousingAdapter.ts +3 -4
- package/src/directors/WarehousingDirector.ts +20 -23
- package/src/directors/WorkerAdapter.ts +2 -2
- package/src/directors/WorkerDirector.ts +5 -6
- package/src/modules.ts +1 -1
- package/src/services/activateEnrollment.ts +5 -5
- package/src/services/calculateDiscountTotal.ts +4 -4
- package/src/services/checkoutOrder.ts +9 -4
- package/src/services/createDownloadStream.ts +1 -0
- package/src/services/createEnrollmentFromCheckout.ts +22 -20
- package/src/services/createManualOrderDiscount.ts +2 -2
- package/src/services/createSignedURL.ts +1 -0
- package/src/services/deleteUser.ts +7 -2
- package/src/services/discountedEntities.ts +6 -6
- package/src/services/findOrInitCart.ts +1 -2
- package/src/services/fullfillQuotation.ts +1 -1
- package/src/services/generateOrderFromEnrollment.ts +54 -0
- package/src/services/index.ts +4 -0
- package/src/services/initCartProviders.ts +2 -2
- package/src/services/initializeEnrollment.ts +11 -4
- package/src/services/linkFileService.ts +3 -1
- package/src/services/nextUserCart.ts +1 -1
- package/src/services/processEnrollment.ts +18 -6
- package/src/services/processOrder.ts +33 -36
- package/src/services/processQuotation.ts +6 -6
- package/src/services/proposeQuotation.ts +2 -2
- package/src/services/registerPaymentCredentials.ts +6 -8
- package/src/services/rejectQuotation.ts +2 -2
- package/src/services/removeProduct.ts +3 -3
- package/src/services/searchAssortments.ts +1 -1
- package/src/services/searchProducts.ts +1 -1
- package/src/services/simulateProductDispatching.ts +1 -1
- package/src/services/simulateProductInventory.ts +7 -3
- package/src/services/simulateProductPricing.ts +6 -3
- package/src/services/updateCalculation.ts +33 -18
- package/src/services/updateScheduling.ts +19 -20
- package/src/services/updateUserAvatarAfterUpload.ts +4 -1
- package/src/services/uploadFileFromStream.ts +3 -1
- package/src/services/uploadFileFromURL.ts +2 -2
- package/src/services/validateOrder.ts +34 -38
- package/src/services/verifyQuotation.ts +2 -2
- package/lib/factory/registerProductDiscoverabilityFilter copy.d.ts +0 -5
- package/lib/factory/registerProductDiscoverabilityFilter copy.d.ts.map +0 -1
- package/lib/factory/registerProductDiscoverabilityFilter copy.js +0 -28
- package/lib/factory/registerProductDiscoverabilityFilter copy.js.map +0 -1
- package/src/bulk-importer/handlers/product/transformSpecificationToProductStructure.ts +0 -22
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
DeliveryError,
|
|
7
7
|
} from './DeliveryAdapter.js';
|
|
8
8
|
import { DeliveryProvider } from '@unchainedshop/core-delivery';
|
|
9
|
-
import {
|
|
9
|
+
import { Order, OrderDeliveryStatus } from '@unchainedshop/core-orders';
|
|
10
10
|
import { Modules } from '../modules.js';
|
|
11
11
|
import { createLogger } from '@unchainedshop/logger';
|
|
12
12
|
|
|
@@ -14,10 +14,10 @@ const logger = createLogger('unchained:core');
|
|
|
14
14
|
|
|
15
15
|
export type IDeliveryDirector = IBaseDirector<IDeliveryAdapter> & {
|
|
16
16
|
sendOrderDelivery: (
|
|
17
|
-
|
|
17
|
+
order: Order,
|
|
18
18
|
transactionContext: Record<string, any>,
|
|
19
19
|
unchainedAPI: { modules: Modules },
|
|
20
|
-
) => Promise<
|
|
20
|
+
) => Promise<void>;
|
|
21
21
|
actions: (
|
|
22
22
|
deliveryProvider: DeliveryProvider,
|
|
23
23
|
deliveryContext: DeliveryContext,
|
|
@@ -33,21 +33,24 @@ export const DeliveryDirector: IDeliveryDirector = {
|
|
|
33
33
|
actions: async (deliveryProvider, deliveryContext, unchainedAPI) => {
|
|
34
34
|
const Adapter = baseDirector.getAdapter(deliveryProvider.adapterKey);
|
|
35
35
|
|
|
36
|
+
if (!Adapter) {
|
|
37
|
+
throw new Error(`Delivery Plugin ${deliveryProvider.adapterKey} not available`);
|
|
38
|
+
}
|
|
39
|
+
|
|
36
40
|
const context = { ...deliveryContext, ...unchainedAPI };
|
|
37
|
-
const adapter = Adapter
|
|
41
|
+
const adapter = Adapter.actions(deliveryProvider.configuration, context);
|
|
38
42
|
|
|
39
43
|
return {
|
|
40
44
|
configurationError: () => {
|
|
41
|
-
|
|
42
|
-
return adapter.configurationError();
|
|
43
|
-
} catch {
|
|
45
|
+
if (!adapter) {
|
|
44
46
|
return DeliveryError.ADAPTER_NOT_FOUND;
|
|
45
47
|
}
|
|
48
|
+
return adapter.configurationError();
|
|
46
49
|
},
|
|
47
50
|
|
|
48
51
|
estimatedDeliveryThroughput: async (warehousingThroughputTime) => {
|
|
49
52
|
try {
|
|
50
|
-
const throughput = await adapter
|
|
53
|
+
const throughput = await adapter?.estimatedDeliveryThroughput(warehousingThroughputTime);
|
|
51
54
|
return throughput;
|
|
52
55
|
} catch (error) {
|
|
53
56
|
logger.warn('Delivery Director -> Error while estimating delivery throughput', {
|
|
@@ -58,6 +61,7 @@ export const DeliveryDirector: IDeliveryDirector = {
|
|
|
58
61
|
},
|
|
59
62
|
|
|
60
63
|
isActive: () => {
|
|
64
|
+
if (!adapter) return false;
|
|
61
65
|
try {
|
|
62
66
|
return adapter.isActive();
|
|
63
67
|
} catch (error) {
|
|
@@ -69,6 +73,7 @@ export const DeliveryDirector: IDeliveryDirector = {
|
|
|
69
73
|
},
|
|
70
74
|
|
|
71
75
|
isAutoReleaseAllowed: () => {
|
|
76
|
+
if (!adapter) return false;
|
|
72
77
|
try {
|
|
73
78
|
return adapter.isAutoReleaseAllowed();
|
|
74
79
|
} catch (error) {
|
|
@@ -80,39 +85,47 @@ export const DeliveryDirector: IDeliveryDirector = {
|
|
|
80
85
|
},
|
|
81
86
|
|
|
82
87
|
send: async () => {
|
|
88
|
+
if (!adapter) throw new Error('Delivery adapter not found');
|
|
83
89
|
return adapter.send();
|
|
84
90
|
},
|
|
85
91
|
|
|
86
92
|
pickUpLocationById: async (locationId) => {
|
|
87
|
-
|
|
93
|
+
if (!adapter) throw new Error('Delivery adapter not found');
|
|
94
|
+
return adapter?.pickUpLocationById(locationId);
|
|
88
95
|
},
|
|
89
96
|
|
|
90
97
|
pickUpLocations: async () => {
|
|
98
|
+
if (!adapter) throw new Error('Delivery adapter not found');
|
|
91
99
|
return adapter.pickUpLocations();
|
|
92
100
|
},
|
|
93
101
|
};
|
|
94
102
|
},
|
|
95
103
|
|
|
96
|
-
sendOrderDelivery: async (
|
|
104
|
+
sendOrderDelivery: async (order, transactionContext, unchainedAPI) => {
|
|
105
|
+
const orderDelivery = await unchainedAPI.modules.orders.deliveries.findDelivery({
|
|
106
|
+
orderDeliveryId: order.deliveryId!,
|
|
107
|
+
});
|
|
108
|
+
|
|
97
109
|
if (
|
|
98
|
-
unchainedAPI.modules.orders.deliveries.normalizedStatus(orderDelivery) !==
|
|
110
|
+
unchainedAPI.modules.orders.deliveries.normalizedStatus(orderDelivery!) !==
|
|
111
|
+
OrderDeliveryStatus.OPEN
|
|
99
112
|
)
|
|
100
|
-
return
|
|
113
|
+
return;
|
|
101
114
|
|
|
102
|
-
const order = await unchainedAPI.modules.orders.findOrder({ orderId: orderDelivery.orderId });
|
|
103
115
|
const deliveryProvider = await unchainedAPI.modules.delivery.findProvider({
|
|
104
|
-
deliveryProviderId: orderDelivery
|
|
116
|
+
deliveryProviderId: orderDelivery!.deliveryProviderId,
|
|
105
117
|
});
|
|
106
|
-
|
|
118
|
+
|
|
119
|
+
const address = orderDelivery!.context?.address || order!.billingAddress;
|
|
107
120
|
|
|
108
121
|
const adapter = await DeliveryDirector.actions(
|
|
109
|
-
deliveryProvider
|
|
122
|
+
deliveryProvider!,
|
|
110
123
|
{
|
|
111
|
-
order
|
|
112
|
-
orderDelivery
|
|
124
|
+
order: order!,
|
|
125
|
+
orderDelivery: orderDelivery!,
|
|
113
126
|
transactionContext: {
|
|
114
127
|
...(transactionContext || {}),
|
|
115
|
-
...(orderDelivery
|
|
128
|
+
...(orderDelivery!.context || {}),
|
|
116
129
|
...(address || {}),
|
|
117
130
|
},
|
|
118
131
|
},
|
|
@@ -120,14 +133,11 @@ export const DeliveryDirector: IDeliveryDirector = {
|
|
|
120
133
|
);
|
|
121
134
|
|
|
122
135
|
const arbitraryResponseData = await adapter.send();
|
|
123
|
-
|
|
124
136
|
if (arbitraryResponseData) {
|
|
125
|
-
|
|
137
|
+
await unchainedAPI.modules.orders.deliveries.updateStatus(orderDelivery!._id, {
|
|
126
138
|
status: OrderDeliveryStatus.DELIVERED,
|
|
127
139
|
info: JSON.stringify(arbitraryResponseData),
|
|
128
140
|
});
|
|
129
141
|
}
|
|
130
|
-
|
|
131
|
-
return orderDelivery;
|
|
132
142
|
},
|
|
133
143
|
};
|
|
@@ -42,7 +42,7 @@ export interface DeliveryPricingAdapterContext extends BasePricingAdapterContext
|
|
|
42
42
|
provider: DeliveryProvider;
|
|
43
43
|
providerContext?: any;
|
|
44
44
|
order: Order;
|
|
45
|
-
orderDelivery
|
|
45
|
+
orderDelivery?: OrderDelivery;
|
|
46
46
|
user: User;
|
|
47
47
|
discounts: OrderDiscount[];
|
|
48
48
|
}
|
|
@@ -52,18 +52,18 @@ export const DeliveryPricingDirector: IDeliveryPricingDirector<any> = {
|
|
|
52
52
|
const provider = await modules.delivery.findProvider({
|
|
53
53
|
deliveryProviderId: item.deliveryProviderId,
|
|
54
54
|
});
|
|
55
|
-
const user = await modules.users.findUserById(order
|
|
55
|
+
const user = await modules.users.findUserById(order!.userId);
|
|
56
56
|
const discounts = await modules.orders.discounts.findOrderDiscounts({
|
|
57
57
|
orderId: item.orderId,
|
|
58
58
|
});
|
|
59
59
|
|
|
60
60
|
return {
|
|
61
61
|
...unchainedAPI,
|
|
62
|
-
countryCode: order
|
|
62
|
+
countryCode: order!.countryCode,
|
|
63
63
|
currencyCode,
|
|
64
|
-
order
|
|
65
|
-
provider
|
|
66
|
-
user
|
|
64
|
+
order: order!,
|
|
65
|
+
provider: provider!,
|
|
66
|
+
user: user!,
|
|
67
67
|
discounts,
|
|
68
68
|
orderDelivery: item,
|
|
69
69
|
providerContext: null,
|
|
@@ -78,7 +78,6 @@ export const DeliveryPricingDirector: IDeliveryPricingDirector<any> = {
|
|
|
78
78
|
provider: context.provider,
|
|
79
79
|
user: context.user,
|
|
80
80
|
discounts: [],
|
|
81
|
-
orderDelivery: null,
|
|
82
81
|
providerContext: context.providerContext,
|
|
83
82
|
};
|
|
84
83
|
},
|
|
@@ -61,7 +61,8 @@ export const DeliveryPricingSheet = (
|
|
|
61
61
|
category: DeliveryPricingRowCategory.Discount,
|
|
62
62
|
discountId: explicitDiscountId,
|
|
63
63
|
})
|
|
64
|
-
.map(({ discountId }) => discountId)
|
|
64
|
+
.map(({ discountId }) => discountId)
|
|
65
|
+
.filter(Boolean) as string[];
|
|
65
66
|
|
|
66
67
|
return [...new Set(discountIds)]
|
|
67
68
|
.map((discountId) => {
|
|
@@ -78,7 +79,7 @@ export const DeliveryPricingSheet = (
|
|
|
78
79
|
currencyCode,
|
|
79
80
|
};
|
|
80
81
|
})
|
|
81
|
-
.filter(Boolean);
|
|
82
|
+
.filter(Boolean) as { discountId: string; amount: number; currencyCode: string }[];
|
|
82
83
|
},
|
|
83
84
|
};
|
|
84
85
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseAdapter, IBaseAdapter } from '@unchainedshop/utils';
|
|
2
2
|
import {
|
|
3
3
|
Enrollment,
|
|
4
|
+
EnrollmentOrderPositionTemplate,
|
|
4
5
|
EnrollmentPeriod,
|
|
5
6
|
EnrollmentPlan,
|
|
6
7
|
addToDate,
|
|
@@ -10,13 +11,17 @@ import type { OrderPosition } from '@unchainedshop/core-orders';
|
|
|
10
11
|
|
|
11
12
|
export interface EnrollmentContext {
|
|
12
13
|
enrollment: Enrollment;
|
|
14
|
+
product: Product;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
export interface EnrollmentAdapterActions {
|
|
16
|
-
configurationForOrder: (params: { period: EnrollmentPeriod
|
|
18
|
+
configurationForOrder: (params: { period: EnrollmentPeriod }) => Promise<{
|
|
19
|
+
orderContext?: Record<string, any>;
|
|
20
|
+
orderPositionTemplates: EnrollmentOrderPositionTemplate[];
|
|
21
|
+
} | null>;
|
|
17
22
|
isOverdue: () => Promise<boolean>;
|
|
18
23
|
isValidForActivation: () => Promise<boolean>;
|
|
19
|
-
nextPeriod: () => Promise<EnrollmentPeriod>;
|
|
24
|
+
nextPeriod: () => Promise<EnrollmentPeriod | null>;
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
export type IEnrollmentAdapter = IBaseAdapter & {
|
|
@@ -71,10 +76,8 @@ export const EnrollmentAdapter: Omit<IEnrollmentAdapter, 'key' | 'label' | 'vers
|
|
|
71
76
|
isValidForActivation: async () => false,
|
|
72
77
|
|
|
73
78
|
nextPeriod: async () => {
|
|
74
|
-
const { enrollment } = context;
|
|
75
|
-
|
|
76
|
-
productId: enrollment.productId,
|
|
77
|
-
});
|
|
79
|
+
const { enrollment, product } = context;
|
|
80
|
+
|
|
78
81
|
const plan = product?.plan;
|
|
79
82
|
const referenceDate = new Date();
|
|
80
83
|
if (!plan) return null;
|
|
@@ -10,9 +10,15 @@ const logger = createLogger('unchained:core');
|
|
|
10
10
|
export type IEnrollmentDirector = IBaseDirector<IEnrollmentAdapter> & {
|
|
11
11
|
transformOrderItemToEnrollment: (
|
|
12
12
|
item: { orderPosition: OrderPosition; product: Product },
|
|
13
|
-
doc: Omit<
|
|
13
|
+
doc: Omit<
|
|
14
|
+
Enrollment,
|
|
15
|
+
'configuration' | 'productId' | 'quantity' | 'status' | 'periods' | 'log' | '_id' | 'created'
|
|
16
|
+
>,
|
|
14
17
|
unchainedAPI,
|
|
15
|
-
) => Promise<
|
|
18
|
+
) => Promise<
|
|
19
|
+
Omit<Enrollment, 'status' | 'periods' | 'log' | '_id' | 'created'> &
|
|
20
|
+
Pick<Partial<Enrollment>, '_id' | 'created'>
|
|
21
|
+
>;
|
|
16
22
|
|
|
17
23
|
actions: (enrollmentContext: EnrollmentContext, unchainedAPI) => Promise<EnrollmentAdapterActions>;
|
|
18
24
|
};
|
|
@@ -53,12 +59,7 @@ export const EnrollmentDirector: IEnrollmentDirector = {
|
|
|
53
59
|
actions: async (enrollmentContext, unchainedAPI) => {
|
|
54
60
|
const context = { ...enrollmentContext, ...unchainedAPI };
|
|
55
61
|
|
|
56
|
-
|
|
57
|
-
const product = await context.modules.products.findProduct({
|
|
58
|
-
productId: context.enrollment.productId,
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
const Adapter = findAppropriateAdapters(product?.plan)?.[0];
|
|
62
|
+
const Adapter = findAppropriateAdapters(enrollmentContext.product.plan)?.[0];
|
|
62
63
|
|
|
63
64
|
if (!Adapter) {
|
|
64
65
|
throw new Error('No suitable enrollment plugin available for this plan configuration');
|
|
@@ -21,7 +21,7 @@ export interface FilterAdapterActions {
|
|
|
21
21
|
|
|
22
22
|
searchAssortments: (
|
|
23
23
|
params: {
|
|
24
|
-
assortmentIds
|
|
24
|
+
assortmentIds?: string[];
|
|
25
25
|
},
|
|
26
26
|
options: {
|
|
27
27
|
filterSelector: mongodb.Filter<Filter>;
|
|
@@ -29,7 +29,7 @@ export interface FilterAdapterActions {
|
|
|
29
29
|
sortStage: mongodb.FindOptions['sort'];
|
|
30
30
|
locale: Intl.Locale;
|
|
31
31
|
},
|
|
32
|
-
) => Promise<string[]>;
|
|
32
|
+
) => Promise<string[] | undefined>;
|
|
33
33
|
|
|
34
34
|
searchProducts: (
|
|
35
35
|
params: {
|
|
@@ -41,7 +41,7 @@ export interface FilterAdapterActions {
|
|
|
41
41
|
sortStage: mongodb.FindOptions['sort'];
|
|
42
42
|
locale: Intl.Locale;
|
|
43
43
|
},
|
|
44
|
-
) => Promise<string[] |
|
|
44
|
+
) => Promise<string[] | undefined>;
|
|
45
45
|
|
|
46
46
|
transformFilterSelector: (
|
|
47
47
|
query: mongodb.Filter<Filter>,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
import { Product } from '@unchainedshop/core-products';
|
|
13
13
|
import { Modules } from '../modules.js';
|
|
14
14
|
|
|
15
|
-
export const parseQueryArray = (query
|
|
15
|
+
export const parseQueryArray = (query?: SearchFilterQuery): Record<string, string[]> =>
|
|
16
16
|
(query || []).reduce(
|
|
17
17
|
(accumulator, { key, value }) => ({
|
|
18
18
|
...accumulator,
|
|
@@ -96,14 +96,14 @@ export const FilterDirector: IFilterDirector = {
|
|
|
96
96
|
},
|
|
97
97
|
|
|
98
98
|
searchAssortments: async (params, options) => {
|
|
99
|
-
return reduceAdapters<string[]>(async (lastSearchPromise, adapter) => {
|
|
99
|
+
return reduceAdapters<string[] | undefined>(async (lastSearchPromise, adapter) => {
|
|
100
100
|
const assortmentIds = await lastSearchPromise;
|
|
101
101
|
return adapter.searchAssortments({ assortmentIds }, options);
|
|
102
102
|
}, params.assortmentIds);
|
|
103
103
|
},
|
|
104
104
|
|
|
105
105
|
searchProducts: async (params, options) => {
|
|
106
|
-
return reduceAdapters<string[]>(async (lastSearchPromise, adapter) => {
|
|
106
|
+
return reduceAdapters<string[] | undefined>(async (lastSearchPromise, adapter) => {
|
|
107
107
|
const productIds = await lastSearchPromise;
|
|
108
108
|
return adapter.searchProducts({ productIds }, options);
|
|
109
109
|
}, params.productIds);
|
|
@@ -187,7 +187,7 @@ export const FilterDirector: IFilterDirector = {
|
|
|
187
187
|
values,
|
|
188
188
|
Object.keys(keyToProductIdMap),
|
|
189
189
|
);
|
|
190
|
-
const result = [];
|
|
190
|
+
const result: string[] = [];
|
|
191
191
|
for (const key of filteredKeys) {
|
|
192
192
|
const additionalValues = key === undefined ? allProductIds : keyToProductIdMap[key];
|
|
193
193
|
if (additionalValues) {
|
|
@@ -244,7 +244,7 @@ export const FilterDirector: IFilterDirector = {
|
|
|
244
244
|
async filterFacets(filter, params, unchainedAPI) {
|
|
245
245
|
const { allProductIds, searchQuery, forceLiveCollection, otherFilters } = params;
|
|
246
246
|
|
|
247
|
-
const filterQueryParsed = parseQueryArray(searchQuery
|
|
247
|
+
const filterQueryParsed = parseQueryArray(searchQuery.filterQuery);
|
|
248
248
|
|
|
249
249
|
// The examinedProductIdSet is a set of product id's that:
|
|
250
250
|
// - Fit this filter generally
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
OrderDiscountConfiguration,
|
|
5
5
|
} from '../directors/index.js';
|
|
6
6
|
|
|
7
|
-
export const OrderDiscountAdapter
|
|
7
|
+
export const OrderDiscountAdapter = BaseDiscountAdapter as Omit<
|
|
8
8
|
IDiscountAdapter<OrderDiscountConfiguration>,
|
|
9
9
|
'key' | 'label' | 'version'
|
|
10
|
-
|
|
10
|
+
>;
|
|
@@ -20,9 +20,9 @@ export interface OrderPricingAdapterContext extends BasePricingAdapterContext {
|
|
|
20
20
|
currencyCode?: string;
|
|
21
21
|
discounts: OrderDiscount[];
|
|
22
22
|
order: Order;
|
|
23
|
-
orderDelivery: OrderDelivery;
|
|
24
23
|
orderPositions: OrderPosition[];
|
|
25
|
-
|
|
24
|
+
orderDelivery: OrderDelivery | null;
|
|
25
|
+
orderPayment: OrderPayment | null;
|
|
26
26
|
user: User;
|
|
27
27
|
}
|
|
28
28
|
|
|
@@ -13,9 +13,9 @@ import { Order, OrderDelivery, OrderPayment, OrderPosition } from '@unchainedsho
|
|
|
13
13
|
export interface OrderPricingContext {
|
|
14
14
|
currencyCode: string;
|
|
15
15
|
order: Order;
|
|
16
|
-
orderDelivery: OrderDelivery;
|
|
16
|
+
orderDelivery: OrderDelivery | null;
|
|
17
17
|
orderPositions: OrderPosition[];
|
|
18
|
-
orderPayment: OrderPayment;
|
|
18
|
+
orderPayment: OrderPayment | null;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
export type OrderPricingDiscount = PricingDiscount & {
|
|
@@ -61,7 +61,7 @@ export const OrderPricingDirector: IOrderPricingDirector<any> = {
|
|
|
61
61
|
orderDelivery: context.orderDelivery,
|
|
62
62
|
orderPayment: context.orderPayment,
|
|
63
63
|
orderPositions: context.orderPositions,
|
|
64
|
-
user
|
|
64
|
+
user: user!,
|
|
65
65
|
};
|
|
66
66
|
},
|
|
67
67
|
|
|
@@ -122,7 +122,8 @@ export const OrderPricingSheet = (
|
|
|
122
122
|
category: OrderPricingRowCategory.Discounts,
|
|
123
123
|
discountId: explicitDiscountId,
|
|
124
124
|
})
|
|
125
|
-
.map(({ discountId }) => discountId)
|
|
125
|
+
.map(({ discountId }) => discountId)
|
|
126
|
+
.filter(Boolean) as string[];
|
|
126
127
|
|
|
127
128
|
return [...new Set(discountIds)]
|
|
128
129
|
.map((discountId) => {
|
|
@@ -139,7 +140,7 @@ export const OrderPricingSheet = (
|
|
|
139
140
|
currencyCode: basePricingSheet.currencyCode,
|
|
140
141
|
};
|
|
141
142
|
})
|
|
142
|
-
.filter(Boolean);
|
|
143
|
+
.filter(Boolean) as { discountId: string; amount: number; currencyCode: string }[];
|
|
143
144
|
},
|
|
144
145
|
};
|
|
145
146
|
|
|
@@ -23,11 +23,11 @@ export type PaymentChargeActionResult = ChargeResult & {
|
|
|
23
23
|
};
|
|
24
24
|
export interface IPaymentActions {
|
|
25
25
|
charge: (transactionContext?: any) => Promise<PaymentChargeActionResult | false>;
|
|
26
|
-
configurationError: (transactionContext?: any) => PaymentError;
|
|
26
|
+
configurationError: (transactionContext?: any) => PaymentError | null;
|
|
27
27
|
isActive: (transactionContext?: any) => boolean;
|
|
28
28
|
isPayLaterAllowed: (transactionContext?: any) => boolean;
|
|
29
29
|
register: (transactionContext?: any) => Promise<any>;
|
|
30
|
-
sign: (transactionContext?: any) => Promise<string>;
|
|
30
|
+
sign: (transactionContext?: any) => Promise<string | null>;
|
|
31
31
|
validate: (token?: any) => Promise<boolean>;
|
|
32
32
|
cancel: (transactionContext?: any) => Promise<boolean>;
|
|
33
33
|
confirm: (transactionContext?: any) => Promise<boolean>;
|
|
@@ -2,7 +2,7 @@ import { BaseDirector, IBaseDirector } from '@unchainedshop/utils';
|
|
|
2
2
|
import { createLogger } from '@unchainedshop/logger';
|
|
3
3
|
import { PaymentError, IPaymentActions, IPaymentAdapter, PaymentContext } from './PaymentAdapter.js';
|
|
4
4
|
import { PaymentProvider } from '@unchainedshop/core-payment';
|
|
5
|
-
import { OrderPayment, OrderPaymentStatus } from '@unchainedshop/core-orders';
|
|
5
|
+
import { Order, OrderPayment, OrderPaymentStatus } from '@unchainedshop/core-orders';
|
|
6
6
|
|
|
7
7
|
const buildPaymentProviderActionsContext = (
|
|
8
8
|
orderPayment: OrderPayment,
|
|
@@ -19,7 +19,7 @@ const buildPaymentProviderActionsContext = (
|
|
|
19
19
|
|
|
20
20
|
export type IPaymentDirector = IBaseDirector<IPaymentAdapter> & {
|
|
21
21
|
confirmOrderPayment: (
|
|
22
|
-
|
|
22
|
+
order: Order,
|
|
23
23
|
paymentContext: {
|
|
24
24
|
transactionContext: any;
|
|
25
25
|
userId: string;
|
|
@@ -28,7 +28,7 @@ export type IPaymentDirector = IBaseDirector<IPaymentAdapter> & {
|
|
|
28
28
|
) => Promise<OrderPayment>;
|
|
29
29
|
|
|
30
30
|
cancelOrderPayment: (
|
|
31
|
-
|
|
31
|
+
order: Order,
|
|
32
32
|
paymentContext: {
|
|
33
33
|
transactionContext: any;
|
|
34
34
|
userId: string;
|
|
@@ -37,7 +37,7 @@ export type IPaymentDirector = IBaseDirector<IPaymentAdapter> & {
|
|
|
37
37
|
) => Promise<OrderPayment>;
|
|
38
38
|
|
|
39
39
|
chargeOrderPayment: (
|
|
40
|
-
|
|
40
|
+
order: Order,
|
|
41
41
|
context: {
|
|
42
42
|
transactionContext: any;
|
|
43
43
|
userId: string;
|
|
@@ -51,7 +51,7 @@ export type IPaymentDirector = IBaseDirector<IPaymentAdapter> & {
|
|
|
51
51
|
unchainedAPI,
|
|
52
52
|
) => Promise<IPaymentActions>;
|
|
53
53
|
};
|
|
54
|
-
const logger = createLogger('unchained:core
|
|
54
|
+
const logger = createLogger('unchained:core:payment');
|
|
55
55
|
const baseDirector = BaseDirector<IPaymentAdapter>('PaymentDirector');
|
|
56
56
|
|
|
57
57
|
export const PaymentDirector: IPaymentDirector = {
|
|
@@ -143,7 +143,7 @@ export const PaymentDirector: IPaymentDirector = {
|
|
|
143
143
|
},
|
|
144
144
|
|
|
145
145
|
confirmOrderPayment: async (
|
|
146
|
-
|
|
146
|
+
order: Order,
|
|
147
147
|
paymentContext: {
|
|
148
148
|
transactionContext: any;
|
|
149
149
|
userId: string;
|
|
@@ -152,6 +152,14 @@ export const PaymentDirector: IPaymentDirector = {
|
|
|
152
152
|
): Promise<OrderPayment> => {
|
|
153
153
|
const { modules } = unchainedAPI;
|
|
154
154
|
|
|
155
|
+
const orderPayment =
|
|
156
|
+
order.paymentId &&
|
|
157
|
+
(await modules.orders.payments.findOrderPayment({
|
|
158
|
+
orderPaymentId: order.paymentId,
|
|
159
|
+
}));
|
|
160
|
+
|
|
161
|
+
if (!orderPayment) throw new Error('Order payment not set');
|
|
162
|
+
|
|
155
163
|
if (modules.orders.payments.normalizedStatus(orderPayment) !== OrderPaymentStatus.PAID) {
|
|
156
164
|
return orderPayment;
|
|
157
165
|
}
|
|
@@ -178,7 +186,7 @@ export const PaymentDirector: IPaymentDirector = {
|
|
|
178
186
|
},
|
|
179
187
|
|
|
180
188
|
cancelOrderPayment: async (
|
|
181
|
-
|
|
189
|
+
order: Order,
|
|
182
190
|
paymentContext: {
|
|
183
191
|
transactionContext: any;
|
|
184
192
|
userId: string;
|
|
@@ -187,6 +195,14 @@ export const PaymentDirector: IPaymentDirector = {
|
|
|
187
195
|
): Promise<OrderPayment> => {
|
|
188
196
|
const { modules } = unchainedAPI;
|
|
189
197
|
|
|
198
|
+
const orderPayment =
|
|
199
|
+
order.paymentId &&
|
|
200
|
+
(await modules.orders.payments.findOrderPayment({
|
|
201
|
+
orderPaymentId: order.paymentId,
|
|
202
|
+
}));
|
|
203
|
+
|
|
204
|
+
if (!orderPayment) throw new Error('Order payment not set');
|
|
205
|
+
|
|
190
206
|
if (modules.orders.payments.normalizedStatus(orderPayment) !== OrderPaymentStatus.PAID) {
|
|
191
207
|
return orderPayment;
|
|
192
208
|
}
|
|
@@ -212,7 +228,7 @@ export const PaymentDirector: IPaymentDirector = {
|
|
|
212
228
|
},
|
|
213
229
|
|
|
214
230
|
chargeOrderPayment: async (
|
|
215
|
-
|
|
231
|
+
order: Order,
|
|
216
232
|
context: {
|
|
217
233
|
transactionContext: any;
|
|
218
234
|
userId: string;
|
|
@@ -221,6 +237,14 @@ export const PaymentDirector: IPaymentDirector = {
|
|
|
221
237
|
): Promise<OrderPayment> => {
|
|
222
238
|
const { modules } = unchainedAPI;
|
|
223
239
|
|
|
240
|
+
const orderPayment =
|
|
241
|
+
order.paymentId &&
|
|
242
|
+
(await modules.orders.payments.findOrderPayment({
|
|
243
|
+
orderPaymentId: order.paymentId,
|
|
244
|
+
}));
|
|
245
|
+
|
|
246
|
+
if (!orderPayment) throw new Error('Order payment not set');
|
|
247
|
+
|
|
224
248
|
if (modules.orders.payments.normalizedStatus(orderPayment) !== OrderPaymentStatus.OPEN) {
|
|
225
249
|
return orderPayment;
|
|
226
250
|
}
|
|
@@ -20,8 +20,8 @@ export interface PaymentPricingCalculation extends PricingCalculation {
|
|
|
20
20
|
export interface PaymentPricingAdapterContext extends BasePricingAdapterContext {
|
|
21
21
|
countryCode?: string;
|
|
22
22
|
currency?: string;
|
|
23
|
-
user: User;
|
|
24
|
-
orderPayment
|
|
23
|
+
user: User | null;
|
|
24
|
+
orderPayment?: OrderPayment;
|
|
25
25
|
order: Order;
|
|
26
26
|
provider: PaymentProvider;
|
|
27
27
|
discounts: OrderDiscount[];
|
|
@@ -15,7 +15,7 @@ export type PaymentPricingContext =
|
|
|
15
15
|
| {
|
|
16
16
|
countryCode?: string;
|
|
17
17
|
currencyCode?: string;
|
|
18
|
-
user
|
|
18
|
+
user?: User;
|
|
19
19
|
order: Order;
|
|
20
20
|
provider: PaymentProvider;
|
|
21
21
|
providerContext?: any;
|
|
@@ -54,21 +54,20 @@ export const PaymentPricingDirector: IPaymentPricingDirector<any> = {
|
|
|
54
54
|
const provider = await modules.payment.paymentProviders.findProvider({
|
|
55
55
|
paymentProviderId: item.paymentProviderId,
|
|
56
56
|
});
|
|
57
|
-
const user = await modules.users.findUserById(order
|
|
57
|
+
const user = await modules.users.findUserById(order!.userId);
|
|
58
58
|
const discounts = await modules.orders.discounts.findOrderDiscounts({
|
|
59
59
|
orderId: item.orderId,
|
|
60
60
|
});
|
|
61
61
|
|
|
62
62
|
return {
|
|
63
63
|
...unchainedAPI,
|
|
64
|
-
countryCode: order
|
|
64
|
+
countryCode: order!.countryCode,
|
|
65
65
|
currencyCode,
|
|
66
|
-
order
|
|
67
|
-
provider
|
|
66
|
+
order: order!,
|
|
67
|
+
provider: provider!,
|
|
68
68
|
user,
|
|
69
69
|
discounts,
|
|
70
70
|
orderPayment: item,
|
|
71
|
-
providerContext: null,
|
|
72
71
|
};
|
|
73
72
|
}
|
|
74
73
|
|
|
@@ -78,9 +77,8 @@ export const PaymentPricingDirector: IPaymentPricingDirector<any> = {
|
|
|
78
77
|
currencyCode: context.currencyCode,
|
|
79
78
|
order: context.order,
|
|
80
79
|
provider: context.provider,
|
|
81
|
-
user: context.user,
|
|
80
|
+
user: context.user || null,
|
|
82
81
|
discounts: [],
|
|
83
|
-
orderPayment: null,
|
|
84
82
|
providerContext: context.providerContext,
|
|
85
83
|
};
|
|
86
84
|
},
|
|
@@ -66,7 +66,8 @@ export const PaymentPricingSheet = (
|
|
|
66
66
|
category: PaymentPricingRowCategory.Discount,
|
|
67
67
|
discountId: explicitDiscountId,
|
|
68
68
|
})
|
|
69
|
-
.map(({ discountId }) => discountId)
|
|
69
|
+
.map(({ discountId }) => discountId)
|
|
70
|
+
.filter(Boolean) as string[];
|
|
70
71
|
|
|
71
72
|
return [...new Set(discountIds)]
|
|
72
73
|
.map((discountId) => {
|
|
@@ -83,7 +84,7 @@ export const PaymentPricingSheet = (
|
|
|
83
84
|
currencyCode: basePricingSheet.currencyCode,
|
|
84
85
|
};
|
|
85
86
|
})
|
|
86
|
-
.filter(Boolean);
|
|
87
|
+
.filter(Boolean) as { discountId: string; amount: number; currencyCode: string }[];
|
|
87
88
|
},
|
|
88
89
|
};
|
|
89
90
|
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
ProductDiscountConfiguration,
|
|
5
5
|
} from '../directors/index.js';
|
|
6
6
|
|
|
7
|
-
export const ProductDiscountAdapter
|
|
7
|
+
export const ProductDiscountAdapter = BaseDiscountAdapter as Omit<
|
|
8
8
|
IDiscountAdapter<ProductDiscountConfiguration>,
|
|
9
9
|
'key' | 'label' | 'version'
|
|
10
|
-
|
|
10
|
+
>;
|
|
@@ -10,7 +10,7 @@ type ResolvedConfiguration = {
|
|
|
10
10
|
export type PriceConfigurationResolver = (
|
|
11
11
|
product: Product,
|
|
12
12
|
quantity: number,
|
|
13
|
-
configuration
|
|
13
|
+
configuration?: ProductConfiguration[],
|
|
14
14
|
) => ResolvedConfiguration | null;
|
|
15
15
|
|
|
16
16
|
export interface ProductDiscountConfiguration extends ResolvedConfiguration {
|
|
@@ -16,7 +16,7 @@ export interface ProductPricingAdapterContext extends BasePricingAdapterContext
|
|
|
16
16
|
currencyCode: string;
|
|
17
17
|
product: Product;
|
|
18
18
|
quantity: number;
|
|
19
|
-
configuration
|
|
19
|
+
configuration?: ProductConfiguration[];
|
|
20
20
|
order?: Order;
|
|
21
21
|
user?: User;
|
|
22
22
|
}
|