@hszrdm/core 1.3.0 → 1.5.0
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/admin/index.js +5572 -3759
- package/.medusa/server/src/admin/index.mjs +5572 -3759
- package/.medusa/server/src/api/admin/back-in-stock/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/back-in-stock/route.js +70 -0
- package/.medusa/server/src/api/admin/customer-activation/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/customer-activation/route.js +97 -0
- package/.medusa/server/src/api/admin/customer-import/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/customer-import/route.js +166 -0
- package/.medusa/server/src/api/admin/order-export/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/order-export/route.js +88 -0
- package/.medusa/server/src/api/admin/product-migration/inventory/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/product-migration/inventory/route.js +164 -0
- package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.js +204 -0
- package/.medusa/server/src/api/admin/product-migration/products/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/product-migration/products/route.js +24 -0
- package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +36 -4
- package/.medusa/server/src/api/admin/product-reviews/settings/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/product-reviews/settings/route.js +63 -0
- package/.medusa/server/src/api/admin/system-runtime/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/system-runtime/route.js +18 -0
- package/.medusa/server/src/api/hooks/packeta/status/route.d.ts +2 -0
- package/.medusa/server/src/api/hooks/packeta/status/route.js +55 -0
- package/.medusa/server/src/api/mcp/route.d.ts +4 -0
- package/.medusa/server/src/api/mcp/route.js +19 -0
- package/.medusa/server/src/api/middlewares.js +16 -1
- package/.medusa/server/src/api/store/abandoned-cart/recover/route.d.ts +2 -0
- package/.medusa/server/src/api/store/abandoned-cart/recover/route.js +37 -0
- package/.medusa/server/src/api/store/back-in-stock/route.d.ts +8 -0
- package/.medusa/server/src/api/store/back-in-stock/route.js +124 -0
- package/.medusa/server/src/api/store/customer-activation/complete/route.d.ts +2 -0
- package/.medusa/server/src/api/store/customer-activation/complete/route.js +96 -0
- package/.medusa/server/src/api/store/customer-activation/route.d.ts +2 -0
- package/.medusa/server/src/api/store/customer-activation/route.js +34 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.d.ts +1 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.js +76 -34
- package/.medusa/server/src/api/store/review-request/route.d.ts +2 -0
- package/.medusa/server/src/api/store/review-request/route.js +60 -0
- package/.medusa/server/src/config.d.ts +1 -1
- package/.medusa/server/src/core/abandoned-cart.d.ts +64 -0
- package/.medusa/server/src/core/abandoned-cart.js +197 -0
- package/.medusa/server/src/core/back-in-stock.d.ts +51 -0
- package/.medusa/server/src/core/back-in-stock.js +107 -0
- package/.medusa/server/src/core/checkout-contract.d.ts +1 -0
- package/.medusa/server/src/core/checkout-contract.js +2 -1
- package/.medusa/server/src/core/customer-account-contract.d.ts +3 -0
- package/.medusa/server/src/core/customer-account-contract.js +4 -1
- package/.medusa/server/src/core/customer-activation.d.ts +120 -0
- package/.medusa/server/src/core/customer-activation.js +169 -0
- package/.medusa/server/src/core/customer-email.d.ts +1 -1
- package/.medusa/server/src/core/customer-email.js +4 -1
- package/.medusa/server/src/core/native-migration-export.d.ts +6 -0
- package/.medusa/server/src/core/native-migration-export.js +105 -0
- package/.medusa/server/src/core/order-export.d.ts +11 -0
- package/.medusa/server/src/core/order-export.js +297 -0
- package/.medusa/server/src/core/review-request.d.ts +61 -0
- package/.medusa/server/src/core/review-request.js +105 -0
- package/.medusa/server/src/core/review-reward.d.ts +94 -0
- package/.medusa/server/src/core/review-reward.js +124 -0
- package/.medusa/server/src/core/runtime-health.d.ts +39 -0
- package/.medusa/server/src/core/runtime-health.js +250 -0
- package/.medusa/server/src/core/store-mcp.d.ts +19 -0
- package/.medusa/server/src/core/store-mcp.js +541 -0
- package/.medusa/server/src/core/storefront-core-config.d.ts +10 -0
- package/.medusa/server/src/core/storefront-core-config.js +26 -1
- package/.medusa/server/src/core/version.d.ts +2 -2
- package/.medusa/server/src/core/version.js +2 -2
- package/.medusa/server/src/jobs/abandoned-cart-recovery.d.ts +23 -0
- package/.medusa/server/src/jobs/abandoned-cart-recovery.js +138 -0
- package/.medusa/server/src/jobs/back-in-stock-reconciliation.d.ts +15 -0
- package/.medusa/server/src/jobs/back-in-stock-reconciliation.js +90 -0
- package/.medusa/server/src/jobs/dpd-statusdata-sync.d.ts +17 -0
- package/.medusa/server/src/jobs/dpd-statusdata-sync.js +107 -0
- package/.medusa/server/src/jobs/mpl-push-tracking.d.ts +19 -0
- package/.medusa/server/src/jobs/mpl-push-tracking.js +183 -0
- package/.medusa/server/src/jobs/mpl-status-sync.d.ts +8 -2
- package/.medusa/server/src/jobs/mpl-status-sync.js +12 -7
- package/.medusa/server/src/jobs/product-review-request-dispatch.d.ts +28 -0
- package/.medusa/server/src/jobs/product-review-request-dispatch.js +84 -0
- package/.medusa/server/src/jobs/runtime-heartbeat.d.ts +12 -0
- package/.medusa/server/src/jobs/runtime-heartbeat.js +13 -0
- package/.medusa/server/src/jobs/shipping-status-sync.d.ts +8 -2
- package/.medusa/server/src/jobs/shipping-status-sync.js +11 -14
- package/.medusa/server/src/lib/modules/shipping/idempotency.js +3 -3
- package/.medusa/server/src/lib/modules/shipping/index.d.ts +1 -0
- package/.medusa/server/src/lib/modules/shipping/index.js +2 -1
- package/.medusa/server/src/lib/modules/shipping/tracking.d.ts +48 -0
- package/.medusa/server/src/lib/modules/shipping/tracking.js +368 -0
- package/.medusa/server/src/lib/modules/shipping/webhooks.d.ts +6 -9
- package/.medusa/server/src/lib/modules/shipping/webhooks.js +24 -137
- package/.medusa/server/src/localized-config.d.ts +1 -1
- package/.medusa/server/src/modules/back-in-stock/index.d.ts +23 -0
- package/.medusa/server/src/modules/back-in-stock/index.js +16 -0
- package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.d.ts +5 -0
- package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.js +18 -0
- package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.d.ts +13 -0
- package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.js +23 -0
- package/.medusa/server/src/modules/back-in-stock/service.d.ts +22 -0
- package/.medusa/server/src/modules/back-in-stock/service.js +12 -0
- package/.medusa/server/src/modules/cms/index.d.ts +32 -1
- package/.medusa/server/src/modules/core-audit/index.d.ts +18 -1
- package/.medusa/server/src/modules/core-audit/writer.d.ts +14 -1
- package/.medusa/server/src/modules/email-center/abandoned-cart-registration.d.ts +1 -0
- package/.medusa/server/src/modules/email-center/abandoned-cart-registration.js +27 -0
- package/.medusa/server/src/modules/email-center/back-in-stock-registration.d.ts +1 -0
- package/.medusa/server/src/modules/email-center/back-in-stock-registration.js +27 -0
- package/.medusa/server/src/modules/email-center/campaign.d.ts +69 -3
- package/.medusa/server/src/modules/email-center/defaults.js +7 -1
- package/.medusa/server/src/modules/email-center/index.d.ts +49 -1
- package/.medusa/server/src/modules/email-center/index.js +3 -1
- package/.medusa/server/src/modules/integration-operation/index.d.ts +18 -1
- package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.d.ts +1 -0
- package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.js +30 -0
- package/.medusa/server/src/modules/integration-settings/index.d.ts +19 -1
- package/.medusa/server/src/modules/integration-settings/index.js +2 -1
- package/.medusa/server/src/modules/integration-settings/storefront-public-registration.js +15 -1
- package/.medusa/server/src/modules/lead/index.d.ts +18 -1
- package/.medusa/server/src/modules/legal-consent/consent.d.ts +4 -4
- package/.medusa/server/src/modules/legal-consent/index.d.ts +46 -1
- package/.medusa/server/src/modules/newsletter/index.d.ts +18 -1
- package/.medusa/server/src/modules/product-review/index.d.ts +32 -1
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.js +28 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.js +20 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.js +18 -0
- package/.medusa/server/src/modules/product-review/models/product-review-settings.d.ts +15 -0
- package/.medusa/server/src/modules/product-review/models/product-review-settings.js +19 -0
- package/.medusa/server/src/modules/product-review/models/product-review.d.ts +6 -2
- package/.medusa/server/src/modules/product-review/models/product-review.js +7 -3
- package/.medusa/server/src/modules/product-review/service.d.ts +22 -1
- package/.medusa/server/src/modules/product-review/service.js +3 -2
- package/.medusa/server/src/modules/quote-request/index.d.ts +18 -1
- package/.medusa/server/src/modules/seo/index.d.ts +32 -1
- package/.medusa/server/src/modules/webshop-analytics/index.d.ts +18 -1
- package/.medusa/server/src/modules/wishlist/index.d.ts +18 -1
- package/.medusa/server/src/providers/dpd/index.d.ts +3 -1
- package/.medusa/server/src/providers/dpd/index.js +3 -1
- package/.medusa/server/src/providers/dpd/statusdata-ftp.d.ts +16 -0
- package/.medusa/server/src/providers/dpd/statusdata-ftp.js +268 -0
- package/.medusa/server/src/providers/dpd/statusdata.d.ts +14 -0
- package/.medusa/server/src/providers/dpd/statusdata.js +161 -0
- package/.medusa/server/src/providers/email/index.d.ts +1 -1
- package/.medusa/server/src/providers/foxpost/index.d.ts +1 -1
- package/.medusa/server/src/providers/gls/index.d.ts +1 -1
- package/.medusa/server/src/providers/mpl/client.d.ts +3 -1
- package/.medusa/server/src/providers/mpl/client.js +154 -2
- package/.medusa/server/src/providers/mpl/index.d.ts +1 -1
- package/.medusa/server/src/providers/mpl/service.js +31 -20
- package/.medusa/server/src/providers/mpl/types.d.ts +25 -0
- package/.medusa/server/src/providers/mpl/types.js +1 -1
- package/.medusa/server/src/providers/packeta/index.d.ts +2 -1
- package/.medusa/server/src/providers/packeta/index.js +2 -1
- package/.medusa/server/src/providers/packeta/push-tracking.d.ts +8 -0
- package/.medusa/server/src/providers/packeta/push-tracking.js +96 -0
- package/.medusa/server/src/providers/packeta/service.js +22 -2
- package/.medusa/server/src/providers/resilient-stripe/index.d.ts +1 -1
- package/.medusa/server/src/providers/simplepay/index.d.ts +1 -1
- package/.medusa/server/src/scripts/core-init.d.ts +1 -1
- package/.medusa/server/src/scripts/core-init.js +3 -2
- package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.d.ts +7 -0
- package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.js +65 -0
- package/.medusa/server/src/workflows/link-migrated-customer.d.ts +8 -0
- package/.medusa/server/src/workflows/link-migrated-customer.js +17 -0
- package/package.json +2 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const back_in_stock_1 = require("../../../modules/back-in-stock");
|
|
6
|
+
async function GET(req, res) {
|
|
7
|
+
const status = text(req.query?.status);
|
|
8
|
+
const productId = text(req.query?.product_id);
|
|
9
|
+
const variantId = text(req.query?.variant_id);
|
|
10
|
+
const email = text(req.query?.email).toLowerCase();
|
|
11
|
+
const limit = clampInt(req.query?.limit, 50, 1, 200);
|
|
12
|
+
const offset = clampInt(req.query?.offset, 0, 0, 100000);
|
|
13
|
+
const filters = {};
|
|
14
|
+
if (status)
|
|
15
|
+
filters.status = status;
|
|
16
|
+
if (productId)
|
|
17
|
+
filters.product_id = productId;
|
|
18
|
+
if (variantId)
|
|
19
|
+
filters.variant_id = variantId;
|
|
20
|
+
if (email)
|
|
21
|
+
filters.email = email;
|
|
22
|
+
const service = req.scope.resolve(back_in_stock_1.BACK_IN_STOCK_MODULE);
|
|
23
|
+
const [subscriptions, count] = await service.listAndCountBackInStockSubscriptions(filters, { take: limit, skip: offset, order: { created_at: "DESC" } });
|
|
24
|
+
const variantIds = [...new Set(subscriptions.map((item) => String(item.variant_id || "")).filter(Boolean))];
|
|
25
|
+
const variantMap = new Map();
|
|
26
|
+
if (variantIds.length) {
|
|
27
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
28
|
+
const { data } = await query.graph({
|
|
29
|
+
entity: "product_variant",
|
|
30
|
+
fields: ["id", "title", "sku", "product.id", "product.title", "product.handle"],
|
|
31
|
+
filters: { id: variantIds },
|
|
32
|
+
});
|
|
33
|
+
for (const variant of data)
|
|
34
|
+
variantMap.set(String(variant.id), variant);
|
|
35
|
+
}
|
|
36
|
+
return res.json({
|
|
37
|
+
subscriptions: subscriptions.map((item) => {
|
|
38
|
+
const variant = variantMap.get(String(item.variant_id)) || {};
|
|
39
|
+
return {
|
|
40
|
+
id: item.id,
|
|
41
|
+
email: item.email,
|
|
42
|
+
status: item.status,
|
|
43
|
+
locale: item.locale,
|
|
44
|
+
product_id: item.product_id,
|
|
45
|
+
product_title: variant.product?.title || null,
|
|
46
|
+
product_handle: variant.product?.handle || null,
|
|
47
|
+
variant_id: item.variant_id,
|
|
48
|
+
variant_title: variant.title || null,
|
|
49
|
+
variant_sku: variant.sku || null,
|
|
50
|
+
notified_at: item.notified_at || null,
|
|
51
|
+
last_error: item.last_error || null,
|
|
52
|
+
created_at: item.created_at,
|
|
53
|
+
updated_at: item.updated_at,
|
|
54
|
+
};
|
|
55
|
+
}),
|
|
56
|
+
count,
|
|
57
|
+
limit,
|
|
58
|
+
offset,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function text(value) {
|
|
62
|
+
return typeof value === "string" ? value.trim() : "";
|
|
63
|
+
}
|
|
64
|
+
function clampInt(value, fallback, min, max) {
|
|
65
|
+
const number = Number(value);
|
|
66
|
+
if (!Number.isFinite(number))
|
|
67
|
+
return fallback;
|
|
68
|
+
return Math.max(min, Math.min(max, Math.trunc(number)));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2JhY2staW4tc3RvY2svcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSxrQkF5REM7QUE1REQscURBQXFFO0FBQ3JFLGtFQUE4RjtBQUV2RixLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDN0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDbEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFFeEQsTUFBTSxPQUFPLEdBQTRCLEVBQUUsQ0FBQTtJQUMzQyxJQUFJLE1BQU07UUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtJQUNuQyxJQUFJLFNBQVM7UUFBRSxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtJQUM3QyxJQUFJLFNBQVM7UUFBRSxPQUFPLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQTtJQUM3QyxJQUFJLEtBQUs7UUFBRSxP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
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const customer_activation_1 = require("../../../core/customer-activation");
|
|
6
|
+
async function POST(req, res) {
|
|
7
|
+
const body = (req.body || {});
|
|
8
|
+
const ids = Array.from(new Set((Array.isArray(body.customer_ids) ? body.customer_ids : [])
|
|
9
|
+
.map((value) => String(value || "").trim())
|
|
10
|
+
.filter(Boolean)));
|
|
11
|
+
if (!ids.length) {
|
|
12
|
+
return res.status(400).json({ message: "Nincs aktiválandó vevő kiválasztva." });
|
|
13
|
+
}
|
|
14
|
+
if (ids.length > 5_000) {
|
|
15
|
+
return res.status(400).json({ message: "Egy aktiválási kampány legfeljebb 5 000 vevőt tartalmazhat." });
|
|
16
|
+
}
|
|
17
|
+
const expiresHours = numberBetween(body.expires_hours, 1, 168, 72);
|
|
18
|
+
const reward = body.reward;
|
|
19
|
+
const sendEmail = body.send_email !== false;
|
|
20
|
+
const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER);
|
|
21
|
+
const result = {
|
|
22
|
+
total: ids.length,
|
|
23
|
+
issued: 0,
|
|
24
|
+
emailed: 0,
|
|
25
|
+
email_skipped: 0,
|
|
26
|
+
skipped: 0,
|
|
27
|
+
failed: 0,
|
|
28
|
+
warnings: [],
|
|
29
|
+
errors: [],
|
|
30
|
+
};
|
|
31
|
+
for (const customerId of ids) {
|
|
32
|
+
let customer;
|
|
33
|
+
try {
|
|
34
|
+
customer = await customerService.retrieveCustomer(customerId);
|
|
35
|
+
if (!customer?.has_account) {
|
|
36
|
+
result.skipped++;
|
|
37
|
+
result.warnings.push({
|
|
38
|
+
customer_id: customerId,
|
|
39
|
+
email: customer?.email,
|
|
40
|
+
message: "Vendég vevőhöz nem küldünk fiókaktiválást.",
|
|
41
|
+
});
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
if (!customer?.email) {
|
|
45
|
+
result.skipped++;
|
|
46
|
+
result.warnings.push({ customer_id: customerId, message: "A vevőhöz nem tartozik e-mail cím." });
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const issued = (0, customer_activation_1.issueCustomerActivation)(customer, { expiresHours, reward });
|
|
50
|
+
await customerService.updateCustomers(customerId, {
|
|
51
|
+
metadata: issued.metadata,
|
|
52
|
+
});
|
|
53
|
+
result.issued++;
|
|
54
|
+
if (!sendEmail)
|
|
55
|
+
continue;
|
|
56
|
+
const mail = await (0, customer_activation_1.sendCustomerActivationEmail)({
|
|
57
|
+
container: req.scope,
|
|
58
|
+
customer,
|
|
59
|
+
token: issued.token,
|
|
60
|
+
expiresAt: issued.state.expires_at,
|
|
61
|
+
});
|
|
62
|
+
if (mail?.skipped) {
|
|
63
|
+
result.email_skipped++;
|
|
64
|
+
result.warnings.push({
|
|
65
|
+
customer_id: customerId,
|
|
66
|
+
email: customer.email,
|
|
67
|
+
message: "Az aktiváló token létrejött, de az e-mail küldése ki lett hagyva az e-mail konfiguráció miatt.",
|
|
68
|
+
});
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const sentState = {
|
|
72
|
+
...issued.state,
|
|
73
|
+
email_sent_at: new Date().toISOString(),
|
|
74
|
+
};
|
|
75
|
+
await customerService.updateCustomers(customerId, {
|
|
76
|
+
metadata: (0, customer_activation_1.mergeActivationMetadata)(customer.metadata, sentState),
|
|
77
|
+
});
|
|
78
|
+
result.emailed++;
|
|
79
|
+
}
|
|
80
|
+
catch (cause) {
|
|
81
|
+
result.failed++;
|
|
82
|
+
result.errors.push({
|
|
83
|
+
customer_id: customerId,
|
|
84
|
+
email: customer?.email,
|
|
85
|
+
message: cause instanceof Error ? cause.message : "Ismeretlen aktiválási hiba.",
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return res.json(result);
|
|
90
|
+
}
|
|
91
|
+
function numberBetween(value, min, max, fallback) {
|
|
92
|
+
const number = Number(value);
|
|
93
|
+
if (!Number.isFinite(number))
|
|
94
|
+
return fallback;
|
|
95
|
+
return Math.min(Math.max(number, min), max);
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2N1c3RvbWVyLWFjdGl2YXRpb24vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxvQkE4RkM7QUFyR0QscURBQW1EO0FBQ25ELDJFQUkwQztBQUVuQyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtJQUN4RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUM1QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDeEQsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDbkIsQ0FBQyxDQUFBO0lBRUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLENBQUMsQ0FBQTtJQUNqRixDQUFDO0lBQ0QsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsNkRBQTZELEVBQUUsQ0FBQyxDQUFBO0lBQ3pHLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxhQUFhLENB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
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
async function POST(req, res) {
|
|
6
|
+
const body = (req.body || {});
|
|
7
|
+
const rows = Array.isArray(body.rows) ? body.rows : [];
|
|
8
|
+
const dryRun = body.dry_run !== false;
|
|
9
|
+
const mode = body.mode === "update" ? "update" : "skip";
|
|
10
|
+
if (!rows.length)
|
|
11
|
+
return res.status(400).json({ message: "Nincs importálható vevő a kérésben." });
|
|
12
|
+
if (rows.length > 10_000)
|
|
13
|
+
return res.status(400).json({ message: "Egy import legfeljebb 10 000 sort tartalmazhat." });
|
|
14
|
+
const customerService = req.scope.resolve(utils_1.Modules.CUSTOMER);
|
|
15
|
+
const result = {
|
|
16
|
+
dry_run: dryRun,
|
|
17
|
+
mode,
|
|
18
|
+
total: rows.length,
|
|
19
|
+
created: 0,
|
|
20
|
+
updated: 0,
|
|
21
|
+
skipped: 0,
|
|
22
|
+
failed: 0,
|
|
23
|
+
activation_eligible: 0,
|
|
24
|
+
activation_customer_ids: [],
|
|
25
|
+
warnings: [],
|
|
26
|
+
errors: [],
|
|
27
|
+
};
|
|
28
|
+
for (let index = 0; index < rows.length; index++) {
|
|
29
|
+
const source = rows[index] || {};
|
|
30
|
+
const row = index + 2;
|
|
31
|
+
const email = text(source.email).toLowerCase();
|
|
32
|
+
try {
|
|
33
|
+
if (!email || !email.includes("@"))
|
|
34
|
+
throw new Error("Érvénytelen vagy hiányzó e-mail cím.");
|
|
35
|
+
if (source.password !== undefined && text(source.password)) {
|
|
36
|
+
result.warnings.push({ row, email, message: "A jelszó oszlop biztonsági okból figyelmen kívül lett hagyva." });
|
|
37
|
+
}
|
|
38
|
+
const existingList = await customerService.listCustomers({ email }, { take: 1 });
|
|
39
|
+
const existing = Array.isArray(existingList) ? existingList[0] : null;
|
|
40
|
+
if (existing && mode === "skip") {
|
|
41
|
+
result.skipped++;
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const taxNumber = nullable(source.tax_number);
|
|
45
|
+
const metadata = {
|
|
46
|
+
...(existing?.metadata || {}),
|
|
47
|
+
imported_by: "hszrdm-customer-import",
|
|
48
|
+
...(taxNumber ? { tax_number: taxNumber } : {}),
|
|
49
|
+
};
|
|
50
|
+
const hasAccountInput = text(source.has_account);
|
|
51
|
+
const requestedHasAccount = hasAccountInput ? boolean(source.has_account) : false;
|
|
52
|
+
const customerData = withoutUndefined({
|
|
53
|
+
email,
|
|
54
|
+
first_name: nullable(source.first_name),
|
|
55
|
+
last_name: nullable(source.last_name),
|
|
56
|
+
phone: nullable(source.phone),
|
|
57
|
+
company_name: nullable(source.company_name),
|
|
58
|
+
...(existing ? {} : { has_account: requestedHasAccount }),
|
|
59
|
+
metadata,
|
|
60
|
+
});
|
|
61
|
+
const activationEligible = existing?.has_account === true || (!existing && requestedHasAccount);
|
|
62
|
+
if (existing && requestedHasAccount && existing.has_account !== true) {
|
|
63
|
+
result.warnings.push({
|
|
64
|
+
row,
|
|
65
|
+
email,
|
|
66
|
+
message: "A meglévő vendég vevő Medusában nem alakítható át update művelettel regisztrált vevővé, ezért nem került az aktiválási listába.",
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (dryRun) {
|
|
70
|
+
if (existing)
|
|
71
|
+
result.updated++;
|
|
72
|
+
else
|
|
73
|
+
result.created++;
|
|
74
|
+
if (activationEligible)
|
|
75
|
+
result.activation_eligible++;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const customer = existing
|
|
79
|
+
? await customerService.updateCustomers(existing.id, customerData)
|
|
80
|
+
: await customerService.createCustomers(customerData);
|
|
81
|
+
const customerId = customer?.id || existing?.id;
|
|
82
|
+
if (!customerId)
|
|
83
|
+
throw new Error("A vevő létrehozása után nem érkezett vevőazonosító.");
|
|
84
|
+
await ensureAddress(customerService, customerId, source, "billing");
|
|
85
|
+
await ensureAddress(customerService, customerId, source, "shipping");
|
|
86
|
+
await ensureGroup(customerService, customerId, text(source.customer_group));
|
|
87
|
+
if (activationEligible) {
|
|
88
|
+
result.activation_eligible++;
|
|
89
|
+
result.activation_customer_ids.push(customerId);
|
|
90
|
+
}
|
|
91
|
+
if (existing)
|
|
92
|
+
result.updated++;
|
|
93
|
+
else
|
|
94
|
+
result.created++;
|
|
95
|
+
}
|
|
96
|
+
catch (cause) {
|
|
97
|
+
result.failed++;
|
|
98
|
+
result.errors.push({ row, email: email || undefined, message: cause instanceof Error ? cause.message : "Ismeretlen importálási hiba." });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return res.json(result);
|
|
102
|
+
}
|
|
103
|
+
async function ensureAddress(service, customerId, row, kind) {
|
|
104
|
+
const prefix = `${kind}_`;
|
|
105
|
+
const address1 = text(row[`${prefix}address_1`]);
|
|
106
|
+
if (!address1)
|
|
107
|
+
return;
|
|
108
|
+
const data = withoutUndefined({
|
|
109
|
+
customer_id: customerId,
|
|
110
|
+
first_name: nullable(row[`${prefix}first_name`]) || nullable(row.first_name),
|
|
111
|
+
last_name: nullable(row[`${prefix}last_name`]) || nullable(row.last_name),
|
|
112
|
+
company: nullable(row[`${prefix}company`]) || nullable(row.company_name),
|
|
113
|
+
address_1: address1,
|
|
114
|
+
address_2: nullable(row[`${prefix}address_2`]),
|
|
115
|
+
city: nullable(row[`${prefix}city`]),
|
|
116
|
+
postal_code: nullable(row[`${prefix}postal_code`]),
|
|
117
|
+
province: nullable(row[`${prefix}province`]),
|
|
118
|
+
country_code: text(row[`${prefix}country_code`]).toLowerCase() || undefined,
|
|
119
|
+
phone: nullable(row[`${prefix}phone`]) || nullable(row.phone),
|
|
120
|
+
is_default_billing: kind === "billing",
|
|
121
|
+
is_default_shipping: kind === "shipping",
|
|
122
|
+
});
|
|
123
|
+
const existingAddresses = await service.listCustomerAddresses({ customer_id: customerId });
|
|
124
|
+
const current = Array.isArray(existingAddresses)
|
|
125
|
+
? existingAddresses.find((address) => kind === "billing" ? address.is_default_billing : address.is_default_shipping)
|
|
126
|
+
: null;
|
|
127
|
+
if (current?.id)
|
|
128
|
+
await service.updateCustomerAddresses(current.id, data);
|
|
129
|
+
else
|
|
130
|
+
await service.createCustomerAddresses(data);
|
|
131
|
+
}
|
|
132
|
+
async function ensureGroup(service, customerId, groupName) {
|
|
133
|
+
if (!groupName)
|
|
134
|
+
return;
|
|
135
|
+
const groups = await service.listCustomerGroups({ name: groupName }, { take: 1 });
|
|
136
|
+
const group = Array.isArray(groups) && groups[0] ? groups[0] : await service.createCustomerGroups({ name: groupName });
|
|
137
|
+
if (!group?.id)
|
|
138
|
+
return;
|
|
139
|
+
try {
|
|
140
|
+
await service.addCustomerToGroup({ customer_id: customerId, customer_group_id: group.id });
|
|
141
|
+
}
|
|
142
|
+
catch (cause) {
|
|
143
|
+
const message = cause instanceof Error ? cause.message.toLowerCase() : "";
|
|
144
|
+
if (!message.includes("already") && !message.includes("exists"))
|
|
145
|
+
throw cause;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
function text(value) {
|
|
149
|
+
if (value === null || value === undefined)
|
|
150
|
+
return "";
|
|
151
|
+
return String(value).trim();
|
|
152
|
+
}
|
|
153
|
+
function nullable(value) {
|
|
154
|
+
const valueText = text(value);
|
|
155
|
+
return valueText || undefined;
|
|
156
|
+
}
|
|
157
|
+
function boolean(value) {
|
|
158
|
+
if (typeof value === "boolean")
|
|
159
|
+
return value;
|
|
160
|
+
const normalized = text(value).toLowerCase();
|
|
161
|
+
return ["1", "true", "yes", "igen", "registered", "regisztralt", "regisztrált"].includes(normalized);
|
|
162
|
+
}
|
|
163
|
+
function withoutUndefined(value) {
|
|
164
|
+
return Object.fromEntries(Object.entries(value).filter(([, item]) => item !== undefined));
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2N1c3RvbWVyLWltcG9ydC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdDQSxvQkFtR0M7QUExSUQscURBQW1EO0FBdUM1QyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtJQUN4RCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQW1CLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNyRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQTtJQUNyQyxNQUFNLElBQUksR0FBZSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7SUFFbkUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxDQUFDLENBQUE7SUFDakcsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU07UUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGlEQUFpRCxFQUFFLENBQUMsQ0FBQTtJQUVySCxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsUUFBUSxDQUFRLENBQUE7SUFDbEUsTUFBTSxNQUFNLEdBQUc7UUFDYixPQUFPLEVBQUUsTUFB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
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const order_export_1 = require("../../../core/order-export");
|
|
6
|
+
const ORDER_FIELDS = [
|
|
7
|
+
"id",
|
|
8
|
+
"display_id",
|
|
9
|
+
"created_at",
|
|
10
|
+
"status",
|
|
11
|
+
"currency_code",
|
|
12
|
+
"email",
|
|
13
|
+
"customer_id",
|
|
14
|
+
"subtotal",
|
|
15
|
+
"shipping_total",
|
|
16
|
+
"discount_total",
|
|
17
|
+
"tax_total",
|
|
18
|
+
"total",
|
|
19
|
+
"metadata",
|
|
20
|
+
"customer.*",
|
|
21
|
+
"billing_address.*",
|
|
22
|
+
"shipping_address.*",
|
|
23
|
+
"items.*",
|
|
24
|
+
"items.tax_lines.*",
|
|
25
|
+
"shipping_methods.*",
|
|
26
|
+
"shipping_methods.tax_lines.*",
|
|
27
|
+
"payment_collections.*",
|
|
28
|
+
"payment_collections.payments.*",
|
|
29
|
+
"payment_collections.payment_sessions.*",
|
|
30
|
+
"fulfillments.*",
|
|
31
|
+
];
|
|
32
|
+
const PAGE_SIZE = 100;
|
|
33
|
+
const MAX_ORDERS = 10_000;
|
|
34
|
+
async function POST(req, res) {
|
|
35
|
+
const body = (req.body || {});
|
|
36
|
+
const from = cleanDate(body.from);
|
|
37
|
+
const to = cleanDate(body.to, true);
|
|
38
|
+
const status = cleanText(body.status);
|
|
39
|
+
const createdAt = {};
|
|
40
|
+
if (from)
|
|
41
|
+
createdAt.$gte = from;
|
|
42
|
+
if (to)
|
|
43
|
+
createdAt.$lte = to;
|
|
44
|
+
const filters = {
|
|
45
|
+
status: status || { $ne: "draft" },
|
|
46
|
+
};
|
|
47
|
+
if (Object.keys(createdAt).length)
|
|
48
|
+
filters.created_at = createdAt;
|
|
49
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
50
|
+
const orders = [];
|
|
51
|
+
let skip = 0;
|
|
52
|
+
while (orders.length < MAX_ORDERS) {
|
|
53
|
+
const take = Math.min(PAGE_SIZE, MAX_ORDERS - orders.length);
|
|
54
|
+
const { data } = await query.graph({
|
|
55
|
+
entity: "order",
|
|
56
|
+
fields: ORDER_FIELDS,
|
|
57
|
+
filters,
|
|
58
|
+
pagination: { skip, take },
|
|
59
|
+
});
|
|
60
|
+
orders.push(...data);
|
|
61
|
+
if (data.length < take)
|
|
62
|
+
break;
|
|
63
|
+
skip += data.length;
|
|
64
|
+
}
|
|
65
|
+
const table = (0, order_export_1.ordersToAccountingTable)(orders);
|
|
66
|
+
return res.json({
|
|
67
|
+
...table,
|
|
68
|
+
numeric_headers: [...order_export_1.ORDER_EXPORT_NUMERIC_HEADERS],
|
|
69
|
+
truncated: orders.length >= MAX_ORDERS,
|
|
70
|
+
filters: { from: from || null, to: to || null, status: status || null },
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function cleanText(value) {
|
|
74
|
+
return typeof value === "string" ? value.trim() : "";
|
|
75
|
+
}
|
|
76
|
+
function cleanDate(value, endOfDay = false) {
|
|
77
|
+
const raw = cleanText(value);
|
|
78
|
+
if (!raw)
|
|
79
|
+
return "";
|
|
80
|
+
const dateOnly = /^\d{4}-\d{2}-\d{2}$/.test(raw);
|
|
81
|
+
const date = new Date(dateOnly
|
|
82
|
+
? `${raw}T${endOfDay ? "23:59:59.999" : "00:00:00.000"}Z`
|
|
83
|
+
: raw);
|
|
84
|
+
if (Number.isNaN(date.getTime()))
|
|
85
|
+
return "";
|
|
86
|
+
return date.toISOString();
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29yZGVyLWV4cG9ydC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSxvQkF3Q0M7QUE1RUQscURBQXFFO0FBQ3JFLDZEQUdtQztBQUVuQyxNQUFNLFlBQVksR0FBRztJQUNuQixJQUFJO0lBQ0osWUFBWTtJQUNaLFlBQVk7SUFDWixRQUFRO0lBQ1IsZUFBZTtJQUNmLE9BQU87SUFDUCxhQUFhO0lBQ2IsVUFBVTtJQUNWLGdCQUFnQjtJQUNoQixnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLE9BQU87SUFDUCxVQUFVO0lBQ1YsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsU0FBUztJQUNULG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsOEJBQThCO0lBQzlCLHVCQUF1QjtJQUN2QixnQ0FBZ0M7SUFDaEMsd0NBQXdDO0lBQ3hDLGdCQUFnQjtDQUNqQixDQUFBO0FBRUQsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFBO0FBQ3JCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQTtBQUVsQixLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBNEIsQ0FBQTtJQUN4RCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2pDLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ25DLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7SUFFckMsTUFBTSxTQUFTLEdBQTJCLEVBQUUsQ0FBQTtJQUM1QyxJQUFJLElBQUk7UUFBRSxTQUFTLENBQUMsSUFBSSxHQUFH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
|