Erhalten Sie einfache Produkte, die zum konfigurierbaren Produkt gehören NACH dem konfigurierbaren Produkt speichern

8

In Magento ist es möglich, die einfachen Produkte, die zu einem konfigurierbaren Produkt gehören, mit dem folgenden Aufruf zu erhalten:

%Vor%

Ich versuche, diese Funktion aufzurufen, nachdem das konfigurierbare Produkt gespeichert wurde, damit ich die neue Liste der verwendeten einfachen Produkte abrufen kann. Also mache ich den obigen Aufruf von einer Methode, die durch das catalog_product_save_after -Ereignis ausgelöst wird. Nach dem Aufruf von $childProducts werden jedoch die einfachen Produkte, die $product zugeordnet waren, vor dem Speichervorgang gespeichert, NICHT NACHDEM.

Wie kann ich nach dem Speichern die einfachen Produkte erhalten, die mit $product verknüpft sind?

Vielen Dank im Voraus, jeder Vorschlag wird geschätzt.

    
Epicurus 05.07.2011, 12:46
quelle

1 Antwort

7

Das OOP-System von Magento ist sehr gut, und diese Güte schafft manchmal Probleme für diejenigen, die noch nicht tief in ihre Struktur eingedrungen sind.

Wenn Sie der Methode " getUsedProducts() " in der Klasse " Mage_Catalog_Model_Product_Type_Configurable " genau folgen, sehen Sie, dass einige " if " - Logiken zusammen mit der Verwendung ihrer Eigenschaften (wie " _usedProducts "," _configurableAttributes "). Diese verhindern, dass Sie das tatsächliche Ergebnis erhalten, aber der Fehler ist nicht von Magento, stattdessen liegt der Fehler an der fehlenden Magento-Dokumentation.

Lassen Sie mich über die ersten Zeilen dieser Methode klarstellen: -

%Vor%

Diese Methode hat 2 Argumente - " $requiredAttributeIds " (konfigurierbare Attribut-IDs) & amp; " $product " (konfigurierbares Produktobjekt).

Wenn Sie diese Methode aufrufen, übergeben Sie " null " für den Parameter " $requiredAttributeIds ", aber Sie stellen das korrekte konfigurierbare Produktobjekt " $product " bereit.

Diese Klasse hat eine Eigenschaft " _usedProducts " (für die Pflege der Daten von untergeordneten einfachen Produkten), die für jedes konfigurierbare Produktobjekt festgelegt ist. Wenn dieser Wert früher gesetzt wurde, gibt Magento Ihnen die bereits verfügbaren Werte zurück. Dies ist der Hauptgrund, warum Sie die untergeordneten Produkte erhalten, bevor das konfigurierbare Produkt aktualisiert wurde.

Sie können also den gesamten Cache-Speicher löschen und alle Cache-Prozesse aktualisieren. Mag sein, dann wird Ihr Ergebnis funktionieren, weil Magento intern all diese verwendeten Produktdaten im Cache speichert.

Ich hoffe, es hilft.

    
Knowledge Craving 05.07.2011, 15:10
quelle

Tags und Links