Magento: Einzelne EAV-Attribute speichern
Möchtet ihr bei einem Produkt, Bestellung, oder ähnlich in Magento ein Attribute speichern, so geht das in der Regel wie folgt (Bsp. an einem Produkt):
// Produkt laden $product = Mage::getModel("catalog/product")->load(123); // Attribut ändern $product->setTitle("Asdf"); // Produkt speichern $product->save();
Allerdings funktioniert das Speichern nicht an jeder Stelle, hinzu kommt das bei dem obigen Beispiel jeweils das gesamte Produkt inkl. alle Werte gespeichert wird. Da das EAV-Model ein komplexes Konstrukt ist, kann der Speichervorgang unnötig viele Ressourcen verschwenden.
Deshalb ist das Speichern einzelner Attribute direkt über das Resource-Model die bessere Wahl.
Hier am Beispiel des Produktes:
// Produkt laden $product = Mage::getModel("catalog/product")->load(123); // Attribut ändern $product->setTitle("Asdf"); // geändertes Attribute über das Resource-Model des Produktes speichern $product->getResource()->saveAttribute($product, "title");
Sollte euch der Artikel geholfen haben, so teilt diesen doch bitte bei Google+ und/oder Facebook!
2 Comments