Carlostlr Posted April 11, 2019 Share Posted April 11, 2019 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 More sharing options...
joseantgv Posted April 11, 2019 Share Posted April 11, 2019 Porqué no utilizas combinaciones? Producto 1 - Sin extensión de garantía: 100€ Producto 1 - Con extensión de garantía: 120€ Link to comment Share on other sites More sharing options...
Carlostlr Posted April 11, 2019 Author Share Posted April 11, 2019 Lo he intentado, pero no me sirve ya que cada combinación tiene un stock propio, pero aparte de eso es necesario que las garantías sean artículos, es por eso que tiene que ser de esta forma. 1 Link to comment Share on other sites More sharing options...
Carlostlr Posted April 15, 2019 Author Share Posted April 15, 2019 Me funciona correctamente mi código, solo me falta hacer que mi código se ejecute al pulsar el botón comprar y no cuando entre en la página del artículo, por favor necesito ayuda. Un saludo. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now