Kürzlich habe ich untersucht, wie die Optionen des mehrschichtigen Navigationsfilters auf der Kategorieseite ermittelt und abgerufen werden. Ich habe ein bisschen in die Modelle und die Datenbank dafür gegraben und dort den folgenden Mechanismus gefunden, den ich nicht verstehe:
Situation:
Angenommen, ich habe ein Attribut mit dem Namen color
(attribute_id = 133), ein einfaches Produkt A
(entity_id = 26) und ein gebündeltes Produkt B
(entity_id = 27) und werde als Bundle-Element in A
hinzugefügt .B
Magento ver. 1.9.0.1
Schritt 1: color
ist nicht für beide A
und eingestelltB
Schritt 2: color
wird gesetzt als Black
(value_id = 19) fürB
Schritt 3: color
wird gesetzt als White
(value_id = 18) fürA
In Schritt 3 konnten wir sehen, dass anscheinend Attribute der Bundle-Elemente ( A
in diesem Fall) auch so gespeichert werden, als wären sie die Attribute des Bundle-Produkts ( B
in diesem Fall) selbst. Und ich glaube, aus diesem Grund werden die Attribute der Bundle-Elemente von Bundle-Produkten auch im mehrschichtigen Navigationsfilter angezeigt.
Ich möchte fragen, warum es so gestaltet ist. Warum speichert das System Attribute der untergeordneten Produkte auch im übergeordneten Produkt? Wie hilft es bei einem bestimmten Prozess im System?
Danke im Voraus.
Update: So verhindern Sie, dass der Indexer untergeordnete Produkte einschließt
Mage_Catalog_Model_Resource_Product_Indexer_Eav_Abstract
._prepareRelationIndex()
.Code:
Referenz : Hinzufügen von rot hervorgehobenen Codes
quelle