Running an unmodified Zen Cart v1.5.1 installation with the demo products installed. If an order is placed in a currency other than the default (USD), when that order's details are displayed using the admin's Customers->Orders, the order-total values are always displayed using the default currency.
Name:  muli_currency_issue_admin_orders.jpg
Views: 391
Size:  4.9 KB
(My apologies for the teeny screenshot, but I don't know how to get the image uploader to stop shrinking it)

To reproduce the issue:
  1. Change the currency to EUR
  2. Add an item to your cart; I chose 'Test Seven' (products_id=120)
  3. Checkout via the Check/Money Order payment method
  4. Go to the admin and view the order's details. While the product prices are shown in EUR, the order total values are shown in USD (the default currency).

The issue lies in /YOUR_ADMIN/orders.php, lines 596-603:
Code:
<?php
    for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) {
      echo '              <tr>' . "\n" .
           '                <td align="right" class="'. str_replace('_', '-', $order->totals[$i]['class']) . '-Text">' . $order->totals[$i]['title'] . '</td>' . "\n" .
           '                <td align="right" class="'. str_replace('_', '-', $order->totals[$i]['class']) . '-Amount">' . $currencies->format($order->totals[$i]['value'], false) . '</td>' . "\n" .
           '              </tr>' . "\n";
    }
?>
... as the default currency is being used to format the total value. To correct the issue, make the highlighted change:
Code:
<?php
    for ($i = 0, $n = sizeof($order->totals); $i < $n; $i++) {
      echo '              <tr>' . "\n" .
           '                <td align="right" class="'. str_replace('_', '-', $order->totals[$i]['class']) . '-Text">' . $order->totals[$i]['title'] . '</td>' . "\n" .
           '                <td align="right" class="'. str_replace('_', '-', $order->totals[$i]['class']) . '-Amount">' . /*-bof-c-lat9 $currencies->format($order->totals[$i]['value'], false)*/ $order->totals[$i]['text'] /*-eof-c-lat9*/ . '</td>' . "\n" .
           '              </tr>' . "\n";
    }
?>