Belege automatisch per eMail nach Bestellabschluss

Moin, sitze hier gerade auf der ersten Shopware Developer Schulung :wink: Haben gerade ein Plugin entwickelt, um Rechnungen automatisch nach Bestellabschluss per eMail zu verschicken. Die Beispiele der Schulung kommen nächste Woche alle im Wiki online, das aber schon mal vorab … <?php class Shopware_Plugins_Frontend_Example8_Bootstrap extends Shopware_Components_Plugin_Bootstrap { public function install() { $event = $this->createHook( 'sOrder', 'sSaveOrder', 'onOrder', Enlight\_Hook\_HookHandler::TypeAfter, 0 ); $this-\>subscribeHook($event); return true; } static function onOrder (Enlight\_Hook\_HookArgs $args) { /\* Die Funktion saveOrder gibt die Bestellnummer zurück, diese können wir per getReturn() abfangen \*/ $ordernumber = $args-\>getReturn(); // Über die ordernumber die ID der Bestellung auslesen $orderID = Shopware()-\>Db()-\>fetchOne("SELECT id FROM s\_order WHERE ordernumber=?",array($ordernumber)); $document = Shopware\_Components\_Document::initDocument($orderID,0, array( "netto"=\>false, "date"=\>date("Y-m-d H:i:s"), "shippingCostsAsPosition"=\>true, "\_renderer"=\>"pdf" ) ); $document-\>render(); $email = $document-\>\_order-\>user-\>email; $getDocument = Shopware()-\>Db()-\>fetchRow(" SELECT \* FROM s\_order\_documents WHERE orderID = ? ",array($orderID)); $mail = Shopware()-\>Mail(); $mail-\>IsHTML(0); $mail-\>From = Shopware()-\>Config()-\>Mail; // Absender = Mail Shopbetreiber $mail-\>FromName = Shopware()-\>Config()-\>Mail; // Absender = Mail Shopbetreiber $mail-\>Subject = "Ihre Rechnung zur Bestellung $ordernumber"; // Betreff $mail-\>Body = "Im Anhang finden Sie Ihre Rechnung"; // Inhalt $mail-\>ClearAddresses(); // Vorherige Adressen entfernen // Die in der Plugin-Konfiguration eingetragene Adresse als Empfänger nehmen $mail-\>AddAddress($email, ''); // XML-Datei als Attachment anfügen $mail-\>createAttachment( Shopware()-\>AppPath()."/files/documents/".$getDocument["hash"].".pdf", Zend\_Mime::TYPE\_OCTETSTREAM, Zend\_Mime::DISPOSITION\_ATTACHMENT, Zend\_Mime::ENCODING\_BASE64, $getDocument["docID"].".pdf" ); // Mail versenden $mail-\>Send(); } }

Hallo Stefan, vielen Danke das du es gleich hier rein geschoben hast :slight_smile: Das kommt mir gerade sehr gelegen :slight_smile: Scheen wars… :thumbup: Viele Grüße Thomas

Hi Stefan, kann es sein, das das gute Plugin mit PayPal z.B. nicht funktioniert??? Viele Grüße Thomas

Da dürfte es eigentlich keine Probleme geben. Was passiert denn? Nichts? Hast du da genauere Informationen?

Hi, also ich habs mittlerweile in Gang :wink: Aber er flog mit einer Exception in der Shopware_Components_Document::initTemplateEngine() weg, das er den Pfad /var/www/templates/xyz net finden könnte. Also Zahlung ausgeführt, Bestellung im System und dann ne weiße Seite mit dem StackTrace…

Und was hast du geändert?

Also ich hab einmal aus 587: if (!is\_dir($path)){ 588: throw new Enlight\_Exception("Path ".Shopware()-\>OldPath().$path." not found"); 589: } 587: if (!is\_dir(Shopware()-\>OldPath().$path)){ 588: throw new Enlight\_Exception("Path ".Shopware()-\>OldPath().$path." not found"); 589: } gemacht… Brachte schon mal den Erfolg, das er da nimmer wegfliegt. Allerdings konnte er dann in der Render-Funktion das mpdf nicht laden, so das ich da noch aus 209, 216: include("engine/Enlight/Vendor/mpdf/mpdf.php"); ein 209, 216: include\_once(Shopware()-\>OldPath()."engine/Enlight/Vendor/mpdf/mpdf.php"); gemacht habe… Seit dem tut ers nun… :slight_smile:

Okay, super! Die Pfad-Angabe habe ich in 3.5.3 korrigiert

Hallo @alle, ich bin neu hier und habe auch nicht gerade viel Ahnung vom Programmieren. Daher vielleicht auch die etwas dümmlich anmutenden Fragen. Schilderung: Ein Kunde macht eine Bestellung und schließt diese ab. Er bekommt eine Bestellbestätigung per Mail - so weit gut Nun kann ich bei der Bestellbearbeitung eine Rechnung per PDF erstellen und auch einen Lieferschein. Im Kundenaccount sieht aber der Kunde diese Rechnung aber nicht. Meine Fragen nun: 1) Wie kommt der Kunde nun an die PDF-Rechnung? (Schön wäre es über seinen Kundenaccount wo er sie sich dann entweder Anzeigen lassen kann oder Downloaden kann.) 2) Kann ich dem Kunden entweder per Button-Klick oder auch Automatisch die gerade erstellte PDF-Rechnung per Mail zukommen lassen? Denn in dieser befindet sich ja auch der Gutschein-Code (wenn ich ihn gleich mit erstellt habe) Vielen Dank im voraus für die Antworten

