M. Hoffmann: Suche verzweifelt eine Feedback Lösung für bestehendes Script

Beitrag lesen

Hallo Community,
ich brauche dringend eure Hilfe.

Habe ein kleines altes aber dennoch brauchbares Shopscript in Verwendung. Der Programmierer dieses Scripts ist nicht mehr erreichbar bzw. er arbeitet schon seit langem nicht mehr dran.

Das Problem!
Wenn ein Kunde eine Bestellung abschicken möchte, füllt er ein Formular aus mit allen Daten die ich für die Auftragsabwicklung benötige.

Ich erhalte eine anständig formatierte E-Mail mit allen Bestellangaben.

Der Kunde erhält leider nichts.
Und genau hier liegt mein Problem.

Der Kunde soll auch eine Bestellbestätigung erhalten, vorzugsweise eine, die auf vordefinierten z.B. .txt-Templates basiert in denen Platzhalter für die Variablen eingebaut sind.

Möchte er Beispielsweise per Vorkasse zahlen, erhält er einen andere als wenn er mit PayPal zahlen möchte oder mit Lastschrift.

Aber ehrlich gesagt wäre ich schon froh wenn er nur eine einfache Bestätigung erhallten würde.

Zurzeit schreibe ich jedem Kunden eine mit Outlook - jaja, lacht nur.

Ich habe schon alles versucht, habe diverse Mailscripte auseinandergepflügt und versucht in das bestehende zu integrieren, leider alles vergeblich.

Ich muss zu meinem Nachteil gestehen, dass ich nicht die "Leuchte" in CGI bin.

Das ganze Shopscript ist aus mehreren Dateien verteilt, der für den Bestellvorgang (Mailversand) relevante Teil folgt hier.

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

eShop - Version 3

~~~~~~~~~~~~~~~~~~~~~

*** copyright by Matthias D. Herold 1998 ***

#--- Modul................: CartOrder.pm

Version..............: UNIX-Mailforwarding [sendmail]

Author...............: Matthias Herold

Letzte Modifikation..: 98-05-31

#--- Information..........: http://www.franken.de/users/bessie/projekte/eshop/

eMail................: herold@bessie.franken.de

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

package CartOrder;

use CartData;
use CartUsers;
use ShopConfig;

sub ExecOrder {
my $user = shift;
my $q = shift;

#############################################################################

#&ReadParse;
$kndmail = $in{'EMail'};

sub ReadParse { local (*in) = @_ if @_;
local ($i, $key, $val);
if ( $ENV{'REQUEST_METHOD'} eq "GET" )
{$in = $ENV{'QUERY_STRING'};}
elsif ($ENV{'REQUEST_METHOD'} eq "POST")
{read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
}
else {
$in = ( grep( !/^-/, @ARGV )) [0];
$in =~ s/\&/&/g; } @in = split(/&/,$in);
foreach $i (0 .. $#in) {
$in[$i] =~ s/+/ /g;
($key, $val) = split(/=/,$in[$i],2);
$key =~ s/%(..)/pack("c",hex($1))/ge;
$val =~ s/%(..)/pack("c",hex($1))/ge;
$in{$key} .= "\0" if (defined($in{$key}));
$in{$key} .= $val;
}
return length($in);
}

#############################################################################

if (!open(MAIL, "| " . $ShopConfig::MISC{'sendmail'} . " -t")) {
require ShopError;
&ShopError::CouldntExec($ShopConfig::MISC{'sendmail'});
}

print MAIL "X-Mailer: tagebuch-center.de" . "\n";
print MAIL "To: " . $ShopConfig::MISC{'toaddr'} . "\n";
print MAIL "CC: " . $kndmail . "\n";
print MAIL "From: " . $ShopConfig::MISC{'fromaddr'} . "\n";
print MAIL "Subject: Tagebuch-Center Online Bestellung\n";
print MAIL "\r\n";

print MAIL "Online Bestellung Tagebuch Center:\r";
print MAIL "-" x 72 , "\r";

my $cartent = {};
my $endprice = 0;
my $fmtline = " %10s | %30s | %11.2f | %11.2f \r";

printf MAIL " %10s | %30s | %11s | %10s \r", "Menge", "Bestellnummer", "Einzelpreis", "Gesamtpreis";
print MAIL "-" x 12, "|" , "-" x 32, "|", "-" x 13 , "|", "-" x 12 , "\r";

my $cartdata = new CartData(1);
$cartdata->UserInit($user->{uid});
while($cartent = $cartdata->UserNext()) {
if ($cartent->{status} eq "N") {
if ($cartent->{amount} > 0) {
printf MAIL $fmtline, $cartent->{amount},
$cartent->{orderinfo},
$cartent->{singleprice},
$cartent->{amount} * $cartent->{singleprice};
if ($ShopConfig::MISC{'printdesc'}) {
my $description = $cartent->{description} . " ";
my $line = "";
while ($description =~ s/^(.{1,30})\s//) {
my $line = $1;
unless ($line =~ /^\s*$/) {
print MAIL " " x 12, "| ", $line;
print MAIL " " x (31-length($line)), "|";
print MAIL " " x 13, "|", " " x 12, "\r";
}
}
print MAIL "-" x 12, "|" , "-" x 32, "|", "-" x 13 ,
"|", "-" x 12 , "\r";
}
$endprice += $cartent->{amount} * $cartent->{singleprice};
}
$cartent->{status} = 'O';
$cartdata->EntryChange($cartent);
}
}
undef $cartdata;

if (!$ShopConfig::MISC{'printdesc'}) {
print MAIL "-" x 12, "|" , "-" x 32, "|", "-" x 13 , "|", "-" x 12 , "\r";
}
printf MAIL "%58s | %11.2f \r", "Zwischensumme", $endprice;
print MAIL "-" x 59, "|", "-" x 12, "\r";

$vers = "4.90";

printf MAIL "%58s | %11.2f \r", "Versand", $vers;
print MAIL "-" x 59, "|", "-" x 12, "\r";

$gesamt = $endprice + $vers;

printf MAIL "%58s | %11.2f \r", "enthaltene MwSt.", $gesamt/"100"*16;
print MAIL "-" x 59, "|", "-" x 12, "\r";

printf MAIL "%58s | %11.2f \r", "Gesamt", $gesamt;
print MAIL "-" x 59, "|", "-" x 12, "\r";

print MAIL "\r\n\r\n";
print MAIL "Persoenliche Daten:\r";
print MAIL "-" x 72, "\r";

$fmtline = "%20s : %s\r";

my $paramname = "";

printf MAIL $fmtline, "Useragent", $user->{browser} if ($user->{browser});
printf MAIL $fmtline, "Kundennummer", $user->{kndnr} if ($user->{kndnr});

foreach $paramname ( $q->param() ) {
if (($paramname !~ /^_/) && ($paramname ne "action")) {
my $value = $q->param($paramname);
printf MAIL $fmtline, $paramname, $value, "\r";
}
}

print MAIL "\r-- \r";

close(MAIL);
}

1;

Sollten mehr Infos nötig sein einfach Schreiben an info@dbrv.de (Der Shop läuft nicht dort)

Besten Dank für eure Aufmerksamkeit und schöne Weihnachtstage sowie einen guten Rutsch ins neue Jahr.

Viele Grüße
Markus