6 + 1 gratis

Begonnen von dobra, Juni 26, 2008, 23:13:46

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

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
mfG
dobra

catwoman

Vielen Dank für das Script. Funktioniert super. Gibt es die Möglichkeit die Gratisartikel als echte Artikel in das Workcenter bzw. in die Bestelldatenvorlage einzulesen. Hintergrund dafür ist, das wir die Bestellung in unser WAWI importieren. Leider werden die Gratisartikel nicht mit eingelesen und müssen manuell erfasst werden. Ich bekomm es allein leider nicht hin.

dobra

Einlesen der Gratis-Artikel ins WC ist leider nicht möglich da es ja keine echten Artikel im WK sind, sondern nur Text (können ja auch nicht gelöscht werden).
In der Bestelldatenvorlage sollte es mit Script möglich sein - kommt darauf an, ob die vom Shop (dann geht es nicht) oder mit eigenem Script erstellt wird.
Für Barrique generiere ich dazu per Script eine csv-Datei da XLM-Dateien im Barriqueprogramm nicht verarbeitet werden können.
Das funktioniert aber nicht "allgemein" sondern NUR für die Barrique-EDV.
Falls du so ein Script für deine EDV brauchst, bitte an den Shop-Support wenden.
mfG
dobra

catwoman

Liebe Dobra, vielen Dank für Deine Antwort. Magst Du mir Dein Script mal mailen, damit ich eine ungefähre Vorstellung habe. Ich lerne gern dazu und vielleicht fällt ja dann der Groschen. Danke im voraus.

dobra

nein, mein Script möchte ich nicht weitergeben.
mfG
dobra

catwoman

Klar, verstehe ich. Ist aber nicht weiter tragisch. Hab es selbst hinbekommen. Trotzdem vielen Dank.