Aus Bestellung automatisch Rechnung generieren
In Magento besteht nicht automatisch zu jeder Bestellung eine Rechnung. Das heißt das zu einer Bestellung erst eine Rechnung erstellt werden muss. Das kann natürlich mit ein paar Code-Zeilen auch automatisch gehen:
$order = Mage::getModel('sales/order_invoice')->loadByIncrementId(100000006);
$invoice = $order->prepareInvoice();
$invoice->register()->pay();
$invoice->save();
$pdf = Mage::getModel('sales/order_pdf_invoice')->getPdf( array($invoice) );
Das PDF lässt sich dann natürlich auch noch per E-Mail verschicken:
$mail = new Zend_Mail();
$mail->setSubject('Order '. $order->getIncrementId() );
$mail->setBodyText('Test');
$mail->setFrom('mail@absender.test');
$mail->addTo('mail@empfaenger.test', 'Ein Empfänger');
$attachment = $mail->createAttachment( $pdf->render() );
$attachment->filename = $order->getIncrementId().'.pdf';
$mail->send();
In Kombination mit dem Artikel Events in Magento: Export bei neuer Bestellung lässt sich so auch automatisch eine Rechnung an den Kunden verschicken. Ein kleiner Tipp: Aus Erfahrung übersehen Kunden separate E-Mails mit dem Betreff “Ihre Rechnung zu 100000006″ weniger schnell als wenn die Rechnung direkt im Anhang der Bestell-Email verschickt wird.
Der Autor
Tobias Vogt arbeitet seit 2008 mit Magento und ist seit 2011 durch Magento zertifizierter Entwickler. Beschäftigt ist er bei der code-x GmbH, einer Agentur für Internet und Marketing aus Paderborn. Er gehört zum Gründer-Team der Webguys und ist seit November 2011 Bachelor of Science (Wirtschaftsinformatik). Sie erreichen Ihn per E-Mail unter tobi@webguys.de.




[...] ein paar nützliche Zeilen Code, um in Magento aus Bestellungen automatisch Rechnungen zu generieren [...]
Ist ja schick und genau das was ich Suche, aber wohin mit dem Code?
Je nachdem was du tun möchtest kannst du mit dem Code nun einen Cron erstellen, Rechnungen automatisch bei Bestelleingang erstellen usw. Dazu musst du einen Observer erstellen. Wenn du dort ein wenig support brauchst helfen wir dir gerne. Melde dich dann doch einfach bei tobi@webguys.de
Hallo in welcher Datei muss ich das hier editieren?
liebe Grüße und schonmal vielen Dank
Hallo Yalgin,
du müsstest ein eigens Modul erstellen. Danach könntest du den Code in einer Controller-Action verwenden. Zum Einstieg empfehle ich dir das Handbuch für Entwickler von Vinai Kopp
Tobi