@mercurjs/b2c-core 1.5.1 → 1.5.3
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/.medusa/server/src/api/admin/custom/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/custom/middlewares.js +8 -0
- package/.medusa/server/src/api/admin/custom/product-variants/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/custom/product-variants/middlewares.js +16 -0
- package/.medusa/server/src/api/admin/custom/product-variants/query-config.d.ts +7 -0
- package/.medusa/server/src/api/admin/custom/product-variants/query-config.js +48 -0
- package/.medusa/server/src/api/admin/custom/product-variants/route.d.ts +100 -0
- package/.medusa/server/src/api/admin/custom/product-variants/route.js +133 -0
- package/.medusa/server/src/api/admin/custom/product-variants/utils.d.ts +19 -0
- package/.medusa/server/src/api/admin/custom/product-variants/utils.js +31 -0
- package/.medusa/server/src/api/admin/custom/product-variants/validators.d.ts +327 -0
- package/.medusa/server/src/api/admin/custom/product-variants/validators.js +34 -0
- package/.medusa/server/src/api/admin/inventory-items/[id]/location-levels/[location_id]/route.js +2 -2
- package/.medusa/server/src/api/admin/middlewares.js +13 -7
- package/.medusa/server/src/api/admin/order-sets/query-config.js +6 -2
- package/.medusa/server/src/api/admin/order-sets/route.d.ts +38 -2
- package/.medusa/server/src/api/admin/order-sets/route.js +46 -27
- package/.medusa/server/src/api/admin/order-sets/validators.d.ts +100 -1
- package/.medusa/server/src/api/admin/order-sets/validators.js +10 -3
- package/.medusa/server/src/api/admin/orders/[id]/route.d.ts +3 -3
- package/.medusa/server/src/api/admin/orders/[id]/route.js +6 -6
- package/.medusa/server/src/api/admin/orders/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/orders/middlewares.js +17 -0
- package/.medusa/server/src/api/admin/products/validators.d.ts +98 -98
- package/.medusa/server/src/api/admin/reservations/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/admin/reservations/middlewares.js +12 -0
- package/.medusa/server/src/api/hooks/middlewares.js +6 -1
- package/.medusa/server/src/api/store/carts/[id]/line-items/[line_id]/route.js +2 -2
- package/.medusa/server/src/api/store/carts/[id]/route.d.ts +6 -0
- package/.medusa/server/src/api/store/carts/[id]/route.js +32 -0
- package/.medusa/server/src/api/store/carts/middlewares.js +4 -5
- package/.medusa/server/src/api/store/wishlist/middlewares.js +2 -2
- package/.medusa/server/src/api/store/wishlist/route.js +3 -4
- package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.d.ts +22 -44
- package/.medusa/server/src/api/vendor/campaigns/[id]/promotions/route.js +31 -46
- package/.medusa/server/src/api/vendor/campaigns/middlewares.js +30 -18
- package/.medusa/server/src/api/vendor/campaigns/query-config.js +2 -2
- package/.medusa/server/src/api/vendor/campaigns/validators.d.ts +11 -0
- package/.medusa/server/src/api/vendor/campaigns/validators.js +3 -2
- package/.medusa/server/src/api/vendor/customer-groups/validators.js +1 -1
- package/.medusa/server/src/api/vendor/customers/route.js +2 -2
- package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.d.ts +1 -2
- package/.medusa/server/src/api/vendor/inventory-items/[id]/location-levels/[location_id]/route.js +5 -2
- package/.medusa/server/src/api/vendor/inventory-items/validators.d.ts +8 -8
- package/.medusa/server/src/api/vendor/me/route.d.ts +1 -2
- package/.medusa/server/src/api/vendor/me/route.js +1 -1
- package/.medusa/server/src/api/vendor/members/[id]/route.js +3 -3
- package/.medusa/server/src/api/vendor/price-lists/validators.d.ts +2 -2
- package/.medusa/server/src/api/vendor/product-collections/[id]/products/route.d.ts +91 -0
- package/.medusa/server/src/api/vendor/product-collections/[id]/products/route.js +120 -2
- package/.medusa/server/src/api/vendor/product-collections/middlewares.js +20 -2
- package/.medusa/server/src/api/vendor/product-types/validators.d.ts +153 -1
- package/.medusa/server/src/api/vendor/product-types/validators.js +6 -3
- package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.d.ts +3 -0
- package/.medusa/server/src/api/vendor/products/[id]/variants/[variant_id]/media/route.js +20 -0
- package/.medusa/server/src/api/vendor/products/batch/route.d.ts +34 -0
- package/.medusa/server/src/api/vendor/products/batch/route.js +79 -0
- package/.medusa/server/src/api/vendor/products/middlewares.js +19 -5
- package/.medusa/server/src/api/vendor/products/route.js +4 -4
- package/.medusa/server/src/api/vendor/products/utils.d.ts +16 -1
- package/.medusa/server/src/api/vendor/products/utils.js +69 -3
- package/.medusa/server/src/api/vendor/products/validators.d.ts +218 -102
- package/.medusa/server/src/api/vendor/products/validators.js +52 -2
- package/.medusa/server/src/api/vendor/reservations/middlewares.d.ts +4 -1
- package/.medusa/server/src/api/vendor/reservations/middlewares.js +23 -3
- package/.medusa/server/src/api/vendor/reservations/route.js +5 -3
- package/.medusa/server/src/api/vendor/reservations/validators.d.ts +45 -3
- package/.medusa/server/src/api/vendor/reservations/validators.js +5 -1
- package/.medusa/server/src/api/vendor/sellers/validators.js +1 -1
- package/.medusa/server/src/api/vendor/shipping-options/query-config.js +3 -1
- package/.medusa/server/src/api/vendor/shipping-options/validators.d.ts +156 -1
- package/.medusa/server/src/api/vendor/shipping-options/validators.js +13 -3
- package/.medusa/server/src/api/vendor/stock-locations/[id]/route.d.ts +1 -2
- package/.medusa/server/src/api/vendor/stock-locations/[id]/route.js +1 -1
- package/.medusa/server/src/api/vendor/stock-locations/middlewares.js +11 -1
- package/.medusa/server/src/modules/payout/services/provider.js +1 -2
- package/.medusa/server/src/modules/seller/service.js +2 -2
- package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.d.ts +26 -7
- package/.medusa/server/src/shared/infra/http/middlewares/check-ownership.js +58 -19
- package/.medusa/server/src/shared/infra/http/middlewares/index.d.ts +1 -0
- package/.medusa/server/src/shared/infra/http/middlewares/index.js +2 -1
- package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.d.ts +19 -0
- package/.medusa/server/src/shared/infra/http/middlewares/reject-seller-linked-stock-location.js +28 -0
- package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-attribute-options-path-params-guard.js +2 -2
- package/.medusa/server/src/shared/infra/http/middlewares/vendor-promotions-rule-value-options-path-params-guard.js +2 -2
- package/.medusa/server/src/shared/infra/http/utils/hosts.d.ts +7 -4
- package/.medusa/server/src/shared/infra/http/utils/hosts.js +16 -5
- package/.medusa/server/src/shared/infra/http/utils/products.js +2 -2
- package/.medusa/server/src/shared/infra/http/utils/unless-base-url.d.ts +1 -3
- package/.medusa/server/src/shared/infra/http/utils/unless-base-url.js +1 -1
- package/.medusa/server/src/subscribers/notification-seller-new-order.d.ts +1 -1
- package/.medusa/server/src/subscribers/notification-seller-new-order.js +44 -37
- package/.medusa/server/src/subscribers/payout-webhook.js +1 -1
- package/.medusa/server/src/subscribers/seller-status-changed.js +2 -3
- package/.medusa/server/src/utils/stock-locations.d.ts +9 -0
- package/.medusa/server/src/utils/stock-locations.js +231 -0
- package/.medusa/server/src/workflows/attribute/steps/update-attributes.js +1 -1
- package/.medusa/server/src/workflows/attribute/utils/validate-attribute-values-to-link.js +2 -2
- package/.medusa/server/src/workflows/cart/steps/create-order-set.js +1 -1
- package/.medusa/server/src/workflows/cart/utils/prepare-confirm-inventory-input.js +1 -1
- package/.medusa/server/src/workflows/cart/workflows/split-and-complete-cart.js +5 -7
- package/.medusa/server/src/workflows/configuration/steps/create-configuration-rule.js +1 -1
- package/.medusa/server/src/workflows/fulfillment-set/create-vendor-service-zone.js +2 -2
- package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.d.ts +1 -0
- package/.medusa/server/src/workflows/hooks/add-order-line-items-pricing-context.js +75 -0
- package/.medusa/server/src/workflows/hooks/fetch-shipping-option-pricing-context.js +4 -4
- package/.medusa/server/src/workflows/hooks/product-deleted.js +12 -5
- package/.medusa/server/src/workflows/order/steps/create-payout.js +1 -1
- package/.medusa/server/src/workflows/order/steps/validate-seller-payout-account.js +2 -2
- package/.medusa/server/src/workflows/order-set/index.d.ts +1 -0
- package/.medusa/server/src/workflows/order-set/index.js +2 -1
- package/.medusa/server/src/workflows/order-set/steps/filter-order-sets-with-knex.d.ts +14 -0
- package/.medusa/server/src/workflows/order-set/steps/filter-order-sets-with-knex.js +196 -0
- package/.medusa/server/src/workflows/order-set/steps/index.d.ts +1 -0
- package/.medusa/server/src/workflows/order-set/steps/index.js +18 -0
- package/.medusa/server/src/workflows/order-set/utils/format-order-sets.d.ts +3 -3
- package/.medusa/server/src/workflows/order-set/utils/format-order-sets.js +38 -35
- package/.medusa/server/src/workflows/order-set/workflows/filter-and-list-order-sets.d.ts +12 -0
- package/.medusa/server/src/workflows/order-set/workflows/filter-and-list-order-sets.js +100 -0
- package/.medusa/server/src/workflows/order-set/workflows/get-formatted-order-set-list.js +5 -2
- package/.medusa/server/src/workflows/order-set/workflows/index.d.ts +2 -1
- package/.medusa/server/src/workflows/order-set/workflows/index.js +2 -1
- package/.medusa/server/src/workflows/payout/steps/update-payout-account.js +1 -1
- package/.medusa/server/src/workflows/price-list/steps/validate-vendor-price-list-prices.js +2 -2
- package/.medusa/server/src/workflows/price-list/workflows/create-vendor-price-list.js +2 -2
- package/.medusa/server/src/workflows/product/steps/update-product-status.js +7 -1
- package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.d.ts +24 -0
- package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.js +39 -0
- package/.medusa/server/src/workflows/product-variants/index.d.ts +3 -0
- package/.medusa/server/src/workflows/product-variants/index.js +20 -0
- package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.d.ts +4 -0
- package/.medusa/server/src/workflows/product-variants/steps/filter-variants-combined.js +63 -0
- package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.d.ts +4 -0
- package/.medusa/server/src/workflows/product-variants/steps/get-seller-product-ids.js +28 -0
- package/.medusa/server/src/workflows/product-variants/steps/index.d.ts +2 -0
- package/.medusa/server/src/workflows/product-variants/steps/index.js +19 -0
- package/.medusa/server/src/workflows/product-variants/types.d.ts +10 -0
- package/.medusa/server/src/workflows/product-variants/types.js +3 -0
- package/.medusa/server/src/workflows/product-variants/workflows/index.d.ts +1 -0
- package/.medusa/server/src/workflows/product-variants/workflows/index.js +18 -0
- package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.d.ts +31 -0
- package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.js +115 -0
- package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.d.ts +8 -0
- package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.js +87 -0
- package/.medusa/server/src/workflows/promotions/steps/index.d.ts +1 -1
- package/.medusa/server/src/workflows/promotions/steps/index.js +2 -2
- package/.medusa/server/src/workflows/promotions/steps/inject-seller-product-rule.js +4 -1
- package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.d.ts +2 -0
- package/.medusa/server/src/workflows/promotions/utils/sync-seller-product-rule-values.js +165 -0
- package/.medusa/server/src/workflows/promotions/workflows/batch-vendor-promotion-rules.js +7 -6
- package/.medusa/server/src/workflows/seller/steps/create-member.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/create-payment-account.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/create-payout-onboarding.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/sync-stripe-account.js +1 -1
- package/.medusa/server/src/workflows/seller/steps/update-member-invite.js +3 -3
- package/.medusa/server/src/workflows/seller/steps/update-seller.js +2 -3
- package/.medusa/server/src/workflows/seller/steps/validate-products-to-import.d.ts +23 -23
- package/.medusa/server/src/workflows/seller/workflows/import-seller-products.js +2 -2
- package/.medusa/server/src/workflows/wishlist/steps/create-wishlist.js +1 -1
- package/package.json +2 -2
- package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.d.ts +0 -9
- package/.medusa/server/src/workflows/promotions/steps/verify-seller-product-rule-deletion.js +0 -27
|
@@ -20,7 +20,7 @@ exports.createVendorPriceListWorkflow = (0, workflows_sdk_1.createWorkflow)("cre
|
|
|
20
20
|
return result.map((list) => {
|
|
21
21
|
return {
|
|
22
22
|
[seller_1.SELLER_MODULE]: {
|
|
23
|
-
seller_id
|
|
23
|
+
seller_id,
|
|
24
24
|
},
|
|
25
25
|
[utils_1.Modules.PRICING]: {
|
|
26
26
|
price_list_id: list.id,
|
|
@@ -31,4 +31,4 @@ exports.createVendorPriceListWorkflow = (0, workflows_sdk_1.createWorkflow)("cre
|
|
|
31
31
|
(0, core_flows_1.createRemoteLinkStep)(links);
|
|
32
32
|
return new workflows_sdk_1.WorkflowResponse(result);
|
|
33
33
|
});
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXZlbmRvci1wcmljZS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcmljZS1saXN0L3dvcmtmbG93cy9jcmVhdGUtdmVuZG9yLXByaWNlLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQW9EO0FBQ3BELDREQUdxQztBQUNyQywyREFJaUM7QUFFakMsb0RBQXdEO0FBRXhELG9DQUE2RDtBQUVoRCxRQUFBLDZCQUE2QixHQUFHLElBQUEsOEJBQWMsRUFDekQsMEJBQTBCLEVBQzFCLFVBQVUsRUFDUixnQkFBZ0IsRUFDaEIsU0FBUyxHQUlWO0lBQ0MsSUFBQSx5Q0FBaUMsRUFBQztRQUNoQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtRQUMvQixTQUFTO0tBQ1YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxNQUFNLEdBQUcscUNBQXdCLENBQUMsU0FBUyxDQUFDO1FBQ2hELEtBQUssRUFBRTtZQUNMLGdCQUFnQixFQUFFLENBQUMsZ0JBQWdCLENBQUM7U0FDckM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLEtBQUssR0FBRyxJQUFBLHlCQUFTLEVBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3pCLE9BQU87Z0JBQ0wsQ0FBQyxzQkFBYSxDQUFDLEVBQUU7b0JBQ2YsU0FBUztpQkFDVjtnQkFDRCxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDakIsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFO2lCQUN2QjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSxpQ0FBb0IsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixPQUFPLElBQUksZ0NBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -3,11 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.updateProductStatusStep = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const framework_1 = require("@mercurjs/framework");
|
|
6
7
|
exports.updateProductStatusStep = (0, workflows_sdk_1.createStep)('update-product-status', async (input, { container }) => {
|
|
7
8
|
const service = container.resolve(utils_1.Modules.PRODUCT);
|
|
9
|
+
const eventBus = container.resolve(utils_1.Modules.EVENT_BUS);
|
|
8
10
|
const product = await service.updateProducts(input.id, {
|
|
9
11
|
status: input.status
|
|
10
12
|
});
|
|
13
|
+
await eventBus.emit({
|
|
14
|
+
name: framework_1.AlgoliaEvents.PRODUCTS_CHANGED,
|
|
15
|
+
data: { ids: [input.id] }
|
|
16
|
+
});
|
|
11
17
|
return new workflows_sdk_1.StepResponse(product, product.id);
|
|
12
18
|
});
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3Qtc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0L3N0ZXBzL3VwZGF0ZS1wcm9kdWN0LXN0YXR1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBa0U7QUFDbEUscUVBQTRFO0FBRTVFLG1EQUFtRDtBQUV0QyxRQUFBLHVCQUF1QixHQUFHLElBQUEsMEJBQVUsRUFDL0MsdUJBQXVCLEVBQ3ZCLEtBQUssRUFBRSxLQUE0QyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNwRSxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNsRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUVyRCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRTtRQUNyRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07S0FDckIsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ2xCLElBQUksRUFBRSx5QkFBYSxDQUFDLGdCQUFnQjtRQUNwQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUU7S0FDMUIsQ0FBQyxDQUFBO0lBRUYsT0FBTyxJQUFJLDRCQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUM5QyxDQUFDLENBQ0YsQ0FBQSJ9
|
package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Knex } from "@mikro-orm/postgresql";
|
|
2
|
+
export interface ProductVariantFilters {
|
|
3
|
+
seller_id?: string;
|
|
4
|
+
has_price?: boolean;
|
|
5
|
+
has_inventory?: boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Whether the variant has at least one inventory level (inventory_item at any location).
|
|
8
|
+
* This follows the chain: ProductVariant -> InventoryItem (pivot) -> InventoryLevel(location_id).
|
|
9
|
+
*/
|
|
10
|
+
has_stock_location?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the variant has at least one admin-owned stock location.
|
|
13
|
+
* Admin-owned stock location = stock location that is NOT linked to any seller.
|
|
14
|
+
*
|
|
15
|
+
* Note: This filter requires looking up seller-stock-location links, so it's applied
|
|
16
|
+
* in the workflow step (not purely in this helper) where both Knex and Query are available.
|
|
17
|
+
*/
|
|
18
|
+
has_admin_stock_location?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare class ProductVariantFilterHelper {
|
|
21
|
+
private knex;
|
|
22
|
+
constructor(knex: Knex);
|
|
23
|
+
getFilteredVariantIds(filters: ProductVariantFilters): Promise<string[]>;
|
|
24
|
+
}
|
package/.medusa/server/src/workflows/product-variants/helpers/product-variant-filter-helper.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProductVariantFilterHelper = void 0;
|
|
4
|
+
class ProductVariantFilterHelper {
|
|
5
|
+
constructor(knex) {
|
|
6
|
+
this.knex = knex;
|
|
7
|
+
}
|
|
8
|
+
async getFilteredVariantIds(filters) {
|
|
9
|
+
let query = this.knex
|
|
10
|
+
.select("pv.id")
|
|
11
|
+
.from("product_variant as pv")
|
|
12
|
+
.distinct();
|
|
13
|
+
if (filters.seller_id) {
|
|
14
|
+
query = query
|
|
15
|
+
.join("seller_seller_product_product as sspp", "sspp.product_id", "pv.product_id")
|
|
16
|
+
.where("sspp.seller_id", filters.seller_id)
|
|
17
|
+
.whereNull("sspp.deleted_at");
|
|
18
|
+
}
|
|
19
|
+
if (filters.has_price !== undefined) {
|
|
20
|
+
query = query.whereRaw(filters.has_price
|
|
21
|
+
? "EXISTS (SELECT 1 FROM product_variant_price_set pvps INNER JOIN price p ON p.price_set_id = pvps.price_set_id WHERE pvps.variant_id = pv.id AND p.deleted_at IS NULL AND pvps.deleted_at IS NULL)"
|
|
22
|
+
: "NOT EXISTS (SELECT 1 FROM product_variant_price_set pvps INNER JOIN price p ON p.price_set_id = pvps.price_set_id WHERE pvps.variant_id = pv.id AND p.deleted_at IS NULL AND pvps.deleted_at IS NULL)");
|
|
23
|
+
}
|
|
24
|
+
if (filters.has_inventory !== undefined) {
|
|
25
|
+
query = query.whereRaw(filters.has_inventory
|
|
26
|
+
? "EXISTS (SELECT 1 FROM product_variant_inventory_item WHERE product_variant_inventory_item.variant_id = pv.id AND product_variant_inventory_item.deleted_at IS NULL)"
|
|
27
|
+
: "NOT EXISTS (SELECT 1 FROM product_variant_inventory_item WHERE product_variant_inventory_item.variant_id = pv.id AND product_variant_inventory_item.deleted_at IS NULL)");
|
|
28
|
+
}
|
|
29
|
+
if (filters.has_stock_location !== undefined) {
|
|
30
|
+
query = query.whereRaw(filters.has_stock_location
|
|
31
|
+
? "EXISTS (SELECT 1 FROM product_variant_inventory_item pvii INNER JOIN inventory_level il ON il.inventory_item_id = pvii.inventory_item_id WHERE pvii.variant_id = pv.id AND pvii.deleted_at IS NULL AND il.location_id IS NOT NULL)"
|
|
32
|
+
: "NOT EXISTS (SELECT 1 FROM product_variant_inventory_item pvii INNER JOIN inventory_level il ON il.inventory_item_id = pvii.inventory_item_id WHERE pvii.variant_id = pv.id AND pvii.deleted_at IS NULL AND il.location_id IS NOT NULL)");
|
|
33
|
+
}
|
|
34
|
+
const results = await query;
|
|
35
|
+
return results.map((r) => r.id);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ProductVariantFilterHelper = ProductVariantFilterHelper;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC12YXJpYW50LWZpbHRlci1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvaGVscGVycy9wcm9kdWN0LXZhcmlhbnQtZmlsdGVyLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxQkEsTUFBYSwwQkFBMEI7SUFDckMsWUFBb0IsSUFBVTtRQUFWLFNBQUksR0FBSixJQUFJLENBQU07SUFBRyxDQUFDO0lBRWxDLEtBQUssQ0FBQyxxQkFBcUIsQ0FDekIsT0FBOEI7UUFFOUIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDbEIsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNmLElBQUksQ0FBQyx1QkFBdUIsQ0FBQzthQUM3QixRQUFRLEVBQUUsQ0FBQztRQUVkLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLEtBQUssR0FBRyxLQUFLO2lCQUNWLElBQUksQ0FDSCx1Q0FBdUMsRUFDdkMsaUJBQWlCLEVBQ2pCLGVBQWUsQ0FDaEI7aUJBQ0EsS0FBSyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUM7aUJBQzFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQ3BCLE9BQU8sQ0FBQyxTQUFTO2dCQUNmLENBQUMsQ0FBQyxtTUFBbU07Z0JBQ3JNLENBQUMsQ0FBQyx1TUFBdU0sQ0FDNU0sQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQ3BCLE9BQU8sQ0FBQyxhQUFhO2dCQUNuQixDQUFDLENBQUMscUtBQXFLO2dCQUN2SyxDQUFDLENBQUMseUtBQXlLLENBQzlLLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0MsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQ3BCLE9BQU8sQ0FBQyxrQkFBa0I7Z0JBQ3hCLENBQUMsQ0FBQyxvT0FBb087Z0JBQ3RPLENBQUMsQ0FBQyx3T0FBd08sQ0FDN08sQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLEtBQUssQ0FBQztRQUM1QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFqREQsZ0VBaURDIn0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./steps"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./workflows"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QjtBQUN4QiwwQ0FBd0I7QUFDeEIsOENBQTRCIn0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.filterVariantsCombinedStep = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
9
|
+
const seller_stock_location_1 = __importDefault(require("../../../links/seller-stock-location"));
|
|
10
|
+
const product_variant_filter_helper_1 = require("../helpers/product-variant-filter-helper");
|
|
11
|
+
exports.filterVariantsCombinedStep = (0, workflows_sdk_1.createStep)("filter-variants-combined", async (input, { container }) => {
|
|
12
|
+
const knex = container.resolve(utils_1.ContainerRegistrationKeys.PG_CONNECTION);
|
|
13
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
14
|
+
const filterHelper = new product_variant_filter_helper_1.ProductVariantFilterHelper(knex);
|
|
15
|
+
let variantIds = await filterHelper.getFilteredVariantIds(input);
|
|
16
|
+
if (input.has_admin_stock_location !== undefined &&
|
|
17
|
+
Array.isArray(variantIds) &&
|
|
18
|
+
variantIds.length > 0) {
|
|
19
|
+
const rows = await knex("product_variant_inventory_item as pvii")
|
|
20
|
+
.distinct("pvii.variant_id as variant_id", "il.location_id as location_id")
|
|
21
|
+
.innerJoin("inventory_level as il", "il.inventory_item_id", "pvii.inventory_item_id")
|
|
22
|
+
.whereIn("pvii.variant_id", variantIds)
|
|
23
|
+
.whereNull("pvii.deleted_at")
|
|
24
|
+
.whereNotNull("il.location_id");
|
|
25
|
+
const locationIds = [
|
|
26
|
+
...new Set(rows
|
|
27
|
+
.map((r) => r?.location_id)
|
|
28
|
+
.filter((id) => typeof id === "string" && id.length > 0)),
|
|
29
|
+
];
|
|
30
|
+
if (!locationIds.length) {
|
|
31
|
+
variantIds = input.has_admin_stock_location ? [] : variantIds;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const { data: links } = await query.graph({
|
|
35
|
+
entity: seller_stock_location_1.default.entryPoint,
|
|
36
|
+
fields: ["stock_location_id"],
|
|
37
|
+
filters: { stock_location_id: locationIds },
|
|
38
|
+
});
|
|
39
|
+
const sellerLinkedLocationIdSet = new Set((links ?? [])
|
|
40
|
+
.map((l) => l?.stock_location_id)
|
|
41
|
+
.filter((id) => typeof id === "string" && id.length > 0));
|
|
42
|
+
const variantIdHasAdminSet = new Set();
|
|
43
|
+
for (const r of rows) {
|
|
44
|
+
const variantId = r?.variant_id;
|
|
45
|
+
const locationId = r?.location_id;
|
|
46
|
+
if (typeof variantId === "string" &&
|
|
47
|
+
variantId.length > 0 &&
|
|
48
|
+
typeof locationId === "string" &&
|
|
49
|
+
locationId.length > 0 &&
|
|
50
|
+
!sellerLinkedLocationIdSet.has(locationId)) {
|
|
51
|
+
variantIdHasAdminSet.add(variantId);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
variantIds = input.has_admin_stock_location
|
|
55
|
+
? variantIds.filter((id) => variantIdHasAdminSet.has(id))
|
|
56
|
+
: variantIds.filter((id) => !variantIdHasAdminSet.has(id));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return new workflows_sdk_1.StepResponse({
|
|
60
|
+
variantIds,
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhcmlhbnRzLWNvbWJpbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0LXZhcmlhbnRzL3N0ZXBzL2ZpbHRlci12YXJpYW50cy1jb21iaW5lZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBc0U7QUFDdEUscUVBQTZFO0FBRzdFLGlHQUF1RTtBQUN2RSw0RkFHa0Q7QUFFckMsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLDBCQUFVLEVBQ2xELDBCQUEwQixFQUMxQixLQUFLLEVBQUUsS0FBNEIsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDcEQsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDNUIsaUNBQXlCLENBQUMsYUFBYSxDQUNoQyxDQUFDO0lBRVYsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVqRSxNQUFNLFlBQVksR0FBRyxJQUFJLDBEQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTFELElBQUksVUFBVSxHQUFHLE1BQU0sWUFBWSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpFLElBQ0UsS0FBSyxDQUFDLHdCQUF3QixLQUFLLFNBQVM7UUFDNUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDekIsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQ3JCLENBQUM7UUFDRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQzthQUM5RCxRQUFRLENBQUMsK0JBQStCLEVBQUUsK0JBQStCLENBQUM7YUFDMUUsU0FBUyxDQUNSLHVCQUF1QixFQUN2QixzQkFBc0IsRUFDdEIsd0JBQXdCLENBQ3pCO2FBQ0EsT0FBTyxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQzthQUN0QyxTQUFT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
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getSellerProductIdsStep = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
9
|
+
const seller_product_1 = __importDefault(require("../../../links/seller-product"));
|
|
10
|
+
exports.getSellerProductIdsStep = (0, workflows_sdk_1.createStep)("get-seller-product-ids", async (input, { container }) => {
|
|
11
|
+
if (!input.seller_id) {
|
|
12
|
+
return new workflows_sdk_1.StepResponse([]);
|
|
13
|
+
}
|
|
14
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
15
|
+
const { data: sellerProducts } = await query.graph({
|
|
16
|
+
entity: seller_product_1.default.entryPoint,
|
|
17
|
+
fields: ["product_id"],
|
|
18
|
+
filters: {
|
|
19
|
+
seller_id: input.seller_id,
|
|
20
|
+
deleted_at: {
|
|
21
|
+
$eq: null,
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
const productIds = sellerProducts.map((sp) => sp.product_id);
|
|
26
|
+
return new workflows_sdk_1.StepResponse(productIds);
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNlbGxlci1wcm9kdWN0LWlkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvZHVjdC12YXJpYW50cy9zdGVwcy9nZXQtc2VsbGVyLXByb2R1Y3QtaWRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQUFzRTtBQUN0RSxxRUFBNkU7QUFFN0UsbUZBQThEO0FBVWpELFFBQUEsdUJBQXVCLEdBQUcsSUFBQSwwQkFBVSxFQUMvQyx3QkFBd0IsRUFDeEIsS0FBSyxFQUFFLEtBQStCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDckIsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakQsTUFBTSxFQUFFLHdCQUFpQixDQUFDLFVBQVU7UUFDcEMsTUFBTSxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQ3RCLE9BQU8sRUFBRTtZQUNQLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixVQUFVLEVBQUU7Z0JBQ1YsR0FBRyxFQUFFLElBQUk7YUFDVjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUksY0FBa0MsQ0FBQyxHQUFHLENBQ3hELENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUN0QixDQUFDO0lBRUYsT0FBTyxJQUFJLDRCQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./filter-variants-combined"), exports);
|
|
18
|
+
__exportStar(require("./get-seller-product-ids"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUEyQztBQUMzQywyREFBeUMifQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PriceDTO, ProductVariantDTO } from "@medusajs/framework/types";
|
|
2
|
+
export interface ProductVariantWithRelations extends ProductVariantDTO {
|
|
3
|
+
prices?: PriceDTO[];
|
|
4
|
+
inventory_items?: Array<{
|
|
5
|
+
id: string;
|
|
6
|
+
inventory_item_id: string;
|
|
7
|
+
variant_id: string;
|
|
8
|
+
required_quantity: number;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./list-filtered-product-variants";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./list-filtered-product-variants"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtdmFyaWFudHMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRUFBaUQifQ==
|
package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface ListFilteredProductVariantsInput {
|
|
2
|
+
seller_id?: string;
|
|
3
|
+
has_price?: boolean;
|
|
4
|
+
has_inventory?: boolean;
|
|
5
|
+
has_stock_location?: boolean;
|
|
6
|
+
has_admin_stock_location?: boolean;
|
|
7
|
+
q?: string;
|
|
8
|
+
fields: string[];
|
|
9
|
+
/**
|
|
10
|
+
* Additional filters coming from API query params (everything except custom filters).
|
|
11
|
+
* Example: id, created_at, updated_at, manage_inventory, allow_backorder, etc.
|
|
12
|
+
*/
|
|
13
|
+
filters?: Record<string, unknown>;
|
|
14
|
+
pagination?: {
|
|
15
|
+
skip?: number;
|
|
16
|
+
take?: number;
|
|
17
|
+
order?: Record<string, string>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export interface ListFilteredProductVariantsOutput {
|
|
21
|
+
variants: unknown[];
|
|
22
|
+
count: number;
|
|
23
|
+
offset: number;
|
|
24
|
+
limit: number;
|
|
25
|
+
}
|
|
26
|
+
export declare const listFilteredProductVariantsWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<ListFilteredProductVariantsInput, import("@medusajs/framework/workflows-sdk").WorkflowData<{
|
|
27
|
+
variants: (any[] | import("@medusajs/framework/workflows-sdk").WorkflowData<any[]>) & any[];
|
|
28
|
+
count: (number | import("@medusajs/framework/workflows-sdk").WorkflowData<number>) & number;
|
|
29
|
+
offset: (number | import("@medusajs/framework/workflows-sdk").WorkflowData<number>) & number;
|
|
30
|
+
limit: (number | import("@medusajs/framework/workflows-sdk").WorkflowData<number>) & number;
|
|
31
|
+
}> | undefined, []>;
|
package/.medusa/server/src/workflows/product-variants/workflows/list-filtered-product-variants.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listFilteredProductVariantsWorkflow = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const steps_1 = require("../steps");
|
|
8
|
+
exports.listFilteredProductVariantsWorkflow = (0, workflows_sdk_1.createWorkflow)("list-filtered-product-variants", (input) => {
|
|
9
|
+
const hasFilters = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
|
|
10
|
+
return (!!input.seller_id ||
|
|
11
|
+
input.has_price !== undefined ||
|
|
12
|
+
input.has_inventory !== undefined ||
|
|
13
|
+
input.has_stock_location !== undefined ||
|
|
14
|
+
input.has_admin_stock_location !== undefined);
|
|
15
|
+
});
|
|
16
|
+
const filterResult = (0, workflows_sdk_1.when)({ hasFilters }, ({ hasFilters }) => hasFilters).then(() => {
|
|
17
|
+
return (0, steps_1.filterVariantsCombinedStep)({
|
|
18
|
+
seller_id: input.seller_id,
|
|
19
|
+
has_price: input.has_price,
|
|
20
|
+
has_inventory: input.has_inventory,
|
|
21
|
+
has_stock_location: input.has_stock_location,
|
|
22
|
+
has_admin_stock_location: input.has_admin_stock_location,
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
const finalVariantIds = (0, workflows_sdk_1.transform)({ filterResult }, ({ filterResult }) => {
|
|
26
|
+
return filterResult?.variantIds ?? null;
|
|
27
|
+
});
|
|
28
|
+
const finalVariantIdsAfterIntersection = (0, workflows_sdk_1.transform)({ input, finalVariantIds }, ({ input, finalVariantIds }) => {
|
|
29
|
+
if (finalVariantIds === null) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const rawExisting = input.filters?.id;
|
|
33
|
+
const existingIds = Array.isArray(rawExisting)
|
|
34
|
+
? rawExisting.filter((id) => typeof id === "string" && id.length > 0)
|
|
35
|
+
: typeof rawExisting === "string" && rawExisting.length > 0
|
|
36
|
+
? [rawExisting]
|
|
37
|
+
: [];
|
|
38
|
+
if (!existingIds.length) {
|
|
39
|
+
return finalVariantIds;
|
|
40
|
+
}
|
|
41
|
+
const set = new Set(existingIds);
|
|
42
|
+
return finalVariantIds.filter((id) => set.has(id));
|
|
43
|
+
});
|
|
44
|
+
const isEmpty = (0, workflows_sdk_1.transform)({ finalVariantIdsAfterIntersection }, ({ finalVariantIdsAfterIntersection }) => {
|
|
45
|
+
return (finalVariantIdsAfterIntersection !== null &&
|
|
46
|
+
Array.isArray(finalVariantIdsAfterIntersection) &&
|
|
47
|
+
finalVariantIdsAfterIntersection.length === 0);
|
|
48
|
+
});
|
|
49
|
+
const emptyResponse = (0, workflows_sdk_1.when)({ isEmpty }, ({ isEmpty }) => isEmpty).then(() => {
|
|
50
|
+
return (0, workflows_sdk_1.transform)({ pagination: input.pagination }, ({ pagination }) => ({
|
|
51
|
+
variants: [],
|
|
52
|
+
count: 0,
|
|
53
|
+
offset: pagination?.skip || 0,
|
|
54
|
+
limit: pagination?.take || 50,
|
|
55
|
+
}));
|
|
56
|
+
});
|
|
57
|
+
const dataResponse = (0, workflows_sdk_1.when)({ isEmpty }, ({ isEmpty }) => !isEmpty).then(() => {
|
|
58
|
+
const finalFilters = (0, workflows_sdk_1.transform)({ input, finalVariantIdsAfterIntersection }, ({ input, finalVariantIdsAfterIntersection }) => {
|
|
59
|
+
const filters = {
|
|
60
|
+
...(input.filters ?? {}),
|
|
61
|
+
};
|
|
62
|
+
if (finalVariantIdsAfterIntersection !== null) {
|
|
63
|
+
filters.id = finalVariantIdsAfterIntersection;
|
|
64
|
+
}
|
|
65
|
+
const q = typeof input.q === "string" ? input.q.trim() : "";
|
|
66
|
+
if (q) {
|
|
67
|
+
const searchOr = [
|
|
68
|
+
{ title: { $ilike: `%${q}%` } },
|
|
69
|
+
{ sku: { $ilike: `%${q}%` } },
|
|
70
|
+
];
|
|
71
|
+
// Don't overwrite existing $or/$and from validated filters – instead, AND the search in.
|
|
72
|
+
const existingAnd = filters.$and;
|
|
73
|
+
if (Array.isArray(existingAnd)) {
|
|
74
|
+
filters.$and = [...existingAnd, { $or: searchOr }];
|
|
75
|
+
}
|
|
76
|
+
else if (filters.$or) {
|
|
77
|
+
filters.$and = [{ $or: filters.$or }, { $or: searchOr }];
|
|
78
|
+
delete filters.$or;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
filters.$or = searchOr;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return filters;
|
|
85
|
+
});
|
|
86
|
+
const fields = (0, workflows_sdk_1.transform)({ input }, ({ input }) => {
|
|
87
|
+
return (0, utils_1.deduplicate)([
|
|
88
|
+
...(input.fields ?? []),
|
|
89
|
+
"id",
|
|
90
|
+
"title",
|
|
91
|
+
"sku",
|
|
92
|
+
"product_id",
|
|
93
|
+
"created_at",
|
|
94
|
+
"updated_at",
|
|
95
|
+
]);
|
|
96
|
+
});
|
|
97
|
+
const { data: variants, metadata } = (0, core_flows_1.useQueryGraphStep)({
|
|
98
|
+
entity: "product_variant",
|
|
99
|
+
fields,
|
|
100
|
+
filters: finalFilters,
|
|
101
|
+
pagination: input.pagination,
|
|
102
|
+
});
|
|
103
|
+
return (0, workflows_sdk_1.transform)({ variants, metadata }, ({ variants, metadata }) => ({
|
|
104
|
+
variants,
|
|
105
|
+
count: metadata?.count || 0,
|
|
106
|
+
offset: metadata?.skip || 0,
|
|
107
|
+
limit: metadata?.take || 50,
|
|
108
|
+
}));
|
|
109
|
+
});
|
|
110
|
+
const result = (0, workflows_sdk_1.transform)({ emptyResponse, dataResponse }, ({ emptyResponse, dataResponse }) => {
|
|
111
|
+
return emptyResponse || dataResponse;
|
|
112
|
+
});
|
|
113
|
+
return new workflows_sdk_1.WorkflowResponse(result);
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1maWx0ZXJlZC1wcm9kdWN0LXZhcmlhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0LXZhcmlhbnRzL3dvcmtmbG93cy9saXN0LWZpbHRlcmVkLXByb2R1Y3QtdmFyaWFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXdEO0FBQ3hELHFFQUsyQztBQUMzQyw0REFBZ0U7QUFFaEUsb0NBQXNEO0FBNkJ6QyxRQUFBLG1DQUFtQyxHQUFHLElBQUEsOEJBQWMsRUFDL0QsZ0NBQWdDLEVBQ2hDLENBQUMsS0FBdUMsRUFBRSxFQUFFO0lBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQVMsRUFBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ3BELE9BQU8sQ0FDTCxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVM7WUFDakIsS0FBSyxDQUFDLFNBQVMsS0FBSyxTQUFTO1lBQzdCLEtBQUssQ0FBQyxhQUFhLEtBQUssU0FBUztZQUNqQyxLQUFLLENBQUMsa0JBQWtCLEtBQUssU0FBUztZQUN0QyxLQUFLLENBQUMsd0JBQXdCLEtBQUssU0FBUyxDQUM3QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFlBQVksR0FBRyxJQUFBLG9CQUFJLEVBQ3ZCLEVBQUUsVUFBVSxFQUFFLEVBQ2QsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQy9CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNWLE9BQU8sSUFBQSxrQ0FBMEIsRUFBQztZQUNoQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDMUIsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtC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
|
package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BatchPromotionRulesWorkflowInput } from '@medusajs/medusa/core-flows';
|
|
2
|
+
type Input = {
|
|
3
|
+
batchInput: BatchPromotionRulesWorkflowInput;
|
|
4
|
+
seller_id: string;
|
|
5
|
+
promotion_id: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const ensureSellerProductRuleAfterDeletionStep: import("@medusajs/framework/workflows-sdk").StepFunction<Input, BatchPromotionRulesWorkflowInput>;
|
|
8
|
+
export {};
|
package/.medusa/server/src/workflows/promotions/steps/ensure-seller-product-rule-after-deletion.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ensureSellerProductRuleAfterDeletionStep = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
9
|
+
const seller_product_1 = __importDefault(require("../../../links/seller-product"));
|
|
10
|
+
const inject_seller_product_rule_1 = require("./inject-seller-product-rule");
|
|
11
|
+
const isProductRule = (rule) => rule?.attribute === 'items.product.id';
|
|
12
|
+
const normalizeValues = (values) => Array.isArray(values) ? values : [values];
|
|
13
|
+
exports.ensureSellerProductRuleAfterDeletionStep = (0, workflows_sdk_1.createStep)('ensure-seller-product-rule-after-deletion', async (input, { container }) => {
|
|
14
|
+
const { batchInput } = input;
|
|
15
|
+
if (batchInput.rule_type !== 'target_rules') {
|
|
16
|
+
return new workflows_sdk_1.StepResponse(batchInput);
|
|
17
|
+
}
|
|
18
|
+
const createdRules = batchInput.create || [];
|
|
19
|
+
const productRulesToCreate = createdRules.filter(isProductRule);
|
|
20
|
+
const nonProductRulesToCreate = createdRules.filter((rule) => !isProductRule(rule));
|
|
21
|
+
const hasDeletions = Boolean(batchInput.delete?.length);
|
|
22
|
+
const hasNewProductRule = productRulesToCreate.length > 0;
|
|
23
|
+
if (!hasDeletions && !hasNewProductRule) {
|
|
24
|
+
return new workflows_sdk_1.StepResponse(batchInput);
|
|
25
|
+
}
|
|
26
|
+
const promotionModule = container.resolve(utils_1.Modules.PROMOTION);
|
|
27
|
+
const promotion = await promotionModule.retrievePromotion(input.promotion_id, {
|
|
28
|
+
relations: [
|
|
29
|
+
'application_method.target_rules',
|
|
30
|
+
'application_method.target_rules.values'
|
|
31
|
+
]
|
|
32
|
+
});
|
|
33
|
+
const deleteSet = new Set(batchInput.delete || []);
|
|
34
|
+
const currentRules = promotion.application_method?.target_rules || [];
|
|
35
|
+
const remainingRules = currentRules.filter((rule) => !deleteSet.has(rule.id));
|
|
36
|
+
if (hasNewProductRule) {
|
|
37
|
+
const baseRule = productRulesToCreate[0];
|
|
38
|
+
const nextRule = {
|
|
39
|
+
...baseRule,
|
|
40
|
+
values: normalizeValues(baseRule.values),
|
|
41
|
+
description: baseRule.description === inject_seller_product_rule_1.SELLER_PRODUCTS_RULE_DESCRIPTION
|
|
42
|
+
? undefined
|
|
43
|
+
: baseRule.description
|
|
44
|
+
};
|
|
45
|
+
const existingProductRuleIds = remainingRules
|
|
46
|
+
.filter(isProductRule)
|
|
47
|
+
.map((rule) => rule.id)
|
|
48
|
+
.filter(Boolean);
|
|
49
|
+
existingProductRuleIds.forEach((id) => deleteSet.add(id));
|
|
50
|
+
return new workflows_sdk_1.StepResponse({
|
|
51
|
+
...batchInput,
|
|
52
|
+
delete: Array.from(deleteSet),
|
|
53
|
+
create: [nextRule, ...nonProductRulesToCreate]
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
const hasProductRule = remainingRules.some(isProductRule);
|
|
57
|
+
if (hasProductRule) {
|
|
58
|
+
return new workflows_sdk_1.StepResponse({
|
|
59
|
+
...batchInput,
|
|
60
|
+
delete: Array.from(deleteSet)
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
64
|
+
const { data: sellerProducts } = await query.graph({
|
|
65
|
+
entity: seller_product_1.default.entryPoint,
|
|
66
|
+
fields: ['product_id'],
|
|
67
|
+
filters: {
|
|
68
|
+
seller_id: input.seller_id
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
const productIds = sellerProducts.map((sp) => sp.product_id);
|
|
72
|
+
if (productIds.length === 0) {
|
|
73
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, 'Seller has no products. Cannot remove all product rules.');
|
|
74
|
+
}
|
|
75
|
+
const defaultRule = {
|
|
76
|
+
attribute: 'items.product.id',
|
|
77
|
+
operator: 'in',
|
|
78
|
+
values: productIds,
|
|
79
|
+
description: inject_seller_product_rule_1.SELLER_PRODUCTS_RULE_DESCRIPTION
|
|
80
|
+
};
|
|
81
|
+
return new workflows_sdk_1.StepResponse({
|
|
82
|
+
...batchInput,
|
|
83
|
+
delete: Array.from(deleteSet),
|
|
84
|
+
create: [defaultRule, ...createdRules]
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLXNlbGxlci1wcm9kdWN0LXJ1bGUtYWZ0ZXItZGVsZXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvZW5zdXJlLXNlbGxlci1wcm9kdWN0LXJ1bGUtYWZ0ZXItZGVsZXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EscURBSWtDO0FBQ2xDLHFFQUE0RTtBQUU1RSxtRkFBeUQ7QUFDekQsNkVBQStFO0FBUS9FLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBNkIsRUFBRSxFQUFFLENBQ3RELElBQUksRUFBRSxTQUFTLEtBQUssa0JBQWtCLENBQUE7QUFFeEMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUF5QixFQUFFLEVBQUUsQ0FDcEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBRTlCLFFBQUEsd0NBQXdDLEdBQUcsSUFBQSwwQkFBVSxFQUNoRSwyQ0FBMkMsRUFDM0MsS0FBSyxFQUFFLEtBQVksRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDcEMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQTtJQUU1QixJQUFJLFVBQVUsQ0FBQyxTQUFTLEtBQUssY0FBYyxFQUFFLENBQUM7UUFDNUMsT0FBTyxJQUFJLDRCQUFZLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFBO0lBQzVDLE1BQU0sb0JBQW9CLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMvRCxNQUFNLHVCQUF1QixHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENB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
|
|
@@ -3,4 +3,4 @@ export * from './verify-vendor-campaign';
|
|
|
3
3
|
export * from './verify-vendor-target-promotion-rules';
|
|
4
4
|
export * from './register-usage-step';
|
|
5
5
|
export * from './inject-seller-product-rule';
|
|
6
|
-
export * from './
|
|
6
|
+
export * from './ensure-seller-product-rule-after-deletion';
|
|
@@ -19,5 +19,5 @@ __exportStar(require("./verify-vendor-campaign"), exports);
|
|
|
19
19
|
__exportStar(require("./verify-vendor-target-promotion-rules"), exports);
|
|
20
20
|
__exportStar(require("./register-usage-step"), exports);
|
|
21
21
|
__exportStar(require("./inject-seller-product-rule"), exports);
|
|
22
|
-
__exportStar(require("./
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
__exportStar(require("./ensure-seller-product-rule-after-deletion"), exports);
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDREQUF5QztBQUN6QywyREFBd0M7QUFDeEMseUVBQXNEO0FBQ3RELHdEQUFxQztBQUNyQywrREFBNEM7QUFDNUMsOEVBQTJEIn0=
|
|
@@ -9,6 +9,9 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
|
9
9
|
const seller_product_1 = __importDefault(require("../../../links/seller-product"));
|
|
10
10
|
exports.SELLER_PRODUCTS_RULE_DESCRIPTION = 'seller_products_default_rule';
|
|
11
11
|
exports.injectSellerProductRuleStep = (0, workflows_sdk_1.createStep)('inject-seller-product-rule', async (input, { container }) => {
|
|
12
|
+
if (input.promotion.application_method.target_rules && input.promotion.application_method.target_rules.length > 0) {
|
|
13
|
+
return new workflows_sdk_1.StepResponse(input.promotion);
|
|
14
|
+
}
|
|
12
15
|
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
13
16
|
const { data: sellerProducts } = await query.graph({
|
|
14
17
|
entity: seller_product_1.default.entryPoint,
|
|
@@ -37,4 +40,4 @@ exports.injectSellerProductRuleStep = (0, workflows_sdk_1.createStep)('inject-se
|
|
|
37
40
|
};
|
|
38
41
|
return new workflows_sdk_1.StepResponse(promotionWithDefaultRule);
|
|
39
42
|
});
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0LXNlbGxlci1wcm9kdWN0LXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb21vdGlvbnMvc3RlcHMvaW5qZWN0LXNlbGxlci1wcm9kdWN0LXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EscURBR2tDO0FBQ2xDLHFFQUE0RTtBQUU1RSxtRkFBeUQ7QUFFNUMsUUFBQSxnQ0FBZ0MsR0FBRyw4QkFBOEIsQ0FBQTtBQUVqRSxRQUFBLDJCQUEyQixHQUFHLElBQUEsMEJBQVUsRUFDbkQsNEJBQTRCLEVBQzVCLEtBQUssRUFDSCxLQUEyRCxFQUMzRCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsSCxPQUFPLElBQUksNEJBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakQsTUFBTSxFQUFFLHdCQUFhLENBQUMsVUFBVTtRQUNoQyxNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7UUFDdEIsT0FBTyxFQUFFO1lBQ1AsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1NBQzNCO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRTVELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixxRUFBcUUsQ0FDdEUsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLG1CQUFtQixHQUN2QixLQUFLLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLFlBQVksSUFBSSxFQUFFLENBQUE7SUFFeEQsTUFBTSxpQkFBaUIsR0FBRztRQUN4QixTQUFTLEVBQUUsa0JBQWtCO1FBQzdCLFFBQVEsRUFBRSxJQUFhO1FBQ3ZCLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLFdBQVcsRUFBRSx3Q0FBZ0M7S0FDOUMsQ0FBQTtJQUVELE1BQU0sd0JBQXdCLEdBQXVCO1FBQ25ELEdBQUcsS0FBSyxDQUFDLFNBQVM7UUFDbEIsa0JBQWtCLEVBQUU7WUFDbEIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLGtCQUFrQjtZQUNyQyxZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLG1CQUFtQixDQUFDO1NBQzFEO0tBQ0YsQ0FBQTtJQUVELE9BQU8sSUFBSSw0QkFBWSxDQUFDLHdCQUF3QixDQUFDLENBQUE7QUFDbkQsQ0FBQyxDQUNGLENBQUEifQ==
|