OK, here's what corrected the issue for me. I made these changes to the eo_get_order_by_order_id function of /YOUR_ADMIN/includes/functions/extra_functions/edit_orders_functions.php:
Code:function eo_get_order_by_id($oID) { global $db, $order; // Retrieve the order $order = new order($oID); // Add some required customer information for tax calculation // The next method has been modified to add required info to the // session and global variables. zen_get_tax_locations(); // Cleanup tax_groups in the order (broken code in order.php) // Shipping module will automatically add tax if needed. $order->info['tax_groups'] = array(); foreach($order->products as $product) { eo_get_product_taxes($product); } // Correctly add the running subtotal (broken code in order.php) if(!array_key_exists('subtotal', $order->info)) { $query = $db->Execute( 'SELECT value FROM `' . TABLE_ORDERS_TOTAL . '` ' . 'WHERE `orders_id` = \'' . (int)$oID . '\' ' . 'AND `class` = \'ot_subtotal\'' ); if(!$query->EOF) { $order->info['subtotal'] = $query->fields['value']; } } // Convert country portion of addresses to same format used in catalog side $country = null; if(array_key_exists('country', $order->customer)) { $country = eo_get_country($order->customer['country']); if($country !== null) { $order->customer['country'] = $country; $order->customer['zone_id'] = zen_get_zone_id($order->customer['country']['id'], $order->customer['state']); } } if(array_key_exists('country', $order->delivery)) { $country = eo_get_country($order->delivery['country']); if($country !== null) { $order->delivery['country'] = $country; $order->delivery['zone_id'] = zen_get_zone_id($order->delivery['country']['id'], $order->delivery['state']); } } if(array_key_exists('country', $order->billing)) { $country = eo_get_country($order->billing['country']); if($country !== null) { $order->billing['country'] = $country; $order->billing['zone_id'] = zen_get_zone_id($order->billing['country']['id'], $order->billing['state']); } } unset($country); // Handle shipping costs (module will automatically handle tax) if(!array_key_exists('shipping_cost', $order->info)) { $query = $db->Execute( 'SELECT value FROM `' . TABLE_ORDERS_TOTAL . '` ' . 'WHERE `orders_id` = \'' . (int)$oID . '\' ' . 'AND `class` = \'ot_shipping\'' ); if(!$query->EOF) { $order->info['shipping_cost'] = $query->fields['value']; $_SESSION['shipping'] = array( 'title' => $order->info['shipping_method'], 'id' => $order->info['shipping_module_code'] . '_', 'cost' => $order->info['shipping_cost'] ); if(!isset($_SESSION['cart'])) { require_once(DIR_FS_CATALOG . DIR_WS_CLASSES . 'shopping_cart.php'); $_SESSION['cart'] = new shoppingCart(); } // Load the shipping class into the globals require_once(DIR_FS_CATALOG . DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping($_SESSION['shipping']); } } //-bof-20130814-lat9 // Special handling for coupons: Need to set the coupon_id associated with the coupon into // the session for the coupon amount to be automatically recalculated. unset($_SESSION['cc_id']); if (isset($order->info['coupon_code']) && zen_not_null($order->info['coupon_code'])) { $coupon_info = $db->Execute('SELECT c.coupon_id FROM ' . TABLE_COUPONS . ' c, ' . TABLE_COUPON_REDEEM_TRACK . " crt WHERE c.coupon_id = crt.coupon_id AND c.coupon_code = '" . $order->info['coupon_code'] . "' AND crt.order_id = " . (int)$oID); if (!$coupon_info->EOF) { $_SESSION['cc_id'] = $coupon_info->fields['coupon_id']; } } //-eof-20130814-lat9 return $order; }


Reply With Quote
