Shopsystem ShopPilot
ShopPilot => Visual Forms => Thema gestartet von: db am Januar 26, 2010, 12:07:52
-
Hallo!
Wir basteln gerade an unserer Bestellhistorie.
So weit so gut.
Wir hätten gerne nicht nur die Summe der Artikel als Preis dargestellt, sondern auch die Gesamtsumme, die Versandkosten etc. .
Leider finden ich nirgends ein Hinweis dafür, wo sich die Werte verstecken. In der Datenbank stehen nur die Artikkel mit Preisen.
Ich habe auch die Spalte SAVECART in der Tabell ORDERS auseinandergenommen und auch die Bestelldatei im Ordner cart auf dem Server.
Nirgends wird etwas darüber gespeichert.
Sobald man aber die Daten mit dem Work Center abgleicht, sind die gewünschten Werte da.
Wo finde ich diese denn auf dem Server?
Ich hoffe Ihr wisst was ich meine.
Im voraus Danke
db
-
Hallo,
man muss bei den Auftragsdaten entsprechende benutzerdef. Felder anlegen. Die Namen sind festgelegt:
XMINDERMENGE = 0
XMYRABATT = 0
XRABATT = 0
XTAX0 = 0
XTAX1 = 0
XTAX2 = 0
XTAXP0 = 19.000000
XTAXP1 = 7.000000
XTAXP2 = 1.000000
XTOTALSUM = 0
XTOTSUMNET = 0
XVERSAND = 0
XZAHLUNG = 0
Sind diese Felder vorhanden, werden sie auch gefüllt.
Man benötigt mindestens die 3.02.01, damit das funktioniert.
Gruss hop
-
Hallo hop,
Danke für den Hinweis!
wollte schon lange meine Auftragsdetailseite wie den WK anzeigen :)
allerdings verwende ich "gewichtsabhängige Versandkosten"
<!--spmacro:include(bestellposition.ipl)-->
<!--spmacro:module(defs)
#Versandkosten abhängig vom Gewicht
my ($zone) = ssp::get_cart_zone();
if ($zone == 1) {$verskosttab = [
[0,0,0],[1,9999999999999,4.90]
];}
if ($zone >= 2) {$verskosttab =[
[0,0,0],[1,9999999999999,7.90]
];}
-->
und da wird leider im XVERSAND-Feld 0 ausgewiesen.
Kann ich dieses Feld irgendwie mit einem hidden input dennoch mit den Versandkosten füllen?
-
und da wird leider im XVERSAND-Feld 0 ausgewiesen.
Kann ich dieses Feld irgendwie mit einem hidden input dennoch mit den Versandkosten füllen?
Das sollte gehen.
Aber wenn die Versandkosten korrekt im WK angezeigt werden, müßte auch XVERSAND stimmen.
Mit welchem Callback wird die Berechnung der Versk. aufgerufen ?
-
das Script steht in stdall
<!--spmacro:module(Callback)
$vsumme = 0;
$gewichtsumme =0;
$rabattsumme = 0;
sub invoice_addpos {
my $ref_gesamt = $_[0];
my $ref_gesamt_steuer = $_[2];
my $anzahl = ssp::get_cart_items();
my $ref_gesamt = $_[0];
my $ust = $_[3]/100;
my $netto = $_[4];
($sec,$min,$hour,$mday,$mon,$year) = localtime(time);
$mon += 1; $year += 1900; # Y2K
my $datum = sprintf("%02d%02d",$mon,$mday);
for (my $i = 0;$i <= $anzahl;++$i) {
my $wert = ssp::get_var_cart('RABKLASSE',$i) ;
my $tag = ssp::get_var_cart('DATUM',$i);
if ($datum == $tag){
$rabattsumme += $wert * ssp::get_var_cart('preis',$i) *
ssp::get_var_cart('anzahl',$i); }
}
if ($netto > 0) {
$$ref_gesamt = $$ref_gesamt - $rabattsumme;
$$ref_gesamt_steuer = $$ref_gesamt_steuer - ($rabattsumme*$ust);
} else {
$$ref_gesamt = $$ref_gesamt - $rabattsumme;
$$ref_gesamt_steuer = $$ref_gesamt_steuer - ($rabattsumme*(1-1/(1+$ust)));
}
my $total = ssp::get_wktotalsum();
my $versand = $Callback::vsumme;
my $vorausk = ssp::get_cart_zahlartbetrag;
my $warenwert = ($total - $versand) - $vorausk;
if ($warenwert >=100) { $wert = 0;
}else {
my $ust = $_[3]/100;
my $netto = $_[4];
for (my $i = 0;$i <= $anzahl;++$i) {
my $wert = ssp::get_var_cart('anzahl',$i)*ssp::get_var_cart('GEWICHT',$i);
$gewichtsumme += $wert;
}
}
foreach my $i (@{$defs::verskosttab}) {
ssp::trace("$i->[0] $i->[1] $i->[2]\n");
if (($i->[0] <= $gewichtsumme) && ($gewichtsumme < $i->[1]) ) {
$vsumme = $i->[2];
break;
}
}
if ($netto > 0) {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*$ust;
} else {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*(1-1/(1-$ust));
}
ssp::trace("+++++ invoice_addpos $$ref_gesamt $$ref_gesamt_netto
$$ref_gesamt_steuer\n");
return 0;
}
-->
<!--spmacro:module(versk)
# Gesamtsumme der Versandkosten
sub versk {
my ($id,$txt) = ssp::get_cart_zahlart();
if (($id == 1)||($id == 2)||($id == 3)||($id == 4)||($id == 1001)) {
main::mprint(main::fp($Callback::vsumme));
}
}
...
Ausgabe im WK, den Folgeseiten und der Bestelldatenvorlage mit
__versk::versk__
-
Die Callback-Funktion invoice_addpos () hat mittlerweile 3 zusätzliche Paramater (ist wahrscheilich in der Doku vergessen worden).
Und zwar versandbetrag, minderbetrag und zahlkosten.
Man schreibt also:
sub invoice_addpos {
my $ref_gesamt = $_[0];
my $ref_gesamt_steuer = $_[2];
my $anzahl = ssp::get_cart_items();
my $ref_gesamt = $_[0];
my $ust = $_[3]/100;
my $netto = $_[4];
my $versandbetrag = $_[5];
my $minderbetrag = $_[6];
my $zahlkosten = $_[7];
Am Ende der Funktion muss man dafür sorgen dass $$versandbetrag richtig gestetzt wird.
Gruss hop
-
Am Ende der Funktion muss man dafür sorgen dass $$versandbetrag richtig gestetzt wird.
und wie mache ich das "richtig"
könnten Sie bitte mal ein Beispiel posten?
if ($netto > 0) {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*$ust;
} else {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*(1-1/(1-$ust));
}
ssp::trace("+++++ invoice_addpos $$ref_gesamt $$ref_gesamt_netto
$$ref_gesamt_steuer\n");
return 0;
WO/WIE soll ich da das $$versandbetrag dazuschreiben?
-
}
if ($netto > 0) {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*$ust;
} else {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*(1-1/(1-$ust));
}
$$versandbetrag = $vsumme;
ssp::trace("+++++ invoice_addpos $$ref_gesamt $$ref_gesamt_netto $$ref_gesamt_steuer\n");
return 0;
}
-->
-
Nachtrag: Die Callback-Funktion muss invoice_addpos_final sein und nicht invoice_addpos
-
Die Callback-Funktion muss invoice_addpos_final sein und nicht invoice_addpos
ah ja - DAS war also mein Fehler :(
war gerade am Verzweifeln, weil mit invoice_addpos die Versandkosten einfach nicht in die DB geschrieben wurden....
DANKE hop!!!
-
Dank an hop.
werde das mal mit den Feldern in Angriff nehmen.
db