@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.
Files changed (22) hide show
  1. package/.medusa/server/src/admin/index.js +1165 -0
  2. package/.medusa/server/src/admin/index.mjs +1166 -0
  3. package/.medusa/server/src/api/admin/parcel-boxes/[id]/route.js +47 -0
  4. package/.medusa/server/src/api/admin/parcel-boxes/route.js +48 -0
  5. package/.medusa/server/src/api/admin/shipping-config/areas/[id]/route.js +44 -0
  6. package/.medusa/server/src/api/admin/shipping-config/areas/route.js +48 -0
  7. package/.medusa/server/src/api/admin/shipping-config/rates/[id]/route.js +53 -0
  8. package/.medusa/server/src/api/admin/shipping-config/rates/route.js +55 -0
  9. package/.medusa/server/src/api/store/parcel-box-selector/route.js +53 -0
  10. package/.medusa/server/src/index.js +24 -0
  11. package/.medusa/server/src/modules/parcel-shipping/index.js +28 -0
  12. package/.medusa/server/src/modules/parcel-shipping/migrations/Migration20251015120000.js +70 -0
  13. package/.medusa/server/src/modules/parcel-shipping/models/parcel-box.js +21 -0
  14. package/.medusa/server/src/modules/parcel-shipping/models/service-area.js +20 -0
  15. package/.medusa/server/src/modules/parcel-shipping/models/shipping-rate.js +20 -0
  16. package/.medusa/server/src/modules/parcel-shipping/service.js +172 -0
  17. package/.medusa/server/src/modules/parcel-shipping/types.js +3 -0
  18. package/.medusa/server/src/modules/parcel-shipping/utils/packing.js +319 -0
  19. package/.medusa/server/src/providers/company-truck/index.js +19 -0
  20. package/.medusa/server/src/providers/parcel-fulfillment-base.js +180 -0
  21. package/.medusa/server/src/providers/private-carrier/index.js +19 -0
  22. 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
+ }