Neueste Beiträge

#91
Aktuelle FAQ - H?ufige Fragen / Paypal Plus
Last post by Robco - Juni 09, 2016, 13:56:34
Hallo,

wir möchten als Zahlungsweise Paypal plus anbieten, dies ist offensichtlich derzeit mit unserer Enterprise-Version nicht möglich. Die Schnittstelle müsste neu programmiert werden.
Hat denn sonst niemand Interesse an Paypal Plus ? Oder hat schon jemand eine Möglichkeit gefunden, dies in den Shop zu integrieren?

Mfg - robco
#92
News / ShopPilot Enterprise 3.07.02
Last post by admin - März 07, 2016, 13:52:39
ShopPilot Enterprise 3.07.02         05.02.2016
==============================================
Installationshinweise:

setup-ep3-07-02.exe
Hierbei wird zunächst deinstalliert und anschließend
eine Vollständige Neuinstallation durchgeführt.
Diese Release enthält eine komplett neue Perl Distribution, die
dem aktuellen Entwicklungsstand (5.20.3) entspricht.
Damit wollen wir erreichen, dass Inkompatibilitäten schon
im LiveView Betrieb erkannt werden können und nicht erst
beim Online Betrieb auffallen.

Wegen der geänderten Ordnerstruktur ist ein Update nicht möglich.

Aufgrund der neuen Perl-Version ist bei (LiveView) eine defined <hash> nicht mehr zulässig.
Bei bestehenden Projekten mit Ajax ist in ajax.html

if (defined %main::module_methods) {
   %methods = (%methods,%main::module_methods);
}

in

if (%main::module_methods) {
   %methods = (%methods,%main::module_methods);
}

zu ändern (also "defined" weglassen) oder das ajax-Modul neu zu installieren.
Dies betrifft nur den Betrieb mit Liveview.


Neuanlage der Datenbank ist nicht notwendig.
----------------------------------------------------------

Korrekturen:
- Es werden nur Artikel in den Warenkorb gelegt, die auch in der DB existieren.
  Diese Prüfung wird jetzt auch bei Multiplacecart-Formularen durchgeführt.

- Ein $ im Datenbankpasswort kann zum Scriptfehler führen,
  da es in den Scripten nicht escaped wurde.

- Drag and Drop von Verknüpfungen auf Variantenartikel:
  Problem behoben, das dazu führte, dass die Varianten aus dem Shop gelöscht
  und ohne Datenbankneuanlage nicht wieder eingefügt wurden.

- Der Dateivorschaudialog wurde an zwei Stellen falsch verwendet. Es wurde kein
  Path berücksichtigt. Die Datei konnte nur direkt im Projektordner geöffnet werden.

- Static Builder MRW - Artikel - Der Static Builder MRW verwendet
  nicht die Subkatalog-Texte für die Vergabe der Artikel Dateinamen,
  sondern den Titel aus dem Hauptkatalog.

- Static Builder MRW - Wenn man die Option "nur eine Detailseite erzeugen"
  aktiviert hat, kann es passieren, dass URLs doppelt vergeben werden
  (einmal für Seiten und einmal für Artikel).

- Module mit Modulbeschreiung v1 wurden nicht mehr ins richtige Verzeichnis installiert.
 
- XZAHLARTEX wurde ignoriert wenn man Callback::exclude_zahlart benutzte. Nun werden beide Bedingungen zusammengeführt.

Neuerungen:

- Im Login Formular kann ein Häckchen "eingeloggt bleiben" sein
  Dafür muss es hidden Input mit dem Namen enable_stay_logged geben
  aufgrund des Wertes der Checkbox stay_logged wird dann NOCOOKIE negiert
  und in die DB geschrieben

  Beispiel:
  <input type="hidden" name="enable_stay_logged" value="1">
  <span class="stay_logged_title">angemeldet bleiben</span>
  <input type="checkbox"  name="stay_logged" value="1">


 
- Die Dialoge für den Datenimport sind nun deutlich grösser.
   Ebenso die Listen der Tabellen in denen man nun sofort auch
   längere Tabellennamen ohne Scrolling sehen kann.
   Die Tabellennamen werden nun außerdem sortiert dargestellt.

-  Wiederherstellung Fenstergrösse: Es werden nun auch mehrere Monitore unterstützt
-  Wiederherstellung Fenstergrösse: Styles des Fensters werden wiederhergestellt (u.a. Vollbildanzeige)

-  Neue SSP-Funktion
   ssp::get_wkanzahl()  . Arbeitet wie __wkanzahl__, kann also Anzahl Positionen oder Anzahl Artikel ausgeben.

