2012-08-07 24 views
7

Ich habe versucht, eine Produktliste in Magento zu importieren. Beim ersten Test hatte ich Erfolg, aber die Produkte kamen nicht im Back- oder Front Office auf.So entfernen Sie alle Katalogprodukte in Magento

Nachdem ich den Importprozess einige Male wiederholt habe, fand ich heraus, dass ich die importierten Produkte auf der Datenbank habe, aber immer noch nicht angezeigt.

Wenn ich auf de Katalog> Kategorien verwalten> Standardkategorie -> Kategorie Produkte Ich kann die importierten Produkte sehen.

Später fand ich einen Fehler in meiner Importdatei ... und ich kann richtig Produkte

statt importieren .... Ich habe Feld in dem ‚sku‘ gefunden Konflikte ...

diese ersten Produkte werden noch nicht angezeigt, aber sie sind immer noch auf der Datenbank ...

Frage: Wie entferne ich diese Produkte, wenn ich nicht auf sie zugreifen kann ???? Darf ich das direkt in der Datenbank tun? Löschen der Zeilen kann andere Probleme verursachen?

jeder Hinweis wird geschätzt!

Magento ver. 1.7.0.1

Antwort

18

Alle Produkttabellen zurücksetzen. Achtung, unter dem Skript werden alle Ihre Produktdaten gelöscht, also tun Sie es sorgfältig.

SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `catalog_product_bundle_option`; 
TRUNCATE TABLE `catalog_product_bundle_option_value`; 
TRUNCATE TABLE `catalog_product_bundle_selection`; 
TRUNCATE TABLE `catalog_product_entity_datetime`; 
TRUNCATE TABLE `catalog_product_entity_decimal`; 
TRUNCATE TABLE `catalog_product_entity_gallery`; 
TRUNCATE TABLE `catalog_product_entity_int`; 
TRUNCATE TABLE `catalog_product_entity_media_gallery`; 
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`; 
TRUNCATE TABLE `catalog_product_entity_text`; 
TRUNCATE TABLE `catalog_product_entity_tier_price`; 
TRUNCATE TABLE `catalog_product_entity_varchar`; 
TRUNCATE TABLE `catalog_product_link`; 
TRUNCATE TABLE `catalog_product_link_attribute`; 
TRUNCATE TABLE `catalog_product_link_attribute_decimal`; 
TRUNCATE TABLE `catalog_product_link_attribute_int`; 
TRUNCATE TABLE `catalog_product_link_attribute_varchar`; 
TRUNCATE TABLE `catalog_product_link_type`; 
TRUNCATE TABLE `catalog_product_option`; 
TRUNCATE TABLE `catalog_product_option_price`; 
TRUNCATE TABLE `catalog_product_option_title`; 
TRUNCATE TABLE `catalog_product_option_type_price`; 
TRUNCATE TABLE `catalog_product_option_type_title`; 
TRUNCATE TABLE `catalog_product_option_type_value`; 
TRUNCATE TABLE `catalog_product_super_attribute`; 
TRUNCATE TABLE `catalog_product_super_attribute_label`; 
TRUNCATE TABLE `catalog_product_super_attribute_pricing`; 
TRUNCATE TABLE `catalog_product_super_link`; 
TRUNCATE TABLE `catalog_product_enabled_index`; 
TRUNCATE TABLE `catalog_product_website`; 
TRUNCATE TABLE `catalog_product_entity`; 
TRUNCATE TABLE `cataloginventory_stock`; 
TRUNCATE TABLE `cataloginventory_stock_item`; 
TRUNCATE TABLE `cataloginventory_stock_status`; 
TRUNCATE TABLE `catalog_product_link`; 
TRUNCATE TABLE `catalog_product_link_type`; 
TRUNCATE TABLE `catalog_product_option`; 
TRUNCATE TABLE `catalog_product_option_type_value`; 
TRUNCATE TABLE `catalog_product_super_attribute`; 
TRUNCATE TABLE `catalog_product_entity`; 
TRUNCATE TABLE `cataloginventory_stock`; 
TRUNCATE TABLE `catalog_category_product`; 
DELETE FROM catalog_product_flat_1; 
DELETE FROM catalog_product_flat_10; 
DELETE FROM catalog_product_flat_11; 
DELETE FROM catalog_product_flat_12; 
DELETE FROM catalog_product_flat_13; 
DELETE FROM catalog_product_flat_14; 
DELETE FROM catalog_product_flat_15; 
DELETE FROM catalog_product_flat_16; 
DELETE FROM catalog_product_flat_17; 
DELETE FROM catalog_product_flat_18; 
DELETE FROM catalog_product_flat_19; 
DELETE FROM catalog_product_flat_2; 
DELETE FROM catalog_product_flat_20; 
DELETE FROM catalog_product_flat_21; 
DELETE FROM catalog_product_flat_22; 
DELETE FROM catalog_product_flat_23; 
DELETE FROM catalog_product_flat_24; 
DELETE FROM catalog_product_flat_25; 
DELETE FROM catalog_product_flat_26; 
DELETE FROM catalog_product_flat_27; 
DELETE FROM catalog_product_flat_28; 
DELETE FROM catalog_product_flat_29; 
DELETE FROM catalog_product_flat_3; 
DELETE FROM catalog_product_flat_30; 
DELETE FROM catalog_product_flat_31; 
DELETE FROM catalog_product_flat_32; 
DELETE FROM catalog_product_flat_33; 
DELETE FROM catalog_product_flat_34; 
DELETE FROM catalog_product_flat_35; 
DELETE FROM catalog_product_flat_36; 
DELETE FROM catalog_product_flat_37; 
DELETE FROM catalog_product_flat_4; 
DELETE FROM catalog_product_flat_5; 
DELETE FROM catalog_product_flat_6; 
DELETE FROM catalog_product_flat_7; 
DELETE FROM catalog_product_flat_8; 
DELETE FROM catalog_product_flat_9; 
SET FOREIGN_KEY_CHECKS = 1; 

insert into `catalog_product_link_type`(`link_type_id`,`code`) values (1,'relation'),(2,'bundle'),(3,'super'),(4,'up_sell'),(5,'cross_sell'); 
insert into `catalog_product_link_attribute`(`product_link_attribute_id`,`link_type_id`,`product_link_attribute_code`,`data_type`) values (1,2,'qty','decimal'),(2,1,'position','int'),(3,4,'position','int'),(4,5,'position','int'),(6,1,'qty','decimal'),(7,3,'position','int'),(8,3,'qty','decimal'); 
insert into `cataloginventory_stock`(`stock_id`,`stock_name`) values (1,'Default'); 

Möglicherweise müssen Sie nach dem Ausführen der obigen Abfrage alle Indizes neu indizieren.

System > Index Management > Reindex all

http://ka.lpe.sh/2012/08/09/magento-how-to-delete-remove-all-products-from-all-categories/

Viel Spaß!

+0

thnx viel @Kalpesh Mehta es fast perfekt gearbeitet. Es hat die Produkte gereinigt, aber, auf - Katalog> Kategorien verwalten - Die Namen der Kategorie haben immer noch die Anzahl der Produkte, wie: Standard Kategorie (5) ... aber es gibt keine Produkte mit einer Kategorie verbunden –

+0

möglicherweise müssen Sie Re tun -Indexierung .. 'Admin> System> Index Management' – Kalpesh

+0

sicher, ich habe es getan, in der Tat viele Male. Und das Cache-System wurde deaktiviert, seit ich angefangen habe ... Ich testete Ihre Lösung nur in meinem localhost, noch nicht online ... –

0

Sie müssen auch hinzufügen:

TRUNCATE TABLE catalog_product_entity; 

Andernfalls werden Sie Integritätsbedingung Fehler erhalten.

+0

dies ist bereits in der anderen Antwort vorhanden, keine Notwendigkeit, es zweimal zu setzen – OSdave

0

Die Antwort von Kalpesh Mehta funktioniert einwandfrei.

Aber nachdem Sie alle Produkte, Import Haufen neuer Prodcuts entfernen und versuchen, es Admin UI zu löschen, indem Sie könnte ein Fehler wie folgt aus:

SQLSTATE [22003]: Zahlenwert außerhalb des Bereichs: 1690 BIGINT Wert ohne Vorzeichen ist in außerhalb des Bereichs '(.. magento_storeqitems_count-1)'

Also, dieser Artikel hat mir sehr geholfen: Magento deleting product BIGINT UNSIGNED value is out of range

Es p rovides mehrere Optionen Problem und die erste war in meinem Fall zu lösen:

DELETE FROM sales_flat_quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 30 DAY); 
5

löschen Produkte mit einer SQL-Abfrage nicht der Magento Weg und ich empfehle, es nicht. Dies kann zu einer Beschädigung der Datenbank oder zu Problemen mit den Fremdschlüsselindizes/-einschränkungen as stated here führen.

Jeder, der an einer korrekten, sicheren und schnellen Möglichkeit interessiert ist, Dinge in Magento zu ändern, sollte IMMER die ORM-Funktionen von Magento verwenden.

In diesem Fall wäre dies in einem PHP-Skript.

Mage::getModel('catalog/product')->getCollection()->delete(); 

Dies ist der einzig sichere Weg in Magento.

+0

Dies sollte definitiv die akzeptierte Antwort sein. –

1

Sie können alle Produkte mit Direct Sql löschen.

Bitte erstellen Sie eine Sicherungskopie Ihrer Datenbank und führen Sie die folgenden SQL-Abfragen aus.

Alle Produkttabellen zurücksetzen. Achtung, unter dem Skript werden alle Ihre Produktdaten gelöscht, also tun Sie es sorgfältig.

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `catalog_product_bundle_option`; 
TRUNCATE TABLE `catalog_product_bundle_option_value`; 
TRUNCATE TABLE `catalog_product_bundle_selection`; 
TRUNCATE TABLE `catalog_product_entity_datetime`; 
TRUNCATE TABLE `catalog_product_entity_decimal`; 
TRUNCATE TABLE `catalog_product_entity_gallery`; 
TRUNCATE TABLE `catalog_product_entity_int`; 
TRUNCATE TABLE `catalog_product_entity_media_gallery`; 
TRUNCATE TABLE `catalog_product_entity_media_gallery_value`; 
TRUNCATE TABLE `catalog_product_entity_text`; 
TRUNCATE TABLE `catalog_product_entity_tier_price`; 
TRUNCATE TABLE `catalog_product_entity_varchar`; 
TRUNCATE TABLE `catalog_product_link`; 
TRUNCATE TABLE `catalog_product_link_attribute`; 
TRUNCATE TABLE `catalog_product_link_attribute_decimal`; 
TRUNCATE TABLE `catalog_product_link_attribute_int`; 
TRUNCATE TABLE `catalog_product_link_attribute_varchar`; 
TRUNCATE TABLE `catalog_product_link_type`; 
TRUNCATE TABLE `catalog_product_option`; 
TRUNCATE TABLE `catalog_product_option_price`; 
TRUNCATE TABLE `catalog_product_option_title`; 
TRUNCATE TABLE `catalog_product_option_type_price`; 
TRUNCATE TABLE `catalog_product_option_type_title`; 
TRUNCATE TABLE `catalog_product_option_type_value`; 
TRUNCATE TABLE `catalog_product_super_attribute`; 
TRUNCATE TABLE `catalog_product_super_attribute_label`; 
TRUNCATE TABLE `catalog_product_super_attribute_pricing`; 
TRUNCATE TABLE `catalog_product_super_link`; 
TRUNCATE TABLE `catalog_product_enabled_index`; 
TRUNCATE TABLE `catalog_product_website`; 
TRUNCATE TABLE `catalog_product_entity`; 
TRUNCATE TABLE `cataloginventory_stock`; 
TRUNCATE TABLE `cataloginventory_stock_item`; 
TRUNCATE TABLE `cataloginventory_stock_status`; 
INSERT INTO `catalog_product_link_type` VALUES(1, 'relation'); 
INSERT INTO `catalog_product_link_type` VALUES(3, 'super'); 
INSERT INTO `catalog_product_link_type` VALUES(4, 'up_sell'); 
INSERT INTO `catalog_product_link_type` VALUES(5, 'cross_sell'); 
INSERT INTO `catalog_product_link_attribute` VALUES(1, 1, 'position', 'int'); 
INSERT INTO `catalog_product_link_attribute` VALUES(2, 3, 'position', 'int'); 
INSERT INTO `catalog_product_link_attribute` VALUES(3, 3, 'qty', 'decimal'); 
INSERT INTO `catalog_product_link_attribute` VALUES(4, 4, 'position', 'int'); 
INSERT INTO `catalog_product_link_attribute` VALUES(5, 5, 'position', 'int'); 
INSERT INTO `cataloginventory_stock` VALUES(1, 'Default'); 
SET FOREIGN_KEY_CHECKS = 1;` 