Hi, siehe hier: post9912.html Die Belege werden i.d.R. ausgedruckt. Ein Versenden ist nicht vorgesehen.

[quote=„Sebastian Klöpper“]Hi, siehe hier: post9912.html Die Belege werden i.d.R. ausgedruckt. Ein Versenden ist nicht vorgesehen.[/quote] Danke für die Antwort. Wo kann ich das besagte Plugin finden? Habe schon gesucht aber leider nichts gefunden. [quote=„knopp“] 1) Wie kommt der Kunde nun an die PDF-Rechnung? (Schön wäre es über seinen Kundenaccount wo er sie sich dann entweder Anzeigen lassen kann oder Downloaden kann.) [/quote] Gibt es trotzdem eine Möglichkeit das der Kunde in seinem Kundenaccount die Rechnung sehen kann (PDF oder sonstiges) ? Denn irgendwie braucht ja jeder Kunde eine Rechnung, seis wegen der Garantie oder aber auch wegen dem Finanzamt. Hier im shopware-shopsystem hat der Kunde ja nur eine Bestellbestätigung per Email und sonst nichts. Die Rechnung wird ja erst von mir generiert. Wenn ich nun die Rechnung per PDF generiert habe, gibt es aber leider auch keinen Button (an Kunden senden) so das die Rechnung gleich an seine hinterlegte Emailadresse gesendet wird. Auch erscheint sie nicht in seinem Kundenaccount. Alles sehr umständlich finde ich. Denn ich muss die Rechnung extra erstellen, dann muss ich die Emailadresse des Kunden suchen, und dann kann ich die Rechnung nur über mein Emailprogramm am PC die Rechnung an den Kunden senden. Soll das wirklich so sein? Mfg

Wie bereits geschrieben, ist der Versand der Rechnung eigentlich nicht korrekt und daher in Shopware nicht vorgesehen. Shopware signiert diese ja nicht. So etwas kommet ja ansonsten aus einer Warenwirtschaft - nicht aus einem Shopsystem. Des Weiteren ist dies in Kombination mit der Sammelbelegerstellung gedacht. So kann von einem ganzen Tag mit einem Knopfdruck alle Bestellungen auf einmal als Rechnungen erzeugen lassen und diese Ausdrucken. Die Belege im System sind ja für den Ausdruck hinterlegt, das man diese dann z.B. der Lieferung beilegt! Hier noch das Plugin: http://www.shopware.de/wiki/Beispiel-Pl … l_572.html

