From 0059f03e8742171c4ee48027dc8682dde08adddc Mon Sep 17 00:00:00 2001 From: 2ManyProjects Date: Sun, 27 Apr 2025 17:31:38 -0500 Subject: [PATCH] shipping support --- backend/src/routes/cart.js | 3 +++ backend/src/routes/settingsAdmin.js | 2 +- backend/src/services/shippingService.js | 10 +++++++++- frontend/src/pages/CheckoutPage.jsx | 2 +- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/backend/src/routes/cart.js b/backend/src/routes/cart.js index 677a877..977b483 100644 --- a/backend/src/routes/cart.js +++ b/backend/src/routes/cart.js @@ -497,6 +497,7 @@ module.exports = (pool, query, authMiddleware) => { // If no address provided, return only flat rate shipping if (!shippingAddress) { + console.log("No Address provide flat rate"); const rates = await shippingService.getFlatRateShipping(subtotal); return res.json({ @@ -509,6 +510,7 @@ module.exports = (pool, query, authMiddleware) => { const parsedAddress = typeof shippingAddress === 'string' ? shippingService.parseAddressString(shippingAddress) : shippingAddress; + console.log("parsedAddress provided ", parsedAddress); const rates = await shippingService.getShippingRates( null, // Use default from config @@ -518,6 +520,7 @@ module.exports = (pool, query, authMiddleware) => { order_total: subtotal } ); + console.log("rates provided ", JSON.stringify(rates, null ,4)); res.json({ success: true, diff --git a/backend/src/routes/settingsAdmin.js b/backend/src/routes/settingsAdmin.js index bf09f7f..8205ffb 100644 --- a/backend/src/routes/settingsAdmin.js +++ b/backend/src/routes/settingsAdmin.js @@ -241,7 +241,7 @@ module.exports = (pool, query, authMiddleware) => { try { // Get all settings from database const allSettings = await SystemSettings.getAllSettings(pool, query); - + config.updateFromDatabase(allSettings) // Build environment variables string let envContent = ''; diff --git a/backend/src/services/shippingService.js b/backend/src/services/shippingService.js index 2dd3e85..088896e 100644 --- a/backend/src/services/shippingService.js +++ b/backend/src/services/shippingService.js @@ -15,6 +15,7 @@ const shippingService = { async getShippingRates(addressFrom, addressTo, parcelDetails) { // If EasyPost is not enabled, return flat rate shipping if (!config.shipping.easypostEnabled || !config.shipping.easypostApiKey) { + console.log("EASY POST NOT CONFIGURED ", !config.shipping.easypostEnabled, !config.shipping.easypostApiKey) return this.getFlatRateShipping(parcelDetails.order_total); } @@ -25,7 +26,13 @@ const shippingService = { // Format parcel for EasyPost const parcel = this.formatParcel(parcelDetails); - + console.log("EasyPost shipment request", JSON.stringify({ + shipment: { + from_address: fromAddress, + to_address: toAddress, + parcel: parcel + } + }, null , 4)) // Create shipment via EasyPost API const response = await axios.post( 'https://api.easypost.com/v2/shipments', @@ -46,6 +53,7 @@ const shippingService = { } } ); + // console.log("EasyPost shipment response", response) // Process and filter rates return this.processShippingRates(response.data.rates, parcelDetails.order_total); diff --git a/frontend/src/pages/CheckoutPage.jsx b/frontend/src/pages/CheckoutPage.jsx index 71e2c92..277264a 100644 --- a/frontend/src/pages/CheckoutPage.jsx +++ b/frontend/src/pages/CheckoutPage.jsx @@ -155,7 +155,7 @@ const CheckoutPage = () => { }; // Call API to get shipping rates - const response = await apiClient.post('/api/cart/shipping-rates', { + const response = await apiClient.post('/cart/shipping-rates', { userId: user, shippingAddress });