Shopsystem ShopPilot

ShopPilot => ShopPilot Enterprise => Thema gestartet von: dobra am August 17, 2009, 09:53:57

Titel: Sammelthread: Funktionen aus Demoshops in bestehende Shops einbauen
Beitrag von: dobra am August 17, 2009, 09:53:57
Hallo,

Beim Einbau von Funktionen aus Demoshops kann man - auch als erfahrener SP-user - leicht mal was übersehen.
Um dann nicht erst lange in den jeweiligen Scripten suchen zu müssen, möchte ich hier kurze step by step Einbauanleitungen geben.

Damit das nicht unübersichtlich wird, Fragen dazu bitte in einem neuen Thread stellen.
(in diesem können nur Moderatoren oder Admins schreiben)

Tipp: bauen Sie die Funktionen zuerst mit den Original-Dateien ein und testen Sie es mit LiveView.
erst wenn alles funktioniert, die Dateien an die eigenen Bedürfnisse anpassen.

Wichtig: bevor Sie irgendwelche Änderungen am Shop-Projekt machen: vorher IMMER eine Sicherungskopie anlegen!
Titel: "zuletzt gesehene Artikel" (Styleshop)
Beitrag von: dobra am August 17, 2009, 09:58:16
Hallo,

aus gegebenem Anlass (private Frage wie das geht) hier mal eine kurze Anleitung, wie man die "zuletzt gesehene Artikel" Funktion aus dem neuen Styleshop in ein bestehendes Projekt einbaut.

1) benötigt werden die Dateien

2) hat man in seinem Projekt die Ordner "scripts" und "embedded", einfach die 3 neuen Dateien in die jeweiligen Ordner kopieren.
ansonsten vorher diese beiden Ordner anlegen.

3) um die Scripte einzubinden, auf allen Detailseiten <!--spmacro:include(scripts/last_seen_reg.ipl)-->
und auf allen Seiten, auf denen die Anzeige der zuletzt gesehenen Artikel ausgegeben werden soll <!--spmacro:include(embedded/last_seen.ipl)-->
in den Headbereich schreiben.
man kann das  <!--spmacro:include(embedded/last_seen.ipl)-->  auch in die stdall.ipl schreiben, dann ist das Script automatisch auf ALLEN Seiten verfügbar und man braucht sich nicht mehr darum kümmern  ;)

4) jetzt kann auf jeder beliebigen Seite mit   __last_seen::show__   die Anzeige ausgegeben werden.

txt-Datei gegebenenfalls anpassen.

Sollten die Bilder zu groß sein, hier noch ein Script, mit dem man die Bilder in beliebige Größe scalieren kann:
<!--spmacro:module(img)
# Größe Artikelbilder verändern
sub show {
   my $index = $_[0];
   my $anzahl = $_[1];
   my $path = $ssp::catalog_abs;
   my $itemid = ssp::get_var_article('itemid',$index);
   if ($index <= $anzahl) {
      my $pic = ssp::get_var_article('iimage',$index);   my $seite = ssp::get_var_article('ipagenr', $index);

      main::mprint('<a href="__img::link__"><img border="1px solid black" width="27px" src="' . $path . '/' . $pic . '"></a>');
   }
}

sub link {
my $index = shift;
my $anzahl = shift;
if ($index <= $anzahl) {
my $seite = ssp::get_var_article('ipagenr', $index);
my $itemid = ssp::get_var_article('itemid', $index);
main::mprint(qq|__xxpath__?showd$seite!0,$ssp::xxsession,$itemid|);
}
return "noinc";
}
-->
hier width=... wird die gewünschte Breite (oder Höhe) eingestellt.

in der txt-Datei   __simage__  mit  __img::show__  ersetzen.
die Bilder sind jetzt exakt so gross wie man sie haben will - MIT Link zur Detailseite wie bei  __simage__
Titel: "Artikel sortieren" (Styleshop)
Beitrag von: dobra am August 17, 2009, 10:26:12
notwendige Schritte:


Die Formatierungen, Icons, Texte usw. können natürlich angepasst werden.
Titel: Artikelbeschriftung und eigene Bilder uploaden (Konfiguratorshop)
Beitrag von: dobra am August 17, 2009, 16:50:06
um die Funktion "Artikel beschriften", "Farbe wählen" und "eigenes Bild uploaden" wie bei den Mouspads im Konfiguratorshop sind folgende Schritte nötig:

1)  falls noch keine stdplacecart.ipl existiert diese anlegen und in die Liste "Dateien hinzufügen" eintragen.
2) diesen Code in die stdplacecart.ipl kopieren
<!--spmacro:module(form)
## POST-Daten auslesen
my $item = ssp::get_var_form('paditemid');
if (length($item) && ($item ne ssp::undefined)) {
my $padline = main::qform(ssp::get_var_form('PADLINE'));
my $red = int(ssp::get_var_form('padcolor_red'));
my $green = int(ssp::get_var_form('padcolor_green'));
my $blue = int(ssp::get_var_form('padcolor_blue'));
        my $image = main::qform(ssp::get_var_form("PADIMAGE"));

## Bereichsprüfung
if ($red > 255) { $red = 255; }
if ($red < 0) { $red = 0; }
if ($green > 255) { $green = 255; }
if ($green < 0) { $green = 0; }
if ($blue > 255) { $blue = 255; }
if ($blue < 0) { $blue = 0; }

## In Form #rrggbb bringen
my $color = sprintf("#%02x%02x%02x", $red, $green, $blue);
if ($item) {
$main::FORM{"PADLINE__$item"} = $padline;
$main::FORM{"PADCOLOR__$item"} = $color;
            $main::FORM{"PADIMAGE__$item"} = $image;
}
}
-->

