diff --git a/controllers/order.controller.js b/controllers/order.controller.js index 1f4b71c7fece064b909909461c5ab7cce6c9f615..865c6ecf254317155d3ddae91ae3cb531bbe8690 100644 --- a/controllers/order.controller.js +++ b/controllers/order.controller.js @@ -2390,6 +2390,7 @@ module.exports.generateShippingLabel = async (req, res) => { }); } + // Check if order belongs to the store (for store admin) const user = req.user; if (user.role === "store_admin" && order.store_id !== user.storeId) { @@ -2483,6 +2484,22 @@ module.exports.generateShippingLabel = async (req, res) => { amount: `$${parseFloat(order.total_amount).toFixed(2)}`, labelNotes: "", }, + // Order Items (map from order.orderItems) + orderItems: order.orderItems ? order.orderItems.map(item => ({ + name: item.product_name || "Product", + variant: item.variant_name && item.variant_name !== "DUMMY" ? item.variant_name : "", + quantity: item.quantity || 1, + totalPrice: parseFloat(item.total_price) || 0.00 + })) : [], + + // Order Totals + orderTotals: { + subTotal: parseFloat(order.subtotal_amount) || 0.00, + tax: parseFloat(order.tax_amount) || 0.00, + shipping: parseFloat(order.shipping_cost) || 0.00, + discount: parseFloat(order.discount_amount) || 0.00, + total: parseFloat(order.total_amount) || (parseFloat(order.subtotal_amount) + parseFloat(order.tax_amount) + parseFloat(order.shipping_cost) - parseFloat(order.discount_amount)) || 0.00 + }, }; // Generate unique timestamp for filenames @@ -3142,6 +3159,44 @@ const generateLabelHTML = async (labelData) => { Package Details: ${labelData.packageDetails || "Standard Package"} + + ${labelData.orderItems && labelData.orderItems.length > 0 ? ` +