Configurar el mismo producto y variar precio segun peso

radge

Nuevo usuario
Buenas estoy haciendo pruebas de como introducir un mismo articulo (café) dependiendo del peso.

Es decir el mismo producto debe tener 1 opción configurable por el usuario que debe ser el peso ,y tendrá 4 opciones :

-100g
-250g
-500g
-1000g

He probado a crear un producto simple (simple product) y le añado un atributo en custom options , que es el peso con un desplegable que el usuario escoje.



El funcionamiento para mi es correcto , lo que no me gusta que a la hora de mostrar el producto sale algo como esto , sale el peso y el incremento de precio , si solo saliese el peso sin el incremento ya me iria bien.



Como me recomendais crear el producto ? gracias radge
 
Última edición:

OSdave

Super Moderador
Miembro del equipo
yo crearía 4 productos simples y los agruparia en un configurable.
para que no aparezca el suplemento de precio tendras que editar el codigo, pero no sé donde, no se donde se gestionan los atributos.
 

Larry

Miembro
Desde los mismos productos configurables puedes crear los productos simples. Aunque mi recomendacion es que crees un producto simple, y luego lo dupliques el numero de veces necesarias segun la variedad de tu atributo en cuestion, es decir, si tienes un atributo con 15 opciones lo duplicas 15 veces y simplemente cambias la opcion del atributo en ceustion. De este modo luego cuando crees el producto configurable, seleccionaras el atributo por lo que quieres hacer el desplegable, y en la ultoma opcion dentro de la configuracion simplemente tendras que marcar los 15 productos creados, canviando si deseas el valor segun la opcion.

El resultado seria este:
 

Adjuntos

radge

Nuevo usuario
Un caso práctico.

En mi caso el producto es siempre el mismo el único atributo que cambia es el PESO , asi que cojo un producto simple y le pongo weight (atributo por defecto de magento) le pongo 100.

Duplico el producto con peso 200 , otro con peso 500 y otro con peso 1000.


Luego intento agrupar estos 4 productos simples en 1 producto configurable , creo un producto nuevo configurable pero me aparecen todas las casillos en blanco , no veo como relacionar los productos creados anteriormente.




El proceso deberia ser este no ?

salu2 radge
 

Larry

Miembro
Asi es, el procedimiento es este. Lo que te falta es simplemente seleccionar los productos en tu producto configurable. Para ello solo tienes que seguir estos pasos.

1.- Creas un producto configurable.
2.- Seleccionas el atributo que ara que aparezca tu seleccion en el frontend.
3.- Vas al boton de Productos Asociados en el menu Izquierdo.
4.- En la parrila inferior seleccionas los 4 productos simples que has creado. Para seleccionarlos simplemente pulsas el check. veras que los que vas marcando se suben arriba de la parrilla.
5.- Configuras los precios en la parrila que se te habra generado arriba, tal como te he comentado antes.
6.- Guardas y listo.

Comentarte que para un buen funcionamiento, todos los productos, tanto como los imples y los configurables deben tener stock y estar habilitados. Otra cosa importante es que los productos simples no tienen que estar a la busqueda del catalogo ni el frontend, solamente es el producto configurable el que tiene que tener estas caracteriticas. Estos campos los encontraras en el boton general.

Si tienes cualquier otra duda, pregunta :D.
 

radge

Nuevo usuario
Ok repaso todos los comentarios de todas formas sigo sin entender porque si tengo 100 productos debo crear 400.

Porque es el mismo producto con los mismos atributos pero solo variando el peso , por eso lo encuentro una matada introducir 400 articulos y después agruparlos.

salu2 radge
 

OSdave

Super Moderador
Miembro del equipo
así puedes tener un control del stock de lo que vendes realmente. Es el mismo cafe que hay en los 4 paquetes, pero en tu stock necesitas saber si vendes uno de 100gr o uno de 200gr.
De todas formas, es tu tienda, tu decides como quieres que funcione.
 

Larry

Miembro
Como dice OSdave esta es la forma de llevar un control real de tu stock, pues de esta forma sabras los productos que realmente te quedan de ese peso. Si lo que deseas es simplemente tener un producto simple con las opciones, tal y como muestras en tu primer post, simplemene tendras que modificar el phtml que hace referencia a los productos, de forma que en vez de que et aparezca el incremento de precio segun peso, te salga directamente el prefio final (el inicial mas la suma del peso añadido). De este modo no tendras un control total de stock, pero como tu dices te ahorraras de poner 400 articulos.

