Hallo! Ich habe beobachtet, dass Artikel-Kategorie Zuweisungen über die API irgendwie verursachen, dass die Verweise zwar richtig in der s_articles_categories enthalten sind, aber die Verweise in s_articles_categories_ro nicht unbedingt passen und offensichtlich ein paar Fehler mit sich ziehen. Die Artikel wurden deswegen nicht in den passenden Kategorien angezeigt (in den Artikel-Calls habe ich die Kategorien über id im categories array zugewiesen, wie in den Beispielen). Erst nachdem ich manuell den Kategoriebaum neu aufgebaut habe, passten die Zuweisungen im Frontend. Den allgemeinen Cache leeren an sich hatte nichts bewirkt Bis zum manuellen Aufbau wurden Artikel sogar noch in Kategorien angezeigt, die nichtmal als Verweis im Backend sichtbar waren. Meine Frage deswegen ob das irgendwie vermeidbar/lösbar ist, oder ob irgendwie schlank und eingänglich der Kategoriebaum neu aufgebaut werden kann. Weil, laut Wiki gibt es eigentlich nicht mehr Magie als $article['categories'] = array( array( 'id' =\> 123 ) );
welches wie gesagt prinzipiell übertragen wird, aber nicht korrekt im Kategoriebaum präsentiert wird. Komischerweise tritt das Problem bei manuell zugewiesenen Artikel definitiv nicht auf, konnte ich jetzt nur bei den API-verweisen feststellen … Und, die Artikel werden im Backend in den richtigen Kategorien angezeigt, die fehlerhafte Anzeige gibt es anscheinend nur im Frontend. Schöne Grüße, Niklas
Warum die Fehler in der API auftauchen, kann ich dir nicht sagen. Aber du könntest den Baum einfach neu generieren lassen: $component = Shopware()-\>CategoryDenormalization(); $component-\>rebuildCategoryPath( $categoryId );
Dabei sollten alle Fehler korrigiert werden. Viele Grüße
Hallo Aquatuning, Danke für die Idee - die Zeilen haben für diesen Workaround aber leider nicht ausgereicht. Da hat sich an der … _ro Tabelle nichts geändert. Mit ein paar Erweiterung hat es aber funktioniert: $component = Shopware()-\>CategoryDenormalization(); $component-\>rebuildCategoryPath(); $component-\>removeAllAssignments(); $component-\>rebuildAllAssignments(null, 0);
Aber - das ist keine wirklich gute Lösung, ein Neuaufbau bei jeder Artikelübertragung - gar nicht gut … gerade weil das ja schon einmal funktionierte. Ich habe jetzt geguckt was der Shop eigentlich macht, wenn ein Artikel gespeichert wird - da klappt es ja. Und zwar wird dem Model eine Liste mit Kategorie-Models übergeben, welches danach dann geflushed wird. Wenn ich diesen Weg gehe (also Artikel-Model über das Repository laden) und dem Model eine Liste mit Kategorie-Models (NICHT Ids!) übergebe klappt alles: Die Anzeige im Backend, die DB-Struktur (bei jedem flush werden die Eitnräge beu aufgebaut, da muss ich vielleicht noch vergleichen ob sich was geändert hat um das zu vermeiden) und die Anzeige im Frontend. Das heisst - da existiert definitiv ein Fehler bei der Übertragung der Kategorie-Verweise über IDs im Artikelupdate und create der API ab 4.2.1. Ich habe das Problem im jira issue-Tracker hinterlegt - http://jira.shopware.de?ticket=SW-8257 Schöne Grüße, Niklas
Hi zusammen, wir haben uns bezüglich des Problems der Kategorie - Artikel Zuweisung befasst und bereits eine Lösung implementiert. Diese wird mit der kommenden Shopware Version ausgeliefert. Die entsprechenden Sourcen findet Ihr in diesem Github Commit: https://github.com/ShopwareAG/shopware- … 6fb001f9a4 Ihr könnt als Hotfix die entsprechenden Anpassungen bereits in euer System übernehmen, so dass Ihr nicht jeden Tag den Kategorie Baum von Hand neu aufbauen müsst. Mit der nächsten Update befindet sich der Bugfix dann auch bereits im Core. Viele Grüße Oliver Denter