-  Neues Callback::myreadCatalog_skipItems
    Mithilfe dieses Callbacks kann das Einlesen der Artikel einer Seite unterbunden werden.
    Hilfreich zb für Filterseiten bei denen alle Artikel auf einer Seite liegen, aber die
    komplette Ausgabe von eigenen Scripten realisiert wird.
    In diesem Fall ist das Einlesen hier unnötig und kostet
    teilweise sehr viel Zeit bei mehreren 1000 Artikeln auf der Seite.

-  Neues Callback::modify_currency($g_currencyid, \@currency)
    Mithilfe dieses Callbacks kann zb der Währungsumrechnungskurs
    per Script gesetzt werden.

-  Artikelbild im Workcenter wird auf der Eigenschaftsseite des Artikels angezeigt

-  Damit Texte mit Sonderzeichen richtig dargestellt werden, werden solche Zeichen
   in HTML Entities umgewandelt. 
#93
SSP - Shop Server Pages / Zahlen in Textfeld richtig sor...
Last post by dobra - Oktober 27, 2015, 19:18:29
Wenn man Zahlen in ben.def Feldern mit "ORDER BY" sortieren will, hat man das Problem dass 11 kleiner als 9 ist :(

1
226
3
4
56
673
7
usw


Abhilfe:

statt
ORDER BY <Textfeld> ASC/DESC
schreibt man
ORDER BY CONVERT (<Textfeld>, DECIMAL) ASC/DESC

so werden dann Zahlen auch in Textfeldern korrekt sortiert

im Beispiel:
1
3
4
7
56
226
673

#94
SSP Bibliothek / Artikel befristet als Aktion a...
Last post by dobra - September 19, 2015, 19:31:34
Hallo,

die Verwendung von STARTPUB und STOPPUB ist manchmal zu umständlich, oder es sollen die regulären Artikelnr. verwendet werden - also kein extra Aktionsartikel angelegt werden, bzw. wird bei dieser Methode ja die Detailseite des "quasi ausgeblendeten" Artikels trotzdem angezeigt wenn der Kunde die Adresse gespeichert hat etc.

Eine elegant Lösung ist die Verwendung von Callback::modify_db_price.

Wir brauchen:
1) ein ben.def. Artikel-Feld  "AKTIPREIS" -> normales Textfeld
2) zwei ben.def. Artikel-Felder "START" und "STOP" -> Datum-Felder 
(können natürlich auch anders heißen, dann im Script anpassen)

im Feld AKTIPREIS wird der Aktionspreis eingetragen, in START und STOP Anfangs- und Enddatum der Aktion
eh selbsterklärend ;)

In stdall.ipl dann noch diesen Code schreiben:
<!--spmacro:module(Callback)
sub modify_db_price() {
my $p = $_[0];
my $time = (time);
my $artid = $_[1];
my $pre = ssp::db_get_prefix();
my $ITEM = $pre . "ITEM";
ssp::readSQLData("SELECT AKTIPREIS FROM $ITEM WHERE ITEMID='$artid' AND START <= $time AND STOP >= $time","AKTIPREIS");
my $apreis = ssp::get_var_db('AKTIPREIS', 0);
if($apreis ne $ssp::undefined && $apreis ne ""){
return $apreis;
}
else
{
return $p;
}
}
-->


Ist für einen Artikel ein Aktionspreis eingetragen und heute ist nach Aktionsstart und vor Aktionsende wird der Aktionspreis angezeigt und berechnet.
Anderenfalls passiert garnichts - der Artikelpreis wird nicht verändert.
So können beliebig viele Aktionsartikel Tage/Wochen/Monate/Jahre im voraus angelegt werden und man braucht sich um nichts mehr kümmern.

Wer mag kann auch noch den (durchgestrichenen) "alten" Preis und/oder ein Aktionsbanner ausgeben und das ganze beliebig stylen.
#95
Shopbetrieb / Druckansicht bei responsive De...
Last post by dobra - September 19, 2015, 10:43:41
Wenn die Shopseiten mit Bootstrap erstellt sind, werden bei der Druckansicht alle Links mit http.... ausgegeben
(warum auch immer das so ist  :o)

Beispiel
diese Seite


wird in der Druckansicht so ausgegeben


Abhilfe:
@media print {
    a[href]:after {
    content: "";
  }
}


Dann können auch responsive Seiten wieder "normal" (= ohne die Links) gedruckt werden.
#96
Aktuelle FAQ - H?ufige Fragen / Re: Mehrere Lieferadressen pro...
Last post by Ingolf - September 04, 2015, 14:00:10
Gibt es ein Beispiel für diese Anwendung?
Danke
#97
ShopPilot Enterprise / Re: Alle Aufträge in Shoppilot...
Last post by dobra - August 30, 2015, 14:04:36
Die Möglichkeit Aufträge aus der online-DB (ORDERS und OITEMS) zu importieren hätte ich auch schon manchmal gebraucht ....

