@lodashventure/medusa-parcel-shipping 0.4.12 → 0.4.15
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.
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ParcelFulfillmentProvider = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
5
|
const parcel_shipping_1 = require("../modules/parcel-shipping");
|
|
6
|
+
const PRODUCT_EXTENSION_MODULE = "productExtension";
|
|
6
7
|
/**
|
|
7
8
|
* Unified Parcel Fulfillment Provider
|
|
8
9
|
* Provides 4 service levels:
|
|
@@ -97,31 +98,66 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
|
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
async fetchQuoteViaHttp(payload) {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (this.publishableApiKey) {
|
|
108
|
-
headers["x-publishable-api-key"] = this.publishableApiKey;
|
|
101
|
+
const scopesToTry = this.publishableApiKey
|
|
102
|
+
? ["store", "admin"]
|
|
103
|
+
: ["admin"];
|
|
104
|
+
let lastError = null;
|
|
105
|
+
for (const scope of scopesToTry) {
|
|
106
|
+
try {
|
|
107
|
+
return await this.fetchQuoteForScope(scope, payload);
|
|
109
108
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
109
|
+
catch (error) {
|
|
110
|
+
const typedError = error;
|
|
111
|
+
lastError = typedError;
|
|
112
|
+
if (scope === "store" &&
|
|
113
|
+
this.publishableApiKey &&
|
|
114
|
+
this.shouldFallbackToAdmin(typedError)) {
|
|
115
|
+
this.logger_?.warn("Store quote failed to validate publishable key. Retrying via admin endpoint.");
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
const logMessage = `Failed to fetch quote from API: ${typedError?.message ?? "Unknown error"}`;
|
|
119
|
+
this.logger_?.error(logMessage);
|
|
120
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Unable to fetch shipping quote: ${typedError.message}`);
|
|
118
121
|
}
|
|
119
|
-
return (await response.json());
|
|
120
122
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
123
|
+
const finalErrorMessage = lastError?.message ?? "Unknown error";
|
|
124
|
+
this.logger_?.error(`Failed to fetch quote from API after exhausting scopes: ${finalErrorMessage}`);
|
|
125
|
+
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, `Unable to fetch shipping quote: ${lastError?.message}`);
|
|
126
|
+
}
|
|
127
|
+
async fetchQuoteForScope(scope, payload) {
|
|
128
|
+
const url = `${this.apiUrl}/${scope}/quote`;
|
|
129
|
+
this.logger_?.info(`Fetching quote via HTTP (${scope}) for carrier_type: ${payload.preferred_service?.carrier_type}, service_code: ${payload.preferred_service?.service_code}`);
|
|
130
|
+
const headers = {
|
|
131
|
+
"Content-Type": "application/json",
|
|
132
|
+
};
|
|
133
|
+
if (scope === "store" && this.publishableApiKey) {
|
|
134
|
+
headers["x-publishable-api-key"] = this.publishableApiKey;
|
|
124
135
|
}
|
|
136
|
+
const response = await fetch(url, {
|
|
137
|
+
method: "POST",
|
|
138
|
+
headers,
|
|
139
|
+
body: JSON.stringify(payload),
|
|
140
|
+
});
|
|
141
|
+
if (!response.ok) {
|
|
142
|
+
const errorText = await response.text();
|
|
143
|
+
const error = new Error(`Quote API request failed via ${scope}: ${response.status} ${errorText}`);
|
|
144
|
+
error.status = response.status;
|
|
145
|
+
error.scope = scope;
|
|
146
|
+
error.body = errorText;
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
return (await response.json());
|
|
150
|
+
}
|
|
151
|
+
shouldFallbackToAdmin(error) {
|
|
152
|
+
if (!error) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
if (error.status && [401, 403].includes(error.status)) {
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
const body = (error.body || "").toLowerCase();
|
|
159
|
+
const message = (error.message || "").toLowerCase();
|
|
160
|
+
return (body.includes("publishable key") || message.includes("publishable key"));
|
|
125
161
|
}
|
|
126
162
|
// ============================================================================
|
|
127
163
|
// Fulfillment Options (4 Service Levels)
|
|
@@ -177,7 +213,7 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
|
|
|
177
213
|
return validCombinations.some(([carrier, service]) => carrier === carrierType && service === serviceCode);
|
|
178
214
|
}
|
|
179
215
|
async validateFulfillmentData(optionData, data, context) {
|
|
180
|
-
const quoteItems = this.convertToQuoteItems(context);
|
|
216
|
+
const quoteItems = await this.convertToQuoteItems(context);
|
|
181
217
|
if (!quoteItems.length) {
|
|
182
218
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "cart_items_missing_dimensions");
|
|
183
219
|
}
|
|
@@ -213,7 +249,7 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
|
|
|
213
249
|
}
|
|
214
250
|
async calculatePrice(optionData, data, context) {
|
|
215
251
|
this.logger_?.info(`calculatePrice called with optionData: ${JSON.stringify(optionData)}`);
|
|
216
|
-
const quoteItems = this.convertToQuoteItems(context);
|
|
252
|
+
const quoteItems = await this.convertToQuoteItems(context);
|
|
217
253
|
if (!quoteItems.length) {
|
|
218
254
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "cart_items_missing_dimensions_or_weight");
|
|
219
255
|
}
|
|
@@ -296,9 +332,10 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
|
|
|
296
332
|
// ============================================================================
|
|
297
333
|
// Helper Methods
|
|
298
334
|
// ============================================================================
|
|
299
|
-
convertToQuoteItems(context) {
|
|
335
|
+
async convertToQuoteItems(context) {
|
|
300
336
|
const items = context?.items ?? [];
|
|
301
337
|
const quoteItems = [];
|
|
338
|
+
const stackableMap = await this.loadProductStackableValues(items);
|
|
302
339
|
this.logger_?.info(`Converting ${items.length} items to quote items`);
|
|
303
340
|
for (const item of items) {
|
|
304
341
|
const lineItem = item;
|
|
@@ -338,7 +375,13 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
|
|
|
338
375
|
// Get packing policy from metadata
|
|
339
376
|
const noStack = Boolean(lineItem?.variant?.metadata?.noStack ?? lineItem?.metadata?.noStack);
|
|
340
377
|
const fragile = Boolean(lineItem?.variant?.metadata?.fragile ?? lineItem?.metadata?.fragile);
|
|
341
|
-
const
|
|
378
|
+
const productId = this.extractProductId(lineItem);
|
|
379
|
+
let stackable = lineItem?.variant?.metadata?.stackable ?? lineItem?.metadata?.stackable;
|
|
380
|
+
if ((stackable === undefined || stackable === null || stackable === "") &&
|
|
381
|
+
productId &&
|
|
382
|
+
stackableMap.has(productId)) {
|
|
383
|
+
stackable = stackableMap.get(productId);
|
|
384
|
+
}
|
|
342
385
|
const attributes = {};
|
|
343
386
|
if (noStack) {
|
|
344
387
|
attributes.noStack = true;
|
|
@@ -346,7 +389,9 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
|
|
|
346
389
|
if (fragile) {
|
|
347
390
|
attributes.fragile = true;
|
|
348
391
|
}
|
|
349
|
-
if (stackable !== undefined &&
|
|
392
|
+
if (stackable !== undefined &&
|
|
393
|
+
stackable !== null &&
|
|
394
|
+
stackable !== "") {
|
|
350
395
|
attributes.stackable = Number(stackable);
|
|
351
396
|
}
|
|
352
397
|
const quoteItem = {
|
|
@@ -364,6 +409,72 @@ class ParcelFulfillmentProvider extends utils_1.AbstractFulfillmentProviderServi
|
|
|
364
409
|
this.logger_?.info(`Converted ${quoteItems.length} quote items successfully`);
|
|
365
410
|
return quoteItems;
|
|
366
411
|
}
|
|
412
|
+
extractProductId(lineItem) {
|
|
413
|
+
const productId = lineItem?.variant?.product_id ??
|
|
414
|
+
lineItem?.variant?.productId ??
|
|
415
|
+
lineItem?.variant?.product?.id ??
|
|
416
|
+
lineItem?.product_id ??
|
|
417
|
+
lineItem?.productId ??
|
|
418
|
+
lineItem?.product?.id ??
|
|
419
|
+
lineItem?.product?.product_id ??
|
|
420
|
+
lineItem?.metadata?.product_id;
|
|
421
|
+
return productId ? String(productId) : undefined;
|
|
422
|
+
}
|
|
423
|
+
async loadProductStackableValues(items) {
|
|
424
|
+
const result = new Map();
|
|
425
|
+
if (!items?.length) {
|
|
426
|
+
return result;
|
|
427
|
+
}
|
|
428
|
+
const productIds = Array.from(new Set(items
|
|
429
|
+
.map((item) => this.extractProductId(item))
|
|
430
|
+
.filter((id) => Boolean(id))));
|
|
431
|
+
if (!productIds.length) {
|
|
432
|
+
return result;
|
|
433
|
+
}
|
|
434
|
+
const container = this.container_;
|
|
435
|
+
if (!container) {
|
|
436
|
+
return result;
|
|
437
|
+
}
|
|
438
|
+
let productExtensionService;
|
|
439
|
+
try {
|
|
440
|
+
const canResolve = typeof container.hasRegistration === "function"
|
|
441
|
+
? container.hasRegistration(PRODUCT_EXTENSION_MODULE)
|
|
442
|
+
: true;
|
|
443
|
+
if (!canResolve) {
|
|
444
|
+
return result;
|
|
445
|
+
}
|
|
446
|
+
productExtensionService = container.resolve(PRODUCT_EXTENSION_MODULE);
|
|
447
|
+
}
|
|
448
|
+
catch (error) {
|
|
449
|
+
if (error?.name === "AwilixResolutionError" ||
|
|
450
|
+
error?.name === "ResolutionError") {
|
|
451
|
+
this.logger_?.debug?.("productExtension module not available; skipping stackable lookup.");
|
|
452
|
+
return result;
|
|
453
|
+
}
|
|
454
|
+
const message = `Failed to resolve productExtension module for stackable lookup: ${error?.message ?? error}`;
|
|
455
|
+
this.logger_?.warn?.(message);
|
|
456
|
+
return result;
|
|
457
|
+
}
|
|
458
|
+
if (!productExtensionService ||
|
|
459
|
+
typeof productExtensionService.listProductStackables !== "function") {
|
|
460
|
+
return result;
|
|
461
|
+
}
|
|
462
|
+
try {
|
|
463
|
+
const records = (await productExtensionService.listProductStackables({
|
|
464
|
+
product_id: productIds,
|
|
465
|
+
})) || [];
|
|
466
|
+
for (const entry of records) {
|
|
467
|
+
if (entry?.product_id) {
|
|
468
|
+
result.set(entry.product_id, entry.stackable ?? null);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
catch (error) {
|
|
473
|
+
const message = `Failed to fetch stackable data from productExtension module: ${error?.message ?? error}`;
|
|
474
|
+
this.logger_?.warn?.(message);
|
|
475
|
+
}
|
|
476
|
+
return result;
|
|
477
|
+
}
|
|
367
478
|
normalizeWeight(weight) {
|
|
368
479
|
if (!weight || !Number.isFinite(weight)) {
|
|
369
480
|
return 0;
|
|
@@ -422,4 +533,4 @@ exports.ParcelFulfillmentProvider = ParcelFulfillmentProvider;
|
|
|
422
533
|
ParcelFulfillmentProvider.identifier = "tha-shipping";
|
|
423
534
|
ParcelFulfillmentProvider.displayName = "Thai Parcel Shipping";
|
|
424
535
|
exports.default = ParcelFulfillmentProvider;
|
|
425
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyY2VsLWZ1bGZpbGxtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9wYXJjZWwtZnVsZmlsbG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBR21DO0FBTW5DLGdFQUFvRTtBQTZCcEU7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSwwQ0FBa0M7SUFVL0UsWUFDRSxTQUFpRCxFQUNqRCxVQUFvQyxFQUFFO1FBRXRDLGFBQWE7UUFDYixLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUVwQixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQTRCLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLHVCQUF1QixDQUFDO1FBQ3pELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLFVBQVUsQ0FDdEIsS0FBa0IsRUFDbEIsT0FBWSxFQUNaLFdBQXdCLEVBQ3hCLFdBQXdCO1FBRXhCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FDcEMsS0FBSyxFQUNMLE9BQU8sRUFDUCxXQUFXLEVBQ1gsV0FBVyxDQUNaLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxD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
|
|
536
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyY2VsLWZ1bGZpbGxtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9wYXJjZWwtZnVsZmlsbG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBR21DO0FBTW5DLGdFQUFvRTtBQTZCcEUsTUFBTSx3QkFBd0IsR0FBRyxrQkFBa0IsQ0FBQztBQVFwRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLHlCQUEwQixTQUFRLDBDQUFrQztJQVUvRSxZQUNFLFNBQWlELEVBQ2pELFVBQW9DLEVBQUU7UUFFdEMsYUFBYTtRQUNiLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBRXBCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBNEIsQ0FBQztRQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLElBQUksdUJBQXVCLENBQUM7UUFDekQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxLQUFLLENBQUMsVUFBVSxDQUN0QixLQUFrQixFQUNsQixPQUFZLEVBQ1osV0FBd0IsRUFDeEIsV0FBd0I7UUFFeEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUNwQyxLQUFLLEVBQ0wsT0FBTyxFQUNQLFdBQVcsRUFDWCxXQUFXLENBQ1osQ0FBQztRQUVGLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFELElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFD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
|