Moneda múltiple en Virtuemart

31 Ene

Virtuemart permite trabajar con múltiples monedas. El funcionamiento es correcto, excepto cuando se visualiza el detalle de las órdenes, tanto por el usuario desde el front-end, como por los administradores desde el back-end.

El sistema guarda el pedido con los datos de la moneda con los que se efectuó la compra, pero cuando se despliega el pedido, los valores aparecen con la moneda de la compra, pero el símbolo de moneda es siempre $. Esto es confuso para los administradores del sitio, que no saben si por ejemplo la compra se realizó con Euros o con Dólares, ya que el símbolo es en todos los casos es $.

Para solucionar este problema, y que se muestre la moneda correcta con que se realizó la compra, los pasos a seguir son los siguientes:

1. Para el front-end:

Editar el archivo account.order_details.tpl.php en
components/com_virtuemart/themes/default/templates/pages/ (default o la plantilla que estemos utilizando)

Allí, se deberán buscar las líneas que contienen “$CURRENCY_DISPLAY” por ejemplo:

echo $CURRENCY_DISPLAY->getFullValue($item_price, ”, $db->f(‘order_currency’));

Esas líneas, las sustituiremos por echo $db->f(‘order_currency’).” “.$item_price; o lo que corresponda según lo que se está imprimiendo. Lo que hace esta línea es imprimir la moneda con “$db->f(‘order_currency’)” , y luego imprimir el valor a mostrar, en este caso el precio del producto $item_price.

2. Para el back-end:

a. Para que aparezca la moneda en el listado de pedidos, vamos a editar el archivo order.order_list.php que se encuentra en administrator/components/com_virtuemart/html .  Se deberá buscar la línea

$listObj->addCell( $GLOBALS[‘CURRENCY_DISPLAY’]->getFullValue($db->f(“order_total”), ”, $db->f(‘order_currency’)));

y sustituirla por

$listObj->addCell( $db->f(‘order_currency’).” “.$db->f(“order_total”));
b. En el detalle de Pedido, mi solución fue desplegar la Moneda dentro del listado. Para ello, en el archivo order.order_print.php dentro de
/administrator/components/com_virtuemart/html  se debe agregar el siguiente código en la línea 93 en mi caso, o en lugar que se desee dentro de la página:

<tr>
<td><strong><?php echo “Moneda” ?>:</strong></td>
<td><?php echo $db->f(‘order_currency’); ?></td>
</tr>

Espero que les sea de utilidad. Realmente hay poca información sobre este tema en los foros!

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: