@lodashventure/medusa-parcel-shipping 0.0.3
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 +1165 -0
- package/.medusa/server/src/admin/index.mjs +1166 -0
- package/.medusa/server/src/api/admin/parcel-boxes/[id]/route.js +47 -0
- package/.medusa/server/src/api/admin/parcel-boxes/route.js +48 -0
- package/.medusa/server/src/api/admin/shipping-config/areas/[id]/route.js +44 -0
- package/.medusa/server/src/api/admin/shipping-config/areas/route.js +48 -0
- package/.medusa/server/src/api/admin/shipping-config/rates/[id]/route.js +53 -0
- package/.medusa/server/src/api/admin/shipping-config/rates/route.js +55 -0
- package/.medusa/server/src/api/store/parcel-box-selector/route.js +53 -0
- package/.medusa/server/src/index.js +24 -0
- package/.medusa/server/src/modules/parcel-shipping/index.js +28 -0
- package/.medusa/server/src/modules/parcel-shipping/migrations/Migration20251015120000.js +70 -0
- package/.medusa/server/src/modules/parcel-shipping/models/parcel-box.js +21 -0
- package/.medusa/server/src/modules/parcel-shipping/models/service-area.js +20 -0
- package/.medusa/server/src/modules/parcel-shipping/models/shipping-rate.js +20 -0
- package/.medusa/server/src/modules/parcel-shipping/service.js +172 -0
- package/.medusa/server/src/modules/parcel-shipping/types.js +3 -0
- package/.medusa/server/src/modules/parcel-shipping/utils/packing.js +319 -0
- package/.medusa/server/src/providers/company-truck/index.js +19 -0
- package/.medusa/server/src/providers/parcel-fulfillment-base.js +180 -0
- package/.medusa/server/src/providers/private-carrier/index.js +19 -0
- package/package.json +81 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParcelFulfillmentProviderBase = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const parcel_shipping_1 = require("../modules/parcel-shipping");
|
|
6
|
+
class ParcelFulfillmentProviderBase extends utils_1.AbstractFulfillmentProviderService {
|
|
7
|
+
constructor(deps = {}, options = {}) {
|
|
8
|
+
super();
|
|
9
|
+
this.parcelService =
|
|
10
|
+
deps.parcelShippingModuleService ??
|
|
11
|
+
tryResolveParcelModule(deps);
|
|
12
|
+
if (!this.parcelService) {
|
|
13
|
+
throw new Error("parcelShippingModuleService dependency is not registered in the container.");
|
|
14
|
+
}
|
|
15
|
+
this.weightUnit = options.weight_unit ?? "g";
|
|
16
|
+
}
|
|
17
|
+
async getFulfillmentOptions() {
|
|
18
|
+
return [
|
|
19
|
+
{
|
|
20
|
+
id: this.optionId,
|
|
21
|
+
name: this.optionLabel,
|
|
22
|
+
carrier: this.carrier,
|
|
23
|
+
},
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
async validateFulfillmentData(optionData, data, context) {
|
|
27
|
+
await this.ensureOptionMatches(optionData);
|
|
28
|
+
const shipment = await this.computeQuote(context);
|
|
29
|
+
return {
|
|
30
|
+
...data,
|
|
31
|
+
carrier: this.carrier,
|
|
32
|
+
shipping_quote: shipment.quote,
|
|
33
|
+
total_weight_kg: shipment.weightKg,
|
|
34
|
+
destination: shipment.address,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
async validateOption(data) {
|
|
38
|
+
return (typeof data?.carrier === "string" &&
|
|
39
|
+
data.carrier.toUpperCase() === this.carrier);
|
|
40
|
+
}
|
|
41
|
+
async canCalculate() {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
async calculatePrice(optionData, data, context) {
|
|
45
|
+
await this.ensureOptionMatches(optionData);
|
|
46
|
+
const shipment = await this.computeQuote(context);
|
|
47
|
+
if (shipment.quote.method !== this.carrier) {
|
|
48
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, "shipping_option_not_available_for_destination");
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
calculated_amount: shipment.quote.price,
|
|
52
|
+
is_calculated_price_tax_inclusive: false,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
async createFulfillment() {
|
|
56
|
+
return {
|
|
57
|
+
data: {
|
|
58
|
+
carrier: this.carrier,
|
|
59
|
+
},
|
|
60
|
+
labels: [],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
async cancelFulfillment() {
|
|
64
|
+
return {
|
|
65
|
+
status: "cancelled",
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
async createReturnFulfillment() {
|
|
69
|
+
return {
|
|
70
|
+
data: {
|
|
71
|
+
carrier: this.carrier,
|
|
72
|
+
return: true,
|
|
73
|
+
},
|
|
74
|
+
labels: [],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
async ensureOptionMatches(optionData) {
|
|
78
|
+
if (!optionData?.carrier ||
|
|
79
|
+
String(optionData.carrier).toUpperCase() !== this.carrier) {
|
|
80
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "shipping_option_carrier_mismatch");
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
async computeQuote(context) {
|
|
84
|
+
const address = this.normalizeAddress(context?.shipping_address);
|
|
85
|
+
const totalWeightKg = this.calculateTotalWeightKg(context);
|
|
86
|
+
if (!totalWeightKg) {
|
|
87
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "cart_items_missing_weight");
|
|
88
|
+
}
|
|
89
|
+
const quote = await this.parcelService.quoteShippingOnly(address, totalWeightKg);
|
|
90
|
+
return { quote, weightKg: totalWeightKg, address };
|
|
91
|
+
}
|
|
92
|
+
calculateTotalWeightKg(context) {
|
|
93
|
+
const items = context?.items ?? [];
|
|
94
|
+
const total = items.reduce((acc, item) => {
|
|
95
|
+
const lineItem = item;
|
|
96
|
+
const quantity = Number(item.quantity ?? 0);
|
|
97
|
+
if (!quantity) {
|
|
98
|
+
return acc;
|
|
99
|
+
}
|
|
100
|
+
const rawWeight = Number(lineItem?.variant?.weight ??
|
|
101
|
+
lineItem?.weight ??
|
|
102
|
+
lineItem?.raw_weight ??
|
|
103
|
+
0) || 0;
|
|
104
|
+
const normalized = this.normalizeWeight(rawWeight);
|
|
105
|
+
if (!normalized) {
|
|
106
|
+
return acc;
|
|
107
|
+
}
|
|
108
|
+
return acc + normalized * quantity;
|
|
109
|
+
}, 0);
|
|
110
|
+
return Number(total.toFixed(4));
|
|
111
|
+
}
|
|
112
|
+
normalizeWeight(weight) {
|
|
113
|
+
if (!weight || !Number.isFinite(weight)) {
|
|
114
|
+
return 0;
|
|
115
|
+
}
|
|
116
|
+
if (this.weightUnit === "kg") {
|
|
117
|
+
return Math.max(weight, 0);
|
|
118
|
+
}
|
|
119
|
+
// Assume grams by default. Guard against common mistakes by auto-detecting large values.
|
|
120
|
+
if (this.weightUnit === "g" || weight > 50) {
|
|
121
|
+
return Math.max(weight / 1000, 0);
|
|
122
|
+
}
|
|
123
|
+
return Math.max(weight, 0);
|
|
124
|
+
}
|
|
125
|
+
normalizeAddress(address) {
|
|
126
|
+
if (!address) {
|
|
127
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "shipping_address_required");
|
|
128
|
+
}
|
|
129
|
+
const province = String(address.province ??
|
|
130
|
+
address.province_code ??
|
|
131
|
+
address.state ??
|
|
132
|
+
address.city ??
|
|
133
|
+
"").trim() || "";
|
|
134
|
+
const postcode = String(address.postal_code ??
|
|
135
|
+
address.postcode ??
|
|
136
|
+
address.zipcode ??
|
|
137
|
+
address.zip ??
|
|
138
|
+
"").trim() || "";
|
|
139
|
+
const country = String(address.country_code ?? address.country ?? "").toUpperCase();
|
|
140
|
+
if (!province && !postcode) {
|
|
141
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "shipping_address_missing_destination");
|
|
142
|
+
}
|
|
143
|
+
if (!country) {
|
|
144
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "shipping_address_missing_country");
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
province,
|
|
148
|
+
postcode,
|
|
149
|
+
country,
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
exports.ParcelFulfillmentProviderBase = ParcelFulfillmentProviderBase;
|
|
154
|
+
function tryResolveParcelModule(deps) {
|
|
155
|
+
const possibleKeys = [
|
|
156
|
+
"parcelShippingService",
|
|
157
|
+
"parcelShippingModuleService",
|
|
158
|
+
parcel_shipping_1.PARCEL_SHIPPING_MODULE,
|
|
159
|
+
];
|
|
160
|
+
for (const key of possibleKeys) {
|
|
161
|
+
if (deps?.[key]) {
|
|
162
|
+
return deps[key];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (typeof deps.resolve === "function") {
|
|
166
|
+
for (const key of possibleKeys) {
|
|
167
|
+
try {
|
|
168
|
+
const resolved = deps.resolve(key);
|
|
169
|
+
if (resolved) {
|
|
170
|
+
return resolved;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch (_) {
|
|
174
|
+
// ignore and try the next key
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return undefined;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyY2VsLWZ1bGZpbGxtZW50LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3BhcmNlbC1mdWxmaWxsbWVudC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUdtQztBQUluQyxnRUFBb0U7QUF5QnBFLE1BQXNCLDZCQUE4QixTQUFRLDBDQUFrQztJQUk1RixZQUNFLE9BQXNDLEVBQUUsRUFDeEMsVUFBNEMsRUFBRTtRQUU5QyxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxhQUFhO1lBQ2YsSUFBSSxDQUFDLDJCQUEyRDtnQkFDakUsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUNiLDRFQUE0RSxDQUM3RSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUM7SUFDL0MsQ0FBQztJQU1ELEtBQUssQ0FBQyxxQkFBcUI7UUFDekIsT0FBTztZQUNMO2dCQUNFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDakIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87YUFDdEI7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyx1QkFBdUIsQ0FDM0IsVUFBbUMsRUFDbkMsSUFBNkIsRUFDN0IsT0FBdUM7UUFFdkMsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxELE9BQU87WUFDTCxHQUFHLElBQUk7WUFDUCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIs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
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PrivateCarrierFulfillmentProvider = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const parcel_fulfillment_base_1 = require("../parcel-fulfillment-base");
|
|
6
|
+
class PrivateCarrierFulfillmentProvider extends parcel_fulfillment_base_1.ParcelFulfillmentProviderBase {
|
|
7
|
+
constructor(deps, options = {}) {
|
|
8
|
+
super(deps, options);
|
|
9
|
+
this.carrier = "PRIVATE_CARRIER";
|
|
10
|
+
this.optionId = "parcel-private-carrier";
|
|
11
|
+
this.optionLabel = "Private Carrier Delivery";
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.PrivateCarrierFulfillmentProvider = PrivateCarrierFulfillmentProvider;
|
|
15
|
+
PrivateCarrierFulfillmentProvider.identifier = "parcel-private-carrier";
|
|
16
|
+
exports.default = (0, utils_1.ModuleProvider)(utils_1.Modules.FULFILLMENT, {
|
|
17
|
+
services: [PrivateCarrierFulfillmentProvider],
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3ByaXZhdGUtY2Fycmllci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBbUU7QUFFbkUsd0VBQTBFO0FBRTFFLE1BQWEsaUNBQ1gsU0FBUSx1REFBNkI7SUFRckMsWUFDRSxJQUFvRSxFQUNwRSxVQUE0QyxFQUFFO1FBRTlDLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFSSCxZQUFPLEdBQUcsaUJBQTBCLENBQUE7UUFDcEMsYUFBUSxHQUFHLHdCQUF3QixDQUFBO1FBQ25DLGdCQUFXLEdBQUcsMEJBQTBCLENBQUE7SUFPM0QsQ0FBQzs7QUFkSCw4RUFlQztBQVpRLDRDQUFVLEdBQUcsd0JBQXdCLEFBQTNCLENBQTJCO0FBYzlDLGtCQUFlLElBQUEsc0JBQWMsRUFBQyxlQUFPLENBQUMsV0FBVyxFQUFFO0lBQ2pELFFBQVEsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO0NBQzlDLENBQUMsQ0FBQSJ9
|
package/package.json
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lodashventure/medusa-parcel-shipping",
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "Parcel box selection and Thailand shipping quotes for Medusa.",
|
|
5
|
+
"author": "LodashVenture",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"files": [
|
|
8
|
+
".medusa/server"
|
|
9
|
+
],
|
|
10
|
+
"exports": {
|
|
11
|
+
"./package.json": "./package.json",
|
|
12
|
+
"./workflows": "./.medusa/server/src/workflows/index.js",
|
|
13
|
+
"./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
14
|
+
"./modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
15
|
+
"./providers/*": "./.medusa/server/src/providers/*/index.js",
|
|
16
|
+
"./admin": "./.medusa/server/src/admin/index.mjs",
|
|
17
|
+
"./*": "./.medusa/server/src/*.js"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"medusa",
|
|
21
|
+
"plugin",
|
|
22
|
+
"shipping",
|
|
23
|
+
"parcel"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "medusa plugin:build",
|
|
27
|
+
"dev": "medusa plugin:develop",
|
|
28
|
+
"prepublishOnly": "medusa plugin:build"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@medusajs/admin-sdk": "2.10.0",
|
|
32
|
+
"@medusajs/cli": "2.10.0",
|
|
33
|
+
"@medusajs/framework": "2.10.0",
|
|
34
|
+
"@medusajs/icons": "^2.10.0",
|
|
35
|
+
"@medusajs/medusa": "2.10.0",
|
|
36
|
+
"@medusajs/test-utils": "2.10.0",
|
|
37
|
+
"@medusajs/ui": "4.0.4",
|
|
38
|
+
"@mikro-orm/cli": "6.4.3",
|
|
39
|
+
"@mikro-orm/core": "6.4.3",
|
|
40
|
+
"@mikro-orm/knex": "6.4.3",
|
|
41
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
42
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
43
|
+
"@swc/core": "1.5.7",
|
|
44
|
+
"@types/node": "^20.0.0",
|
|
45
|
+
"@types/react": "^18.3.2",
|
|
46
|
+
"@types/react-dom": "^18.2.25",
|
|
47
|
+
"awilix": "^8.0.1",
|
|
48
|
+
"pg": "^8.13.0",
|
|
49
|
+
"prop-types": "^15.8.1",
|
|
50
|
+
"react": "^18.2.0",
|
|
51
|
+
"react-dom": "^18.2.0",
|
|
52
|
+
"ts-node": "^10.9.2",
|
|
53
|
+
"typescript": "^5.6.2",
|
|
54
|
+
"vite": "^5.2.11",
|
|
55
|
+
"yalc": "^1.0.0-pre.53"
|
|
56
|
+
},
|
|
57
|
+
"peerDependencies": {
|
|
58
|
+
"@medusajs/admin-sdk": "2.10.0",
|
|
59
|
+
"@medusajs/cli": "2.10.0",
|
|
60
|
+
"@medusajs/framework": "2.10.0",
|
|
61
|
+
"@medusajs/icons": "^2.10.0",
|
|
62
|
+
"@medusajs/medusa": "2.10.0",
|
|
63
|
+
"@medusajs/test-utils": "2.10.0",
|
|
64
|
+
"@medusajs/ui": "4.0.3",
|
|
65
|
+
"@tanstack/react-query": "*",
|
|
66
|
+
"@mikro-orm/cli": "6.4.3",
|
|
67
|
+
"@mikro-orm/core": "6.4.3",
|
|
68
|
+
"@mikro-orm/knex": "6.4.3",
|
|
69
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
70
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
71
|
+
"awilix": "^8.0.1",
|
|
72
|
+
"pg": "^8.13.0"
|
|
73
|
+
},
|
|
74
|
+
"engines": {
|
|
75
|
+
"node": ">=20"
|
|
76
|
+
},
|
|
77
|
+
"dependencies": {
|
|
78
|
+
"thai-address-autocomplete-react": "^1.2.2",
|
|
79
|
+
"zod": "^4.1.5"
|
|
80
|
+
}
|
|
81
|
+
}
|