Jump to content

Borrar todas las Combinaciones de un Producto


Recommended Posts

Hola a todos/as!

 

Tengo una tienda con muchos productos, y esos productos tienen muchas combinaciones. Necesito borrar todas las combinaciones de unos productos y como no existe un boton en Prestashop para ello, alguien sabe decirme como puedo hacerlo mediante MySQL?

 

No quiero borrar los atributos desde prestashop, lo que necesito es borrarselo al producto, y no tener que hacerlo uno a uno por que son muuuchas lineas.

 

Muchas gracias, seria de gran ayuda.

Link to comment
Share on other sites

Hola a todos/as!

 

Tengo una tienda con muchos productos, y esos productos tienen muchas combinaciones. Necesito borrar todas las combinaciones de unos productos y como no existe un boton en Prestashop para ello, alguien sabe decirme como puedo hacerlo mediante MySQL?

 

No quiero borrar los atributos desde prestashop, lo que necesito es borrarselo al producto, y no tener que hacerlo uno a uno por que son muuuchas lineas.

 

Muchas gracias, seria de gran ayuda.

 

Revisa la tabla ps_product_attribute_combination.

Link to comment
Share on other sites

Muchas gracias por tu contestación, en ps_product_attribute_combination


 


Tenemos 2 columnas (id_attribute y id_product_attribute), si yo quiero borrar las combinaciones del producto con ud 120, por ejemplo, las veria de esta forma?


 


SELECT * FROM `ps_product_attribute_combination` WHERE `id_product_attribute`='120' ?

 

Pero no quiero que los atributos se borren de Prestashop, solo las combinaciones del producto (esto es muy importante... :-)

 

Gracias

Link to comment
Share on other sites

 

Muchas gracias por tu contestación, en ps_product_attribute_combination

 

Tenemos 2 columnas (id_attribute y id_product_attribute), si yo quiero borrar las combinaciones del producto con ud 120, por ejemplo, las veria de esta forma?

 

SELECT * FROM `ps_product_attribute_combination` WHERE `id_product_attribute`='120' ?
 
Pero no quiero que los atributos se borren de Prestashop, solo las combinaciones del producto (esto es muy importante... :-)
 
Gracias

 

 

Así no estarías viendo todas las combinaciones del producto con id 120. 

Esta sería la consulta para verlas:

SELECT * 
FROM ps_product_attribute_combination pac NATURAL JOIN ps_product_attribute pa 
WHERE pa.id_product = 120

Para borrar las combinaciones tendrías que borrarlas de las 2 tablas (ps_product_attribute_combination y ps_product_attribute):

DELETE pac, pa
FROM ps_product_attribute_combination pac NATURAL JOIN ps_product_attribute pa 
WHERE pa.id_product = 120

Así no estarías borrando los atributos en sí, puesto que se guardan en ps_attribute. 

 

Saludos.

  • Like 1
Link to comment
Share on other sites

  • 4 months later...

Hola, yo hice lo recomendado w3bsolutions y efectivamente ya no aparecían en el FO las combinaciones y en el BO tampoco. Extrañamente se mostraba en cantidades del producto la suma de todo lo que sumaban las combinaciones (valga la redundancia) y el precio aparecía correcto en el BO pero en el FO aparecía incrementado con el impacto de una de las combinaciones. Es como si algo se quedara aún por ahí. Lo de las cantidades lo resolví actualizando a 0 desde el BO en Productos -> Cantidades. Lo del precio no se como arreglarlo.

 

Luego de haber eliminado las combinaciones de dicho producto pasé a realizar una nueva carga de combinaciones vía importación de CSV y cuando apreté el boton importar segundo después me salió esto:

 

[PrestaShopDatabaseException]

Duplicate entry '3-1-1' for key 'id_product'
 

UPDATE ps_product_attribute a
                 INNER JOIN ps_product_attribute_shop product_attribute_shop
        ON (product_attribute_shop.id_product_attribute = a.id_product_attribute AND product_attribute_shop.id_shop = 1)
                SET a.default_on = '1', product_attribute_shop.default_on = '1' WHERE a.id_product_attribute = 15649

at line 791 in file classes/db/Db.php

 

786. if ($webservice_call && $errno) {
787. $dbg = debug_backtrace();
788. WebserviceRequest::getInstance()->setError(500, '
 '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);
789. } elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) {
790. if ($sql) {
791. throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');
792. }
793.
794. throw new PrestaShopDatabaseException($this->getMsgError());
795. }
796. }

 

Bueno en este momento estoy en shock pero se que todo tiene solución. Quizá me pasé algo por alto?

Gracias por la respuesta que me puedas dar.

Link to comment
Share on other sites

  • 1 year later...

Buenas,

He encontrado este hilo, tratando de encontrar una solución para Borrar todas las combinaciones de todos los productos.

SELECT * FROM satun_product_attribute_combination pac NATURAL JOIN satun_product_attribute pa
DELETE pac, pa FROM satun_product_attribute_combination pac NATURAL JOIN satun_product_attribute pa
WHERE pa.id_product = *

Sin embargo al intentar realizar la siguiente consulta SQL en mi Prestashop 1.7.3 me sale el siguiente error:
"DELETE" es una palabra reservada.

Seguro que estaré escribiendo algo mal en la orden, porque mis conocimientos de SQL son limitados.

Alguien podría ayudarme a crear la orden correcta para poder borrar todas las combinaciones y dejar todos mis productos como productos simples por favor?

En realidad los productos son simples, pero de alguna manera al importarlos de manera masiva en la nueva instalación de PS los ha traído con la casilla de Producto con combinaciones activada y es lo que quiero corregir. 

Muchas gracias

Captura de pantalla 2018-10-16 a las 18.12.01.png

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...