Gibt es eine Möglichkeit, mehrere Produkte durch Filtern mit der Artikelnummer zu löschen? Ich habe ungefähr 1000 Produkte, die ich löschen möchte.
12
Am schnellsten können Sie diese Abfrage direkt ausführen.
DELETE FROM `catalog_product_entity` WHERE `sku` IN ('SKU1', 'SKU2', ...., 'SKU1000');
Alles sollte schön kaskadieren. Attributwerte werden gelöscht, Kategoriebeziehungen werden gelöscht, Upsells, Crosssells und ähnliches und so weiter.
[EDIT] Das
hat einen Haken. Vielen Dank an STW, dass sie das entdeckt haben. Die Bewertungen und Bewertungen bleiben verwaist, da für sie kein Fremdschlüssel in der Produkttabelle vorhanden ist.
->delete()
, weicht jedoch jedem Code aus, der auf Ereignisse wartet. Auf Lager Magento scheint es, dass Bewertungen und Bewertungen verwaist sind (sie werden nicht gelöscht, wenn das zugehörige Produkt ist).catalog_product_entity_*
Tische haben einen FK auf dementity_id
Feld zumcatalog_product_entity.entity_id
Feld. Sie sollten schön kaskadieren.Alles aus Respekt vor Marius, aber bitte interagiere nicht direkt mit der Datenbank, wenn es überhaupt vermeidbar ist. Vielleicht werden die verknüpften Tabellen automatisch aktualisiert werden, wenn Ihre Version von Magento und alle Erweiterungen fehlerfrei in den richtigen Stellen sind. Wenn dies nicht der Fall ist, kann so etwas Ihre Website zerstören.
Stattdessen können Sie die CSV-Importfunktion von Magento verwenden.
Listen Sie einfach Ihre SKUs in einer Datei auf, einfach als:
...etc. Dann als CSV-Datei speichern.
Wählen Sie dann unter System> Importieren / Exportieren> Importieren die Option Entitätstyp: Produkte und Importverhalten: Entitäten löschen und importieren Sie diese Datei. Und das ist es!
quelle
Mage_ImportExport_Model_Import_Entity_Product::_deleteProducts()
)Sie können es programmgesteuert ausführen. Erstellen Sie eine skustodelete.csv-Datei, in der alle zu löschenden Skus aufgelistet sind. Danach folgt der Code, um fortzufahren
quelle
Der Weg ohne Code
Im Admin-Bereich unter
Manage Products
finden Sie ein Raster mit all Ihren Produkten. Es gibt eine Spalte namensSKU
. Hier können Sie Ihre Produkte nach dem Wert filtern.Nachdem Sie nach Artikelnummer gefiltert haben, können Sie über die Kontrollkästchen auf der linken Seite alle Elemente auswählen, die Sie löschen möchten.
Beachten Sie das,
select all
das alle Elemente im vollständigen Raster und auswähltselect visible
nur Elemente auf der aktuellen Seite des Rasters ausgewählt werden.Nachdem Sie die gewünschten Elemente ausgewählt haben, können Sie die Massenaktionsschaltfläche oben rechts im Raster verwenden und die Löschoption auswählen.
Dadurch werden Sie aufgefordert, sicherzustellen, dass Sie diese Elemente wirklich löschen möchten. Nachdem Sie dieses Popup mit Ja bestätigt haben, werden Ihre Elemente gelöscht. Abhängig von Ihren Indexeinstellungen müssen Sie nach diesem Vorgang möglicherweise eine erneute Indexierung durchführen.
quelle
Kevin S, können Sie Produkt von CSV-Datei löschen. Folgen Sie einfach dem Wogenschritt
Schritt 1 :
Erstellen Sie eine CSV-Datei und fügen Sie den Skus hinzu, den Sie aus dem System löschen möchten. Geben Sie den Dateinamen als skus.csv an
Schritt 2 :
Erstellen und ersetzen Sie eine PHP-Datei in Ihrem Stammverzeichnis. Dann über den folgenden Code hinaus
Hinweis: Ich habe Ihnen empfohlen, vor dem Ausführen dieses Codes die Sicherungskopie zu erstellen. Ich hoffe es wird dir helfen.
quelle
Weil Tabellen auflisten
sind Fremdschlüssel von catalog_product_entity.
Wenn Sie also einen Datensatz in catalog_product_entity löschen, werden auch einige Datensätze der obigen Tabellen gelöscht.
Code (implementiere Marius 'Antwort) lösche alle Produkte mit entity_id <= 18069:
quelle