Wenn man z.B. die OITEMS nur für "Bestseller" braucht, gibt es eine "quick and dirty" Lösung:

Aus der online-Tabelle einen Dump exportieren - Tabellen-Präfix anpassen - und dann das SQL-Statement in die lokale DB einfügen.
(funktioniert aber nur, wenn man auch lokal mySQL verwendet)
Geht auch mit der online DB wenn man eine andere Tabelle/anderen Präfix für das (neue) Shopprojekt hat.

Man hat die Bestellungen dann zwar trotzdem nicht im WorkCenter, aber kann die Tabelle abfragen:
my $OITEMS = ssp::db_get_prefix() . "OITEMS";
Achtung ! - Datenreplizierung für Bestellungen muss dann im WC deaktiviert sein sonst wird das bei jedem DB neu anlegen überschrieben bzw. gibt massenhaft Fehlermeldungen.
#98
SSP Bibliothek / Bestseller nur für die jeweili...
Last post by dobra - August 26, 2015, 20:02:11
Aufgabe:

es sollen in der jeweiligen Katalog-Kategorie nur die Bestseller Artikel aus dieser Kategorie angezeigt werden.

Also z.B bei "Drucker und Zubehör" keine Kabel oder Mäuse sondern nur die Bestseller aus der Kategorie Drucker und Zubehör


Lösung:

in iplBestseller.ipl

$query = qq~
SELECT $OITEMS.ITEMID,
Sum($OITEMS.COUNT) AS itemcount
FROM $OITEMS
GROUP BY $OITEMS.ITEMID
ORDER BY itemcount DESC
LIMIT $MAX_OUT
~;


mit

#  Suche auf Unterseiten beschraenken
my $page = $ssp::pgid;
main::getChildCategoriesRecursive($page,\%pages);
my $suchort_sql = " PGID IN (" . join(",", keys(%pages)) . ")";

my $OITEMS = ssp::db_get_prefix() . "OITEMS";
my $ITEM = ssp::db_get_prefix() . "ITEM";

my $query = qq|SELECT $OITEMS.ITEMID, Sum($OITEMS.COUNT) AS itemcount FROM $OITEMS
LEFT JOIN $ITEM ON $OITEMS.ITEMID=$ITEM.ITEMID WHERE $suchort_sql GROUP BY $OITEMS.ITEMID ORDER BY itemcount DESC LIMIT $MAX_OUT|;


ersetzen.

Das ist jetzt nur die Lösung für mySQL - wie/ob es für Access auch funktioniert weiß ich nicht ....
#99
Shopbetrieb / enable_jsfunct=on | on_login |...
Last post by dobra - August 24, 2015, 18:38:52
Achtung bei Verwendung der neuen enable_jsfunct=on | on_login | off Funktion !

ZitatNeue Project.ini Einstellung:
  [content]
  enable_jsfunct=on | on_login | off
  Default ist "on". Der von ShopPilot eingefügte Javascriptbereich mit include von jsfunct.js kann deaktiviert werden.
  Da diese Funktionen oft nur nach Login benutzt werden, ist auch die Einstellung on_login möglich.
  Ziel: Verbesserung der Pagespeed.

Hatte das bei meinen Shops gleich deaktiviert (enable_jsfunct=off) da ich die vars eh nicht verwende.

Durch Zufall habe ich jetzt gemerkt, dass dann aber das
__favloesch__
nicht mehr funktioniert :(

Bei Klick auf "löschen" passiert garnichts -> Firebug meldet
ZitatReferenceError: script_home_js is not defined    
location.replace(script_home_js + "/iboshop.cgi?favdel" + fullpath);

Wenn man eingeloggten Kunden die Merkzettel-Funktion zur Verfügung stellt, muss unbedingt
enable_jsfunct=on oder enable_jsfunct=on_login
verwendet werden !
#100
Allgemein / Umlaute werden falsch dargeste...
Last post by dobra - August 14, 2015, 10:35:16
Ein mögliche Ursache:
Wenn man notepad++ neu installiert (z.B. weil man einen neuen Rechner einrichtet), werden neue Tabs mit UTF-8 ohne BOM kodiert.
Mit einer so abgespeicherte Vorlage oder ipl-Datei werden die Sonderzeichen im Shop nicht korrekt dargestellt.
Jedesmal die Kodierung ändern (oder das regelmäßig vergessen  :-\ ) ist lästig.
(sobald man erstmal rausgefunden hat warum die Umlaute nicht richtig angezeigt werden ;) )

Abhilfe:
Die Default-Einstellung kann man unter Einstellungen -> Optionen -> Neue Dateien -> Kodierung festlegen.



hier ANSI anklicken und das Problem hat sich erledigt :)