Shopsystem ShopPilot

ShopPilot => SSP - Shop Server Pages => SSP Bibliothek => Thema gestartet von: dobra am Juni 17, 2010, 13:33:18

Titel: automatisch generierte Rechnungen als PDF-Anhang senden
Beitrag von: dobra am Juni 17, 2010, 13:33:18
Hallo,

Mit der Mail an Kunden (und/oder Händler) können automatisch generierte PDF-Rechnungen als Attachment gesendet werden.


Voraussetzung:
1) auf dem Server müssen die Perl-Module MIME::Base64, LWP::Simple (sollten auf allen Servern verfügbar sein)
und HTML::HTMLDoc (wird wahrscheinlich nachgerüstet werden müssen) installiert sein.
2) die neueste SP-Version 3.02.03b vom 10.6.

Einbauanleitung:
<!--spmacro:module(test)
{
if (!$main::liveview) {

use strict;
use warnings;

my $bestnr = $main::gOrderId;
my $testtext = ssp::embedded("showwk","embedded/rechnung.txt");

  require HTML::HTMLDoc;
  my $htmldoc = new HTML::HTMLDoc();
  $htmldoc->set_bodyfont('Arial');
  $htmldoc->set_html_content($testtext);
  my $pdf = $htmldoc->generate_pdf();
  $pdf->to_file('PDF/' . $bestnr . '.pdf');
  }
}
-->
<!--spmacro:module(Callback)
sub modify_mailtext {
my $to = $_[0];
my $subject = $_[1];
my $ref_mailtext = $_[2];
my $type = "application/pdf";
my $datei = $main::gOrderId . ".pdf";
use MIME::Base64;
use LWP::Simple qw(get);
my $attachment = get "http://www.woll-insel.at/demo-cgi-bin/demo_konfiguratorshop/PDF/" . $datei;

if ($attachment && $subject eq "Bestätigung Konfiguratorshop (EP)")
{
my $mailtext = $$ref_mailtext;
my $bound = "----------" . $subject . $to;

my $newmail = "MIME-Version: 1.0"."\n";
$newmail .= "Content-type: multipart/mixed; boundary=\"$bound\""."\n\n";
$newmail .= "--$bound"."\n";
$newmail .= "Content-type: text/html"."\n";
$newmail .= $mailtext."\n\n";
$newmail .= "--$bound"."\n";
$newmail .= "Content-type: $type;  name=\"Rechnung.pdf\"\n";
$newmail .= "Content-Transfer-Encoding: base64\n";
$newmail .= "Content-Disposition: attachment; filename=\"Rechnung.pdf\"\n\n";

my $acod = MIME::Base64::encode($attachment);

$newmail .= $acod;
$newmail .= "\n--$bound--\n";

$$ref_mailtext = $newmail;
}
return 0;
}
-->

my $attachment = get "http://www.woll-insel.at/demo-cgi-bin/demo_konfiguratorshop/PDF/" . $datei;
hier den absoluten Pfad zum CGI!!! Ordner eintragen (funktioniert nur so)

if ($attachment && $subject eq "Bestätigung Konfiguratorshop (EP)")
hier die Bedingung mit welchem Formular an wen der Anhang gesendet werden soll - vorausgesetzt, dass für Händler und Kunden ein anderer Betreff im WC eingetragen ist.

wie das funktioniert, kann im Konfiguratorshop
http://www.woll-insel.at/demo-cgi-bin/demo_konfiguratorshop/iboshop.cgi?show0 (http://www.woll-insel.at/demo-cgi-bin/demo_konfiguratorshop/iboshop.cgi?show0)
getestet werden.
Bei Absenden einer Bestellung wird die PDF-Rechnung der "Mail an Kunden" angehangen.
(zum testen habe ich da jetzt einfach die Mail an Kunden als rechnung.txt genommen - das kann natürlich dann jeder individuell mit Firmen Briefkopf usw erstellen)

Nachtrag:  bitte bedenken, dass PDF-Rechnungen - wenn sie ausschließlich digital gesendet werden und nicht der Ware noch eine gedruckte Rechnung beiliegt - digital signiert sein müssen.
Titel: Re: automatisch generierte Rechnungen als PDF-Anhang senden
Beitrag von: jg am Juni 18, 2010, 12:34:42
Hallo dobra,

Super Idee! Es funktioniert. So ähnlich wollen wir das mal bei uns einbauen.
Besonders interessant ist es für mich im Bereich Dropshipping:
Hier könnten wir dann zB. zusammen mit der Dropshipping-Bestellung unseres Händlers
auch gleich noch die Rechnung für den jeweiligen Endkunden erstellen lassen
(an den wir die Ware im Auftrag unseres Kunden schicken sollen).
Unser Kunde muss diese Rechnung oder den Lieferschein dann nicht mehr
separat erstellen und uns - wie jetzt noch - in einer 2. E-Mail zuschicken.

Vllt könnte man später sogar i-wo im Shop 'PDF-Settings' hinterlegen, die die Einstellungen
für den Rechnungsanhang definieren, bzw. die unsere Händler evtl. sogar selbst einstellen
können wie zB: HTML-Pfad zu einem Logo, Zusatztexte die in der PDF erscheinen sollen u.a.

Grüße, jg

Titel: Re: automatisch generierte Rechnungen als PDF-Anhang senden
Beitrag von: dobra am Juni 18, 2010, 12:42:20
Hallo jg,

Zitat
...im Bereich Dropshipping:
ja - DA hätte ich auch Wünsche  ;)

Wenn jetzt Kunde bei mir bestellt, muß ich das dann separat wieder bei Dir bestellen = Artikelnummer von meiner Bestellung kopieren und bei Dir suchen etc
Vllt könnten wir da mal gemeinsam überlegen, wie das automatisiert werden kann....

hab da auch schon ne Idee - aber das muss ich erst mal testen
schreib ich Dir dann per mail