**Remove the Product counts from category at back-end** 

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `catalog_category_product`; 
TRUNCATE TABLE `catalog_category_product_index`; 
SET FOREIGN_KEY_CHECKS = 1;` 


**Remove the Bestseller and Most view Products at Dashboards** 

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `report_compared_product_index`; 
TRUNCATE TABLE `report_viewed_product_aggregated_daily`; 
TRUNCATE TABLE `report_viewed_product_aggregated_monthly`; 
TRUNCATE TABLE `report_viewed_product_aggregated_yearly`; 
TRUNCATE TABLE `report_viewed_product_index`; 
TRUNCATE TABLE `sales_bestsellers_aggregated_daily`; 
TRUNCATE TABLE `sales_bestsellers_aggregated_monthly`; 
TRUNCATE TABLE `sales_bestsellers_aggregated_yearly`; 
SET FOREIGN_KEY_CHECKS = 1;` 

**Flush all the flat table of products** 

`SET FOREIGN_KEY_CHECKS = 0; 
DELETE FROM catalog_product_flat_1; 
DELETE FROM catalog_product_flat_2; 
DELETE FROM catalog_product_flat_3; 
DELETE FROM catalog_product_flat_4; 
DELETE FROM catalog_product_flat_5; 
SET FOREIGN_KEY_CHECKS = 1;` 

