Shopsystem ShopPilot

ShopPilot => Shopbetrieb => Thema gestartet von: dobra am November 11, 2008, 16:02:35

Titel: Geschenk Service
Beitrag von: dobra am November 11, 2008, 16:02:35
Weihnachten rückt bekanntlich näher  ;)

Falls jemand in seinem Shop zu diesem Anlass mein "Geschenk Service" einbauen möchte, hier mal die Gebrauchsanweisung:
LiveDemo (http://www.woll-insel.at/cgi-bin/shop2/iboshop.cgi?showd1200004750!0,,Geschenk-Service)

Infoseite "Geschenkservice" anlegen
Vorlage = Geschenk-Service_2.html

HTML-Vorlage "Geschenk-Service_2.html
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="REFRESH" CONTENT="0; URL=http://__xxpath__?showd1200004750!0,__xxsession__,Geschenk-Service">
</head>
</html>

die Seitennummer anpassen (showd1200004750 = Seitennr. der Infoseite)
Das ist notwendig, da die "## POST-Daten auslesen" Funktion nur auf Detailseiten funktioniert!)

Auf dieser Seite den Artikel für die Geschenkservice Seite eintragen
(Artikelnummer = Geschenk-Service)

Detailseite-Vorlage:  Geschenk-Service.html
Code zwischen
 <!-- InstanceBeginEditable name="EditRegion_Main" -->
und
<!-- InstanceEndEditable -->
<!--spmacro:pagetype(1)-->
<form method="post" action="__xformcart__"  onSubmit="return onSubmit();">
<input type="hidden" name="gitemid" value="__artnr__">
<table width="550" border="0" cellspacing="0" cellpadding="4">
<tr align="center">
<th rowspan="9" valign="top">__dimage__</th>
          <td align="left" valign=top"> <font size="-1"><b><i>__ergaenz1__ &nbsp; &nbsp;</i><b><font size="+1"></td>
  <td nowrap valign="top"><font SIZE="3">__preis__</font></td>
    </tr>
<tr>
<td colspan="2">Die Sendung wird mit Geschenkpapier verpackt, mit Ihrem Absender (natürlich ohne Rechnung) verschickt und Ihre persönliche Grußbotschaft beigelegt.
</table>
<br>
<table width="550" border="0" cellspacing="0" cellpadding="4">
<tr valign="top" align="left">
        <td>Geschenkpapier:&nbsp; &nbsp;</td>
<td width="80%">
<SELECT name="GPAPIER" id="GPAPIER" size="1">
<OPTION value="neutral">neutral</OPTION>
<OPTION value="Geburtstag">Geburtstag</OPTION>
<OPTION value="Weihnachten">Weihnachten</OPTION>
</SELECT> </td>
</tr>
</table>
<table width="550" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>

        <INPUT type="hidden" name="NAMEA_required">
        <INPUT type="hidden" name="VORNAMEA_required">
        <INPUT type="hidden" name="PLZA_required">
        <INPUT type="hidden" name="ORTA_required">
        <INPUT type="hidden" name="STRASSEA_required">
        <INPUT type="hidden" name="NAMEE_required">
        <INPUT type="hidden" name="VORNAMEE_required">
        <INPUT type="hidden" name="PLZE_required">
        <INPUT type="hidden" name="ORTE_required">
        <INPUT type="hidden" name="STRASSEE_required">
        <INPUT type="hidden" name="LANDA_required">
        <INPUT type="hidden" name="LANDE_required">

        <TABLE border="1" cellspacing="0" cellpadding="0" class="no">
          <tr>
<td></td>
<td align="center"><B>Absender:</B></td>
<td width="30"></td>
<td align="center"><B>Empfänger:</B></td>
</tr>

<TR>
<TD class="geschenk">Anrede </TD>
            <TD class="geschenk">
              <SELECT name="ANREDEA" id="ANREDEA" size="1">
                <OPTION value="Frau">Frau</OPTION><!--___-->
                <OPTION value="Herr">Herr</OPTION><!--___-->
              </select>
            </TD>
<td width="30"></td>
<td class="geschenk">
<SELECT name="ANREDEE" id="ANREDEE" size="1">
                <OPTION value="Frau">Frau</OPTION>
                <OPTION value="Herr">Herr</OPTION>
              </select></td>
</TR>
         
