@hszrdm/core 1.4.0 → 1.6.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.
Files changed (182) hide show
  1. package/.medusa/server/src/admin/index.js +6361 -3789
  2. package/.medusa/server/src/admin/index.mjs +6361 -3789
  3. package/.medusa/server/src/api/admin/back-in-stock/route.d.ts +2 -0
  4. package/.medusa/server/src/api/admin/back-in-stock/route.js +70 -0
  5. package/.medusa/server/src/api/admin/core-carts/[id]/items/[itemId]/route.d.ts +3 -0
  6. package/.medusa/server/src/api/admin/core-carts/[id]/items/[itemId]/route.js +64 -0
  7. package/.medusa/server/src/api/admin/core-carts/[id]/items/route.d.ts +2 -0
  8. package/.medusa/server/src/api/admin/core-carts/[id]/items/route.js +40 -0
  9. package/.medusa/server/src/api/admin/core-carts/[id]/promotions/[code]/route.d.ts +2 -0
  10. package/.medusa/server/src/api/admin/core-carts/[id]/promotions/[code]/route.js +40 -0
  11. package/.medusa/server/src/api/admin/core-carts/[id]/promotions/route.d.ts +2 -0
  12. package/.medusa/server/src/api/admin/core-carts/[id]/promotions/route.js +41 -0
  13. package/.medusa/server/src/api/admin/core-carts/[id]/route.d.ts +2 -0
  14. package/.medusa/server/src/api/admin/core-carts/[id]/route.js +28 -0
  15. package/.medusa/server/src/api/admin/core-carts/customer/[id]/route.d.ts +2 -0
  16. package/.medusa/server/src/api/admin/core-carts/customer/[id]/route.js +34 -0
  17. package/.medusa/server/src/api/admin/core-carts/route.d.ts +3 -0
  18. package/.medusa/server/src/api/admin/core-carts/route.js +69 -0
  19. package/.medusa/server/src/api/admin/customer-activation/route.d.ts +2 -0
  20. package/.medusa/server/src/api/admin/customer-activation/route.js +97 -0
  21. package/.medusa/server/src/api/admin/customer-import/route.d.ts +2 -0
  22. package/.medusa/server/src/api/admin/customer-import/route.js +166 -0
  23. package/.medusa/server/src/api/admin/order-export/route.d.ts +2 -0
  24. package/.medusa/server/src/api/admin/order-export/route.js +88 -0
  25. package/.medusa/server/src/api/admin/product-migration/inventory/route.d.ts +3 -0
  26. package/.medusa/server/src/api/admin/product-migration/inventory/route.js +164 -0
  27. package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.d.ts +3 -0
  28. package/.medusa/server/src/api/admin/product-migration/price-list-prices/route.js +204 -0
  29. package/.medusa/server/src/api/admin/product-migration/products/route.d.ts +2 -0
  30. package/.medusa/server/src/api/admin/product-migration/products/route.js +24 -0
  31. package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +36 -4
  32. package/.medusa/server/src/api/admin/product-reviews/settings/route.d.ts +3 -0
  33. package/.medusa/server/src/api/admin/product-reviews/settings/route.js +63 -0
  34. package/.medusa/server/src/api/admin/shared-cart/settings/route.d.ts +5 -0
  35. package/.medusa/server/src/api/admin/shared-cart/settings/route.js +31 -0
  36. package/.medusa/server/src/api/admin/system-runtime/route.d.ts +2 -0
  37. package/.medusa/server/src/api/admin/system-runtime/route.js +18 -0
  38. package/.medusa/server/src/api/hooks/packeta/status/route.d.ts +2 -0
  39. package/.medusa/server/src/api/hooks/packeta/status/route.js +55 -0
  40. package/.medusa/server/src/api/middlewares.js +24 -1
  41. package/.medusa/server/src/api/store/abandoned-cart/recover/route.d.ts +2 -0
  42. package/.medusa/server/src/api/store/abandoned-cart/recover/route.js +37 -0
  43. package/.medusa/server/src/api/store/back-in-stock/route.d.ts +8 -0
  44. package/.medusa/server/src/api/store/back-in-stock/route.js +124 -0
  45. package/.medusa/server/src/api/store/core-carts/me/active/route.d.ts +2 -0
  46. package/.medusa/server/src/api/store/core-carts/me/active/route.js +54 -0
  47. package/.medusa/server/src/api/store/customer-activation/complete/route.d.ts +2 -0
  48. package/.medusa/server/src/api/store/customer-activation/complete/route.js +96 -0
  49. package/.medusa/server/src/api/store/customer-activation/route.d.ts +2 -0
  50. package/.medusa/server/src/api/store/customer-activation/route.js +34 -0
  51. package/.medusa/server/src/api/store/products/[id]/reviews/route.d.ts +1 -0
  52. package/.medusa/server/src/api/store/products/[id]/reviews/route.js +76 -34
  53. package/.medusa/server/src/api/store/review-request/route.d.ts +2 -0
  54. package/.medusa/server/src/api/store/review-request/route.js +60 -0
  55. package/.medusa/server/src/api/store/shared-carts/[token]/route.d.ts +2 -0
  56. package/.medusa/server/src/api/store/shared-carts/[token]/route.js +52 -0
  57. package/.medusa/server/src/api/store/shared-carts/route.d.ts +13 -0
  58. package/.medusa/server/src/api/store/shared-carts/route.js +78 -0
  59. package/.medusa/server/src/core/abandoned-cart.d.ts +64 -0
  60. package/.medusa/server/src/core/abandoned-cart.js +197 -0
  61. package/.medusa/server/src/core/admin-cart-management.d.ts +18 -0
  62. package/.medusa/server/src/core/admin-cart-management.js +102 -0
  63. package/.medusa/server/src/core/admin-cart-visibility.d.ts +94 -0
  64. package/.medusa/server/src/core/admin-cart-visibility.js +192 -0
  65. package/.medusa/server/src/core/back-in-stock.d.ts +51 -0
  66. package/.medusa/server/src/core/back-in-stock.js +107 -0
  67. package/.medusa/server/src/core/cart-observability.d.ts +23 -0
  68. package/.medusa/server/src/core/cart-observability.js +54 -0
  69. package/.medusa/server/src/core/checkout-contract.d.ts +1 -0
  70. package/.medusa/server/src/core/checkout-contract.js +2 -1
  71. package/.medusa/server/src/core/customer-account-contract.d.ts +3 -0
  72. package/.medusa/server/src/core/customer-account-contract.js +4 -1
  73. package/.medusa/server/src/core/customer-activation.d.ts +120 -0
  74. package/.medusa/server/src/core/customer-activation.js +169 -0
  75. package/.medusa/server/src/core/customer-cart-resume.d.ts +21 -0
  76. package/.medusa/server/src/core/customer-cart-resume.js +72 -0
  77. package/.medusa/server/src/core/customer-email.d.ts +1 -1
  78. package/.medusa/server/src/core/customer-email.js +4 -1
  79. package/.medusa/server/src/core/native-migration-export.d.ts +6 -0
  80. package/.medusa/server/src/core/native-migration-export.js +105 -0
  81. package/.medusa/server/src/core/order-export.d.ts +11 -0
  82. package/.medusa/server/src/core/order-export.js +297 -0
  83. package/.medusa/server/src/core/review-request.d.ts +61 -0
  84. package/.medusa/server/src/core/review-request.js +105 -0
  85. package/.medusa/server/src/core/review-reward.d.ts +94 -0
  86. package/.medusa/server/src/core/review-reward.js +124 -0
  87. package/.medusa/server/src/core/runtime-health.d.ts +39 -0
  88. package/.medusa/server/src/core/runtime-health.js +250 -0
  89. package/.medusa/server/src/core/storefront-core-config.d.ts +10 -0
  90. package/.medusa/server/src/core/storefront-core-config.js +26 -1
  91. package/.medusa/server/src/core/version.d.ts +2 -2
  92. package/.medusa/server/src/core/version.js +2 -2
  93. package/.medusa/server/src/jobs/abandoned-cart-recovery.d.ts +23 -0
  94. package/.medusa/server/src/jobs/abandoned-cart-recovery.js +137 -0
  95. package/.medusa/server/src/jobs/back-in-stock-reconciliation.d.ts +15 -0
  96. package/.medusa/server/src/jobs/back-in-stock-reconciliation.js +90 -0
  97. package/.medusa/server/src/jobs/dpd-statusdata-sync.d.ts +17 -0
  98. package/.medusa/server/src/jobs/dpd-statusdata-sync.js +107 -0
  99. package/.medusa/server/src/jobs/mpl-push-tracking.d.ts +19 -0
  100. package/.medusa/server/src/jobs/mpl-push-tracking.js +183 -0
  101. package/.medusa/server/src/jobs/mpl-status-sync.d.ts +8 -2
  102. package/.medusa/server/src/jobs/mpl-status-sync.js +12 -7
  103. package/.medusa/server/src/jobs/product-review-request-dispatch.d.ts +28 -0
  104. package/.medusa/server/src/jobs/product-review-request-dispatch.js +84 -0
  105. package/.medusa/server/src/jobs/runtime-heartbeat.d.ts +12 -0
  106. package/.medusa/server/src/jobs/runtime-heartbeat.js +13 -0
  107. package/.medusa/server/src/jobs/shipping-status-sync.d.ts +8 -2
  108. package/.medusa/server/src/jobs/shipping-status-sync.js +11 -14
  109. package/.medusa/server/src/lib/modules/shipping/idempotency.js +3 -3
  110. package/.medusa/server/src/lib/modules/shipping/index.d.ts +1 -0
  111. package/.medusa/server/src/lib/modules/shipping/index.js +2 -1
  112. package/.medusa/server/src/lib/modules/shipping/tracking.d.ts +48 -0
  113. package/.medusa/server/src/lib/modules/shipping/tracking.js +368 -0
  114. package/.medusa/server/src/lib/modules/shipping/webhooks.d.ts +6 -9
  115. package/.medusa/server/src/lib/modules/shipping/webhooks.js +24 -137
  116. package/.medusa/server/src/modules/back-in-stock/index.d.ts +23 -0
  117. package/.medusa/server/src/modules/back-in-stock/index.js +16 -0
  118. package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.d.ts +5 -0
  119. package/.medusa/server/src/modules/back-in-stock/migrations/Migration20261101202000.js +18 -0
  120. package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.d.ts +13 -0
  121. package/.medusa/server/src/modules/back-in-stock/models/back-in-stock-subscription.js +23 -0
  122. package/.medusa/server/src/modules/back-in-stock/service.d.ts +22 -0
  123. package/.medusa/server/src/modules/back-in-stock/service.js +12 -0
  124. package/.medusa/server/src/modules/email-center/abandoned-cart-registration.d.ts +1 -0
  125. package/.medusa/server/src/modules/email-center/abandoned-cart-registration.js +27 -0
  126. package/.medusa/server/src/modules/email-center/back-in-stock-registration.d.ts +1 -0
  127. package/.medusa/server/src/modules/email-center/back-in-stock-registration.js +27 -0
  128. package/.medusa/server/src/modules/email-center/defaults.js +7 -1
  129. package/.medusa/server/src/modules/email-center/index.d.ts +2 -0
  130. package/.medusa/server/src/modules/email-center/index.js +3 -1
  131. package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.d.ts +1 -0
  132. package/.medusa/server/src/modules/integration-settings/abandoned-cart-registration.js +30 -0
  133. package/.medusa/server/src/modules/integration-settings/index.d.ts +1 -0
  134. package/.medusa/server/src/modules/integration-settings/index.js +2 -1
  135. package/.medusa/server/src/modules/integration-settings/storefront-public-registration.js +15 -1
  136. package/.medusa/server/src/modules/product-review/index.d.ts +14 -0
  137. package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.d.ts +5 -0
  138. package/.medusa/server/src/modules/product-review/migrations/Migration20261101113000.js +28 -0
  139. package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.d.ts +5 -0
  140. package/.medusa/server/src/modules/product-review/migrations/Migration20261101114500.js +20 -0
  141. package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.d.ts +5 -0
  142. package/.medusa/server/src/modules/product-review/migrations/Migration20261101121500.js +18 -0
  143. package/.medusa/server/src/modules/product-review/models/product-review-settings.d.ts +15 -0
  144. package/.medusa/server/src/modules/product-review/models/product-review-settings.js +19 -0
  145. package/.medusa/server/src/modules/product-review/models/product-review.d.ts +6 -2
  146. package/.medusa/server/src/modules/product-review/models/product-review.js +7 -3
  147. package/.medusa/server/src/modules/product-review/service.d.ts +22 -1
  148. package/.medusa/server/src/modules/product-review/service.js +3 -2
  149. package/.medusa/server/src/modules/shared-cart/index.d.ts +21 -0
  150. package/.medusa/server/src/modules/shared-cart/index.js +13 -0
  151. package/.medusa/server/src/modules/shared-cart/migrations/Migration20261102010000.d.ts +5 -0
  152. package/.medusa/server/src/modules/shared-cart/migrations/Migration20261102010000.js +16 -0
  153. package/.medusa/server/src/modules/shared-cart/models/shared-cart.d.ts +10 -0
  154. package/.medusa/server/src/modules/shared-cart/models/shared-cart.js +17 -0
  155. package/.medusa/server/src/modules/shared-cart/service.d.ts +14 -0
  156. package/.medusa/server/src/modules/shared-cart/service.js +11 -0
  157. package/.medusa/server/src/modules/shared-cart/settings.d.ts +7 -0
  158. package/.medusa/server/src/modules/shared-cart/settings.js +64 -0
  159. package/.medusa/server/src/providers/dpd/index.d.ts +2 -0
  160. package/.medusa/server/src/providers/dpd/index.js +3 -1
  161. package/.medusa/server/src/providers/dpd/statusdata-ftp.d.ts +16 -0
  162. package/.medusa/server/src/providers/dpd/statusdata-ftp.js +268 -0
  163. package/.medusa/server/src/providers/dpd/statusdata.d.ts +14 -0
  164. package/.medusa/server/src/providers/dpd/statusdata.js +161 -0
  165. package/.medusa/server/src/providers/mpl/client.d.ts +3 -1
  166. package/.medusa/server/src/providers/mpl/client.js +154 -2
  167. package/.medusa/server/src/providers/mpl/service.js +31 -20
  168. package/.medusa/server/src/providers/mpl/types.d.ts +25 -0
  169. package/.medusa/server/src/providers/mpl/types.js +1 -1
  170. package/.medusa/server/src/providers/packeta/index.d.ts +1 -0
  171. package/.medusa/server/src/providers/packeta/index.js +2 -1
  172. package/.medusa/server/src/providers/packeta/push-tracking.d.ts +8 -0
  173. package/.medusa/server/src/providers/packeta/push-tracking.js +96 -0
  174. package/.medusa/server/src/providers/packeta/service.js +22 -2
  175. package/.medusa/server/src/scripts/core-init.d.ts +1 -1
  176. package/.medusa/server/src/scripts/core-init.js +3 -2
  177. package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.d.ts +7 -0
  178. package/.medusa/server/src/subscribers/back-in-stock-inventory-changed.js +65 -0
  179. package/.medusa/server/src/workflows/link-migrated-customer.d.ts +8 -0
  180. package/.medusa/server/src/workflows/link-migrated-customer.js +17 -0
  181. package/README.md +1 -1
  182. package/package.json +30 -8
