articleID in s_articles_attributes

Hallo,
wir sind gerade beim Updaten und Anpassen unserer Plugins für Shopware > 5.4.

Anfangs dachte ich, es ist ein Fehler in meinen Plugins, aber das scheint es nicht zu sein. In der Tabelle s_articles_attributes wird in neueren Versionen keine articleID mehr eingetragen. Mit der aktuellen Version 5.5.1 habe ich gerade nocheinmal getestet, sie bleibt wirklich leer.

Warum ist das so? Warum wurde die Spalte dann nicht komplett entfernt?

Die Spalte macht ohnehin keinen Sinn, da die ID der Artikelvarianten eindeutig sein muss und dadurch zur Identifizierung ausreicht.

s_articles_details.id -> s_articles_attributes.articledetailsID

Theoretisch wäre das bei einigen Tabellen mehr der Fall, so z.B. auch in s_articles_prices.

Vermutlich wurde die Spalte noch nicht entfernt, um den Usern beim Update nicht zuzumuten, dass alte Plugins plötzlich SQL-Fehler werfen, sondern lediglich keine Ergebnisse mehr bringen weil keine Zuordnungen mehr existieren, das ist aber nur spekulation.

 

Wenn ich für ein Produkt (s_article) alle Attribute (s_articles_attributes) sehen will, macht diese Spalte schon Sinn. 

Der Shopware-Core befüllt diese bereits seit einigen Versionen nicht mehr, daher sollte man diese für eigene Logiken nicht mehr nutzen.

@gezeichnet‍

Nein das macht eben keinen Sinn, da du bei einem Abgleich nur über die Spalte articleID keinerlei Zuordnung zu einem realen Artikel hast, sondern nur zum Oberbegriff dessen.

Ein Produkt ist es erst, wenn die Artikelvariante, also der Eintrag in s_articles_details dazukommt und auch erst dann verfügt der jeweilige Artikel jeweils über Attribute.

Um einfach alle Attribute aller Varianten auszulesen kannst du ja trotzdem über s_articles nach s_articles_details und dann auf s_articles_attributes joinen, das frisst nicht viel Leistung und ist der einzig richtige Weg.

 

2 Likes