Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Februar 08, 2012, 15:34:17

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5208 Beiträge in 1408 Themen von 330 Mitglieder
Neuestes Mitglied: spraytool
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  SSP - Shop Server Pages
| | |-+  SSP Bibliothek
| | | |-+  automatisch generierte Rechnungen als PDF-Anhang senden
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: automatisch generierte Rechnungen als PDF-Anhang senden  (Gelesen 1589 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1167


WWW
« 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:
  • im cgi-Verzeichnis den Ordner PDF mit Chmod 755 manuell per FTP anlegen (der Ordner MUSS im cgi-Verzeichnis liegen und schreibend und lesend darauf zugegriffen werden können)
  • auf die "Danke" Seite diesen Code schreiben:
Code:
<!--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');
  }
}
-->
  • eine rechnung.txt Datei (genauso wie eine HTML-Mail) erstellen, im "embedded" Ordner ablegen (oder Pfad anpassen) und im WC bei "Dateien hinzufügen" eintragen.
  • Code in stdall.ipl
Code:
<!--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
    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.
    « Letzte Änderung: Juni 17, 2010, 17:23:47 von dobra » Gespeichert

    jg
    Hero Member
    *****

    Lob: 3
    Offline Offline

    Beiträge: 517


    « Antwort #1 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

    Gespeichert

    dobra
    Global Moderator
    Hero Member
    *****

    Lob: 18
    Offline Offline

    Beiträge: 1167


    WWW
    « Antwort #2 am: Juni 18, 2010, 12:42:20 »

    Hallo jg,

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

    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
    Gespeichert

    Seiten: [1] Drucken 
    « vorheriges nächstes »
    Gehe zu:  

    mysitelist Impressum Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS