ShopNix

Tagebuch eines Shops auf Basis von osCommerce

Archive for the ‘Erweiterungen’ Category

Produktvarianten per Stückliste

leave a comment »


Hierbei handelt es sich um eine einfache Methode, Produktvarianten mittels Stückliste zu hinterlegen und in dieser Form in den Warenkorb zu transferieren. Dazu benötigen wir eine zusätzliche Tabelle, in die der Hauptartikel, eine laufende Nummer pro Produktvariante, die Stücklistenposition und deren Menge eingepflegt wird. Dies geschieht zumindest vorläufig auf Basis einer Excel-Tabelle, die anschließend in die Tabelle sx_variant der Shop-Datenbank importiert wird.

Das Programm product_info.php erhällt eine kleine Erweiterung, die diese Stückliste ggfls ausliest und in den Warenkorb kopiert.

Beispiel für den Aufruf: http://xxx/product_info.php?products_id=34437&variant=1

Advertisements

Written by spessart

2. März 2010 at 13:19

Veröffentlicht in Erweiterungen, osCommerce

Tagged with , ,

Linkverfolgung

leave a comment »


Ich möchte gerne wissen, wie gut externe Links auf meinen Shop bzw. auf einzelne Produkte angenommen werden. Die einfachste Möglichkeit, solche Links differenziert aufzunehmen ist die Vergabe einer ID, die an den Link angehängt wird. An zentraler Stelle (am Ende des Scripts includes/application_top.php) hänge ich eine Funktion an, die auf die GET-Variable „idseo“ prüft und ggfls. einen Zähler hochsetzt. Dazu ist natürlich auch die neue Tabelle sx_idseo in der Datenbank nötig.

Der Link sieht dann beispielsweise so aus:

http://vapr.shopnix.de/shop/product_info.php?products_id=26&idseo=3

So kann ich z.B. auch sehen, ob eine geschaltete Anzeige gut angenommen wird, ob mir ein Bannertausch den erwünschten Erfolg bringt und vieles mehr. Natürlich soll das im Backend abzufragen und zu verwalten sein.

Dazu kopiere ich zunächst die Dateien languages.php (Programm und Sprachkonstanten) auf sx_idseo.php und passe entsprechend an.

Dann kommt natürlich der Menüeintrag hinzu, und das alles funktioniert nur, wenn ich auch die Tabellen und Dateinamen als Konstanten in database_tables.php und filenames.php hinterlegt habe.

Solche Techniken können unter der Rubrik SEO (Search Engine Optimization) oder Suchmaschinenoptimierung verbucht werden.

Written by spessart

27. April 2009 at 16:26

Zahlungsbedingungen und ähnliche Texte

leave a comment »


Ein permanentes Ärgernis ist die Bearbeitung der Zahlungsbedingungen und ähnlicher Texte. Deshalb würde ich gern einen kleinen Texteditor für diese Zwecke zur Verfügung stellen. Prinzipiell soll das so funktionieren wie z.B. dieser Blog.

In einer eigenen Infobox sollen alle vorhandenen (und veröffentlichten) Texte gelistet werden. Erfasst und bearbeitet werden die Text im Admin mit dem neuen Programm admin/text.php, dessen Rohgerüst ich als Kopie aus admin/orders_status.php übernehme.

Zur Aufnahme eines neuen Programms sind folgende Schritte notwenig:

  • Erstellen des Programms als admin/text.php
  • Übersetzung(en) erstellen als admin/includes/languages/SPRACHE/text.php
  • Eintrag in admin/includes/filenames.php
  • Menü in admin/includes/boxes/localization.php
  • Die Übersetzung für den Menüeintrag in admin/languages/SPRACHE.php
  • Erstellen der neuen Tabelle sx_text in der Datenbank
  • Eintrag in admin/includes/database_tables.php

Jetzt gehts los. Die Tabelle sieht so aus:

CREATE TABLE sx_text (
  text_id smallint,
  language_id smallint,
  text_sort smallint,
  text_title char(35),
  text_content text,
  primary key (text_id, language_id)
)

Der Text bekommt also eine laufende Nummer verknüpft mit der Sprache zur eindeutigen Zuordnung, eine Sortierfolge und einen Titel für den Link der zugehörigen Infobox.

Im Shop gibt es nun noch eine neue Infobox, die als Linktext den Titel des Texts verwendet, der Link verweist auf eine neue Routine, die Inhalt des jeweiligen Texts anzeigt. Die Mehrsprachigkeit ist nach dem typischen Schema in osCommerce gewährleistet, d.h. gemäß der Variable $languages_id wird der Text in der passenden Sprache angezeigt.

Außerdem ist es sinnvoll, einige Zeilen in admin/language.php zu ergänzen. Damit werden neue Texte pro Sprache in der Datenbank angelegt, wenn eine neue Sprache angelegt wird.

Als Rich Text Editor (rtf editor) habe ich tinyMCE gewählt. Der Editor ist klein, schnell und kann alles, was ich brauche.

Written by spessart

16. September 2008 at 12:01

Pseudo-Shops in osCommerce

leave a comment »


Ein Kunde wünscht verschiedene Bereiche für die unterschiedlichen Warengruppen seines Shops. Eine funktionale Änderung ist nicht erwünscht, die Warengruppen sollen nur optisch abgesetzt und die Kategorien sollen dadurch übersichtlicher werden. Als mögliche Lösung bietet sich an, die erste Kategorie-Ebene für diesen Zweck zu verwenden.

Prinzipiell gibt es dazu einige Contributions, z. B.:

http://www.oscommerce.com/community/contributions,1730
oder
http://www.oscommerce.com/community/contributions,2802

Wer sich schlau machen möchte, kann nach Multi-Shop, Multi-Store und Great Categories Ausschau halten. Unter diesen Suchbegriffen sollte sowohl im Forum als auch in den Contributions etwas zu finden sein.

Die Contributions sind mir nicht ganz geheuer, unter anderem deshalb, weil sie scheinbar seit länger Zeit nicht mehr bearbeitet wurden. Daher versuche ich eine eigene Lösung. Eine erste Suche über die Sourcen nach dem Begriff „categories_name“ ergibt, daß die SQL-Abfragen dazu nur an wenigen Stellen vorkommen.

includes/boxes/categories.php
includes/application_top.php
includes/functions/general.php
index.php

Das sollte zu schaffen sein, zumal index.php ohnehin noch zur Überarbeitung ansteht.

Nach längerer Sucherei ist das Problem mit sehr geringen Eingriffen zu lösen. Zuerst gibt es wieder einen Parameter in der Konfiguration, SNX_OPTION_PSEUDO_SHOPS kann die Werte ‚True‘ oder ‚False‘ annehmen.

Dann füge ich in includes/header.php eine zusätzliche Tabelle ein. Hier soll die erste Kategorieebene in Form von Karteireitern dargestellt werden. In includes/boxes/categories.php blende ich nun erste Kategorieebene aus, indem ich die Ausgabe der entsprechenden Zeilen unterdrücke.

Auf der Administrationsebene ändert sich nichts, da die Kategorien lediglich optisch anders angeordnet sind.

So ist mit einem Bruchteil des Codes der oben angeführten Contributions die Anforderung umgesetzt.

Written by spessart

3. September 2008 at 23:46

Infoboxen ein- und ausschalten

with 4 comments


Der osCommerce-Shop hat ein 3-spaltiges Layout. Die beiden äußeren Spalten sind von Infoboxen bevölkert.

  • Kategorien
  • Hersteller
  • Neue Produkte
  • Schnellsuche
  • Informationen
  • Warenkorb
  • Bestellübersicht
  • Herstellerinfo
  • Benachrichtigungen
  • Weiterempfehlungen
  • Angebote
  • Bewertungen
  • Sprachen
  • Währungen

Nicht alle diese Boxen sind gleichzeitig sichtbar. Das ist abhängig vom aktiven Programm, oder davon, ob der Kunde angemeldet ist oder nicht. Einige davon halte ich für überflüssig, andere werde ich noch einfügen. Deshalb möchte ich diese Boxen vom Backend aus ein- bzw. ausschalten können. Eigentlich nicht besonders schwierig, ich habe eine neue Gruppe zur Konfiguration hinzugefügt und für jede der Boxen (ausgenommen die Kategorien) einen Schalter eingefügt.

Produktbeschreibung in der Liste

leave a comment »


Der Standard des osCommerce Shops zeigt in der Produktliste nur den Namen des Produkts, die Beschreibung fehlt. Da die Inhalte der Produktliste dynamisch zusammengesetzt wird, ist der richtige Punkt für eine Änderung nicht leicht zu finden.

Meine Lösung besteht in einer kleinen Ergänzung in index.php und einer weiteren im Anzeigemodul modules/products_listing.php. Bei dieser Gelegenheit ändere ich auch die Formatierung. Suchmaschinen bewerten Überschriften höher als normalen Text. Deshalb setze ich den Produktnamen als Überschrift mit eigener Klasse im Stylesheet.

Written by spessart

26. Juli 2008 at 14:11

xSell: Cross Selling mit osCommerce

leave a comment »


Mit dem xSell-Modul können Zubehöre oder Verkaufsstücklisten zu beliebigen Artikeln angelegt werden. Im Shop werden diese Artikel dann unterhalb der Artikelbeschreibung und der Bestellbuttons in der Detailansicht des Artikels angezeigt.

Im Standard wird an dieser Stelle auch das Modul „Andere Kunden haben gekauft:“ (also_purchased.php) eingeblendet. Ich habe für diese Zwecke im Verwaltungsbereich eine neue Konfigurationsgruppe angelegt, in der solche Module ein- und ausgeschaltet werden können.

Die Contribution xSell enthält auch Componenten für das Backend, die ich vorläufig zurückstelle. Außerdem ist eventuell noch eine kleine Überarbeitung fällig, weil mir die Tabellenstruktur nicht behagt. Ich würde gern über die Indizes sicherstellen, daß keine Duplikate vorkommen können.

Beim Test im Shop je einen Artikel mit und ohne Produktoptionen kurz antesten. Für Artikel mit Optionen muß eine Weiterleitung auf den xSell-Artikel erfolgen. Nur so kann der Kunde seine Option wählen.

Written by spessart

24. Juli 2008 at 22:35