Shopware 5 - defekte Varianten entfernen

Es kann in Shopware 5 aufgrund fehlender Validierung im Import / Export passieren, dass "defekte" Varianten angelegt werden. Also Varianten, denen die korrekte Zuordnung zu ihrem Elternartikel fehlt.

Ihr merkt dies beispielsweise, wenn ihr in der Produktübersicht die Variantenanzeige per Checkbox aktiviert, dann auf eine Variante klickt, anstatt auf die angezeigte Variante zu gelangen aber immer zum Artikel-Formular eines anderen (Haupt-)Artikel geleitet werdet.

Shopware scheint das Problem zu kennen und hat hier einige nützliche Skripte bereitgestellt:
https://docs.shopware.com/de/shopware-5-de/tutorials-und-faq/sql-tipps-t...

** ACHTUNG: Folgendes ist nur für Entwickler, auf eigene Gefahr gedacht. Denkt an ein Backup und Tests! **

In unserem Fall genügten die von Shopware bereitgestellten Scripte nicht, um alle Fälle abzudecken. Es verblieben Varianten in der Detail-Tabelle mit "d.kind=2" (also Kindartikel), aufgrund eines fehlenden a.configurator_set_id (=NULL) konnten diese aber nicht mehr korrekt zugeordnet werden.

Daher haben wir folgendes Skript verwendet, um alle Variantenartikel zu löschen, deren Elternartikel keinem configurator_set zugeordnet ist! Nur Elternartikel und korrekte Varianten bleiben erhalten!

Hier das Script, wie gesagt - nur zum Test und auf eigene Gefahr, aber hoffentlich hilfreich:

DELETE d, at
-- SELECT d.*,at.*
FROM s_articles_details d
JOIN s_articles a ON d.articleID = a.id AND a.configurator_set_id IS NULL
JOIN s_articles_attributes as at ON d.id = at.articledetailsID
LEFT JOIN s_article_configurator_option_relations cr ON cr.article_id = d.id
WHERE cr.id IS NULL AND d.articleID = a.id and d.kind = 2;

Kommentare

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.

Weitere Informationen über Formatierungsoptionen