Hallo Herr Klöpper, vielen Dank für Ihre schnelle Antwort. Hätte da noch ein bis zwei Fragen an Sie. Muss ich für das Plugin eine PHP-Datei erstellen im besagten Verzeichnis (Shopware\Plugins\Local\Frontend\Example8\Bootstrap.php) mit dem Namen Bootstrap.php ?? und dann den Inhalt darunter einfügen? Und was mache ich dann? Bin da leider etwas der Laie und wäre für etwas Schützenhilfe dankbar, da dort leider keine genauere Anleitung zum erstellen dabei ist. Nochmals Danke im voraus Mfg

[quote=„Sebastian Klöpper“]Wie bereits geschrieben, ist der Versand der Rechnung eigentlich nicht korrekt und daher in Shopware nicht vorgesehen. Shopware signiert diese ja nicht. So etwas kommet ja ansonsten aus einer Warenwirtschaft - nicht aus einem Shopsystem. Des Weiteren ist dies in Kombination mit der Sammelbelegerstellung gedacht. So kann von einem ganzen Tag mit einem Knopfdruck alle Bestellungen auf einmal als Rechnungen erzeugen lassen und diese Ausdrucken. Die Belege im System sind ja für den Ausdruck hinterlegt, das man diese dann z.B. der Lieferung beilegt! [/quote] Okay, das verstehe ich, aber wie sieht es denn dann mit Downloads aus? Da versende ich ja keine ware über Post oder dergleichen, sondern der Kunde läd sich ja z.b eine Software runter. Wie bekommt er dann seine Rechnung? MFG

Warum gibt es eigentlich noch keine Schnittstelle zu Fastbill, Easybill, Billomat und wie sie alle heißen? Zwar ist heute keine signierte Rechnung mehr erforderlich, aber alle anderen Punkte der Rechtssicherheit könnten diese Dienstleister ja ohne weiteres abdecken. Und mann hätte wesentlich mehr (und einfachere) Gestaltungsmöglichkeiten was das Thema Design angeht - z.B. ein eigenes Briefpapier.

Ich habe ein entsprechendes Plugin für Shopware entwickelt und stelle dieses kostenlos zur Verfügung. Weitere Informationen finden Sie hier: Belege nach Bestellabschluss automatisch per E-Mail. Kostenloses Shopware-Plugin. Viele Grüße, Fabian Golle Fabian Golle IT-Services*

Hallo, ich habe Shopware im Unterverzeichnis meiner Homepage installiert (www.domain.de/shops) Leider kann ich nach dem Upload der Deteien das Plugin im Pluginmanager nicht sehen. Beim Aufruf bekomme ich folgendes angezeigt: You’re trying to decode an invalid JSON String: Parse error: syntax error, unexpected ‘)’ in /homepages/21/d503264929/htdocs/shops/engine/Shopware/Plugins/Local/Frontend/AutoInvoice/Bootstrap.php on line 69 In der PHP Datei sieht es so aus: private function createForm() { $form = $this->Form(); $form->setElement(‘text’, ‘submitterName’, array(‘label’ => ‘Absendername’, ‘value’ => null, ‘scope’ => Shopware\Models\Config\Element::SCOPE_SHOP)); $form->setElement(‘text’, ‘subject’, array(‘label’ => ‘Subject’, ‘value’ => null, ‘scope’ => Shopware\Models\Config\Element::SCOPE_SHOP)); $form->setElement(‘textarea’, ‘body’, array(‘label’ => ‘Body’, ‘value’ => null, ‘scope’ => Shopware\Models\Config\Element::SCOPE_SHOP)); $form->setElement(‘boolean’, ‘copyToAdmin’, array(‘label’ => ‘Rechnung / Liefernschein auch an Admin senden’,‘value’ => true, ‘scope’ => Shopware\Models\Config\Element::SCOPE_SHOP))); $form->setElement(‘text’, ‘adminEmail’, array(‘label’ => ‘Admin E-mail-Adresse’, ‘value’ => null, ‘scope’ => Shopware\Models\Config\Element::SCOPE_SHOP)); } Irgendwo muss hier ein Fehler sein, da der Fehlercode sich auf diese Zeilen bezieht. Ich habe leider nicht viel Ahnung von PHP und bin auf eure Hilfe angewiesen. Was muss ich ändern, damit es funzt? LG