Ich arbeite an einem Geschäft mit 23.000 möglichen Farbwerten. Aber sie werden natürlich nicht bei jedem Produkt verwendet.
Jetzt, da wir an 1.9.2.1 arbeiten, das native Farbfelder enthält, dauert das Laden der Produktseite 3 Minuten.
Dies liegt daran , dass die _loadOptionLabels- Methode von Mage_ConfigurableSwatches_Model_Resource_Catalog_Product_Attribute_Super_Collection bei jedem Laden einer einzelnen Produktseite alle 23.000 Farben lädt.
Hat jemand das gleiche Problem oder weiß er, wie man es optimiert?
Ich habe auch versucht, alle nicht verwendeten Optionswerte zu bereinigen , aber das Laden und Verwenden von Resource_Iterator zur Beschleunigung von foreach dauert immer noch so lange, hat aber nicht funktioniert. Das Problem ist die große Frage.
quelle
Antworten:
Ich habe ein Modul erstellt, um \ Mage_ConfigurableSwatches_Model_Resource_Catalog_Product_Attribute_Super_Collection :: _ loadOptionLabels folgendermaßen zu überschreiben:
Ich habe die Abfrage gefiltert und foreach durch einen Iterator ersetzt.
Es bringt mir jetzt ungefähr 24 bis 40 Datensätze pro Produkt, stattdessen 23.000. :) :)
Dieses Modul führt auch unnötige Aufrufe der Produktliste durch, wenn Sie nicht eingerichtet sind, um etwas in der Produktliste anzuzeigen. Möglicherweise muss Mage_ConfigurableSwatches_Model_Observer :: productListCollectionLoadAfter neu geschrieben werden, um zu überprüfen, ob configswatches / general / product_list_attribute ein zu ladendes Attribut hat.
quelle