Hallo,
Aufgabe:Bei Kauf von x Stück soll ein Stück gratis in den WK gelegt werden.
Lösung:Ein ben.def. Artikelfeld "PACK" anlegen - hier wird die Stückzahl bei der ein gratis Stück dazugegeben werden soll eingetragen.
Ist das Feld leer, gibt es für diesen Artikel keine Gratiszugabe.
Code in stdplacecart.ipl:
<!--spmacro:module(util)
sub gratis {
my $out;
my $index = $_[0];
my $anzahl = $_[1];
if ($index <= $anzahl) {
my $anzahl= ssp::get_var_cart('anzahl',$index);
my $artikel = ssp::get_var_cart('produkt',$index);
my $preis = main::fp(ssp::get_var_cart('preis',$index));
my $pack = ssp::get_var_cart('PACK',$index);
return if (!int($pack)); ## Sonst Division durch 0 möglich
if ((length($pack)) && ($anzahl >= $pack)) {
my $gratis = int($anzahl/int($pack));
$out = qq|
<tr>
<td width="260" class="text10rot" bgcolor="white" style="border-left: #CCCC99 1px solid; border-bottom: #CCCC99 1px solid;"><span class="headsuche">$artikel</td>
<td width="110" class="text10rot" style="border-left: #CCCC99 1px solid; border-bottom: #CCCC99 1px solid;"><span class="text10schwarz">$gratis</span></td>
<td width="70" bordercolor="#330066" class="text10rot" bgcolor="white" align="right" style="border-left: #CCCC99 1px solid; border-bottom: #CCCC99 1px solid;">
<div align="right">
<span class="text10schwarz">$preis</span></div>
</td>
<td width="70" class="text10rot" bgcolor="white" align="right" style="border-left: #CCCC99 1px solid; border-bottom: #CCCC99 1px solid;">
<div align="right">
<span class="textrot">gratis</span></div>
</td>
</tr>
|;
main::mprint $out;
return 0;
}
}
}
-->
Der HTML-Teil zwischen qq| ... und ... |; muß angepasst werden.
Im WK, Bestellformular und den Mails an Händler/Kunden
vor dem <!--spmacro:enditem--> __util::gratis__ einfügen.
Im Beispiel ist bei PACK 6 Stück eingetragen
pro 6 Stück wird ein Stück mit "gratis" in den WK gelegt.
Kunde kauft 1 - 5 passiert nix
Kunde kauft 6 -11 Stück = 1 Stück gratis dazu
Kunde kauft 12 - 17 Stück = 2 Stück gratis dazu
usw.
ändert der Kunde die Menge im WK wird auch das Gratisstück entsprechend geändert.
und so schaut der WK dann aus:

P.S.: nach gleichem Prinzip könnte man natürlich auch zu bestimmten Artikeln ein Geschenk in den WK legen.
z.B. bei Kauf eines teuren Schwimmbades einen Filter oder zu einem Auto einen Kanister Frostschutz (bei DIESEN Temperaturen sehr sinnvoll

) gratis dazu.
Dafür braucht man dann allerdings noch ein paar ben.def Felder mehr - aber die Scriptfunktion ist die gleiche
Linkback: https://www.shoppilot.net/pf/index.php?topic=1088.0