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.
(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:
- Change the currency to EUR
- Add an item to your cart; I chose 'Test Seven' (products_id=120)
- Checkout via the Check/Money Order payment method
- 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";
}
?>
Bookmarks