Hosting Joomla - Alojamiento para Joomla, blog y vídeos Joomla

NEW YORK +1.888.815.4203 BARCELONA +34.902.009.386
Sábado, 17 de Diciembre de 2011 17:50

Modificar precio en la ficha de producto de Virtuemart al aplicar un atributo con sobrecostes

por  pablo
Vota este articulo
(0 votos)

precio sobrecostes virtuemartEn Virtuemart disponemos de la opción de aplicar un sobrecoste o un descuento a un producto por medio de los atributos. Cuando aplicamos seleccionamos un valor de un atributo con sobrecostes veremos en el propio atributo el sobrecoste que se va a aplicar, pero una vez seleccionado el usuario no verá en el precio que se muestra en la vista detallada del producto el total resultante, sino que será necesario agregar el producto al carro para ver el precio final.

Existe la opción de poder actualizar automáticamente el precio de la ficha del producto cuando se selecciona un atributo con sobrecostes realizando un cambio en el código de la vista detallada del producto, concretamente agregando un código javascript.

Para ello deberemos editar el archivo components/com_virtuemart/themes/NOMBRE_TEMA/templates/product_details/NOMBRE_TEMPLATE.php, en donde NOMBRE_TEMA es el nombre del tema (plantilla) de Virtuemart que estamos usando y NOMBRE_TEMPLATE es el nombre de la plantilla de la vista detallada de producto que hemos seleccionado. Para obtener el nombre del tema de Virtuemart deberemos entrar en el apartado Configuración de la administración de Virtuemart y pulsar en la pestaña Sitio. En el parámetro Seleccione un tema para su tienda veremos el tema que estamos utilizando. Si no hemos instalado ningún tema adicional en nuestra tienda, este sería default. Para averiguar el nombre de la plantilla de la vista detallada de producto deberemos editar la categoría de productos de Virtuemart a la que pertenece el artículo con sobrecostes y mirar en el campo Categoría Detallada.

Si, por ejemplo el nombre del tema de Virtuemart es ja-zeolite y el nombre de la plantilla de la vista detallada es webempresa_details.tpl, el nombre del archivo a editar sería components/com_virtuemart/themes/ja-zeolite/templates/product_details/webempresa_details.tpl.php.

Una vez que hayamos editado el archivo, tendremos que colocar el siguiente código al principio del archivo:

<script type="text/javascript">
window.addEvent('domready', function() {
var vmStr= $('vmMainPage').getElement('.productPrice');
var Box=$$('.vmAttribChildDetail select');
var vmPrice= vmStr.innerHTML;
sumBox();
Box.addEvent('change', function() {
sumBox();
});

function redondea(sVal, nDec){
var n = parseFloat(sVal);
var s = "0.00";
if (!isNaN(n)){
n = Math.round(n * Math.pow(10, nDec)) / Math.pow(10, nDec);
s = String(n);
s += (s.indexOf(".") == -1? ".": "") + String(Math.pow(10, nDec)).substr(1);
s = s.substr(0, s.indexOf(".") + nDec + 1);
}
return s;
}

function strNum(x) {
var r = "";
for(var n=0; n<x.length; n++) {
var base= x.charAt(n);
if (base!=' '&&isNaN(base)==false||base==',')
r = r + base;
}
r = redondea(parseFloat(r.replace(/,/g,".")), 2);
return r;
}
function strPrice(x) {
x = x.toString();
var y = x.charAt(0);
for(var n=1; n<x.length; n++) {
if (Math.ceil((x.length-n)/3) == (x.length-n)/3) y = y + " ";
y = y + x.charAt(n);
}
y = y.replace(" ", "");
y = y.replace(".", ",");
return y;
}
function adPrice(x) {
var add=x.options[x.selectedIndex].innerHTML;
var n=add.lastIndexOf("(");
if(n==-1) {
return 0;
} else {
var operand=add.slice(n+1,n+2);
return operand+strNum(add.slice(n));
}
}
function sumBox() {
var price=strNum(vmPrice);
for(var n=0; n<Box.length; n++) {
price=eval(price+adPrice(Box[n]));
}
price = redondea(price, 2);
vmStr.innerHTML=vmPrice.replace(strPrice(strNum(vmPrice)), strPrice(price));
}
});
</script>

Podemos descargar el código pulsando AQUÍ.

Tras guardar los cambios veremos que en la ficha del producto se actualiza automáticamente el precio al cambiar el atributo con sobrecostes.

Hay que tener en cuenta que para que esto funcione correctamente es necesario cumplir con una serie de requisitos. Por una parte, en la Configuración de Virtuemart, concretamente en la primera pestaña Global, deberemos de tener desactivado el parámetro ¿Mostrar "(incluyendo XX% IVA)" cuando sea aplicable?. Además dentro de la opción Editar Tienda deberemos asegurarnos de que el valor del parámetro Símbolo de decimales sea la coma. Estos cambios se han probado sobre Virtuemart 1.1.9, por lo que no se puede garantizar su funcionamiento con otras versiones. Además, tampoco se puede asegurar que funciona para todos los temas de Virtuemart que se puedan utilizar, ya que la forma de actuar del código javascript depende del nombre de algunas etiquetas utilizadas en la ficha del producto.

Otro detalle a tener en cuenta es que este sistema solo funciona cuando se aplican sobrecostes positivos o negativos, pero no cuando se fija un precio con el atributo. Por ejemplo, funcionaría con un sobrecoste +10 o -10, pero no con uno =10.

Para realizar esta entrada, hemos partido del siguiente artículo, de donde hemos cogido el código y hemos aplicado una serie de cambios para que funcione utilizando la coma de separador decimal y que no sea necesario agregar sobrecostes a todos los atributos.

Hemos preparado un video tutorial donde se puede ver más detalladamente los cambios que hay que aplicar.

Ultima modificacion el Sábado, 17 de Diciembre de 2011 18:22

¡Descubre nuestros Packs!


Pack Tienda Joomla

Pack Empresa Joomla

Pack Periódico o Revista Joomla

Testimonios de Clientes

Buscador Joomla

Cargando...

Webempresa en Facebook

Quieres estar al día en Joomla?
Haz clic en "Me gusta"


Canales Webempresa

Twitter_Facebook_Youtube_Feed_

Notícias Joomla en tu Email

noticias Joomla
Suscríbete Ahora!
Código:
Joomla : Hosting Joomla - Alo

Artículos en tu lector RSS

Suscríbete a nuestro Feed RSS

Servicios que ofrecemos para Joomla :
Hosting JoomlaHosting Joomla
Servidores Joomla especializados.
Soporte Joomla 24x7x365
hosting_joomla Reseller Joomla
Especial para Diseñadores Joomla. Olvídate del Hosting de tus Clientes
ayuda JoomlaAprende Joomla
Formación en Joomla 2.5, Virtuemart 2.0 y de las extensiones más populares
Desarrollo JoomlaPacks Joomla
Múltiples diseños profesionales.
Tu Web Joomla por 299€