3) die imageupload.ipl Datei aus dem Konfiguratorshop (im Ordner "scripts") in Ihr Projekt in den selben Ordner kopieren (falls noch nicht vorhanden - vorher anlegen) und in "Dateien hinzufügen" eintragen.

4) im WC 3 benutzerdefinierte Felder bei Auftrag -> Positionen anlegen
    PADLINE, PADCOLOR und PADIMAGES

5) eine HTML-Vorlage (Detail-Seite) für Artikel mit dieser Funktion erstellen.
    Die Seite kann wie jede andere Detailseite aufgebaut sein, aber DIESE Teile müssen enthalten sein:

<!--spmacro:pagetype(1)-->
<form method="post" action="__xformcart__">
<input type="hidden" name="paditemid" value="__artnr__">


--- hier Ihr normaler Inhalt ---

+ zusätzlich

      <script type="text/javascript">
      function showPreview() {
         var red = window.document.getElementById('padcolor_red').value;
         var green = window.document.getElementById('padcolor_green').value;
         var blue = window.document.getElementById('padcolor_blue').value;
         red = parseInt(red);
         green = parseInt(green);
         blue = parseInt(blue);
         if (red > 255) { red = 255; }
         if (red < 0) { red = 0; }
         if (green > 255) { green = 255; }
         if (green < 0) { green = 0; }
         if (blue > 255) { blue = 255; }
         if (blue < 0) { blue = 0; }
         window.document.getElementById('padcolor_preview').style.backgroundColor = "rgb("+red+","+green+","+blue+")";
      }
      </script>
      <table>
      <tr>
         <td>Beschriftung</td>
         <td>
            <input name="PADLINE" id="PADLINE" type="text" size="45" maxlength="250">
         </td>
      </tr>
      <tr>
         <td valign="top">Textfarbe&nbsp;</td>
         <td>
            Rot&nbsp;<input name="padcolor_red" id="padcolor_red"  type="text" size="3" maxlength="3" value="0" onChange="javascript:showPreview();">
            Gr&uuml;n&nbsp;<input name="padcolor_green" id="padcolor_green"  type="text" size="3" maxlength="3" value="0" onChange="javascript:showPreview();">
            Blau&nbsp;<input name="padcolor_blue" id="padcolor_blue" value="0" type="text" size="3" maxlength="3"  onChange="javascript:showPreview();">
            Farb-Vorschau&nbsp;<input type="text" id="padcolor_preview" style="border:1px solid gray; background-color:black;" size="3" readonly>
            <br>
            <i>Hinweis: Tragen Sie jeweils Zahlen zwischen 0 und 255 ein.</i>
         </td>
      </tr>
      </table>

   <!-- *** Bildupload bereitstellen *** -->
   <!--spmacro:include(scripts/imageupload.ipl)-->
   <div class="innercontent">
      <!--    PADIMAGE heisst das benutzerdefinierte Feld für Bestellpositionen,
            in dem die eingetragenen Bilder gespeichert werden -->
      <input type="hidden" name="PADIMAGE" value="__imageupload::printImage__">
      __imageupload::printdetailpage_registeredonly__
   </div>
   <!-- *** Ende: Bildupload bereitstellen *** -->

</form>

unbedingt nötig ist auch entweder __anzkaufen__ oder ein entsprechendes hidden input!

6) ein weitere HTML-Vorlage "p_addimage.html" anlegen.
Hier kommt dieser HTML-Teil hinein:
   <!--spmacro:include(scripts/imageupload.ipl)-->
   __imageupload::printuploadpage__

7) eine Info-Seite anlegen
    Titel: Bildupload
     Vorlage: die zuvor erstellte p_addimage.html

8 )  in der Warenkorbvorlage und allen folgenden Seiten (Bestelldatenvorlage, Mails an Händler und Kunden)
      <!--spmacro:include(scripts/bestellposition.ipl)--> in den head-Bereich eintragen

9) zur Ausgabe im WK
   <!-- *** Ausgabe Zusatzdaten für personalisierbare Artikel *** -->
   __bestellposition::printBenutzerdefinierteFelder_Bearbeitbar__
   <!-- *** Ende: Ausgabe Zusatzdaten für personalisierbare Artikel *** -->
und in den Bestelldatenvorlagen und Mails
__bestellposition::printBenutzerdefinierteFelder__
im Loopitemteil vor <!--spmacro:enditem--> einfügen.

10) DB neu anlegen (lokal und online)

Wenn alles korrekt funktioniert noch die HTML-Teile in den Scrips an Ihre Seite anpassen.

P.S.: Wie man die den Verkauf von Meterware einbaut, ist hier (http://www.shoppilot.de/shoppilot/doc/tutorial_meterware.pdf) nachzulesen