"Si tú no trabajas por tus sueños, alguien te contratará para que trabajes por los suyos”

Steve Jobs

Afiliado
Dominios3Euros

En un proyecto que acabamos realizar ( superoliva.es ) , el cliente tiene productos que su precios que son por KILO y se venden por gramos o kilos el producto.

La solucion ideal sería hacer un plugin para virtuemart que cambiara el importe del producto una vez selecciones una cantidad de gramos.

NOTA: Nos dimos cuenta que virtuemart no permite decimales en la entrada de un pedido, tiene que ser entero.

Nuestra solución para poder vender gramos de un producto.

La solucion mas sencilla , no la ideal, pero siempre nos aptamos al presupuesto, es utilizar el plugin de trae virtuemart de campos personalizados, creamos uno de tipo cadena , y una vez guardado lo configuramos para el precio del producto se recalcule -% .

Para configurar el plugin tipo cadena para utilice un porcentaje, se hace una vez guardado el campo personalizado.

Al editarlo en el campo multiply podemos utilizar : base_productprice o base_variantprice

Este ultimo es el que utilizamos.

 configuracionPorCiento

Nosotros creamos un campo personalizado con titulo " Cantidad en gramos" donde ponemos que el modifique un % del precio

camposPorgramosCompra

De esta forma , este producto , concretamente " Platanos de canarias " ya podemos comprar 100grs,200gr,500grs o 800grs

 Si nos fijamos en la siguiente imagen, veremos que el texto que nos pone en selet es:

100grs X 0,22€

Pero realmente , el plugin por defecto pondría:

100grs -- 90%

Como podéis ver en la siguiente imagen 800gr. ese el texto real que pone el plugin.

select gramos

A continuación dicamos como hicimos para cambiar le texto de las opciones del selecte del plugin de cadena de virtuemart.

Modificar texto de select de un campo personalizado.

Realizamo override de la sublayout customfields de virtuemart, creando en nuestra plantilla el fichero nuestraplantilla/html/com_virtuemart/sublayouts/customfields.php

Este fichero es el encargado de mostrar los campos personalizados de virtuemart, es secreto esta switch, donde analiza la cadena de texto que ponemos a la hora añadir variante en el producto, tenemos que escribirlo tal cual para que no falle, a continuación ponemos todas las variante que tenemos hasta ahora:

ValorTextoNuestra explicación
-90100 grsNegativo para reste el 90% del valor de un kilo. El texto original que apareceria sin override seria: " 100 grs --90%"
-80200 grsNegativo para reste el 90% del valor de un kilo
-75250 grsNegativo para reste el 75% del valor de un kilo
-70300 grs
-65350 grs
-50500 grs
-40600 grs
-30700 grs
-25750 grs
01 KiloNo incrementamos nada, por eso ponemos 0. El texto original que apareceria es " 1 Kilo Sin cargo adicional"
201,2 KiloAhora incrementamos un 20% el precio, ya que lleva 200grs mas de un kilo... El texto original que apareceria sin override seria: " 1,2 Kilo +20%"
501,5 KiloAhora incrementamos un 50% el precio, ya que lleva 500grs mas de un kilo...
801,8 Kilo
1002 KilosAhora incrementamos un 100% el precio, ya que lleva el doble valor precio. El texto original que apreceria sin override seria: "2 Kilos +100%"
1502,5 Kilos
2003 Kilos
3004 Kilos
5506,5 Kilos
6007 Kilos
7008 Kilos
125013,5 Kilos

Estas son todas las opciones validas para ese plugin con este override para que muestre un texto formateado como queremos.

Ver codigo de override.

El codigo anterior es algo muy básico y puede ser mejorado muchísimo , pero bueno como idea creo que os vale.