@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.
- package/.medusa/server/src/admin/index.js +6361 -3789
- package/.medusa/server/src/admin/index.mjs +6361 -3789
- 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/core-carts/[id]/items/[itemId]/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/[itemId]/route.js +64 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/items/route.js +40 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/[code]/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/[code]/route.js +40 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/promotions/route.js +41 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/[id]/route.js +28 -0
- package/.medusa/server/src/api/admin/core-carts/customer/[id]/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core-carts/customer/[id]/route.js +34 -0
- package/.medusa/server/src/api/admin/core-carts/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/core-carts/route.js +69 -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/shared-cart/settings/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/shared-cart/settings/route.js +31 -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/middlewares.js +24 -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/core-carts/me/active/route.d.ts +2 -0
- package/.medusa/server/src/api/store/core-carts/me/active/route.js +54 -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/api/store/shared-carts/[token]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/shared-carts/[token]/route.js +52 -0
- package/.medusa/server/src/api/store/shared-carts/route.d.ts +13 -0
- package/.medusa/server/src/api/store/shared-carts/route.js +78 -0
- 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/admin-cart-management.d.ts +18 -0
- package/.medusa/server/src/core/admin-cart-management.js +102 -0
- package/.medusa/server/src/core/admin-cart-visibility.d.ts +94 -0
- package/.medusa/server/src/core/admin-cart-visibility.js +192 -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/cart-observability.d.ts +23 -0
- package/.medusa/server/src/core/cart-observability.js +54 -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-cart-resume.d.ts +21 -0
- package/.medusa/server/src/core/customer-cart-resume.js +72 -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/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 +137 -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/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/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/defaults.js +7 -1
- package/.medusa/server/src/modules/email-center/index.d.ts +2 -0
- package/.medusa/server/src/modules/email-center/index.js +3 -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 +1 -0
- 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/product-review/index.d.ts +14 -0
- 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/shared-cart/index.d.ts +21 -0
- package/.medusa/server/src/modules/shared-cart/index.js +13 -0
- package/.medusa/server/src/modules/shared-cart/migrations/Migration20261102010000.d.ts +5 -0
- package/.medusa/server/src/modules/shared-cart/migrations/Migration20261102010000.js +16 -0
- package/.medusa/server/src/modules/shared-cart/models/shared-cart.d.ts +10 -0
- package/.medusa/server/src/modules/shared-cart/models/shared-cart.js +17 -0
- package/.medusa/server/src/modules/shared-cart/service.d.ts +14 -0
- package/.medusa/server/src/modules/shared-cart/service.js +11 -0
- package/.medusa/server/src/modules/shared-cart/settings.d.ts +7 -0
- package/.medusa/server/src/modules/shared-cart/settings.js +64 -0
- package/.medusa/server/src/providers/dpd/index.d.ts +2 -0
- 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/mpl/client.d.ts +3 -1
- package/.medusa/server/src/providers/mpl/client.js +154 -2
- 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 +1 -0
- 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/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/README.md +1 -1
- package/package.json +30 -8
|
@@ -5,8 +5,7 @@ exports.applyCarrierWebhook = applyCarrierWebhook;
|
|
|
5
5
|
const node_crypto_1 = require("node:crypto");
|
|
6
6
|
const foxpost_1 = require("../../../providers/foxpost");
|
|
7
7
|
const gls_1 = require("../../../providers/gls");
|
|
8
|
-
const
|
|
9
|
-
const state_1 = require("../../../modules/integration-operation/state");
|
|
8
|
+
const tracking_1 = require("./tracking");
|
|
10
9
|
function verifyShippingWebhook(provided) {
|
|
11
10
|
const expected = process.env.SHIPPING_WEBHOOK_SECRET;
|
|
12
11
|
if (!expected)
|
|
@@ -40,143 +39,31 @@ async function applyCarrierWebhook(orderService, carrier, body, operationStore)
|
|
|
40
39
|
payload.StatusDate ??
|
|
41
40
|
nested(payload, "event", "timestamp"));
|
|
42
41
|
const eventId = text(payload.eventId ?? payload.event_id ?? payload.EventId);
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
.digest("hex");
|
|
46
|
-
const acquired = operationStore
|
|
47
|
-
? await (0, state_1.acquireOperation)(operationStore, {
|
|
48
|
-
provider: carrier,
|
|
49
|
-
operation_type: "status.webhook",
|
|
50
|
-
entity_type: "shipment",
|
|
51
|
-
entity_id: parcelId,
|
|
52
|
-
idempotency_key: `${carrier}:webhook:${fingerprint}`,
|
|
53
|
-
reference_data: {
|
|
54
|
-
replay_safe: true,
|
|
55
|
-
parcelId,
|
|
56
|
-
rawStatus,
|
|
57
|
-
eventTime: eventTime || null,
|
|
58
|
-
},
|
|
59
|
-
})
|
|
60
|
-
: null;
|
|
61
|
-
if (acquired && !acquired.acquired) {
|
|
62
|
-
return {
|
|
63
|
-
duplicate: true,
|
|
64
|
-
status: acquired.operation.reference_data?.status ?? rawStatus,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
let order;
|
|
68
|
-
if (operationStore) {
|
|
69
|
-
const [shipmentOperation] = await operationStore.listIntegrationOperations({
|
|
70
|
-
provider: carrier,
|
|
71
|
-
external_id: parcelId,
|
|
72
|
-
entity_type: "order",
|
|
73
|
-
status: "succeeded",
|
|
74
|
-
}, { take: 1, order: { updated_at: "DESC" } });
|
|
75
|
-
if (shipmentOperation?.entity_id) {
|
|
76
|
-
order = await orderService.retrieveOrder(shipmentOperation.entity_id);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
// Compatibility fallback for parcels created before durable operation records existed.
|
|
80
|
-
for (let skip = 0; !order && skip < 1000; skip += 200) {
|
|
81
|
-
const orders = await orderService.listOrders({}, { take: 200, skip, order: { created_at: "DESC" } });
|
|
82
|
-
order = orders.find((candidate) => matches(candidate, carrier, parcelId));
|
|
83
|
-
if (orders.length < 200)
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
if (!order) {
|
|
87
|
-
if (acquired && operationStore) {
|
|
88
|
-
await (0, state_1.operationFailed)(operationStore, acquired.operation, new Error("Carrier webhook order is not available yet"), false, parcelId, {
|
|
89
|
-
replay_safe: true,
|
|
90
|
-
parcelId,
|
|
91
|
-
rawStatus,
|
|
92
|
-
eventTime: eventTime || null,
|
|
93
|
-
retry_reason: "order_not_found",
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
const currentValue = order.metadata?.[carrier];
|
|
99
|
-
const current = currentValue && typeof currentValue === "object"
|
|
100
|
-
? currentValue
|
|
101
|
-
: {};
|
|
102
|
-
const currentTime = Date.parse(text(current.statusUpdatedAt));
|
|
103
|
-
const incomingTime = Date.parse(eventTime);
|
|
104
|
-
if (Number.isFinite(currentTime) &&
|
|
105
|
-
Number.isFinite(incomingTime) &&
|
|
106
|
-
incomingTime < currentTime) {
|
|
107
|
-
if (acquired && operationStore) {
|
|
108
|
-
await (0, state_1.operationSucceeded)(operationStore, acquired.operation, parcelId, {
|
|
109
|
-
replay_safe: true,
|
|
110
|
-
parcelId,
|
|
111
|
-
rawStatus,
|
|
112
|
-
eventTime,
|
|
113
|
-
status: current.status,
|
|
114
|
-
orderId: order.id,
|
|
115
|
-
stale: true,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
return { orderId: order.id, status: current.status, stale: true };
|
|
119
|
-
}
|
|
120
|
-
const shipment = carrier === "foxpost"
|
|
121
|
-
? {
|
|
122
|
-
...current,
|
|
123
|
-
status: (0, foxpost_1.mapFoxpostStatus)(rawStatus),
|
|
124
|
-
statusUpdatedAt: eventTime || new Date().toISOString(),
|
|
125
|
-
}
|
|
126
|
-
: {
|
|
127
|
-
...current,
|
|
128
|
-
status: (0, gls_1.mapGlsStatus)(rawStatus),
|
|
129
|
-
rawStatus,
|
|
130
|
-
statusDescription: text(payload.statusDescription ?? payload.StatusDescription) ||
|
|
131
|
-
current.statusDescription,
|
|
132
|
-
statusUpdatedAt: eventTime || new Date().toISOString(),
|
|
133
|
-
};
|
|
134
|
-
const response = carrier === "foxpost"
|
|
135
|
-
? { packageId: parcelId, status: shipment.status }
|
|
136
|
-
: { parcelNumber: parcelId, status: shipment.status, rawStatus };
|
|
137
|
-
const next = (0, operations_1.appendShippingOperation)({ ...(order.metadata ?? {}), [carrier]: shipment }, {
|
|
42
|
+
const statusText = text(payload.statusDescription ?? payload.StatusDescription);
|
|
43
|
+
const event = {
|
|
138
44
|
carrier,
|
|
139
|
-
|
|
140
|
-
status: "
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
45
|
+
shipmentIdentifiers: [parcelId],
|
|
46
|
+
status: carrier === "foxpost"
|
|
47
|
+
? canonicalFoxpostStatus((0, foxpost_1.mapFoxpostStatus)(rawStatus))
|
|
48
|
+
: (0, gls_1.mapGlsStatus)(rawStatus),
|
|
49
|
+
rawStatus,
|
|
50
|
+
statusText: statusText || null,
|
|
51
|
+
occurredAt: eventTime || null,
|
|
52
|
+
eventId: eventId || null,
|
|
53
|
+
source: "webhook",
|
|
54
|
+
};
|
|
55
|
+
return (0, tracking_1.applyNormalizedTrackingEvent)({
|
|
56
|
+
orderService,
|
|
57
|
+
event,
|
|
58
|
+
operationStore,
|
|
145
59
|
});
|
|
146
|
-
try {
|
|
147
|
-
await orderService.updateOrders([{ id: order.id, metadata: next.metadata }]);
|
|
148
|
-
if (acquired && operationStore) {
|
|
149
|
-
await (0, state_1.operationSucceeded)(operationStore, acquired.operation, parcelId, {
|
|
150
|
-
replay_safe: true,
|
|
151
|
-
parcelId,
|
|
152
|
-
rawStatus,
|
|
153
|
-
status: shipment.status,
|
|
154
|
-
orderId: order.id,
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
catch (error) {
|
|
159
|
-
if (acquired && operationStore) {
|
|
160
|
-
await (0, state_1.operationFailed)(operationStore, acquired.operation, error, false, parcelId, {
|
|
161
|
-
replay_safe: true,
|
|
162
|
-
parcelId,
|
|
163
|
-
rawStatus,
|
|
164
|
-
status: shipment.status,
|
|
165
|
-
orderId: order.id,
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
throw error;
|
|
169
|
-
}
|
|
170
|
-
return { orderId: order.id, status: shipment.status };
|
|
171
60
|
}
|
|
172
|
-
function
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
return
|
|
178
|
-
? [value.packageId, value.trackingNumber].some((candidate) => text(candidate) === parcelId)
|
|
179
|
-
: [value.parcelNumber, value.parcelId].some((candidate) => text(candidate) === parcelId);
|
|
61
|
+
function canonicalFoxpostStatus(status) {
|
|
62
|
+
if (status === "HANDED_OVER")
|
|
63
|
+
return "ACCEPTED";
|
|
64
|
+
if (status === "AT_LOCKER")
|
|
65
|
+
return "AT_PICKUP_POINT";
|
|
66
|
+
return status;
|
|
180
67
|
}
|
|
181
68
|
function nested(value, key, nestedKey) {
|
|
182
69
|
const child = value[key];
|
|
@@ -187,4 +74,4 @@ function nested(value, key, nestedKey) {
|
|
|
187
74
|
function text(value) {
|
|
188
75
|
return value == null ? "" : String(value).trim();
|
|
189
76
|
}
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZHVsZXMvc2hpcHBpbmcvd2ViaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFhQSxzREFPQztBQUVELGtEQTZEQztBQW5GRCw2Q0FBNkM7QUFDN0Msd0RBQTZEO0FBQzdELGdEQUFxRDtBQUVyRCx5Q0FJbUI7QUFLbkIsU0FBZ0IscUJBQXFCLENBQUMsUUFBaUI7SUFDckQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQTtJQUNwRCxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQzNCLE1BQU0sTUFBTSxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDM0QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM3QixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLElBQUEsNkJBQWUsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDdkQsQ0FBQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FDdkMsWUFBa0MsRUFDbEMsT0FBK0IsRUFDL0IsSUFBYSxFQUNiLGNBQTBDO0lBRTFDLE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRO1FBQzlDLENBQUMsQ0FBQyxJQUErQjtRQUNqQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBRU4sTUFBTSxRQUFRLEdBQUcsT0FBTyxLQUFLLFNBQVM7UUFDcEMsQ0FBQyxDQUFDLElBQUksQ0FDRixPQUFPLENBQUMsT0FBTztZQUNiLE9BQU8sQ0FB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
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import BackInStockService from "./service";
|
|
2
|
+
export declare const BACK_IN_STOCK_MODULE = "backInStock";
|
|
3
|
+
declare const _default: import("@medusajs/types").ModuleExports<typeof BackInStockService> & {
|
|
4
|
+
linkable: {
|
|
5
|
+
readonly backInStockSubscription: {
|
|
6
|
+
id: {
|
|
7
|
+
serviceName: "backInStock";
|
|
8
|
+
field: "backInStockSubscription";
|
|
9
|
+
linkable: "back_in_stock_subscription_id";
|
|
10
|
+
primaryKey: "id";
|
|
11
|
+
};
|
|
12
|
+
toJSON: () => {
|
|
13
|
+
serviceName: "backInStock";
|
|
14
|
+
field: "backInStockSubscription";
|
|
15
|
+
linkable: "back_in_stock_subscription_id";
|
|
16
|
+
primaryKey: "id";
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export default _default;
|
|
22
|
+
export { BackInStockService };
|
|
23
|
+
export { BACK_IN_STOCK_STATUSES } from "./models/back-in-stock-subscription";
|
|
@@ -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
|
+
exports.BACK_IN_STOCK_STATUSES = exports.BackInStockService = exports.BACK_IN_STOCK_MODULE = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const service_1 = __importDefault(require("./service"));
|
|
9
|
+
exports.BackInStockService = service_1.default;
|
|
10
|
+
exports.BACK_IN_STOCK_MODULE = "backInStock";
|
|
11
|
+
exports.default = (0, utils_1.Module)(exports.BACK_IN_STOCK_MODULE, {
|
|
12
|
+
service: service_1.default,
|
|
13
|
+
});
|
|
14
|
+
var back_in_stock_subscription_1 = require("./models/back-in-stock-subscription");
|
|
15
|
+
Object.defineProperty(exports, "BACK_IN_STOCK_STATUSES", { enumerable: true, get: function () { return back_in_stock_subscription_1.BACK_IN_STOCK_STATUSES; } });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9iYWNrLWluLXN0b2NrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQUFrRDtBQUNsRCx3REFBMEM7QUFRakMsNkJBUkYsaUJBQWtCLENBUUU7QUFOZCxRQUFBLG9CQUFvQixHQUFHLGFBQWEsQ0FBQTtBQUVqRCxrQkFBZSxJQUFBLGNBQU0sRUFBQyw0QkFBb0IsRUFBRTtJQUMxQyxPQUFPLEVBQUUsaUJBQWtCO0NBQzVCLENBQUMsQ0FBQTtBQUdGLGtGQUE0RTtBQUFuRSxvSUFBQSxzQkFBc0IsT0FBQSJ9
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20261101202000 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20261101202000 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "back_in_stock_subscription" ("id" text not null, "email" text not null, "product_id" text not null, "variant_id" text not null, "locale" text not null default 'hu-HU', "status" text check ("status" in ('active','notified','cancelled')) not null default 'active', "notification_cycle" int not null default 1, "notified_at" timestamptz null, "last_error" text null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "back_in_stock_subscription_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`create unique index if not exists "IDX_back_in_stock_variant_email" on "back_in_stock_subscription" ("variant_id", "email") where deleted_at is null;`);
|
|
9
|
+
this.addSql(`create index if not exists "IDX_back_in_stock_variant_status_created" on "back_in_stock_subscription" ("variant_id", "status", "created_at") where deleted_at is null;`);
|
|
10
|
+
this.addSql(`create index if not exists "IDX_back_in_stock_product_status_created" on "back_in_stock_subscription" ("product_id", "status", "created_at") where deleted_at is null;`);
|
|
11
|
+
this.addSql(`create index if not exists "IDX_back_in_stock_status_created" on "back_in_stock_subscription" ("status", "created_at") where deleted_at is null;`);
|
|
12
|
+
}
|
|
13
|
+
async down() {
|
|
14
|
+
this.addSql(`drop table if exists "back_in_stock_subscription" cascade;`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.Migration20261101202000 = Migration20261101202000;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjExMDEyMDIwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9iYWNrLWluLXN0b2NrL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNjExMDEyMDIwMDAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQW9FO0FBRXBFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDcEQsS0FBSyxDQUFDLEVBQUU7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLDRrQkFBNGtCLENBQUMsQ0FBQTtRQUN6bEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1SkFBdUosQ0FBQyxDQUFBO1FBQ3BLLElBQUksQ0FBQyxNQUFNLENBQUMsd0tBQXdLLENBQUMsQ0FBQTtRQUNyTCxJQUFJLENBQUMsTUFBTSxDQUFDLHdLQUF3SyxDQUFDLENBQUE7UUFDckwsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrSkFBa0osQ0FBQyxDQUFBO0lBQ2pLLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsNERBQTRELENBQUMsQ0FBQTtJQUMzRSxDQUFDO0NBQ0Y7QUFaRCwwREFZQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const BACK_IN_STOCK_STATUSES: readonly ["active", "notified", "cancelled"];
|
|
2
|
+
declare const BackInStockSubscription: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
email: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
+
variant_id: import("@medusajs/framework/utils").TextProperty;
|
|
7
|
+
locale: import("@medusajs/framework/utils").TextProperty;
|
|
8
|
+
status: import("@medusajs/framework/utils").EnumProperty<["active", "notified", "cancelled"]>;
|
|
9
|
+
notification_cycle: import("@medusajs/framework/utils").NumberProperty;
|
|
10
|
+
notified_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
11
|
+
last_error: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
12
|
+
}>, "back_in_stock_subscription">;
|
|
13
|
+
export default BackInStockSubscription;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BACK_IN_STOCK_STATUSES = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
exports.BACK_IN_STOCK_STATUSES = ["active", "notified", "cancelled"];
|
|
6
|
+
const BackInStockSubscription = utils_1.model.define("back_in_stock_subscription", {
|
|
7
|
+
id: utils_1.model.id().primaryKey(),
|
|
8
|
+
email: utils_1.model.text(),
|
|
9
|
+
product_id: utils_1.model.text(),
|
|
10
|
+
variant_id: utils_1.model.text(),
|
|
11
|
+
locale: utils_1.model.text().default("hu-HU"),
|
|
12
|
+
status: utils_1.model.enum(["active", "notified", "cancelled"]).default("active"),
|
|
13
|
+
notification_cycle: utils_1.model.number().default(1),
|
|
14
|
+
notified_at: utils_1.model.dateTime().nullable(),
|
|
15
|
+
last_error: utils_1.model.text().nullable(),
|
|
16
|
+
}).indexes([
|
|
17
|
+
{ on: ["variant_id", "email"], unique: true },
|
|
18
|
+
{ on: ["variant_id", "status", "created_at"] },
|
|
19
|
+
{ on: ["product_id", "status", "created_at"] },
|
|
20
|
+
{ on: ["status", "created_at"] },
|
|
21
|
+
]);
|
|
22
|
+
exports.default = BackInStockSubscription;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay1pbi1zdG9jay1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9iYWNrLWluLXN0b2NrL21vZGVscy9iYWNrLWluLXN0b2NrLXN1YnNjcmlwdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBaUQ7QUFFcEMsUUFBQSxzQkFBc0IsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFVLENBQUE7QUFFbEYsTUFBTSx1QkFBdUIsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLDRCQUE0QixFQUFFO0lBQ3pFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLEtBQUssRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ25CLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3hCLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3hCLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0lBQ3pFLGtCQUFrQixFQUFFLGFBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzdDLFdBQVcsRUFBRSxhQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3hDLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3BDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDVCxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0lBQzdDLEVBQUUsRUFBRSxFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsRUFBRTtJQUM5QyxFQUFFLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUU7SUFDOUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUU7Q0FDakMsQ0FBQyxDQUFBO0FBRUYsa0JBQWUsdUJBQXVCLENBQUEifQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare const BackInStockBaseService: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
2
|
+
readonly BackInStockSubscription: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
email: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
+
variant_id: import("@medusajs/framework/utils").TextProperty;
|
|
7
|
+
locale: import("@medusajs/framework/utils").TextProperty;
|
|
8
|
+
status: import("@medusajs/framework/utils").EnumProperty<["active", "notified", "cancelled"]>;
|
|
9
|
+
notification_cycle: import("@medusajs/framework/utils").NumberProperty;
|
|
10
|
+
notified_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
|
|
11
|
+
last_error: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
12
|
+
}>, "back_in_stock_subscription">;
|
|
13
|
+
}>>;
|
|
14
|
+
type BackInStockBaseServiceInstance = InstanceType<typeof BackInStockBaseService>;
|
|
15
|
+
export default class BackInStockService extends BackInStockBaseService {
|
|
16
|
+
createBackInStockSubscriptions: BackInStockBaseServiceInstance["createBackInStockSubscriptions"];
|
|
17
|
+
updateBackInStockSubscriptions: BackInStockBaseServiceInstance["updateBackInStockSubscriptions"];
|
|
18
|
+
retrieveBackInStockSubscription: BackInStockBaseServiceInstance["retrieveBackInStockSubscription"];
|
|
19
|
+
listBackInStockSubscriptions: BackInStockBaseServiceInstance["listBackInStockSubscriptions"];
|
|
20
|
+
listAndCountBackInStockSubscriptions: BackInStockBaseServiceInstance["listAndCountBackInStockSubscriptions"];
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
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 back_in_stock_subscription_1 = __importDefault(require("./models/back-in-stock-subscription"));
|
|
8
|
+
const BackInStockBaseService = (0, utils_1.MedusaService)({ BackInStockSubscription: back_in_stock_subscription_1.default });
|
|
9
|
+
class BackInStockService extends BackInStockBaseService {
|
|
10
|
+
}
|
|
11
|
+
exports.default = BackInStockService;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2JhY2staW4tc3RvY2svc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFEQUF5RDtBQUN6RCxxR0FBeUU7QUFFekUsTUFBTSxzQkFBc0IsR0FBRyxJQUFBLHFCQUFhLEVBQUMsRUFBRSx1QkFBdUIsRUFBdkIsb0NBQXVCLEVBQUUsQ0FBQyxDQUFBO0FBR3pFLE1BQXFCLGtCQUFtQixTQUFRLHNCQUFzQjtDQU1yRTtBQU5ELHFDQU1DIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const defaults_1 = require("./defaults");
|
|
4
|
+
const templates = [
|
|
5
|
+
{
|
|
6
|
+
key: "cart.abandoned",
|
|
7
|
+
locale: "hu-HU",
|
|
8
|
+
name: "Elhagyott kosár",
|
|
9
|
+
subject: "A kosarad még vár rád – {{store_name}}",
|
|
10
|
+
html: "<h1>A kosarad még vár rád</h1><p>Úgy látjuk, maradt néhány termék a kosaradban. Innen folytathatod a vásárlást: {{recovery_url}}</p><p>{{coupon_message}}</p>",
|
|
11
|
+
text: "A kosarad még vár rád\n\nÚgy látjuk, maradt néhány termék a kosaradban. Innen folytathatod a vásárlást: {{recovery_url}}\n\n{{coupon_message}}",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
key: "cart.abandoned",
|
|
15
|
+
locale: "en-US",
|
|
16
|
+
name: "Abandoned cart",
|
|
17
|
+
subject: "Your cart is still waiting – {{store_name}}",
|
|
18
|
+
html: "<h1>Your cart is still waiting</h1><p>It looks like you left some products in your cart. Continue your purchase here: {{recovery_url}}</p><p>{{coupon_message}}</p>",
|
|
19
|
+
text: "Your cart is still waiting\n\nIt looks like you left some products in your cart. Continue your purchase here: {{recovery_url}}\n\n{{coupon_message}}",
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
for (const template of templates) {
|
|
23
|
+
if (!defaults_1.DEFAULT_EMAIL_TEMPLATES.some((item) => item.key === template.key && item.locale === template.locale)) {
|
|
24
|
+
defaults_1.DEFAULT_EMAIL_TEMPLATES.push(template);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJhbmRvbmVkLWNhcnQtcmVnaXN0cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvZW1haWwtY2VudGVyL2FiYW5kb25lZC1jYXJ0LXJlZ2lzdHJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUErRTtBQUUvRSxNQUFNLFNBQVMsR0FBMkI7SUFDeEM7UUFDRSxHQUFHLEVBQUUsZ0JBQWdCO1FBQ3JCLE1BQU0sRUFBRSxPQUFPO1FBQ2YsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixPQUFPLEVBQUUsd0NBQXdDO1FBQ2pELElBQUksRUFBRSwrSkFBK0o7UUFDckssSUFBSSxFQUFFLGdKQUFnSjtLQUN2SjtJQUNEO1FBQ0UsR0FBRyxFQUFFLGdCQUFnQjtRQUNyQixNQUFNLEVBQUUsT0FBTztRQUNmLElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsT0FBTyxFQUFFLDZDQUE2QztRQUN0RCxJQUFJLEVBQUUscUtBQXFLO1FBQzNLLElBQUksRUFBRSxzSkFBc0o7S0FDN0o7Q0FDRixDQUFBO0FBRUQsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUMsa0NBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMxRyxrQ0FBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDeEMsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const defaults_1 = require("./defaults");
|
|
4
|
+
const templates = [
|
|
5
|
+
{
|
|
6
|
+
key: "product.back_in_stock",
|
|
7
|
+
locale: "hu-HU",
|
|
8
|
+
name: "Készletértesítő",
|
|
9
|
+
subject: "Újra elérhető: {{product_name}} – {{store_name}}",
|
|
10
|
+
html: "<h1>Újra elérhető</h1><p>A(z) {{product_name}} {{variant_name}} ismét rendelhető.</p><p><a href=\"{{product_url}}\">Termék megtekintése</a></p>",
|
|
11
|
+
text: "Újra elérhető\n\nA(z) {{product_name}} {{variant_name}} ismét rendelhető.\n\n{{product_url}}",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
key: "product.back_in_stock",
|
|
15
|
+
locale: "en-US",
|
|
16
|
+
name: "Back in stock",
|
|
17
|
+
subject: "Back in stock: {{product_name}} – {{store_name}}",
|
|
18
|
+
html: "<h1>Back in stock</h1><p>{{product_name}} {{variant_name}} is available again.</p><p><a href=\"{{product_url}}\">View product</a></p>",
|
|
19
|
+
text: "Back in stock\n\n{{product_name}} {{variant_name}} is available again.\n\n{{product_url}}",
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
for (const template of templates) {
|
|
23
|
+
if (!defaults_1.DEFAULT_EMAIL_TEMPLATES.some((item) => item.key === template.key && item.locale === template.locale)) {
|
|
24
|
+
defaults_1.DEFAULT_EMAIL_TEMPLATES.push(template);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFjay1pbi1zdG9jay1yZWdpc3RyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9lbWFpbC1jZW50ZXIvYmFjay1pbi1zdG9jay1yZWdpc3RyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBK0U7QUFFL0UsTUFBTSxTQUFTLEdBQTJCO0lBQ3hDO1FBQ0UsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixNQUFNLEVBQUUsT0FBTztRQUNmLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsT0FBTyxFQUFFLGtEQUFrRDtRQUMzRCxJQUFJLEVBQUUsaUpBQWlKO1FBQ3ZKLElBQUksRUFBRSw4RkFBOEY7S0FDckc7SUFDRDtRQUNFLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsTUFBTSxFQUFFLE9BQU87UUFDZixJQUFJLEVBQUUsZUFBZTtRQUNyQixPQUFPLEVBQUUsa0RBQWtEO1FBQzNELElBQUksRUFBRSx1SUFBdUk7UUFDN0ksSUFBSSxFQUFFLDJGQUEyRjtLQUNsRztDQUNGLENBQUE7QUFFRCxLQUFLLE1BQU0sUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO0lBQ2pDLElBQUksQ0FBQyxrQ0FBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFHLGtDQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -7,6 +7,12 @@ const en = (key, name, subject, body) => ({ key, locale: "en-US", name, subject,
|
|
|
7
7
|
exports.DEFAULT_EMAIL_TEMPLATES = [
|
|
8
8
|
hu("customer.registered", "Regisztráció", "Sikeres regisztráció – {{store_name}}", "Kedves {{first_name}}! A fiókod elkészült."),
|
|
9
9
|
en("customer.registered", "Registration", "Welcome to {{store_name}}", "Hi {{first_name}}! Your account is ready."),
|
|
10
|
+
hu("customer.migration_activation", "Migrált fiók aktiválása", "Aktiváld a vásárlói fiókodat – {{store_name}}", "Kedves {{first_name}}! Megújult a webshopunk, a korábbi vásárlói fiókodat átköltöztettük. Itt tudsz új jelszót beállítani és aktiválni a fiókodat: {{activation_url}} A sikeres aktiválás után saját, egyszer használható kedvezménykódot kapsz."),
|
|
11
|
+
en("customer.migration_activation", "Migrated account activation", "Activate your customer account – {{store_name}}", "Hi {{first_name}}! We moved your existing customer account to our new store. Set a new password and activate it here: {{activation_url}} After successful activation, you will receive your own single-use discount code."),
|
|
12
|
+
hu("customer.review_request", "Értékeléskérés", "Mit gondolsz a rendelésedről? – {{store_name}}", "Kedves {{first_name}}! Kíváncsiak vagyunk a véleményedre. A megvásárolt termékeket itt értékelheted: {{review_url}} Ha több terméket vásároltál, az oldalon kiválaszthatod, melyiket szeretnéd értékelni. Publikált értékelés után a beállított kedvezményt megkapod a következő rendelésedhez."),
|
|
13
|
+
en("customer.review_request", "Review request", "How was your order? – {{store_name}}", "Hi {{first_name}}! We would love your feedback. Review the products from your order here: {{review_url}} If you bought multiple products, you can choose which one to review. Once your review is published, you will receive the configured discount for your next order."),
|
|
14
|
+
hu("customer.review_reward", "Értékelés jutalom", "Köszönjük az értékelésed – {{store_name}}", "Kedves {{first_name}}! Köszönjük, hogy megosztottad a véleményed. Az értékelésed publikálva lett. A saját, egyszer használható kedvezménykódod: {{coupon_code}}"),
|
|
15
|
+
en("customer.review_reward", "Review reward", "Thank you for your review – {{store_name}}", "Hi {{first_name}}! Thank you for sharing your feedback. Your review has been published. Your personal single-use discount code is: {{coupon_code}}"),
|
|
10
16
|
hu("customer.email_verification", "E-mail megerősítés", "E-mail-cím megerősítése – {{store_name}}", "A megerősítő kódod: {{verification_code}}"),
|
|
11
17
|
en("customer.email_verification", "Email verification", "Verify your email – {{store_name}}", "Your verification code: {{verification_code}}"),
|
|
12
18
|
hu("customer.password_reset", "Jelszó visszaállítás", "Jelszó visszaállítása – {{store_name}}", "Új jelszó beállítása: {{reset_url}}"),
|
|
@@ -46,4 +52,4 @@ function defaultEmailTemplate(key, locale) {
|
|
|
46
52
|
|| exports.DEFAULT_EMAIL_TEMPLATES.find((item) => item.key === key)
|
|
47
53
|
|| null;
|
|
48
54
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9lbWFpbC1jZW50ZXIvZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdURBLG9EQUtDO0FBbkRELE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBVyxFQUFFLElBQVksRUFBRSxPQUFlLEVBQUUsSUFBWSxFQUF3QixFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sT0FBTyxXQUFXLElBQUksTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDbE4sTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFXLEVBQUUsSUFBWSxFQUFFLE9BQWUsRUFBRSxJQUFZLEVBQXdCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxPQUFPLFdBQVcsSUFBSSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsT0FBTyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUVyTSxRQUFBLHVCQUF1QixHQUEyQjtJQUM3RCxFQUFFLENBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFFLHVDQUF1QyxFQUFFLDRDQUE0QyxDQUFDO0lBQ2hJLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsMkJBQTJCLEVBQUUsMkNBQTJDLENBQUM7SUFDbkgsRUFBRSxDQUFDLCtCQUErQixFQUFFLHlCQUF5QixFQUFFLCtDQUErQyxFQUFFLGtQQUFrUCxDQUFDO0lBQ25XLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSw2QkFBNkIsRUFBRSxpREFBaUQsRUFBRSwyTkFBMk4sQ0FBQztJQUNsVixFQUFFLENBQUMs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
|
|
@@ -7,6 +7,8 @@ exports.dispatchDueCampaigns = exports.refreshCampaignStats = exports.processCam
|
|
|
7
7
|
const utils_1 = require("@medusajs/framework/utils");
|
|
8
8
|
const service_1 = __importDefault(require("./service"));
|
|
9
9
|
const constants_1 = require("./constants");
|
|
10
|
+
require("./abandoned-cart-registration");
|
|
11
|
+
require("./back-in-stock-registration");
|
|
10
12
|
exports.default = (0, utils_1.Module)(constants_1.EMAIL_CENTER_MODULE, { service: service_1.default });
|
|
11
13
|
var constants_2 = require("./constants");
|
|
12
14
|
Object.defineProperty(exports, "EMAIL_CENTER_MODULE", { enumerable: true, get: function () { return constants_2.EMAIL_CENTER_MODULE; } });
|
|
@@ -39,4 +41,4 @@ Object.defineProperty(exports, "prepareCampaign", { enumerable: true, get: funct
|
|
|
39
41
|
Object.defineProperty(exports, "processCampaignBatch", { enumerable: true, get: function () { return campaign_1.processCampaignBatch; } });
|
|
40
42
|
Object.defineProperty(exports, "refreshCampaignStats", { enumerable: true, get: function () { return campaign_1.refreshCampaignStats; } });
|
|
41
43
|
Object.defineProperty(exports, "dispatchDueCampaigns", { enumerable: true, get: function () { return campaign_1.dispatchDueCampaigns; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9lbWFpbC1jZW50ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscURBQWtEO0FBQ2xELHdEQUEwQztBQUMxQywyQ0FBaUQ7QUFDakQseUNBQXNDO0FBQ3RDLHdDQUFxQztBQUVyQyxrQkFBZSxJQUFBLGNBQU0sRUFBQywrQkFBbUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBa0IsRUFBRSxDQUFDLENBQUE7QUFDM0UseUNBQWlEO0FBQXhDLGdIQUFBLG1CQUFtQixPQUFBO0FBQzVCLHFDQUF5RDtBQUFoRCw4SEFBQSxPQUFPLE9BQXNCO0FBQ3RDLDBEQUFpRTtBQUF4RCx5SEFBQSx1QkFBdUIsT0FBQTtBQUNoQywwREFBaUU7QUFBeEQseUhBQUEsdUJBQXVCLE9BQUE7QUFDaEMsdUNBQTBFO0FBQWpFLG1IQUFBLHVCQUF1QixPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUE7QUFDdEQsbUNBQTBKO0FBQWpKLDZHQUFBLG1CQUFtQixPQUFBO0FBQUUsOEdBQUEsb0JBQW9CLE9BQUE7QUFBRSx5R0FBQSxlQUFlLE9BQUE7QUFBRSx3R0FBQSxjQUFjLE9BQUE7QUFBRSxpSEFBQSx1QkFBdUIsT0FBQTtBQUFFLG9IQUFBLDBCQUEwQixPQUFBO0FBQ3hJLHVDQUFzSTtBQUE3SCxvSEFBQSx3QkFBd0IsT0FBQTtBQUFFLG9IQUFBLHdCQUF3QixPQUFBO0FBQUUsK0dBQUEsbUJBQW1CLE9BQUE7QUFBRSwyR0FBQSxlQUFlLE9BQUE7QUFBRSwyR0FBQSxlQUFlLE9BQUE7QUFDbEgsK0JBQXlDO0FBQWhDLHdHQUFBLGdCQUFnQixPQUFBO0FBQ3pCLHVDQUE4RztBQUFyRywyR0FBQSxlQUFlLE9BQUE7QUFBRSxnSEFBQSxvQkFBb0IsT0FBQTtBQUFFLGdIQUFBLG9CQUFvQixPQUFBO0FBQUUsZ0hBQUEsb0JBQW9CLE9BQUEifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const registry_1 = require("./registry");
|
|
4
|
+
const bool = (name, label, help) => ({ name, label, type: "boolean", help });
|
|
5
|
+
const number = (name, label, help) => ({ name, label, type: "number", help });
|
|
6
|
+
const text = (name, label, help) => ({ name, label, type: "text", help });
|
|
7
|
+
const select = (name, label, options) => ({ name, label, type: "select", options });
|
|
8
|
+
if (!registry_1.INTEGRATION_DEFINITIONS.some((item) => item.key === "abandoned-cart")) {
|
|
9
|
+
const definition = {
|
|
10
|
+
key: "abandoned-cart",
|
|
11
|
+
label: "Elhagyott kosár",
|
|
12
|
+
category: "marketing",
|
|
13
|
+
description: "Automatikus kosár-visszahozó e-mail a natív Medusa cart, a Newsletter hozzájárulás, az Email Center és opcionálisan a Medusa Promotion Module használatával.",
|
|
14
|
+
enabledEnv: "ABANDONED_CART_ENABLED",
|
|
15
|
+
restartRequired: false,
|
|
16
|
+
fields: [
|
|
17
|
+
number("ABANDONED_CART_DELAY_HOURS", "Kiküldési késleltetés (óra)", "Ennyi inaktivitás után minősül a kosár elhagyottnak. Alapérték: 24 óra."),
|
|
18
|
+
number("ABANDONED_CART_RECOVERY_TTL_HOURS", "Visszaállító link érvényessége (óra)", "Alapérték: 168 óra (7 nap)."),
|
|
19
|
+
bool("ABANDONED_CART_COUPON_ENABLED", "Automatikus kupon", "Bekapcsolva a Core egyszer használható Medusa promóciós kódot készít a recovery e-mailhez."),
|
|
20
|
+
select("ABANDONED_CART_COUPON_TYPE", "Kupon típusa", [
|
|
21
|
+
{ label: "Százalékos", value: "percentage" },
|
|
22
|
+
{ label: "Fix összeg", value: "fixed" },
|
|
23
|
+
]),
|
|
24
|
+
number("ABANDONED_CART_COUPON_VALUE", "Kupon értéke", "Százalékos kedvezménynél 1–100, fix kedvezménynél pénzösszeg."),
|
|
25
|
+
text("ABANDONED_CART_COUPON_CURRENCY", "Fix kupon pénzneme", "Hárombetűs pénznem, például HUF. Csak fix összegű kuponnál használatos."),
|
|
26
|
+
],
|
|
27
|
+
};
|
|
28
|
+
registry_1.INTEGRATION_DEFINITIONS.push(definition);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJhbmRvbmVkLWNhcnQtcmVnaXN0cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24tc2V0dGluZ3MvYWJhbmRvbmVkLWNhcnQtcmVnaXN0cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBSW1CO0FBRW5CLE1BQU0sSUFBSSxHQUFHLENBQ1gsSUFBWSxFQUNaLEtBQWEsRUFDYixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUUvRCxNQUFNLE1BQU0sR0FBRyxDQUNiLElBQVksRUFDWixLQUFhLEVBQ2IsSUFBYSxFQUNLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFFOUQsTUFBTSxJQUFJLEdBQUcsQ0FDWCxJQUFZLEVBQ1osS0FBYSxFQUNiLElBQWEsRUFDSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBRTVELE1BQU0sTUFBTSxHQUFHLENBQ2IsSUFBWSxFQUNaLEtBQWEsRUFDYixPQUFnRCxFQUM5QixFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO0FBRWpFLElBQUksQ0FBQyxrQ0FBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssZ0JBQWdCLENBQUMsRUFBRSxDQUFDO0lBQzNFLE1BQU0sVUFBVSxHQUEwQjtRQUN4QyxHQUFHLEVBQUUsZ0JBQWdCO1FBQ3JCLEtBQUssRUFBRSxpQkFBaUI7UUFDeEIsUUFBUSxFQUFFLFdBQVc7UUFDckIsV0FBVyxFQUNULDhKQUE4SjtRQUNoSyxVQUFVLEVBQUUsd0JBQXdCO1FBQ3BDLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLE1BQU0sRUFBRTtZQUNOLE1BQU0sQ0FDSiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLHlFQUF5RSxDQUMxRTtZQUNELE1BQU0sQ0FDSixtQ0FBbUMsRUFDbkMsc0NBQXNDLEVBQ3RDLDZCQUE2QixDQUM5QjtZQUNELElBQUksQ0FDRiwrQkFBK0IsRUFDL0IsbUJBQW1CLEVBQ25CLDRGQUE0RixDQUM3RjtZQUNELE1BQU0sQ0FBQyw0QkFBNEIsRUFBRSxjQUFjLEVBQUU7Z0JBQ25ELEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQUM1QyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUN4QyxDQUFDO1lBQ0YsTUFBTSxDQUNKLDZCQUE2QixFQUM3QixjQUFjLEVBQ2QsK0RBQStELENBQ2hFO1lBQ0QsSUFBSSxDQUNGLGdDQUFnQyxFQUNoQyxvQkFBb0IsRUFDcEIseUVBQXlFLENBQzFFO1NBQ0Y7S0FDRixDQUFBO0lBRUQsa0NBQXVCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBQzFDLENBQUMifQ==
|
|
@@ -2,6 +2,7 @@ import IntegrationSettingsService from "./service";
|
|
|
2
2
|
import "./google-merchant-registration";
|
|
3
3
|
import "./arukereso-registration";
|
|
4
4
|
import "./storefront-public-registration";
|
|
5
|
+
import "./abandoned-cart-registration";
|
|
5
6
|
export declare const INTEGRATION_SETTINGS_MODULE = "integrationSettings";
|
|
6
7
|
declare const _default: import("@medusajs/types").ModuleExports<typeof IntegrationSettingsService> & {
|
|
7
8
|
linkable: {
|
|
@@ -24,6 +24,7 @@ exports.IntegrationSettingsService = service_1.default;
|
|
|
24
24
|
require("./google-merchant-registration");
|
|
25
25
|
require("./arukereso-registration");
|
|
26
26
|
require("./storefront-public-registration");
|
|
27
|
+
require("./abandoned-cart-registration");
|
|
27
28
|
exports.INTEGRATION_SETTINGS_MODULE = "integrationSettings";
|
|
28
29
|
exports.default = (0, utils_1.Module)(exports.INTEGRATION_SETTINGS_MODULE, {
|
|
29
30
|
service: service_1.default,
|
|
@@ -33,4 +34,4 @@ __exportStar(require("./registry"), exports);
|
|
|
33
34
|
__exportStar(require("./crypto"), exports);
|
|
34
35
|
__exportStar(require("./runtime-snapshot"), exports);
|
|
35
36
|
__exportStar(require("./manager"), exports);
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9pbnRlZ3JhdGlvbi1zZXR0aW5ncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHFEQUFrRDtBQUNsRCx3REFBa0Q7QUFZekMscUNBWkYsaUJBQTBCLENBWUU7QUFYbkMsMENBQXVDO0FBQ3ZDLG9DQUFpQztBQUNqQyw0Q0FBeUM7QUFDekMseUNBQXNDO0FBRXpCLFFBQUEsMkJBQTJCLEdBQUcscUJBQXFCLENBQUE7QUFFaEUsa0JBQWUsSUFBQSxjQUFNLEVBQUMsbUNBQTJCLEVBQUU7SUFDakQsT0FBTyxFQUFFLGlCQUEwQjtDQUNwQyxDQUFDLENBQUE7QUFHRiwwQ0FBdUI7QUFDdkIsNkNBQTBCO0FBQzFCLDJDQUF3QjtBQUN4QixxREFBa0M7QUFDbEMsNENBQXlCIn0=
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const registry_1 = require("./registry");
|
|
4
4
|
const text = (name, label, required = false, help) => ({ name, label, type: "text", required, help });
|
|
5
|
+
const bool = (name, label, help) => ({ name, label, type: "boolean", help });
|
|
5
6
|
const secret = (name, label, required = false, help) => ({ name, label, type: "secret", required, help });
|
|
6
7
|
const definitions = [
|
|
7
8
|
{
|
|
@@ -28,6 +29,19 @@ const definitions = [
|
|
|
28
29
|
text("GTM_CONTAINER_ID", "Container ID", true, "Publikus Google Tag Manager container azonosító, például GTM-XXXXXXX. A container tagekhez állíts be megfelelő consent checkeket."),
|
|
29
30
|
],
|
|
30
31
|
},
|
|
32
|
+
{
|
|
33
|
+
key: "google-ads",
|
|
34
|
+
label: "Google Ads",
|
|
35
|
+
category: "marketing",
|
|
36
|
+
description: "Google Ads vásárlási konverzióméréshez szükséges publikus tag ID és conversion label. A storefront a sikeres rendeléskor transaction ID-val, rendelési értékkel és devizával küldi a conversion eseményt.",
|
|
37
|
+
enabledEnv: "GOOGLE_ADS_ENABLED",
|
|
38
|
+
restartRequired: false,
|
|
39
|
+
fields: [
|
|
40
|
+
text("GOOGLE_ADS_CONVERSION_ID", "Conversion ID / Google tag ID", true, "Google Ads tag ID, például AW-123456789. A Google Ads konverziós művelet Tag setup részéből másolható."),
|
|
41
|
+
text("GOOGLE_ADS_PURCHASE_CONVERSION_LABEL", "Purchase conversion label", true, "A vásárlás konverziós művelet Conversion Label értéke. A storefront ebből állítja össze az AW-ID/LABEL send_to értéket."),
|
|
42
|
+
bool("GOOGLE_ADS_REMARKETING_ENABLED", "Remarketing engedélyezése", "Bekapcsolva a storefront a Google Ads taget remarketing célra is betöltheti, kizárólag megfelelő marketing consent után."),
|
|
43
|
+
],
|
|
44
|
+
},
|
|
31
45
|
{
|
|
32
46
|
key: "google-search-console",
|
|
33
47
|
label: "Google Search Console",
|
|
@@ -45,4 +59,4 @@ for (const definition of definitions) {
|
|
|
45
59
|
registry_1.INTEGRATION_DEFINITIONS.push(definition);
|
|
46
60
|
}
|
|
47
61
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVmcm9udC1wdWJsaWMtcmVnaXN0cmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvaW50ZWdyYXRpb24tc2V0dGluZ3Mvc3RvcmVmcm9udC1wdWJsaWMtcmVnaXN0cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBSW1CO0FBRW5CLE1BQU0sSUFBSSxHQUFHLENBQ1gsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFRLEdBQUcsS0FBSyxFQUNoQixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFFdEUsTUFBTSxJQUFJLEdBQUcsQ0FDWCxJQUFZLEVBQ1osS0FBYSxFQUNiLElBQWEsRUFDSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBRS9ELE1BQU0sTUFBTSxHQUFHLENBQ2IsSUFBWSxFQUNaLEtBQWEsRUFDYixRQUFRLEdBQUcsS0FBSyxFQUNoQixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7QUFFeEUsTUFBTSxXQUFXLEdBQTRCO0lBQzNDO1FBQ0UsR0FBRyxFQUFFLGtCQUFrQjtRQUN2QixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxtTEFBbUw7UUFDckwsVUFBVSxFQUFFLGFBQWE7UUFDekIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsTUFBTSxFQUFFO1lBQ04sSUFBSSxDQUNGLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsSUFBSSxFQUNKLHdGQUF3RixDQUN6RjtZQUNELElBQUksQ0FDRixpQkFBaUIsRUFDakIsaUNBQWlDLEVBQ2pDLEtBQUssRUFDTCxxSEFBcUgsQ0FDdEg7WUFDRCxNQUFNLENBQ0osMEJBQTBCLEVBQzFCLDBDQUEwQyxFQUMxQyxLQUFLLEVBQ0wsbU5BQW1OLENBQ3BOO1NBQ0Y7S0FDRjtJQUNEO1FBQ0UsR0FBRyxFQUFFLG9CQUFvQjtRQUN6QixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxpSkFBaUo7UUFDbkosVUFBVSxFQUFFLGFBQWE7UUFDekIsZUFBZSxFQUFFLEtBQUs7UUFDdEIsTUFBTSxFQUFFO1lBQ04sSUFBSSxDQUNGLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsSUFBSSxFQUNKLG1JQUFtSSxDQUNwSTtTQUNGO0tBQ0Y7SUFDRDtRQUNFLEdBQUcsRUFBRSxZQUFZO1FBQ2pCLEtBQUssRUFBRSxZQUFZO1FBQ25CLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCwyTUFBMk07UUFDN00sVUFBVSxFQUFFLG9CQUFvQjtRQUNoQyxlQUFlLEVBQUUsS0FBSztRQUN0QixNQUFNLEVBQUU7WUFDTixJQUFJLENBQ0YsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQixJQUFJLEVBQ0osd0dBQXdHLENBQ3pHO1lBQ0QsSUFBSSxDQUNGLHNDQUFzQyxFQUN0QywyQkFBMkIsRUFDM0IsSUFBSSxFQUNKLHlIQUF5SCxDQUMxSDtZQUNELElBQUksQ0FDRixnQ0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLDBIQUEwSCxDQUMzSDtTQUNGO0tBQ0Y7SUFDRDtRQUNFLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsS0FBSyxFQUFFLHVCQUF1QjtRQUM5QixRQUFRLEVBQUUsV0FBVztRQUNyQixXQUFXLEVBQ1QsbUZBQW1GO1FBQ3JGLFVBQVUsRUFBRSxhQUFhO1FBQ3pCLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLE1BQU0sRUFBRTtZQUNOLElBQUksQ0FDRix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLElBQUksRUFDSixpRUFBaUUsQ0FDbEU7U0FDRjtLQUNGO0NBQ0YsQ0FBQTtBQUVELEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7SUFDckMsSUFBSSxDQUFDLGtDQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxrQ0FBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDMUMsQ0FBQztBQUNILENBQUMifQ==
|