Magento Mengeneinheiten in Bestellbestätigung

Wie integriert man die Mengeneinheit eines Artikels (z.B. Stück, m, qm, Liter, etc.) in der Bestellbestätigung in der Spalte "Menge" (Qty)? Zuerst schauen wir uns an, welche Datei für die Ausgabe der bestellten Produkte verantwortlich ist:

 

 

Fündig werden wir hier in der Template-Datei \app\design\frontend\DEINPACKAGE\DEINTEMPLATE\template\email\order\items\order\default.phtml (bzw. im base-Package / im default-Template, falls noch keine Anpassungen der Grundinstallation vorhanden).

 

Implementiert wurde die Mengeneinheit hier über ein Dropdown-Attribut namens 'einheit'. Den Wert dieses Attributes müssen wir uns damit zuerst holen, im besten Falle, ohne das ganze Produkt nachladen zu müssen. So holen wir uns zuerst den Optionswert über die getAttributeRawValue()-Methode des catalog/product-Ressource-Models (wir verwenden Singelton-Methode, um zu prüfen, ob Objekt bereits im Zwischenspeicher vorhanden und sind damit schneller):

 

$optionValue = Mage::getResourceSingleton('catalog/product')->getAttributeRawValue($_item->getProductId(),'einheit_mah',0);

 

Danach möchten wir wissen, welcher Optionstext dem Optionswert zugrunde liegt. Hierzu weisen wir dem catalog/product-Model den erhaltenen Optionswert zu:

 

$temp_product = Mage::getSingleton('catalog/product')->setStoreId(0)->setData('einheit',$optionValue);

 

und schlüsseln diesen per getAttributeText() um:

 

$optionText = $temp_product->getAttributeText('einheit');

 

Danach können wir den Optionstext an einer beliebigen Stelle einbauen, hier z.B. nach der Ausgabe der bestellten Anzahl des jeweiligen Produktes:

 

<td class="cell-content align-center" align="center"><?php echo $_item->getQtyOrdered()*1; echo $optionText; ?></td>

 

Und damit sind wir fertig. Getestet in Magento CE 1.9.2.4.