TL; DR : Gibt es einen Grund, warum die einfachen Produkte, die einem konfigurierbaren Produkt zugeordnet sind, denselben Attributsatz haben müssen wie das konfigurierbare Produkt selbst? Ich meine, gibt es einen technischen Grund? Ich kenne den "gesunden Menschenverstand" Grund. Wenn Sie ein Paar Schuhe verkaufen, müssen alle Versionen, die von Farbe und Größe abhängen, auch Schuhe sein .
Lange Version : Ich hatte die Aufgabe, einige konfigurierbare Produkte "zusammenzuführen". Ich meine von 2 oder mehr nur einen zu machen. Ich wollte sie wegen der Menge der Produkte nicht manuell machen und ich wollte nicht durchgehen$product->load(..)->set...()->save()
Aufgrund der Zeit, die zum Ausführen des Skripts benötigt wurde. Also habe ich den Prozess kurzgeschlossen, weil ich mir sicher war, dass sich keines der einfachen Produkte überlappte. Es gab eine einzigartige Kombination von Größe und Farbe. Ich tat dies:
Mage::getResourceSingleton('catalog/product_type_configurable')
->saveProducts($mainConfigrableProduct, $simpleProductIds);
Dabei $simpleProductIds
handelt es sich um ein Array aller einfachen Produkt-IDs, die allen konfigurierbaren Produkten zugeordnet sind, die zusammengeführt werden müssen.
Dies funktionierte für die meisten Produkte perfekt, es gab jedoch einige Probleme.
Wenn ich anrufe
$productIds = $product->getTypeInstance()->getUsedProductIds()
Ich würde alle einfachen Produkt-IDs erhalten, aber im Backend tauchten nur einige davon auf. Nachdem ich einige Zeit gebuddelt hatte, stellte ich fest, dass nur diejenigen angezeigt wurden, die dasselbe Attribut hatten wie das konfigurierbare Produkt. Der andere Attributsatz ist dem ersten sehr ähnlich, nur einige geringfügige Unterschiede, aber er enthält die konfigurierbaren Attribute (Größe und Farbe).
Und jetzt das Merkwürdige. Im Frontend habe ich erwartet, dass entweder alle Produkte ($ productIds im obigen Code) oder nur die Produkte im selben Attributsatz angezeigt werden. Nun, da war etwas dazwischen.
- 20 zugehörige Produkt-IDs - 5 Größen, 4 Farben
- 10 zugehörige Produkte im Backend - 5 Größen, 2 Farben - die anderen 2 Farben (10 Produkte) befanden sich in einem anderen Attributssatz
- 15 Kombinationen im Frontend - 5 Größen, 3 Farben (???)
Ich konnte das Problem lösen, indem ich die Attributgruppe für die Produkte änderte, die nicht angezeigt wurden, aber ich bin immer noch verwirrt.
Hinweis : Versuchen Sie dies nicht zu Hause. Oder Sie können es zu Hause ausprobieren, aber nicht auf einem Live-Server.
Wir verwenden eine Erweiterung namens RapidFlow von Unirgy (die ich nicht genug empfehlen kann) für den Import und Export. Eine der Funktionen in der Pro-Version ermöglicht das Ändern von Attributmengen. Ein weiterer Grund ist die Erstellung von Produkten per CSV-Import. Gelegentlich erstellen wir neue einfache Produkte für konfigurierbare Elemente, und manchmal haben diese einfachen Produkte versehentlich andere Attributmengen als ihre Eltern.
Rapidflow importiert diese Produkte problemlos und ändert Attributgruppen. Mit den Ergebnissen sind wir in der Regel nicht zufrieden. Konfigurierbare Produkte, die durch Attribute außerhalb ihres Attributsatzes konfiguriert werden, können im Produktadministrator nicht gerendert werden und müssen repariert werden. Wenn wir die Attributgruppe des übergeordneten Elements nicht ändern, werden die untergeordneten Elemente, wie Sie bereits bemerkt haben, nicht ordnungsgemäß mit dem übergeordneten Element verknüpft. Sie sind als Magento-Entitäten vorhanden, können bearbeitet werden, werden jedoch nicht als untergeordnete Elemente auf der Front-End-Produktseite oder der zugehörigen Produktliste des konfigurierbaren übergeordneten Elements angezeigt.
Aus rein technischer Sicht ist es also möglich, dass sich einfache Produkte in einem anderen Attributssatz befinden als ihre übergeordneten Produkte. Da dieses Verhalten jedoch selbst in EE nicht unterstützt wird und Occam's Razor sagt, dass die Varien-Entwickler bei der Entwicklung von Magento die Notwendigkeit nicht erkannt haben.
quelle