<TR>
<TD class="geschenk">Vorname </TD>
<TD class="geschenk"><input name="VORNAMEA" id="VORNAMEA" type="text" size="30" maxlength="50" value="__Vorname__"></TD>
<td width="30"></td>
<td class="geschenk"><INPUT name="VORNAMEE" id="VORNAMEE" type="text" size="30" maxlength="50" value="" ></td>
</TR>
<TR>
<TD>Nachname </TD>
<TD><INPUT name="NAMEA" id="NAMEA" size="30" maxlength="50" value="__Name__" >
<div class="errortext" nowrap align="center">__errorNAMEA__</div></TD>
<td width="30"></td>
<td><INPUT name="NAMEE" id="NAMEE" size="30" maxlength="50" value="" ></td>
</TR>
<TR>
<TD>Land-PLZ </TD>
            <TD>
<SELECT name="LANDA" id="LANDA" size="1">
                <OPTION value="">--</OPTION><!--__-->
                <OPTION value="A">A</OPTION><!--__-->
                <OPTION value="D">D</OPTION>
                <OPTION value="CH">CH</OPTION><!--__-->
                <OPTION value="LI">LI</OPTION><!--__-->
                <OPTION value="B">B</OPTION><!--__-->
                <OPTION value="NL">NL</OPTION><!--__-->
              </SELECT>
              -
              <INPUT name="PLZA" id="PLZA" size="6" maxlength="6" value="__PLZ__">
            </TD>
<td width="30"></td>
<td>
<SELECT name="LANDE" id="LANDE" size="1">
                <OPTION value="">--</OPTION>
                <OPTION value="A">A</OPTION>
                <OPTION value="D">D</OPTION>
                <OPTION value="CH">CH</OPTION>
                <OPTION value="LI">LI</OPTION>
                <OPTION value="B">B</OPTION>
                <OPTION value="NL">NL</OPTION>
              </SELECT>
              -
              <INPUT name="PLZE" id="PLZE" size="6" maxlength="6" value="">
</td>
</TR>
<TR>
<TD>Ort </TD>
            <TD><INPUT name="ORTA" id="ORTA" size="30" maxlength="50" value="__Ort__"></TD>
<td width="30"></td>
<td><INPUT name="ORTE" id="ORTE" size="30" maxlength="50" value=""></td>
</TR>
<TR>
<TD width="80" >Strasse </TD>
            <TD width="150"><INPUT name="STRASSEA" id="STRASSEA" size="30" maxlength="50" value="__Strasse__"></TD>
<td width="30"></td>
<td><INPUT name="STRASSEE" id="STRASSEE" size="30" maxlength="50" value=""></td>
</TR>
        </TABLE>
<table width="450" border="0">
<tr>
<td> <script type="text/javascript" src="http://www.woll-insel.at/shop2/formrequired.js"></script> </td>
</tr>
</table>
<table width="550" border="0">
<tr>
<td class="geschhin"> Bitte achten Sie auf die korrekte Adressangabe !<br>
Für Tippfehler bei Absender- oder Empfängeradressen können wir keine Haftung übernehmen.</td>
</tr>
</table>
<br>
<table width="500" border="0">
<tr>
<td><b>Ihr Grußtext:</b> <i>(optional)</i> <br>
<TEXTAREA NAME="GTEXT" ID="GTEXT" COLS=60 ROWS="5" WRAP="SOFT"></TEXTAREA>
</td>
</tr>
<tr>
<input type="hidden" name="a__Geschenk-Service" value="1">
<td align=right><INPUT type="submit" name="send" value="bestellen"></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
(kann natürlich angepasst werden)

Damit die Daten, die der Kunde hier eingibt auch im WK nochmal angesehen werden kann bzw, auch im mail an Händler übermittelt wird, ist jetzt noch ein klein wenig mehr Code notwendig ;)

Ein ben.def. Feld für Auftragsposition "GSERVICE" mit "text lang" anlegen.
(Projekt -> benutzerdefiniere Datenfelder -> Auftrag -> Position)

Code in stdplacecart,ipl:
<!--spmacro:module(test)
use serialize;
my %testdaten;

     ## Variablen und Konstanten für Geschenk-Service
 