El phtml seguramente se encontrara dentro de app/design/frontend/tu_template/tu_template/template/catalog/product/view
Tu decides.
 
Última edición:

radge

Nuevo usuario
A ver mi caso es el siguiente , yo tengo un barril de 100 kilos de café y el cliente elegirá si quiere 100 , 250 , 500 o 1000g , es decir todo saldrá del mismo sitio y no deseo llevar stock.

En este caso entonces es más facil hacer esto no ? Crear el producto y como atributo el peso no ?

Lo de modificar el phtml me estoy peleando con el sin éxito.

salu2 radge
 

Larry

Miembro
Si esa es tu forma con la que vas a tratar tus productos, hazlo asi. POrque no pruebas de modificar el drop-down por otro tipo de forma de mostrar las opciones? a ver si tambien te sale con la diferencia sumada o no.
 

radge

Nuevo usuario
Si esa es tu forma con la que vas a tratar tus productos, hazlo asi. POrque no pruebas de modificar el drop-down por otro tipo de forma de mostrar las opciones? a ver si tambien te sale con la diferencia sumada o no.


En eso estoy pero la verdad no se como hacerlo estoy mirando en el foro yankee y demás , a ver si os puedo decir algo lo antes posible.

salu2 radge
 

Larry

Miembro
El phtml que tienes que mirar es:

app/design/frontend/tu_template/tu_template/template/catalog/product/view/options.phtml

Ahora falta destriparlo un poco y ver como el codigo guarda en el array de opciones lo que te aparece en el frontend. Si veo como modificarlo te dire algo.

Suerte.

Jejeje, he encontrado algo mas que puede que sea la clave, alomejor Osdave puede ayudarte mas en esto, creo que estoy bastante cerca.

En la carpeta js/varien/product.js mira el siguiente codigo:

PHP:
getOptionLabel: function(option, price){
        var price = parseFloat(price);
        var str = option.label;
        if(price){
            str+= ' (' + this.formatPrice(price, true) + ')';
        }
        return str;
    },

    formatPrice: function(price, showSign){
        var str = '';
        price = parseFloat(price);
        if(showSign){
            if(price<0){
                str+= '-';
                price = -price;
            }
            else{
                str+= '+';
            }
        }
esta es la funcion que genera el formato del drop down de tu producto. si en vez de mostrarlo asi, pudieras solamente mostrar el precio que le pusistes en la casilla a la hora de crear las opciones, ya lo tendrias.

Hasta aqui puedo leer, XD mis conocimientos de javascript son algo limitados. Mucha suerte.
 
Última edición:

radge

Nuevo usuario
PHP:
    getOptionLabel: function(option, price){
        var price = parseFloat(price);
        if (this.taxConfig.includeTax) {
            var tax = price / (100 + this.taxConfig.defaultTax)
                         * this.taxConfig.defaultTax;
            var excl = price - tax;
            var incl = excl*(1+(this.taxConfig.currentTax/100));
        } else {
            var tax = price * (this.taxConfig.currentTax / 100);
            var excl = price;
            var incl = excl + tax;
        }

        if (this.taxConfig.showIncludeTax || this.taxConfig.showBothPrices) {
            price = incl;
        } else {
            price = excl;
        }

        var str = option.label;
        if(price){
            if (this.taxConfig.showBothPrices) {
                str+= ' ' + this.formatPrice(excl, true) +
               ' (' + this.formatPrice(price, true) + ' ' 
                + this.taxConfig.inclTaxTitle + ')';
            } else {
                str+= ' ' + this.formatPrice(price, true);
            }
        }
        return str;
    },

    formatPrice: function(price, showSign){
        var str = '';
        price = parseFloat(price);
        if(showSign){
            if(price<0){
                str+= '-';
                price = -price;
            }
            else{
                str+= '+';
            }
        }

Yo tengo este codigo un poco más extenso , uso magento 1.2.1 me estoy peleando con el JS en cuanto sepa algo os sigo contando por aquí.

Larry gracias por el aporte.


He mirado el codigo HTML que produce una de mis páginas de producto y veo lo siguiente

PHP:
<select name="options[8]" id="select_8"
class=" required-entry product-custom-option"
 title="" onchange="opConfig.reloadPrice()">
<option value="">-- Por favor, seleccione --</option>
<option value="29">100g </option>
<option value="30">250g +€ 8,37</option>
<option value="31">500g +€ 22,32</option>
<option value="32">1Kg +€ 50,22</option></select>
No veo que función JS llama para crear los "value" del select.

salu2 radge
 
Última edición:
Arriba