@@ -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,2 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
@@ -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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
@@ -0,0 +1,3 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function GET(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
3
+ export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ exports.POST = POST;
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
7
+ const native_migration_export_1 = require("../../../../core/native-migration-export");
8
+ async function GET(req, res) {
9
+ try {
10
+ const exported = await (0, native_migration_export_1.exportNativeMigrationCsv)(req.scope, "inventory");
11
+ res.setHeader("Cache-Control", "private, no-store, max-age=0");
12
+ res.setHeader("Content-Type", "text/csv; charset=utf-8");
13
+ res.setHeader("Content-Disposition", `attachment; filename="${safeFilename(exported.filename)}"`);
14
+ return res.send(exported.csv);
15
+ }
16
+ catch (error) {
17
+ return res.status(500).json({
18
+ message: error instanceof Error
19
+ ? error.message
20
+ : "A natív készletexport nem készíthető el.",
21
+ });
22
+ }
23
+ }
24
+ async function POST(req, res) {
25
+ const body = (req.body || {});
26
+ const rows = Array.isArray(body.rows) ? body.rows : [];
27
+ const dryRun = body.dry_run !== false;
28
+ const mode = body.mode === "skip" ? "skip" : "update";
29
+ if (!rows.length)
30
+ return res.status(400).json({ message: "Nincs importálható készletsor." });
31
+ if (rows.length > 10_000)
32
+ return res.status(400).json({ message: "Egy készletimport legfeljebb 10 000 sort tartalmazhat." });
33
+ const locationColumns = inventoryLocationColumns(rows[0]);
34
+ if (!locationColumns.length) {
35
+ return res.status(400).json({
36
+ message: "Nem található 'Location [Név] Stocked Quantity' oszlop. Használd a Medusa natív Inventory exportját.",
37
+ });
38
+ }
39
+ const itemIds = [...new Set(rows.map((row) => cell(row, "Item Id")).filter(Boolean))];
40
+ if (!itemIds.length)
41
+ return res.status(400).json({ message: "Az Item Id oszlop kötelező." });
42
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
43
+ const { data: inventoryItems } = await query.graph({
44
+ entity: "inventory_items",
45
+ fields: ["id", "location_levels.id", "location_levels.location_id", "location_levels.stocked_quantity"],
46
+ filters: { id: itemIds },
47
+ });
48
+ const itemMap = new Map(inventoryItems.map((item) => [String(item.id), item]));
49
+ const stockLocationService = req.scope.resolve(utils_1.Modules.STOCK_LOCATION);
50
+ const locations = await stockLocationService.listStockLocations({}, { select: ["id", "name"], take: 1000 });
51
+ const locationByName = new Map((locations || []).map((location) => [
52
+ String(location.name || "").trim().toLowerCase(),
53
+ String(location.id),
54
+ ]));
55
+ const create = [];
56
+ const update = [];
57
+ const errors = [];
58
+ let skipped = 0;
59
+ let total = 0;
60
+ // A native inventory export creates one row per linked product variant. If an
61
+ // inventory item is linked more than once, identical item+location quantities
62
+ // can therefore repeat. Collapse identical repeats; only conflicting repeats
63
+ // are considered invalid.
64
+ const seen = new Map();
65
+ for (let index = 0; index < rows.length; index++) {
66
+ const source = rows[index] || {};
67
+ const rowNumber = index + 2;
68
+ const itemId = cell(source, "Item Id");
69
+ if (!itemId) {
70
+ errors.push({ row: rowNumber, message: "Hiányzó Item Id." });
71
+ continue;
72
+ }
73
+ const item = itemMap.get(itemId);
74
+ if (!item) {
75
+ errors.push({ row: rowNumber, message: `Ismeretlen inventory item: ${itemId}` });
76
+ continue;
77
+ }
78
+ const existingLevels = new Map((item.location_levels || []).map((level) => [String(level.location_id), level]));
79
+ for (const column of locationColumns) {
80
+ const raw = cell(source, column.header);
81
+ if (!raw)
82
+ continue;
83
+ const quantity = Number(raw.replace(",", "."));
84
+ if (!Number.isFinite(quantity) || quantity < 0) {
85
+ errors.push({ row: rowNumber, message: `${column.header}: érvénytelen stocked quantity (${raw}).` });
86
+ continue;
87
+ }
88
+ const locationId = locationByName.get(column.locationName.toLowerCase());
89
+ if (!locationId) {
90
+ errors.push({ row: rowNumber, message: `Ismeretlen stock location: ${column.locationName}` });
91
+ continue;
92
+ }
93
+ const identity = `${itemId}:${locationId}`;
94
+ const previous = seen.get(identity);
95
+ if (previous !== undefined) {
96
+ if (previous === quantity)
97
+ continue;
98
+ errors.push({
99
+ row: rowNumber,
100
+ message: `Ellentmondó készlet ugyanahhoz az inventory itemhez és locationhöz (${column.locationName}): ${previous} / ${quantity}.`,
101
+ });
102
+ continue;
103
+ }
104
+ seen.set(identity, quantity);
105
+ total++;
106
+ const current = existingLevels.get(locationId);
107
+ if (current?.id) {
108
+ if (mode === "skip") {
109
+ skipped++;
110
+ continue;
111
+ }
112
+ update.push({
113
+ id: current.id,
114
+ inventory_item_id: itemId,
115
+ location_id: locationId,
116
+ stocked_quantity: quantity,
117
+ });
118
+ }
119
+ else {
120
+ create.push({
121
+ inventory_item_id: itemId,
122
+ location_id: locationId,
123
+ stocked_quantity: quantity,
124
+ });
125
+ }
126
+ }
127
+ }
128
+ if (!dryRun && (create.length || update.length)) {
129
+ for (let offset = 0; offset < Math.max(create.length, update.length); offset += 500) {
130
+ await (0, core_flows_1.batchInventoryItemLevelsWorkflow)(req.scope).run({
131
+ input: {
132
+ create: create.slice(offset, offset + 500),
133
+ update: update.slice(offset, offset + 500),
134
+ delete: [],
135
+ },
136
+ });
137
+ }
138
+ }
139
+ return res.json({
140
+ dry_run: dryRun,
141
+ mode,
142
+ total,
143
+ created: create.length,
144
+ updated: update.length,
145
+ skipped,
146
+ failed: errors.length,
147
+ errors: errors.slice(0, 200),
148
+ });
149
+ }
150
+ function inventoryLocationColumns(row) {
151
+ return Object.keys(row).flatMap((header) => {
152
+ const match = /^Location \[(.+)\] Stocked Quantity$/i.exec(header.trim());
153
+ return match ? [{ header, locationName: match[1].trim() }] : [];
154
+ });
155
+ }
156
+ function cell(row, wanted) {
157
+ const key = Object.keys(row).find((candidate) => candidate.trim().toLowerCase() === wanted.toLowerCase());
158
+ const value = key ? row[key] : undefined;
159
+ return value == null ? "" : String(value).trim();
160
+ }
161
+ function safeFilename(value) {
162
+ return value.replace(/[\r\n"\\/]+/g, "-") || "inventory.csv";
163
+ }
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtbWlncmF0aW9uL2ludmVudG9yeS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSxrQkFrQkM7QUFFRCxvQkEySUM7QUFqTEQscURBQThFO0FBQzlFLDREQUE4RTtBQUU5RSxzRkFBbUY7QUFlNUUsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELElBQUksQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxrREFBd0IsRUFBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFBO1FBQ3ZFLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLDhCQUE4QixDQUFDLENBQUE7UUFDOUQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUUseUJBQXlCLENBQUMsQ0FBQTtRQUN4RCxHQUFHLENBQUMsU0FBUyxDQUNYLHFCQUFxQixFQUNyQix5QkFBeUIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUM1RCxDQUFBO1FBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMvQixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsT0FBTyxFQUNMLEtBQUssWUFBWSxLQUFLO2dCQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU87Z0JBQ2YsQ0FBQyxDQUFDLDBDQUEwQztTQUNqRCxDQUFDLENBQUE7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNoRSxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FB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
@@ -0,0 +1,3 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function GET(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
3
+ export declare function POST(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;