## POST-Daten auslesen
my $item = ssp::qform(ssp::get_var_form('gitemid'));
if (length($item) && ($item ne ssp::undefined)) {

        $testdaten{test1}{GTEXT} = ssp::qform(ssp::get_var_form('GTEXT'));
        $testdaten{test1}{GTEXT} =~ s/\r//g;
        $testdaten{test1}{GTEXT} =~ s/\n/<br>/g;
        $testdaten{test1}{GPAPIER} = ssp::qform(ssp::get_var_form('GPAPIER'));
        $testdaten{test1}{ANREDEA} = ssp::qform(ssp::get_var_form('ANREDEA'));
        $testdaten{test1}{NAMEA} = ssp::qform(ssp::get_var_form('NAMEA'));
        $testdaten{test1}{VORNAMEA} = ssp::qform(ssp::get_var_form('VORNAMEA'));
        $testdaten{test1}{LANDA} = ssp::qform(ssp::get_var_form('LANDA'));
        $testdaten{test1}{PLZA} = ssp::qform(ssp::get_var_form('PLZA'));
        $testdaten{test1}{ORTA} = ssp::qform(ssp::get_var_form('ORTA'));
        $testdaten{test1}{STRASSEA} = ssp::qform(ssp::get_var_form('STRASSEA'));
        $testdaten{test1}{ANREDEE} = ssp::qform(ssp::get_var_form('ANREDEE'));
        $testdaten{test1}{NAMEE} = ssp::qform(ssp::get_var_form('NAMEE'));
        $testdaten{test1}{VORNAMEE} = ssp::qform(ssp::get_var_form('VORNAMEE'));
        $testdaten{test1}{LANDE} = ssp::qform(ssp::get_var_form('LANDE'));
        $testdaten{test1}{PLZE} = ssp::qform(ssp::get_var_form('PLZE'));
        $testdaten{test1}{ORTE} = ssp::qform(ssp::get_var_form('ORTE'));
        $testdaten{test1}{STRASSEE} = ssp::qform(ssp::get_var_form('STRASSEE'));

    my $datastr = serialize::serialize(\%testdaten);

if ($item == 'Geschenk-Service') {

    $main::FORM{"GSERVICE__$item"} = $datastr;
}
}
-->

im Anhang das "serialize.txt" in "serealize.pm" umbenennen (pm-Dateien sind hier nicht erlaubt, daher als txt gespeichert)
serealize.pm ins Rootverzeichnis kopieren und im die "Daten hinzufügen" Liste eintragen.
(Danke an ahe für dieses Script!!!)

Code in bestellposition.ipl
(falls noch nicht vorhanden anlegen und mit <!--spmacro:include(bestellposition.ipl)--> einbinden.
nicht vergessen dann auch in die "Daten hinzufügen" Liste eintragen!)
<!--spmacro:module(show)
sub Gesservice_WK {
    my $index = shift;
   
    my $anzahl = ssp::get_var_cart('anzahl',$index);
    my $artnr = ssp::get_var_cart('id',$index);
    my $id = ssp::get_var_cart('rawid',$index);
    my $txt = "";
   
    my $datastr = ssp::get_var_cart("GSERVICE",$index);

    if ($datastr) {
   my $tmp = serialize::unserialize($datastr);
   my %testdaten = %$tmp;

   $txt = qq|
   
<a onclick="return toggleMe('gservice')" href="javascript:void(0)"> Details anzeigen </a><br>
<div id="gservice" style="display:none"><br>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top">
        <td>Geschenkpapier:&nbsp; &nbsp;"$testdaten{test1}{GPAPIER}"</td>
</tr>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<TABLE border="1" cellspacing="0" cellpadding="0" class="no">
<tr>
<td></td>
<td align="center"><B>Absender:</B></td>
<td width="10"></td>
<td align="center"><B>Empfänger:</B></td>
</tr>
<TR>
<TD>Anrede </TD>
<TD class="geschenk">$testdaten{test1}{ANREDEA} </TD>
<td width="10"></td>
<td>$testdaten{test1}{ANREDEE}</td>
</TR>         
<TR>
<TD>Vorname </TD>
<TD>$testdaten{test1}{VORNAMEA}</td>
<td width="10"></td>
<td>$testdaten{test1}{VORNAMEE}</td>
</TR>
<TR>
<TD>Nachname </TD>
<TD>$testdaten{test1}{NAMEA}</TD>
<td width="10"></td>
<td>$testdaten{test1}{NAMEE}</td>
</TR>
<TR>
<TD>Land-PLZ </TD>
<TD>$testdaten{test1}{LANDA} - $testdaten{test1}{PLZA}</TD>
<td width="10"></td>
<TD>$testdaten{test1}{LANDE} - $testdaten{test1}{PLZE}</TD></td>
</TR>
<TR>
<TD>Ort </TD>
<TD>$testdaten{test1}{ORTA}</TD>
<td width="10"></td>
<td>$testdaten{test1}{ORTE}</td>
</TR>
<TR>
<TD>Strasse </TD>
            <TD>$testdaten{test1}{STRASSEA}</TD>
<td width="10"></td>
<td>$testdaten{test1}{STRASSEE}</td>
</TR>
    </TABLE>
<br>
<table border="0">
<tr>
<td><b>Ihr Grußtext:</b> <br>
$testdaten{test1}{GTEXT}</TEXTAREA>
</td>
</tr>
</table>
<a onclick="return toggleMe('gservice')" href="javascript:void(0)"> Details ausblenden </a>
</div>
</td>
</tr>
</table>

        |;
    }
   
   
    main::mprint $txt;
}


