Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/03/2012, 19:44
meteoro0971
 
Fecha de Ingreso: marzo-2012
Mensajes: 1
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Virtuemart - Un vendedor, dos monedas

Estuve buscando en todo internet y realmente este post es muy util pues no se encuentra solucion mas que aquí: http://forum.virtuemart.net/index.php?topic=62847.0 . El problema es que esta en ingles y un ingles que seguramente no es el idioma nativo de quien publico la respuesta pues no se entiende muy bien. Estuve leyendo atentamente y probando en Joomla 1.5 con Virtuemart 1.1.9 y aca les paso la traducción al español intentando explicar lo mejor posible:

Paso a explicar en español:
Para poder tener dos monedas en Virtuemart (o la cantidad de monedas que quieran), hay que modificar 2 archivos (siempre realizar una copia de seguridad de los archivos):
1) ps_product.php en el directorio /administrator/components/com_virtuemart/classes/
y
2) price.tpl.php en el directorio /components/com_virtuemart/themes/default/templates/common/
1) Vamos primero con la modificación de ps_product.php:
Con un editor buscar: convert(
La primer línea (en mi caso) que encontramos es la 1461
$url = str_replace( basename( $url ), $GLOBALS['VM_LANG']->convert(basename($url)), $url );
Esta linea dejarla como esta (no modificar)
Todas las siguientes hay que modificarlas, a saber:
1) $value_notax = $GLOBALS['CURRENCY']->convert( $modifier, $product_currency );
Cambiar por:
$value_notax = $modifier ; //$GLOBALS['CURRENCY']->convert( $modifier, $product_currency );

2) $discount_info["amount"] = $GLOBALS['CURRENCY']->convert($discount_info["amount"]);
Cambiar por:
$discount_info["amount"] = $discount_info["amount"]; //$GLOBALS['CURRENCY']->convert($discount_info["amount"]);
3) $price = $base_price = $GLOBALS['CURRENCY']->convert( $base_price_info["product_price"], $price_info['product_currency'] );
Cambiar por:
$price = $base_price = $base_price_info["product_price"]; //$GLOBALS['CURRENCY']->convert( $base_price_info["product_price"], $price_info['product_currency'] );

4) $base_price = $GLOBALS['CURRENCY']->convert( $base_price_info["product_price"], $price_info['product_currency'] );
Cambiar por:
$base_price = $base_price_info["product_price"]; //$GLOBALS['CURRENCY']->convert( $base_price_info["product_price"], $price_info['product_currency'] );

5) $price = $GLOBALS['CURRENCY']->convert( $price_info["product_price"], $price_info['product_currency'] );
Cambiar por:
$price = $price_info["product_price"]; //$GLOBALS['CURRENCY']->convert( $price_info["product_price"], $price_info['product_currency'] );

6) $price = $GLOBALS['CURRENCY']->convert( $db->f("product_price"), $db->f("product_currency") );
Cambiar por:
$price = $db->f("product_price");//$GLOBALS['CURRENCY']->convert( $db->f("product_price"), $db->f("product_currency") );


2)Ahora a modificar price.tpl.php

Buscar la línea con esta leyenda (en mi caso es la línea 26)
<?php echo $CURRENCY_DISPLAY->getFullValue($base_price) ?>
Agregar las siguientes lineas (antes y despues), observer que la linea original esta en negrita y también ha sido modificada

<?php $tmptmp = $CURRENCY_DISPLAY->symbol;
if ($price_info['product_currency'] != "ARS")
$CURRENCY_DISPLAY->symbol = $price_info['product_currency'];
echo $CURRENCY_DISPLAY->getFullValue($base_price);
$CURRENCY_DISPLAY->symbol = $tmptmp; ?>

Con todas estas modificaciones , si estan bien hechas, tendrias que poder ver en tu sitio virtuemart, cada producto en la moneda en la que ha sido publicado, Ej: si publicaste un producto en pesos argentinos, debería aparecer ARS XXXX.XX, si lo publicaste en euros, aparecerá E XXXX.XX …. PEEEERO, si lo publicaste en dólares, aparece el símbolo “ $ “ (sin las comillas por su puesto). Y esto porqueeee ¿?? Bueno no se pero si encontré en internet como modificar virtuemart para que las publicaciones en dólares se vean como USD que seria lo lógico (queremos saber en que moneda esta publicado el producto y no suponer siempre que “ $ “ significa dólares.
Esta info la saque de : http://forum.virtuemart.net/index.php?topic=62847.0
Como cambiar el símbolo de “$” a “USD” (o el que quieran) en Virtuemart:
Deberan modificar el archivo administrator > components > com_virtuemart > classes > currency > class_currency_display.php
En mi caso la modificación a implementar esta en la línea 131
case 'USD': $this->symbol='$';break;
Cambiar por:
case 'USD': $this->symbol='USD ';break;
Recordar poner el espacio luego de “USD” para que les aparezca un espacio entre USD y el importe en numeros.