@mercurjs/b2c-core 1.4.0 → 1.4.2
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/vendor/products/query-config.js +2 -1
- package/.medusa/server/src/links/secondary-category-product.d.ts +2 -0
- package/.medusa/server/src/links/secondary-category-product.js +16 -0
- package/.medusa/server/src/modules/secondary_categories/index.d.ts +21 -0
- package/.medusa/server/src/modules/secondary_categories/index.js +13 -0
- package/.medusa/server/src/modules/secondary_categories/migrations/Migration20251014102054.d.ts +5 -0
- package/.medusa/server/src/modules/secondary_categories/migrations/Migration20251014102054.js +15 -0
- package/.medusa/server/src/modules/secondary_categories/models/secondary_category.d.ts +4 -0
- package/.medusa/server/src/modules/secondary_categories/models/secondary_category.js +9 -0
- package/.medusa/server/src/modules/secondary_categories/service.d.ts +9 -0
- package/.medusa/server/src/modules/secondary_categories/service.js +10 -0
- package/.medusa/server/src/modules/secondary_categories/types/ISecondaryCategory.d.ts +7 -0
- package/.medusa/server/src/modules/secondary_categories/types/ISecondaryCategory.js +3 -0
- package/.medusa/server/src/modules/seller/migrations/Migration20250212131627.d.ts +1 -1
- package/.medusa/server/src/modules/seller/migrations/Migration20250212131627.js +1 -7
- package/.medusa/server/src/workflows/hooks/product-created.d.ts +2 -1
- package/.medusa/server/src/workflows/hooks/product-created.js +58 -11
- package/.medusa/server/src/workflows/hooks/product-updated.d.ts +12 -0
- package/.medusa/server/src/workflows/hooks/product-updated.js +66 -3
- package/package.json +14 -14
|
@@ -36,6 +36,7 @@ exports.vendorProductFields = [
|
|
|
36
36
|
"*variants.options",
|
|
37
37
|
"*attribute_values",
|
|
38
38
|
"*attribute_values.attribute",
|
|
39
|
+
"*secondary_categories",
|
|
39
40
|
];
|
|
40
41
|
exports.vendorProductQueryConfig = {
|
|
41
42
|
list: {
|
|
@@ -47,4 +48,4 @@ exports.vendorProductQueryConfig = {
|
|
|
47
48
|
isList: false,
|
|
48
49
|
},
|
|
49
50
|
};
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS92ZW5kb3IvcHJvZHVjdHMvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsSUFBSTtJQUNKLE9BQU87SUFDUCxVQUFVO0lBQ1YsUUFBUTtJQUNSLGFBQWE7SUFDYixhQUFhO0lBQ2IsUUFBUTtJQUNSLGFBQWE7SUFDYixjQUFjO0lBQ2QsV0FBVztJQUNYLGVBQWU7SUFDZixTQUFTO0lBQ1QsUUFBUTtJQUNSLFFBQVE7SUFDUixRQUFRO0lBQ1IsT0FBTztJQUNQLFNBQVM7SUFDVCxnQkFBZ0I7SUFDaEIsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsT0FBTztJQUNQLGFBQWE7SUFDYixVQUFVO0lBQ1YsaUJBQWlCO0lBQ2pCLE9BQU87SUFDUCxTQUFTO0lBQ1QsV0FBVztJQUNYLGtCQUFrQjtJQUNsQixtQ0FBbUM7SUFDbkMsdUNBQXVDO0lBQ3ZDLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsNkJBQTZCO0lBQzdCLHVCQUF1QjtDQUN4QixDQUFDO0FBRVcsUUFBQSx3QkFBd0IsR0FBRztJQUN0QyxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsMkJBQW1CO1FBQzdCLE1BQU0sRUFBRSxJQUFJO0tBQ2I7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsMkJBQW1CO1FBQzdCLE1BQU0sRUFBRSxLQUFLO0tBQ2Q7Q0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const product_1 = __importDefault(require("@medusajs/medusa/product"));
|
|
8
|
+
const secondary_categories_1 = __importDefault(require("../modules/secondary_categories"));
|
|
9
|
+
exports.default = (0, utils_1.defineLink)({
|
|
10
|
+
linkable: product_1.default.linkable.product,
|
|
11
|
+
isList: true,
|
|
12
|
+
}, {
|
|
13
|
+
linkable: secondary_categories_1.default.linkable.secondaryCategory,
|
|
14
|
+
isList: true,
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vjb25kYXJ5LWNhdGVnb3J5LXByb2R1Y3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGlua3Mvc2Vjb25kYXJ5LWNhdGVnb3J5LXByb2R1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBdUQ7QUFDdkQsdUVBQXFEO0FBRXJELDJGQUFzRTtBQUV0RSxrQkFBZSxJQUFBLGtCQUFVLEVBQ3ZCO0lBQ0UsUUFBUSxFQUFFLGlCQUFhLENBQUMsUUFBUSxDQUFDLE9BQU87SUFDeEMsTUFBTSxFQUFFLElBQUk7Q0FDYixFQUNEO0lBQ0UsUUFBUSxFQUFFLDhCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7SUFDNUQsTUFBTSxFQUFFLElBQUk7Q0FDYixDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import SecondaryCategoryModuleService from "./service";
|
|
2
|
+
export declare const SECONDARY_CATEGORY_MODULE = "secondary_category";
|
|
3
|
+
declare const _default: import("@medusajs/types").ModuleExports<typeof SecondaryCategoryModuleService> & {
|
|
4
|
+
linkable: {
|
|
5
|
+
readonly secondaryCategory: {
|
|
6
|
+
id: {
|
|
7
|
+
serviceName: "secondary_category";
|
|
8
|
+
field: "secondaryCategory";
|
|
9
|
+
linkable: "secondary_category_id";
|
|
10
|
+
primaryKey: "id";
|
|
11
|
+
};
|
|
12
|
+
toJSON: () => {
|
|
13
|
+
serviceName: "secondary_category";
|
|
14
|
+
field: "secondaryCategory";
|
|
15
|
+
linkable: "secondary_category_id";
|
|
16
|
+
primaryKey: "id";
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
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.SECONDARY_CATEGORY_MODULE = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const service_1 = __importDefault(require("./service"));
|
|
9
|
+
exports.SECONDARY_CATEGORY_MODULE = "secondary_category";
|
|
10
|
+
exports.default = (0, utils_1.Module)(exports.SECONDARY_CATEGORY_MODULE, {
|
|
11
|
+
service: service_1.default,
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zZWNvbmRhcnlfY2F0ZWdvcmllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBbUQ7QUFDbkQsd0RBQXVEO0FBRTFDLFFBQUEseUJBQXlCLEdBQUcsb0JBQW9CLENBQUM7QUFFOUQsa0JBQWUsSUFBQSxjQUFNLEVBQUMsaUNBQXlCLEVBQUU7SUFDL0MsT0FBTyxFQUFFLGlCQUE4QjtDQUN4QyxDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20251014102054 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20251014102054 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "secondary_category" ("id" text not null, "category_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "secondary_category_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_secondary_category_deleted_at" ON "secondary_category" (deleted_at) WHERE deleted_at IS NULL;`);
|
|
9
|
+
}
|
|
10
|
+
async down() {
|
|
11
|
+
this.addSql(`drop table if exists "secondary_category" cascade;`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.Migration20251014102054 = Migration20251014102054;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTEwMTQxMDIwNTQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zZWNvbmRhcnlfY2F0ZWdvcmllcy9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUxMDE0MTAyMDU0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFrRDtBQUVsRCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQzNDLEtBQUssQ0FBQyxFQUFFO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FDVCw4UkFBOFIsQ0FDL1IsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQ1QsK0hBQStILENBQ2hJLENBQUM7SUFDSixDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDRjtBQWJELDBEQWFDIn0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const SecondaryCategory: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
2
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
3
|
+
category_id: import("@medusajs/framework/utils").TextProperty;
|
|
4
|
+
}>, "secondary_category">;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SecondaryCategory = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
exports.SecondaryCategory = utils_1.model.define("secondary_category", {
|
|
6
|
+
id: utils_1.model.id({ prefix: "sec_cat" }).primaryKey(),
|
|
7
|
+
category_id: utils_1.model.text(),
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vjb25kYXJ5X2NhdGVnb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvc2Vjb25kYXJ5X2NhdGVnb3JpZXMvbW9kZWxzL3NlY29uZGFyeV9jYXRlZ29yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBa0Q7QUFFckMsUUFBQSxpQkFBaUIsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFO0lBQ2xFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQ2hELFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0NBQzFCLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
declare const SecondaryCategoryModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
2
|
+
readonly SecondaryCategory: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
category_id: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
}>, "secondary_category">;
|
|
6
|
+
}>>;
|
|
7
|
+
declare class SecondaryCategoryModuleService extends SecondaryCategoryModuleService_base {
|
|
8
|
+
}
|
|
9
|
+
export default SecondaryCategoryModuleService;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
|
+
const secondary_category_1 = require("./models/secondary_category");
|
|
5
|
+
class SecondaryCategoryModuleService extends (0, utils_1.MedusaService)({
|
|
6
|
+
SecondaryCategory: secondary_category_1.SecondaryCategory,
|
|
7
|
+
}) {
|
|
8
|
+
}
|
|
9
|
+
exports.default = SecondaryCategoryModuleService;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3NlY29uZGFyeV9jYXRlZ29yaWVzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBMEQ7QUFDMUQsb0VBQWdFO0FBRWhFLE1BQU0sOEJBQStCLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ3pELGlCQUFpQixFQUFqQixzQ0FBaUI7Q0FDbEIsQ0FBQztDQUFHO0FBRUwsa0JBQWUsOEJBQThCLENBQUMifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVNlY29uZGFyeUNhdGVnb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvc2Vjb25kYXJ5X2NhdGVnb3JpZXMvdHlwZXMvSVNlY29uZGFyeUNhdGVnb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -4,17 +4,11 @@ exports.Migration20250212131627 = void 0;
|
|
|
4
4
|
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
5
|
class Migration20250212131627 extends migrations_1.Migration {
|
|
6
6
|
async up() {
|
|
7
|
-
this.addSql('drop table if exists "onboarding" cascade;');
|
|
8
7
|
this.addSql('alter table if exists "member" add column if not exists "email" text null;');
|
|
9
8
|
}
|
|
10
9
|
async down() {
|
|
11
|
-
this.addSql('create table if not exists "onboarding" ("id" text not null, "is_payout_account_setup_completed" boolean not null default false, "seller_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "onboarding_pkey" primary key ("id"));');
|
|
12
|
-
this.addSql('alter table if exists "onboarding" add constraint "onboarding_seller_id_unique" unique ("seller_id");');
|
|
13
|
-
this.addSql('CREATE INDEX IF NOT EXISTS "IDX_onboarding_seller_id" ON "onboarding" (seller_id) WHERE deleted_at IS NULL;');
|
|
14
|
-
this.addSql('CREATE INDEX IF NOT EXISTS "IDX_onboarding_deleted_at" ON "onboarding" (deleted_at) WHERE deleted_at IS NULL;');
|
|
15
|
-
this.addSql('alter table if exists "onboarding" add constraint "onboarding_seller_id_foreign" foreign key ("seller_id") references "seller" ("id") on update cascade;');
|
|
16
10
|
this.addSql('alter table if exists "member" drop column if exists "email";');
|
|
17
11
|
}
|
|
18
12
|
}
|
|
19
13
|
exports.Migration20250212131627 = Migration20250212131627;
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTAyMTIxMzE2MjcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9zZWxsZXIvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MDIxMjEzMTYyNy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBa0Q7QUFFbEQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUNwRCxLQUFLLENBQUMsRUFBRTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQ1QsNEVBQTRFLENBQzdFLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLENBQUMsTUFBTSxDQUNULCtEQUErRCxDQUNoRSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBWkQsMERBWUMifQ==
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import { ISecondaryCategory } from "../../modules/secondary_categories/types/ISecondaryCategory";
|
|
2
|
+
export declare const getSecondaryCategories: (secondaryCategoriesIds: string[], container: any) => Promise<ISecondaryCategory[]>;
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getSecondaryCategories = void 0;
|
|
6
7
|
const utils_1 = require("@medusajs/framework/utils");
|
|
7
8
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
8
9
|
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
|
|
@@ -10,6 +11,7 @@ const framework_1 = require("@mercurjs/framework");
|
|
|
10
11
|
const seller_1 = require("../../modules/seller");
|
|
11
12
|
const seller_shipping_profile_1 = __importDefault(require("../../links/seller-shipping-profile"));
|
|
12
13
|
const utils_2 = require("../attribute/utils");
|
|
14
|
+
const secondary_categories_1 = require("../../modules/secondary_categories");
|
|
13
15
|
const getVariantInventoryItemIds = async (variantId, container) => {
|
|
14
16
|
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
15
17
|
const items = await query.graph({
|
|
@@ -56,7 +58,49 @@ const assignDefaultSellerShippingProfile = async (container, product_id, seller_
|
|
|
56
58
|
},
|
|
57
59
|
});
|
|
58
60
|
};
|
|
59
|
-
|
|
61
|
+
const getSecondaryCategories = async (secondaryCategoriesIds, container) => {
|
|
62
|
+
const secondaryCategoryService = container.resolve(secondary_categories_1.SECONDARY_CATEGORY_MODULE);
|
|
63
|
+
const existingCategories = await secondaryCategoryService.listSecondaryCategories({
|
|
64
|
+
category_id: secondaryCategoriesIds,
|
|
65
|
+
});
|
|
66
|
+
const existingMap = new Map(existingCategories.map((cat) => [cat.id, cat]));
|
|
67
|
+
const results = [];
|
|
68
|
+
for (const id of secondaryCategoriesIds) {
|
|
69
|
+
if (existingMap.has(id)) {
|
|
70
|
+
results.push(existingMap.get(id));
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
const created = await secondaryCategoryService.createSecondaryCategories({
|
|
74
|
+
category_id: id,
|
|
75
|
+
});
|
|
76
|
+
results.push(created);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return results;
|
|
80
|
+
};
|
|
81
|
+
exports.getSecondaryCategories = getSecondaryCategories;
|
|
82
|
+
const createSecondaryCategories = async (products, additional_data, container) => {
|
|
83
|
+
const links = [];
|
|
84
|
+
products.map(async (product) => {
|
|
85
|
+
if (additional_data?.secondary_categories?.length > 0) {
|
|
86
|
+
const secondaryCategoriesIds = additional_data.secondary_categories.find((s) => s.handle === product.handle)?.secondary_categories_ids ?? [];
|
|
87
|
+
const mappedSecondaryCategories = await (0, exports.getSecondaryCategories)(secondaryCategoriesIds, container);
|
|
88
|
+
mappedSecondaryCategories.map((secondaryCategory) => {
|
|
89
|
+
links.push({
|
|
90
|
+
[utils_1.Modules.PRODUCT]: {
|
|
91
|
+
product_id: product.id,
|
|
92
|
+
},
|
|
93
|
+
[secondary_categories_1.SECONDARY_CATEGORY_MODULE]: {
|
|
94
|
+
secondary_category_id: secondaryCategory.id,
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
return links;
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
return links;
|
|
102
|
+
};
|
|
103
|
+
core_flows_1.createProductsWorkflow.hooks.productsCreated(async ({ products, additional_data, }, { container }) => {
|
|
60
104
|
await (0, utils_2.productsCreatedHookHandler)({
|
|
61
105
|
products,
|
|
62
106
|
additional_data,
|
|
@@ -67,14 +111,16 @@ core_flows_1.createProductsWorkflow.hooks.productsCreated(async ({ products, add
|
|
|
67
111
|
return new workflows_sdk_1.StepResponse(undefined, null);
|
|
68
112
|
}
|
|
69
113
|
const variants = products.map((p) => p.variants).flat();
|
|
70
|
-
const remoteLinks = products.map((product) =>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
114
|
+
const remoteLinks = products.map((product) => {
|
|
115
|
+
return {
|
|
116
|
+
[seller_1.SELLER_MODULE]: {
|
|
117
|
+
seller_id: additional_data.seller_id,
|
|
118
|
+
},
|
|
119
|
+
[utils_1.Modules.PRODUCT]: {
|
|
120
|
+
product_id: product.id,
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
});
|
|
78
124
|
for (const variant of variants) {
|
|
79
125
|
if (variant.manage_inventory) {
|
|
80
126
|
const inventoryItemIds = await getVariantInventoryItemIds(variant.id, container);
|
|
@@ -90,8 +136,9 @@ core_flows_1.createProductsWorkflow.hooks.productsCreated(async ({ products, add
|
|
|
90
136
|
});
|
|
91
137
|
}
|
|
92
138
|
}
|
|
139
|
+
const secondaryCategories = await createSecondaryCategories(products, additional_data, container);
|
|
93
140
|
await Promise.all(products.map((p) => assignDefaultSellerShippingProfile(container, p.id, additional_data.seller_id)));
|
|
94
|
-
await remoteLink.create(remoteLinks);
|
|
141
|
+
await remoteLink.create([...remoteLinks, ...secondaryCategories]);
|
|
95
142
|
await container.resolve(utils_1.Modules.EVENT_BUS).emit({
|
|
96
143
|
name: framework_1.AlgoliaEvents.PRODUCTS_CHANGED,
|
|
97
144
|
data: { ids: products.map((product) => product.id) },
|
|
@@ -108,4 +155,4 @@ core_flows_1.createProductsWorkflow.hooks.productsCreated(async ({ products, add
|
|
|
108
155
|
},
|
|
109
156
|
})));
|
|
110
157
|
});
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1jcmVhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9ob29rcy9wcm9kdWN0LWNyZWF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUEscURBQStFO0FBQy9FLDREQUFxRTtBQUNyRSwyREFBcUU7QUFFckUsbURBQW9EO0FBQ3BELGlEQUFxRDtBQUVyRCxrR0FBd0U7QUFDeEUsOENBQWdFO0FBQ2hFLDZFQUErRTtBQUkvRSxNQUFNLDBCQUEwQixHQUFHLEtBQUssRUFDdEMsU0FBaUIsRUFDakIsU0FBMEIsRUFDMUIsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxLQUFLLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzlCLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLENBQUMsbUNBQW1DLENBQUM7UUFDN0MsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFLFNBQVM7U0FDZDtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8sS0FBSyxDQUFDLElBQUk7U0FDZCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNyRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRixNQUFNLGtDQUFrQyxHQUFHLEtBQUssRUFDOUMsU0FBMEIsRUFDMUIsVUFBa0IsRUFDbEIsU0FBaUIsRUFDakIsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxJQUFJLEdBQUcs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
|
|
@@ -1 +1,13 @@
|
|
|
1
|
+
type ProductLike = {
|
|
2
|
+
id: string;
|
|
3
|
+
};
|
|
4
|
+
type SecCatEntry = {
|
|
5
|
+
product_id: string;
|
|
6
|
+
add?: string[];
|
|
7
|
+
remove?: string[];
|
|
8
|
+
secondary_categories_ids?: string[];
|
|
9
|
+
};
|
|
10
|
+
export declare const updateProductSubcategories: (products: ProductLike[], additional_data: {
|
|
11
|
+
secondary_categories?: SecCatEntry[];
|
|
12
|
+
} | undefined, container: any) => Promise<void>;
|
|
1
13
|
export {};
|
|
@@ -1,18 +1,81 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.updateProductSubcategories = void 0;
|
|
3
7
|
const utils_1 = require("@medusajs/framework/utils");
|
|
4
8
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
5
9
|
const framework_1 = require("@mercurjs/framework");
|
|
6
10
|
const utils_2 = require("../attribute/utils");
|
|
11
|
+
const secondary_categories_1 = require("../../modules/secondary_categories");
|
|
12
|
+
const product_created_1 = require("./product-created");
|
|
13
|
+
const secondary_category_product_1 = __importDefault(require("../../links/secondary-category-product"));
|
|
14
|
+
const updateProductSubcategories = async (products, additional_data, container) => {
|
|
15
|
+
const link = container.resolve(utils_1.ContainerRegistrationKeys.LINK);
|
|
16
|
+
const secondaryCategoryService = container.resolve(secondary_categories_1.SECONDARY_CATEGORY_MODULE);
|
|
17
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
18
|
+
const entries = additional_data?.secondary_categories ?? [];
|
|
19
|
+
if (!entries.length || !products?.length)
|
|
20
|
+
return;
|
|
21
|
+
const byId = new Map(entries.map((e) => [e.product_id, e]));
|
|
22
|
+
await Promise.all(products.map(async (product) => {
|
|
23
|
+
const match = byId.get(product.id);
|
|
24
|
+
if (!match)
|
|
25
|
+
return;
|
|
26
|
+
const toAddRaw = match.add ?? match.secondary_categories_ids ?? [];
|
|
27
|
+
const toRemoveRaw = match.remove ?? [];
|
|
28
|
+
const toAddIds = [...new Set(toAddRaw.filter(Boolean))];
|
|
29
|
+
const toRemoveIds = [...new Set(toRemoveRaw.filter(Boolean))];
|
|
30
|
+
let confirmedAddIds = [];
|
|
31
|
+
if (toAddIds.length) {
|
|
32
|
+
const existingOrCreated = await (0, product_created_1.getSecondaryCategories)(toAddIds, container);
|
|
33
|
+
confirmedAddIds = existingOrCreated.map((c) => c.id);
|
|
34
|
+
}
|
|
35
|
+
if (toRemoveIds.length) {
|
|
36
|
+
await Promise.all(toRemoveIds.map(async (secId) => {
|
|
37
|
+
const secondaryCategories = await secondaryCategoryService.listSecondaryCategories({
|
|
38
|
+
category_id: secId
|
|
39
|
+
});
|
|
40
|
+
const { data: [secondaryCategoryLink] } = await query.graph({
|
|
41
|
+
entity: secondary_category_product_1.default.entryPoint,
|
|
42
|
+
fields: ['secondary_category_id'],
|
|
43
|
+
filters: {
|
|
44
|
+
secondary_category_id: secondaryCategories.map((secondaryCategory) => secondaryCategory.id),
|
|
45
|
+
product_id: product.id
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
link
|
|
49
|
+
.dismiss({
|
|
50
|
+
[utils_1.Modules.PRODUCT]: { product_id: product.id },
|
|
51
|
+
[secondary_categories_1.SECONDARY_CATEGORY_MODULE]: {
|
|
52
|
+
secondary_category_id: secondaryCategoryLink.secondary_category_id
|
|
53
|
+
}
|
|
54
|
+
})
|
|
55
|
+
.catch(() => { });
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
if (confirmedAddIds.length) {
|
|
59
|
+
await Promise.all(confirmedAddIds.map((secId) => link
|
|
60
|
+
.create({
|
|
61
|
+
[utils_1.Modules.PRODUCT]: { product_id: product.id },
|
|
62
|
+
[secondary_categories_1.SECONDARY_CATEGORY_MODULE]: { secondary_category_id: secId },
|
|
63
|
+
})
|
|
64
|
+
.catch(() => { })));
|
|
65
|
+
}
|
|
66
|
+
}));
|
|
67
|
+
};
|
|
68
|
+
exports.updateProductSubcategories = updateProductSubcategories;
|
|
7
69
|
core_flows_1.updateProductsWorkflow.hooks.productsUpdated(async ({ products, additional_data }, { container }) => {
|
|
8
70
|
await (0, utils_2.productsUpdatedHookHandler)({
|
|
9
71
|
products,
|
|
10
72
|
additional_data,
|
|
11
|
-
container
|
|
73
|
+
container,
|
|
12
74
|
});
|
|
75
|
+
await (0, exports.updateProductSubcategories)(products, additional_data, container);
|
|
13
76
|
await container.resolve(utils_1.Modules.EVENT_BUS).emit({
|
|
14
77
|
name: framework_1.AlgoliaEvents.PRODUCTS_CHANGED,
|
|
15
|
-
data: { ids: products.map((product) => product.id) }
|
|
78
|
+
data: { ids: products.map((product) => product.id) },
|
|
16
79
|
});
|
|
17
80
|
});
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC11cGRhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9ob29rcy9wcm9kdWN0LXVwZGF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscURBQStFO0FBQy9FLDREQUFxRTtBQUVyRSxtREFBb0Q7QUFFcEQsOENBQWdFO0FBRWhFLDZFQUErRTtBQUMvRSx1REFBMkQ7QUFFM0Qsd0dBQThFO0FBVXZFLE1BQU0sMEJBQTBCLEdBQUcsS0FBSyxFQUM3QyxRQUF1QixFQUN2QixlQUFxRSxFQUNyRSxTQUFjLEVBQ2QsRUFBRTtJQUNGLE1BQU0sSUFBSSxHQUFTLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckUsTUFBTSx3QkFBd0IsR0FDNUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnREFBeUIsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFakUsTUFBTSxPQUFPLEdBQUcsZUFBZSxFQUFFLG9CQUFvQixJQUFJLEVBQUUsQ0FBQztJQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNO1FBQUUsT0FBTztJQUVqRCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTVELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDZixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mercurjs/b2c-core",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"author": "MercurJS <hello@mercurjs.com> (https://mercurjs.com)",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -35,13 +35,13 @@
|
|
|
35
35
|
"prepublishOnly": "medusa plugin:build"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@medusajs/admin-sdk": "2.
|
|
39
|
-
"@medusajs/cli": "2.
|
|
40
|
-
"@medusajs/framework": "2.
|
|
41
|
-
"@medusajs/medusa": "2.
|
|
42
|
-
"@medusajs/test-utils": "2.
|
|
38
|
+
"@medusajs/admin-sdk": "2.9.0",
|
|
39
|
+
"@medusajs/cli": "2.9.0",
|
|
40
|
+
"@medusajs/framework": "2.9.0",
|
|
41
|
+
"@medusajs/medusa": "2.9.0",
|
|
42
|
+
"@medusajs/test-utils": "2.9.0",
|
|
43
43
|
"@medusajs/ui": "4.0.4",
|
|
44
|
-
"@medusajs/icons": "2.
|
|
44
|
+
"@medusajs/icons": "2.9.0",
|
|
45
45
|
"@mercurjs/framework": "*",
|
|
46
46
|
"@mikro-orm/cli": "6.4.3",
|
|
47
47
|
"@mikro-orm/core": "6.4.3",
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"yalc": "^1.0.0-pre.53"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
|
-
"@medusajs/admin-sdk": "2.
|
|
67
|
-
"@medusajs/cli": "2.
|
|
68
|
-
"@medusajs/framework": "2.
|
|
69
|
-
"@medusajs/test-utils": "2.
|
|
70
|
-
"@medusajs/medusa": "2.
|
|
66
|
+
"@medusajs/admin-sdk": "2.9.0",
|
|
67
|
+
"@medusajs/cli": "2.9.0",
|
|
68
|
+
"@medusajs/framework": "2.9.0",
|
|
69
|
+
"@medusajs/test-utils": "2.9.0",
|
|
70
|
+
"@medusajs/medusa": "2.9.0",
|
|
71
71
|
"@medusajs/ui": "4.0.3",
|
|
72
|
-
"@medusajs/icons": "2.
|
|
72
|
+
"@medusajs/icons": "2.9.0",
|
|
73
73
|
"@mercurjs/framework": "*",
|
|
74
74
|
"@mikro-orm/cli": "6.4.3",
|
|
75
75
|
"@mikro-orm/core": "6.4.3",
|
|
@@ -83,4 +83,4 @@
|
|
|
83
83
|
"node": ">=20"
|
|
84
84
|
},
|
|
85
85
|
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
86
|
-
}
|
|
86
|
+
}
|