sub Gesservice_haendler {
     my $index = shift;
   
    my $anzahl = ssp::get_var_cart('anzahl',$index);
    my $artnr = ssp::get_var_cart('id',$index);
    my $id = ssp::get_var_cart('rawid',$index);
    my $txt = "";
   
    my $datastr = ssp::get_var_cart("GSERVICE",$index);

    if ($datastr) {
   my $tmp = serialize::unserialize($datastr);
   my %testdaten = %$tmp;

   $txt = qq|
<br>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top">
        <td>Geschenkpapier:&nbsp; &nbsp;"$testdaten{test1}{GPAPIER}"</td>
</tr>
</table>
<br>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<TABLE border="1" cellspacing="0" cellpadding="0" class="no">
<tr>
<td></td>
<td align="center"><B>Absender:</B></td>
<td width="10"></td>
<td align="center"><B>Empfänger:</B></td>
</tr>
<TR>
<TD>Anrede </TD>
<TD class="geschenk">$testdaten{test1}{ANREDEA} </TD>
<td width="10"></td>
<td>$testdaten{test1}{ANREDEE}</td>
</TR>         
<TR>
<TD>Vorname </TD>
<TD>$testdaten{test1}{VORNAMEA}</td>
<td width="10"></td>
<td>$testdaten{test1}{VORNAMEE}</td>
</TR>
<TR>
<TD>Nachname </TD>
<TD>$testdaten{test1}{NAMEA}</TD>
<td width="10"></td>
<td>$testdaten{test1}{NAMEE}</td>
</TR>
<TR>
<TD>Land-PLZ </TD>
<TD>$testdaten{test1}{LANDA} - $testdaten{test1}{PLZA}</TD>
<td width="10"></td>
<TD>$testdaten{test1}{LANDE} - $testdaten{test1}{PLZE}</TD></td>
</TR>
<TR>
<TD>Ort </TD>
<TD>$testdaten{test1}{ORTA}</TD>
<td width="10"></td>
<td>$testdaten{test1}{ORTE}</td>
</TR>
<TR>
<TD>Strasse </TD>
            <TD>$testdaten{test1}{STRASSEA}</TD>
<td width="10"></td>
<td>$testdaten{test1}{STRASSEE}</td>
</TR>
    </TABLE>
<br>
<table border="0">
<tr>
<td><b>Ihr Grußtext:</b> <br>
$testdaten{test1}{GTEXT}</TEXTAREA>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>

        |;
    }
       
    main::mprint $txt;
}
-->
Im Warenkorb mit __show::Gesservice_WK__ und in Mail an Händler mit __show::Gesservice_haendler__ ausgeben

JS-Code zum ein/ausblenden der Details im Warenkorb:
(in externe JS-Datei oder auch direkt in die Warenkorbvorlage schreiben)
<script type="text/javascript" language="JavaScript">
function toggleMe(a){
  var e=document.getElementById(a);
  if(!e)return true;
  if(e.style.display=="none"){
    e.style.display="block"
  } else {
    e.style.display="none"
  }
  return true;
}
</script>

jetzt noch die Seite zum Geschenkservice im Shop verlinken (und bewerben  ;))

fertig  ;D

Beispielseite:
(http://www.woll-insel.at/Bilder/SP-Forum/Gesserv1.png)