**Remove the review and rating of products** 

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE table `rating_option_vote`; 
TRUNCATE table `rating_option_vote_aggregated`; 
TRUNCATE table `review`; 
TRUNCATE table `review_detail`; 
TRUNCATE table `review_entity_summary`; 
TRUNCATE table `review_store`; 
SET FOREIGN_KEY_CHECKS = 1;` 

**For enterprise flush the following tables** 

`SET FOREIGN_KEY_CHECKS = 0; 
TRUNCATE TABLE `catalog_category_flat_cl`; 
TRUNCATE TABLE `catalog_category_product_cat_cl`; 
TRUNCATE TABLE `catalog_category_product_index_cl`; 
TRUNCATE TABLE `catalog_product_flat_cl`; 
TRUNCATE TABLE `catalog_product_index_price_cl`; 
TRUNCATE TABLE `cataloginventory_stock_status_cl`; 
TRUNCATE TABLE `catalogsearch_fulltext_cl`; 
SET FOREIGN_KEY_CHECKS = 1;` 
0

Mit dem SQL-SQL-Skript brach ich meinen Preisindex. Dies passiert, weil wir Gruppenpreise im Shop verwenden. Folgender Fehler ist aufgetreten jedes timewhen Ich habe versucht, den Index "catalog_product_price" indizieren:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails  (`db`.`catalog_product_index_group_price`, CONSTRAINT `FK_CAT_PRD_IDX_GROUP_PRICE_ENTT_ID_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`entity_id`) REFERENCES `catalog_product_entity` (`entity_id`), query was: INSERT INTO `catalog_product_index_group_price` SELECT `gp`.`entity_id`, `cg`.`customer_group_id`, `cw`.`website_id`, MIN(IF(gp.website_id = 0, ROUND(gp.value * cwd.rate, 4), gp.value)) FROM `catalog_product_entity_group_price` AS `gp` 
INNER JOIN `customer_group` AS `cg` ON gp.all_groups = 1 OR (gp.all_groups = 0 AND gp.customer_group_id = cg.customer_group_id) 
INNER JOIN `core_website` AS `cw` ON gp.website_id = 0 OR gp.website_id = cw.website_id 
INNER JOIN `catalog_product_index_website` AS `cwd` ON cw.website_id = cwd.website_id WHERE (cw.website_id != 0) GROUP BY `gp`.`entity_id`, 
     `cg`.`customer_group_id`, 
     `cw`.`website_id` ON DUPLICATE KEY UPDATE `price` = VALUES(`price`) 

Bitte fügen Sie folgende Zeile:

TRUNCATE TABLE `catalog_product_entity_group_price`; 
Verwandte Themen