Jump to content

Botones + y - que sumen diferentes cantidades en función del producto


Recommended Posts

Buenas noches:

 

En prestashop 1.6.1.1 estoy tratando de que los botones + y - que suman y restan unidades a la cantidad del producto sumen o resten diferentes cantidades en función de alguna variable/atributo asignada a cada producto.

 

Es decir, algunos productos me interesa que la cantidad se sume de 5 en cinco al pulsar el botón + y en otros productos que la cantidad se sume de uno en uno al pulsar dicho botón.

 

He accedido al archivo product.js y cambiando el valor de incremento de 1 a 5 consigo que sume de 5 en 5 desde la cantidad mínima de compra:

 

 // The button to increment the product value
    $(document).on('click', '.product_quantity_up', function(e){
        e.preventDefault();
        fieldName = $(this).data('field-qty');
        var currentVal = parseInt($('input[name=+fieldName+]').val());
        if (quantityAvailable > 0) {
                quantityAvailableT = quantityAvailable;
        } else {
                quantityAvailableT = 100000000;
        }
        if (!isNaN(currentVal) && currentVal < quantityAvailableT) {
            $('input[name=+fieldName+]').val(currentVal + 5).trigger('keyup');
        } else {
            $('input[name=+fieldName+]').val(quantityAvailableT);
        }
    });

 

Mi pregunta es la siguiente: ¿Dónde y cómo puedo definir una variable o atributo que asignadole un valor desde cada producto de la tienda lo pueda aprovechar para sumar cinco unidades o una unidad?

Es decir, necesito una variable para sustituir el 5 del código anterior por un número variable que se configure en cada producto.

 

Muchas gracias!!

 

Link to comment
Share on other sites

Gracias por la respuesta Eusebio100.

 

El tema es que "minimalQuantity" la estoy empleando para fijar el número mínimo de compra que en ambos casos es diferente a los múltimos que quiero sumar con los botones. De ahí que quiera crear una variable para tal fin.

 

¿Alguna otra idea?

 

Muchas gracias.

Link to comment
Share on other sites

El proceso es el mismo que para minimalQuantity, si tienes alguna variable que diferencie los productos que quieres sumar en una cantidad de los que quieres sumar en otra (atributos, descuentos, etc), puedes utilizar dicha variable y condiconarla; si no hay nada que diferencie unos productos de otros, tendrás que crear dicha variable.

Link to comment
Share on other sites

Solucionado.

He modificado el código de product.js para que si la cantidad mínima es inferior a 29 me sume de 1 en 1 y si la cantidad mínima es superior a 29 que sume de 5 en 5.

 

// The button to increment the product value
    $(document).on('click', '.product_quantity_up', function(e){
        e.preventDefault();
        fieldName = $(this).data('field-qty');
        var currentVal = parseInt($('input[name=+fieldName+]').val());
        if (quantityAvailable > 0) {
                quantityAvailableT = quantityAvailable;
        } else {
                quantityAvailableT = 100000000;
        }
        if (!isNaN(currentVal) && currentVal < quantityAvailableT) {
            if (minimalQuantity>29) {$('input[name=+fieldName+]').val(currentVal + 10).trigger('keyup');}
            else {$('input[name=+fieldName+]').val(currentVal + 1).trigger('keyup');}

        } else {
            $('input[name=+fieldName+]').val(quantityAvailableT);
        }
    });
     // The button to decrement the product value
    $(document).on('click', '.product_quantity_down', function(e){
        e.preventDefault();
        fieldName = $(this).data('field-qty');
        var currentVal = parseInt($('input[name=+fieldName+]').val());
        if (!isNaN(currentVal) && currentVal > 1) {
            if (minimalQuantity>29) {$('input[name=+fieldName+]').val(currentVal - 10).trigger('keyup');}
            else {$('input[name=+fieldName+]').val(currentVal - 1).trigger('keyup');}

        } else {
            $('input[name=+fieldName+]').val(1);
        }
    });

 

Espero que os ayude.

Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...