@hartl-services/medusa-free-shipping 0.2.2 → 0.4.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/plugin-features.js +8 -2
- package/.medusa/server/src/subscribers/plugin-features-updated.js +3 -2
- package/.medusa/server/src/subscribers/plugin-settings-updated.js +3 -2
- package/.medusa/server/src/workflows/hooks/set-free-shipping-promotion-context.js +3 -14
- package/README.md +2 -2
- package/package.json +4 -4
|
@@ -6,11 +6,16 @@ exports.freeShippingPluginFeatures = (0, medusa_base_1.definePluginFeatures)({
|
|
|
6
6
|
plugin_key: "free_shipping",
|
|
7
7
|
label: "Versandkostenfrei",
|
|
8
8
|
description: "Schaltet die beiden automatischen Versandkosten-Aktionen aktiv bzw. inaktiv. Die Schwellenwerte bleiben auch ausgeschaltet bearbeitbar; der Aktionskontext im Warenkorb läuft weiter.",
|
|
9
|
+
summary: "Die beiden automatischen Versandkosten-Aktionen mit ihren Schwellenwerten.",
|
|
10
|
+
icon: "TruckFast",
|
|
11
|
+
disable_hint: "Aus: beide Aktionen sind inaktiv. Die Schwellenwerte bleiben bearbeitbar.",
|
|
12
|
+
disable_confirm: "Die beiden automatischen Versandkosten-Aktionen werden dann inaktiv. Die Schwellenwerte bleiben auch ausgeschaltet bearbeitbar, und der Aktionskontext im Warenkorb läuft weiter.",
|
|
9
13
|
features: [],
|
|
10
14
|
settings: [
|
|
11
15
|
{
|
|
12
16
|
key: "default_threshold",
|
|
13
17
|
label: "Kostenlose Lieferung ab (€)",
|
|
18
|
+
width: "half",
|
|
14
19
|
type: "number",
|
|
15
20
|
min: 0,
|
|
16
21
|
default: 50,
|
|
@@ -18,6 +23,7 @@ exports.freeShippingPluginFeatures = (0, medusa_base_1.definePluginFeatures)({
|
|
|
18
23
|
{
|
|
19
24
|
key: "affiliate_threshold",
|
|
20
25
|
label: "Für Affiliates ab (€)",
|
|
26
|
+
width: "half",
|
|
21
27
|
type: "number",
|
|
22
28
|
min: 0,
|
|
23
29
|
default: 100,
|
|
@@ -30,10 +36,10 @@ exports.freeShippingPluginFeatures = (0, medusa_base_1.definePluginFeatures)({
|
|
|
30
36
|
},
|
|
31
37
|
{
|
|
32
38
|
key: "affiliate_applies_to_referred_customers",
|
|
33
|
-
label: "Gilt, wenn der Warenkorb über einen Affiliate-Link
|
|
39
|
+
label: "Gilt, wenn der Warenkorb über einen Affiliate-Link oder -Code zugeordnet wurde",
|
|
34
40
|
type: "boolean",
|
|
35
41
|
default: false,
|
|
36
42
|
},
|
|
37
43
|
],
|
|
38
44
|
});
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWZlYXR1cmVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbi1mZWF0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBa0U7QUFFckQsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLGtDQUFvQixFQUFDO0lBQzdELFVBQVUsRUFBRSxlQUFlO0lBQzNCLEtBQUssRUFBRSxtQkFBbUI7SUFDMUIsV0FBVyxFQUNULHVMQUF1TDtJQUN6TCxPQUFPLEVBQ0wsNEVBQTRFO0lBQzlFLElBQUksRUFBRSxXQUFXO0lBQ2pCLFlBQVksRUFDViwyRUFBMkU7SUFDN0UsZUFBZSxFQUNiLG1MQUFtTDtJQUNyTCxRQUFRLEVBQUUsRUFBRTtJQUNaLFFBQVEsRUFBRTtRQUNSO1lBQ0UsR0FBRyxFQUFFLG1CQUFtQjtZQUN4QixLQUFLLEVBQUUsNkJBQTZCO1lBQ3BDLEtBQUssRUFBRSxNQUFNO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxHQUFHLEVBQUUsQ0FBQztZQUNOLE9BQU8sRUFBRSxFQUFFO1NBQ1o7UUFDRDtZQUNFLEdBQUcsRUFBRSxxQkFBcUI7WUFDMUIsS0FBSyxFQUFFLHVCQUF1QjtZQUM5QixLQUFLLEVBQUUsTUFBTTtZQUNiLElBQUksRUFBRSxRQUFRO1lBQ2QsR0FBRyxFQUFFLENBQUM7WUFDTixPQUFPLEVBQUUsR0FBRztTQUNiO1FBQ0Q7WUFDRSxHQUFHLEVBQUUsc0NBQXNDO1lBQzNDLEtBQUssRUFBRSwyQ0FBMkM7WUFDbEQsSUFBSSxFQUFFLFNBQVM7WUFDZixPQUFPLEVBQUUsSUFBSTtTQUNkO1FBQ0Q7WUFDRSxHQUFHLEVBQUUseUNBQXlDO1lBQzlDLEtBQUssRUFDSCxnRkFBZ0Y7WUFDbEYsSUFBSSxFQUFFLFNBQVM7WUFDZixPQUFPLEVBQUUsS0FBSztTQUNmO0tBQ0Y7Q0FDRixDQUFDLENBQUEifQ==
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.config = void 0;
|
|
4
4
|
exports.default = freeShippingPluginFeaturesUpdatedSubscriber;
|
|
5
|
+
const medusa_base_1 = require("@hartl-services/medusa-base");
|
|
5
6
|
const plugin_features_1 = require("@hartl-services/medusa-food-supplements-contracts/events/plugin-features");
|
|
6
7
|
const plugin_features_2 = require("../plugin-features");
|
|
7
8
|
const sync_free_shipping_promotions_1 = require("../workflows/free-shipping/sync-free-shipping-promotions");
|
|
@@ -13,7 +14,7 @@ const sync_free_shipping_promotions_1 = require("../workflows/free-shipping/sync
|
|
|
13
14
|
*/
|
|
14
15
|
async function freeShippingPluginFeaturesUpdatedSubscriber({ event, container, }) {
|
|
15
16
|
const payload = plugin_features_1.PluginFeaturesUpdatedEventSchema.parse(event.data);
|
|
16
|
-
if (payload
|
|
17
|
+
if (!(0, medusa_base_1.isOwnPluginEvent)(payload, plugin_features_2.freeShippingPluginFeatures.plugin_key)) {
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
await (0, sync_free_shipping_promotions_1.syncFreeShippingPromotions)(container);
|
|
@@ -21,4 +22,4 @@ async function freeShippingPluginFeaturesUpdatedSubscriber({ event, container, }
|
|
|
21
22
|
exports.config = {
|
|
22
23
|
event: plugin_features_1.PLUGIN_FEATURES_UPDATED_EVENT,
|
|
23
24
|
};
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLWZlYXR1cmVzLXVwZGF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvcGx1Z2luLWZlYXR1cmVzLXVwZGF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0JBLDhEQVVDO0FBMUJELDZEQUE4RDtBQUM5RCw4R0FJaUY7QUFFakYsd0RBQStEO0FBQy9ELDRHQUFxRztBQUVyRzs7Ozs7R0FLRztBQUNZLEtBQUssVUFBVSwyQ0FBMkMsQ0FBQyxFQUN4RSxLQUFLLEVBQ0wsU0FBUyxHQUNrQztJQUMzQyxNQUFNLE9BQU8sR0FBRyxrREFBZ0MsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2xFLElBQUksQ0FBQyxJQUFBLDhCQUFnQixFQUFDLE9BQU8sRUFBRSw0Q0FBMEIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3RFLE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxJQUFBLDBEQUEwQixFQUFDLFNBQVMsQ0FBQyxDQUFBO0FBQzdDLENBQUM7QUFFWSxRQUFBLE1BQU0sR0FBcUI7SUFDdEMsS0FBSyxFQUFFLCtDQUE2QjtDQUNyQyxDQUFBIn0=
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.config = void 0;
|
|
4
4
|
exports.default = freeShippingPluginSettingsUpdatedSubscriber;
|
|
5
|
+
const medusa_base_1 = require("@hartl-services/medusa-base");
|
|
5
6
|
const plugin_features_1 = require("@hartl-services/medusa-food-supplements-contracts/events/plugin-features");
|
|
6
7
|
const plugin_features_2 = require("../plugin-features");
|
|
7
8
|
const sync_free_shipping_promotions_1 = require("../workflows/free-shipping/sync-free-shipping-promotions");
|
|
@@ -14,7 +15,7 @@ const sync_free_shipping_promotions_1 = require("../workflows/free-shipping/sync
|
|
|
14
15
|
*/
|
|
15
16
|
async function freeShippingPluginSettingsUpdatedSubscriber({ event, container, }) {
|
|
16
17
|
const payload = plugin_features_1.PluginSettingsUpdatedEventSchema.parse(event.data);
|
|
17
|
-
if (payload
|
|
18
|
+
if (!(0, medusa_base_1.isOwnPluginEvent)(payload, plugin_features_2.freeShippingPluginFeatures.plugin_key)) {
|
|
18
19
|
return;
|
|
19
20
|
}
|
|
20
21
|
await (0, sync_free_shipping_promotions_1.syncFreeShippingPromotions)(container);
|
|
@@ -22,4 +23,4 @@ async function freeShippingPluginSettingsUpdatedSubscriber({ event, container, }
|
|
|
22
23
|
exports.config = {
|
|
23
24
|
event: plugin_features_1.PLUGIN_SETTINGS_UPDATED_EVENT,
|
|
24
25
|
};
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXNldHRpbmdzLXVwZGF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc3Vic2NyaWJlcnMvcGx1Z2luLXNldHRpbmdzLXVwZGF0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBcUJBLDhEQVVDO0FBM0JELDZEQUE4RDtBQUM5RCw4R0FJaUY7QUFFakYsd0RBQStEO0FBQy9ELDRHQUFxRztBQUVyRzs7Ozs7O0dBTUc7QUFDWSxLQUFLLFVBQVUsMkNBQTJDLENBQUMsRUFDeEUsS0FBSyxFQUNMLFNBQVMsR0FDa0M7SUFDM0MsTUFBTSxPQUFPLEdBQUcsa0RBQWdDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNsRSxJQUFJLENBQUMsSUFBQSw4QkFBZ0IsRUFBQyxPQUFPLEVBQUUsNENBQTBCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUN0RSxPQUFNO0lBQ1IsQ0FBQztJQUVELE1BQU0sSUFBQSwwREFBMEIsRUFBQyxTQUFTLENBQUMsQ0FBQTtBQUM3QyxDQUFDO0FBRVksUUFBQSxNQUFNLEdBQXFCO0lBQ3RDLEtBQUssRUFBRSwrQ0FBNkI7Q0FDckMsQ0FBQSJ9
|
|
@@ -4,6 +4,7 @@ exports.setFreeShippingPromotionContext = void 0;
|
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
5
|
const utils_1 = require("@medusajs/framework/utils");
|
|
6
6
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const lib_1 = require("@hartl-services/medusa-base/lib");
|
|
7
8
|
const plugin_features_1 = require("../../plugin-features");
|
|
8
9
|
const free_shipping_settings_1 = require("../../utils/free-shipping-settings");
|
|
9
10
|
const sync_free_shipping_promotions_1 = require("../free-shipping/sync-free-shipping-promotions");
|
|
@@ -22,18 +23,6 @@ const tryResolve = (container, name) => {
|
|
|
22
23
|
throw error;
|
|
23
24
|
}
|
|
24
25
|
};
|
|
25
|
-
/**
|
|
26
|
-
* Deliberately duplicated, simplified email normalization (trim+lowercase)
|
|
27
|
-
* for the referred-customer check - see
|
|
28
|
-
* `plugins/affiliate/src/modules/affiliate/domain/email-normalization.ts`
|
|
29
|
-
* for the affiliate plugin's own version. Unlike that version, a
|
|
30
|
-
* missing/invalid email here just means "no email", not a thrown error:
|
|
31
|
-
* this context computation must never fail a cart's promotion recalculation.
|
|
32
|
-
*/
|
|
33
|
-
const normalizeEmailOrNull = (value) => {
|
|
34
|
-
const normalized = value?.trim().toLowerCase();
|
|
35
|
-
return normalized && normalized.includes("@") ? normalized : null;
|
|
36
|
-
};
|
|
37
26
|
const declaredBooleanDefault = (key) => plugin_features_1.freeShippingPluginFeatures.settings?.find((setting) => setting.key === key)
|
|
38
27
|
?.default === true;
|
|
39
28
|
/** The descriptor's defaults: account holders on, referred customers off. */
|
|
@@ -96,7 +85,7 @@ const setFreeShippingPromotionContext = async ({ cart }, { container }) => {
|
|
|
96
85
|
const state = await affiliateService.inspectAffiliateCartReferralForCheckout({
|
|
97
86
|
cart_id: typedCart.id,
|
|
98
87
|
customer_id: typedCart.customer_id,
|
|
99
|
-
normalized_email:
|
|
88
|
+
normalized_email: (0, lib_1.normalizeEmail)(typedCart.email),
|
|
100
89
|
}, query);
|
|
101
90
|
qualifies = state.assignment !== null;
|
|
102
91
|
}
|
|
@@ -108,4 +97,4 @@ const setFreeShippingPromotionContext = async ({ cart }, { container }) => {
|
|
|
108
97
|
};
|
|
109
98
|
exports.setFreeShippingPromotionContext = setFreeShippingPromotionContext;
|
|
110
99
|
core_flows_1.updateCartPromotionsWorkflow.hooks.setPromotionContext(exports.setFreeShippingPromotionContext);
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWZyZWUtc2hpcHBpbmctcHJvbW90aW9uLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hvb2tzL3NldC1mcmVlLXNoaXBwaW5nLXByb21vdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFnRTtBQUNoRSxxREFBcUU7QUFFckUsNERBQTBFO0FBQzFFLHlEQUFnRTtBQUVoRSwyREFBa0U7QUFDbEUsK0VBRzJDO0FBQzNDLGtHQUFrRztBQXFCbEcsMEJBQTBCO0FBQzFCLDBFQUEwRTtBQUMxRSw2RUFBNkU7QUFDN0UsTUFBTSxVQUFVLEdBQUcsQ0FDakIsU0FBOEQsRUFDOUQsSUFBWSxFQUNGLEVBQUU7SUFDWixJQUFJLENBQUM7UUFDSCxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUksSUFBSSxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUNFLEtBQUssWUFBWSxLQUFLO1lBQ3RCLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEVBQzlDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFDRCxNQUFNLEtBQUssQ0FBQTtJQUNiLENBQUM7QUFDSCxDQUFDLENBQUE7QUFRRCxNQUFNLHNCQUFzQixHQUFHLENBQUMsR0FBeUIsRUFBVyxFQUFFLENBQ3BFLDRDQUEwQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDO0lBQ3pFLEVBQUUsT0FBTyxLQUFLLElBQUksQ0FBQTtBQUV0Qiw2RUFBNkU7QUFDN0UsTUFBTSxnQ0FBZ0MsR0FBbUI7SUFDdkQsb0NBQW9DLEVBQUUsc0JBQXNCLENBQzFELHNDQUFzQyxDQUN2QztJQUNELHVDQUF1QyxFQUFFLHNCQUFz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
|
package/README.md
CHANGED
|
@@ -45,7 +45,7 @@ ever saving the page. The plugin has no medusa-config options.
|
|
|
45
45
|
| `default_threshold` | number ≥ 0 | 50 | Kostenlose Lieferung ab (€) | `item_total` threshold of `AUTO-FREE-SHIPPING-STANDARD` |
|
|
46
46
|
| `affiliate_threshold` | number ≥ 0 | 100 | Für Affiliates ab (€) | `item_total` threshold of `AUTO-FREE-SHIPPING-AFFILIATE` |
|
|
47
47
|
| `affiliate_applies_to_account_holders` | boolean | on | Gilt, wenn der Kunde selbst Affiliate ist | the cart's customer is an affiliate → affiliate threshold |
|
|
48
|
-
| `affiliate_applies_to_referred_customers` | boolean | off | Gilt, wenn der Warenkorb über einen Affiliate-Link
|
|
48
|
+
| `affiliate_applies_to_referred_customers` | boolean | off | Gilt, wenn der Warenkorb über einen Affiliate-Link oder -Code zugeordnet wurde | the cart is assigned to an affiliate referral → affiliate threshold |
|
|
49
49
|
|
|
50
50
|
The base validates the values (a negative threshold is rejected with 400).
|
|
51
51
|
Server code reads them with `resolveFreeShippingSettings(container)`
|
|
@@ -81,7 +81,7 @@ The plugin emits no events.
|
|
|
81
81
|
pnpm add @hartl-services/medusa-free-shipping @hartl-services/medusa-base @hartl-services/medusa-food-supplements-contracts
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
`@hartl-services/medusa-base` (>=
|
|
84
|
+
`@hartl-services/medusa-base` (>= 2.7.0) is a required peer: it stores the
|
|
85
85
|
switch and the settings, renders the Admin page and emits the change events,
|
|
86
86
|
and must be registered as a plugin as well.
|
|
87
87
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hartl-services/medusa-free-shipping",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Configurable free-shipping threshold plugin for Medusa.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"@medusajs/framework": "^2.19.0",
|
|
34
34
|
"@medusajs/medusa": "^2.19.0",
|
|
35
|
-
"@hartl-services/medusa-base": "^2.
|
|
35
|
+
"@hartl-services/medusa-base": "^2.7.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@hartl-services/medusa-food-supplements-contracts": "^0.
|
|
38
|
+
"@hartl-services/medusa-food-supplements-contracts": "^0.27.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@medusajs/cli": "2.19.0",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"jest": "^29.7.0",
|
|
49
49
|
"typescript": "^5.6.2",
|
|
50
50
|
"yalc": "^1.0.0-pre.53",
|
|
51
|
-
"@hartl-services/medusa-base": "2.
|
|
51
|
+
"@hartl-services/medusa-base": "2.7.0"
|
|
52
52
|
},
|
|
53
53
|
"engines": {
|
|
54
54
|
"node": ">=20"
|