Aus Bestellung automatisch Rechnung generieren

03.08.2010   //   von Tobias Vogt   //   Entwicklung, Magento  //  5 Kommentare

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.

5 Kommentare

  • [...] 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

Kommentar schreiben

Am 14.02 ist Valentinstag!

FloraPrima Ihr Blumenversand Nebenbei eben ein Blumen für die Freundin bestellen?
Ich empfehle FloraPrima!

Magento-Support

Sie benötigen kurzfristig Unterstützung in einem Magento-Projekt oder möchten eine individuelle Extension einsetzen? Sprechen Sie uns an.