Jump to content

Recommended Posts

Buenos a todos.

Estoy tratando de añadir a mi tienda que los clientes puedan añadir garantías a sus productos, para ello estoy utilizando un módulo de venta cruzada en el que tengo productos virtuales que son las garantías.

Para asociar estas garantías a cada artículo al que pertenece, los productos garantías tienen un campo de personalización.

 Mediante el siguiente código hago que se guarde la personalización en la base de datos y cuando lo añada al carrito coja esa referencia.

foreach($accessories as $accesorie)

        {

            // Hace una consulta para sacar el id de customizacion de los productos personalizables

            $idCustom = Db::getInstance()->executeS(

                'SELECT id_customization_field

                FROM ps_customization_field

                WHERE id_product = "'.$accesorie[id_product].'"');

           

            // Hace una consulta para sacar el valor de la columna que tenga el index y el valor indicado para comprobar si existe o no

            $repeat = Db::getInstance()->executeS(

                'SELECT `value`

                FROM `ps_customized_data`

                where value = "'.$params[product][reference].'"

                AND `ps_customized_data`.`index` = "'.$idCustom[0][id_customization_field].'"');



            // Pasamos los parámetros (la id del producto de garantía, el id del producto customizable, tipo 1 que es algo genérico,

            // el valor de personalización que es la referencia del producto padre)

            $this->context->cart->addTextFieldToProduct($accesorie[id_product], $idCustom[0][id_customization_field], 1, $params[product][reference]);

        }

 

Todo funciona correctamente hasta que añada otra garantía para otro producto, al hacer esto en vez de tener dos artículos garantía cada uno con su referencia en el carrito se suman y me aparecen las dos referencias juntas.

He comprobado en la base de datos que al entrar al producto que tiene esas garantías añade los campos a la bbdd y al añadirlo al carrito vuelve a crear los campos nuevos, he probado a que borre los antiguos y deje solo los nuevos, pero no funciona, en el carrito ya no sale ninguna personalización. Por favor alguien que me ayude a solucionarlo y que aparezcan por separado y no los sume.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...