MaryDey Posted November 28, 2016 Share Posted November 28, 2016 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 More sharing options...
joseantgv Posted November 29, 2016 Share Posted November 29, 2016 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 More sharing options...
MaryDey Posted November 29, 2016 Author Share Posted November 29, 2016 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 More sharing options...
w3bsolutions Posted November 29, 2016 Share Posted November 29, 2016 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. 1 Link to comment Share on other sites More sharing options...
MaryDey Posted November 29, 2016 Author Share Posted November 29, 2016 Muchisismas gracias por tu respuesta! Voy con ello! Link to comment Share on other sites More sharing options...
w3bsolutions Posted November 30, 2016 Share Posted November 30, 2016 Si te funciona recuerda marcar el hilo como Solucionado. Gracias! Link to comment Share on other sites More sharing options...
Manuel Amau Posted April 17, 2017 Share Posted April 17, 2017 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 = 15649at 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. } DbCore->displayError - [line 425 - classes/db/Db.php] - [1 Arguments] DbCore->query - [line 601 - classes/db/Db.php] - [1 Arguments] DbCore->execute - [line 1641 - classes/ObjectModel.php] - [1 Arguments] ObjectModelCore::updateMultishopTable - [line 3439 - classes/Product.php] - [3 Arguments] ProductCore->checkDefaultAttributes - [line 2332 - controllers/admin/AdminImportController.php] AdminImportControllerCore->attributeImport - [line 3507 - controllers/admin/AdminImportController.php] AdminImportControllerCore->postProcess - [line 178 - classes/controller/Controller.php] ControllerCore->run - [line 367 - classes/Dispatcher.php] DispatcherCore->dispatch - [line 58 - admin/index.php] 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 More sharing options...
estorde Posted October 16, 2018 Share Posted October 16, 2018 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 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