Das Problem: bei einem xt:Commerce oder xtcModified schlägt das Login in den Adminbereich fehl. Der eigentlich korrekt als Administrator deklarierte Nutzer wird beim Zugriff auf admin/start.php nach account.php weitergeleitet. Sonst verhält sich das Frontend des Shopsystems korrekt. Einige Lösungsvorschläge.

include/configure.php = admin/includes/configures.php ?

Ein Fehler, der schnell mal passiert, da xt:Commerce auf zwei nahezu identische Konfigurationsdateien baut: include/configure.php und admin/includes/configures.php.

In meinem Fall wurde die Datenbank des Shopsystems gewechselt. Dabei wurde schlichtweg die Anpassung der Datenbankverbindung (User, Password, DB-Name) der configures.php im admin/includes Ordner vergessen. Das führte zu oben beschriebenen Verhalten. Also: genau prüfen, ob sich Angaben in den beiden configures.php ausschließen.

Weitere Ansätze

Generell weißt die Weiterleitung auf die account.php auf ein Problem mit den Zugriffsrechten oder der Speicherung der Sessions in Datenbank bzw. Dateisystem hin. Entsprechende Angaben und Einstellungen sollte man prüfen. Fragestellungen aus meinen Recherchen:

  • Ist der Codeblock define('STORE_SESSIONS', 'mysql'); in beiden configures.php gleich?
  • Ist der Pfad im Wert für SESSION_WRITE_DIRECTORY in der DB Tabelle configuration wirklich beschreibbar?
  • Ist der Wert von SESSION_FORCE_COOKIE_USE in der DB Tabelle configuration auf False gesetzt?
  • Ist der Nutzer auch wirklich Mitglied der Admin – Kundengruppe?

Viel Erfolg bei der Suche! Vielleicht verkürzt dieser Beitrag diese um einige Minuten oder Stunden ;)

Wer Preisangaben in einem xt:Commerce oder xtcModified formatieren will, stößt zwangsläufig auf Hürden. Sonderpreise sind nur ein Beispiel für die nicht konsequente Nutzung der Smarty Template Engine in diesen Shopsystemen. Anwendungslogik und Markup werden nicht klar getrennt, was unschöne Eingriffe wie diesen hier zur Folge hat.

Sonderpreise formatieren

In der Standardinstallation wird bei xtcModified folgende Formatierung in den Produktlisten und Spezialseiten wie Sonderangeboten verwendet:

Statt xyz EUR
Nur xyz EUR
Sie sparen abc % / xyz EUR inkl. MwSt. und Versand

Drei Zeilen werden für den Preis verbraucht, darüber hinaus werden Informationen zu Steuerklasse und Versand in der „Sie sparen“ Zeile angehangen. Zusätzlich wird hier viel mit small und del Tags gearbeitet. Alles überaus unschön.

Wer dies nun bereinigen will, muss außerhalb des Templates suchen. Die Datei includes/classes/xtcPrice.php gilt es abzuändern. Folgende Codezeile innerhalb der Funktion xtcFormatSpecial erstellt obige Preisangaben auf Produktdetailseiten und der Spezialseite „Sonderangebote“:

$price = '<span class="productOldPrice"><small>'.INSTEAD.'</small><del>'.$this->xtcFormat($pPrice, $format).'</del></span><br />'.ONLY.$this->checkAttributes($pID).$this->xtcFormat($sPrice, $format).'<br /><small>'.YOU_SAVE.round($discount).' % /'.$this->xtcFormat($pPrice-$sPrice, $format).'</small>';

Um die Sonderpreise mit allen Informationen in zwei Zeilen unterzubringen und die small Tags aus der Ausgabe zu entfernen, kann folgender Code verwendet werden:

$price = '<span class="productOldPrice">'.INSTEAD.'<del>'.$this->xtcFormat($pPrice, $format).'</del>&nbsp;'.YOU_SAVE.round($discount).' % /'.$this->xtcFormat($pPrice-$sPrice, $format).'</span><br />'.ONLY.$this->checkAttributes($pID).$this->xtcFormat($sPrice, $format);

Zu beachten ist, dass mehrerer Funktionen in der xtcPrice.php Sonderpreis – Markup erstellen. Es wird also üblicherweise nicht bei einer Ersetzung bleiben. Hier einfach nach dem Codefragment class="productOldPrice" suchen und entsprechende Änderungen vornehmen.

Alternativen

Im Forum zu xtcModified werden einige Alternativen zu diesem Vorgehen genannt. Sicher ist es sauberer, die Sonderpreisangaben gänzlich aus den Preisfunktionen auszulagern. Eines bleibt jedoch: die Updatefähigkeit wird aufgrund neu entstehender Funktionen in der xtcPrice.php so oder so stark eingeschränkt.

Im verlinkten Thread wird auch auf gunnartPricing – einer Pluginlösung für xt:Commerce – hingewiesen. Diese habe ich nicht getestet, soll aber der Vollständigkeit halber hier genannt werden.

27
Dez

Für die Portierung eines JTL Shops der Version 2.19 auf die aktuelle Version 3.04 steige ich gerade ein wenig tiefer in die neuen Funktionen des Shopsystems ein. Neugierig machte mich schon bei der Ankündigung das neue Pluginsystem. Das trägt schon jetzt – gut 2 Monaten nach Veröffentlichung von JTL Shop 3 – zarte Früchte.

JTL Shop Plugins bei Kreativkonzentrat.de

Update: diesen Beitrag werde ich nach und nach aktualisieren. Hinweise auf interessante Plugins können gerne in den Kommentaren hinterlassen werden!

JTL Developer Base

Für eine aktive Community unabdingbar ist eine gute Dokumentation des Zielsystems. Neben dem JTL Wiki existiert seit einigen Wochen eine neue Ressource für Entwickler: die JTL Developer Base. Hier finden Interessierte zukünftig ausreichend Informationen für die Entwicklung von Plugins und Templates. Sehr hilfreich sind schon jetzt die Plugin Beispiele, die einen schnellen Start in die Materie ermöglichen. Teilweise sind die Informationen hier noch nicht vollständig, das wird aber mit der Zeit sicher besser.

JTL Shop 3 Plugins

Noch ist das Angebot an Plugins überschaubar, dennoch tut sich hier etwas. Gerd Rütten hat bereits einige Plugins veröffentlicht und berichtet regelmäßig über neue Entwicklungen auf seiner Webseite und im eigenen Shop. Auch die Macher hinter RC-Hosting haben bereits einige Plugins veröffentlicht. Gesammelt werden viele Entwicklungen in einem eigenem Shop für JTL Templates und Plugins: http://jtl-shop-templates.de. Eventuell integriert JTL Software einige Plugins mit der Zeit noch in den hauseigenen Store.

Die auf dem ersten Blick interessantesten Plugins:

  • Lexikon Plugin: ermöglicht die Erstellung eines Lexikons im Backend und die automatische Verlinkung / Erklärung von definierten Phrasen durch Lexikoninhalte.
  • F.A.Q. Plugin: im Backend des Shops können FAQs, also Fragen-Antworten-Paare, erstellt und im Frontend auf einer eigene Seite angezeigt werden.
  • Ogone Kreditkarte: Zahlungsmodul für die Zahlung mit Kreditkarte per Ogone Payment Services.
  • Paypal Express: Zahlungsmodul für die Zahlungsart Paypal Express.

Aus meiner Sicht viel versprechend, wenn man bedenkt, dass es bis JTL Shop 2.19 so gut wie keine (leicht integrierbaren) Erweiterungen am Markt gab. Selbst das Angebot an Templates hielt sich arg in Grenzen.

Wenn die Einarbeitung gut anläuft und meine Zeit es zulässt, befindet sich Anfang 2010 zumindest ein Plugin aus meiner Hand ebenfalls in der Sammlung. Hierbei wird es sich um ein recht komplexes Zahlungsmodul handeln, dass ich bei der oben angesprochenen Portierung definitiv als Plugin umsetzen werde.

Eins vorweg: schon lange hadere ich mit Preisvergleichsdiensten. Den Nutzen für gelistete Händler bezweifle ich bei einem Großteil der Anbieter, zumindest wenn man mal die entstehenden Kosten aufschlüsselt. Aber genug der Vorrede, um das Preis-Leistungsverhältnis von Preisvergleichen soll es hier gar nicht gehen.

Links auf Produktdetailseiten

Man mag im ersten Moment denken: so ein Preisvergleich ist doch die ideale und vor allem schnelle Möglichkeit, auf alle meine Produktdetailseiten Deeplinks zu erhalten. Produktfeed via Export im Shopsystem erstellen, bei diversen kostenfreien Preisvergleichen registrieren, die Daten hochladen bzw. freigeben und auf die Links warten.

Warum das so nicht funktioniert

Viele – wenn nicht sogar alle – Preisvergleiche benutzen spezielle Formate für Ihre ausgehenden Links:

http://ExamplePreisvergleich.de/redirect.php?url=http://MeinShopseite.de/MeinProdukt.html

Einige Beispiele von kostenpflichtigen deutschen Preisvergleichsdiensten:

Preisvergleich Redirect base Auszug robots.txt
Preisrobotter.de redirect.php Disallow: redirect.php
Billiger.de common/modules/cmodul Disallow: /common/modules/
Guenstiger.de shop/weiterleitung/cgrg/out.pl Disallow: /shop/weiterleitung/*
Kelkoo.de ctl/go/displayLink Disallow: /ctl/go
Idealo.de preisvergleich/ZumShop/ Disallow: /preisvergleich/ZumShop/

Man munkelt, dass selbst solche Links für Ranking Berechnungen von Suchmaschinen herangezogen werden und somit die Platzierung positiv beeinflussen. Hier beugen die Preisvergleiche aber mit einem Disallow in der robot.txt (siehe letzte Spalte der obigen Tabelle) vor: Suchmaschinencrawler wird das Folgen dieser Links schlichtweg untersagt.

Einen direkten Link auf die Produktdetailseite eines registrierten Händlers wird man kaum zu Gesicht bekommen. Der (augenscheinliche) Grund: die Preisvergleiche tracken mit obigen URLs die ausgehenden Klicks ihrer Besucher. Das hier auch Crawler und Bots mit einem Disallow ausgesperrt werden sollen, dürfte einleuchten: sonst würden deren Aktivitäten als die von normaler Besucher interpretiert und ebenfalls abgerechnet.

Natürlich haben Preisvergleiche auch nicht unbedingt ein Interesse daran, Linkjuice an Shopseiten zurückzugeben. Was dann noch übrig bliebe wäre – bei einem Großteil der Vergleiche – von der Güte her gleichzusetzen mit einem mittelmäßigen Webkatalog.

Eine Technik wie JavaScript für dieses Tracking zu nutzen (... onclick="" ...) kommt auch nicht in Frage: diese ist für Abrechnungen zu unzuverlässig, es würden nicht alle Nutzer erfasst. Immer noch deaktivieren gut 1-5% der Internetnutzer JavaScript in ihren Browsern. Gut … alles mit Murren akzeptiert. Noch geben wir uns aber nicht geschlagen.

Und bei den kostenlosen Preisvergleichen?

Eventuell haben wir hier ja mehr Glück? Hier braucht es ja eigentlich kein bombensicheres Tracking, oder? Scheinbar doch … leider bietet sich das gleiche Bild wie bei kostenpflichtigen Preisportalen. Ein Versuch der Erklärung: zumeist sind bei den kostenfreien Diensten ebenfalls Bezahlmodelle hinterlegt, oder aber man möchte schon für die Zukunft gerüstet sein.

Eine Idee hätte ich aber noch: Links von Profilseiten des Onlineshops auf diesen Portalen. Hier das Ergebnis meiner Stichprobe bei einigen (zumindest zum Teil) kostenfreien Diensten:

Preisvergleich Redirect Profilseiten
Preistipp.de ja Profilseiten vorhanden, Basispartner Links aber nofollow
Findashop.de ja Premium Partner werden mit Links gelistet, aber nofollow
Auspreiser.de ja keine Shopprofile
Elm@r ja Shopprofil vorhanden, aber Link mit Redirect
Preisomat.com ja keine Shopprofile

Einzig bei Preistipp habe ich einige zählbare Links auf Händlerprofilen ausgemacht. Das dann aber nur bei Premium Mitgliedern. Besonders amüsant fand ich die Händlerliste von Findashop: „normale“ Shops werden nur benannt, ~50 Premiumpartner aber „richtig“ verlinkt, nur eben nofollow.

Fazit

Bitte als Onlinehändler keine wertigen, fürs Ranking relevanten Backlinks von Preisvergleichsportalen erwarten. Meine Stichproben sind natürlich nicht unumstößlich. Wer andere Erfahrungen gemacht hat, möge diese gerne mitteilen.

Als Besucher- und Kaufvermittler sind Preisvergleiche natürlich immer gut zu gebrauchen. Wie gut dieser generierte Traffic wirklich ist, soll ein nächster Beitrag hier auf ShopSEO.de zeigen.

Links zum Thema

21
Dez
Abgelegt in: MIX

Nach über 2 Jahren kann man sich auch mal wieder um den das eigene Weblog kümmern. Ich bin immer wieder erstaunt, wie sich WordPress über die Jahre entwickelt hat und welche Fülle an hochwertigen Templates so zur Auswahl stehen. Eines hat mir besonders gut gefallen und dient als Grundlage für das neue ShopSEO.de: DarkZen.

Im gleichen Zuge habe ich die bisherigen Kategorien eingestampft. Übrig geblieben / neu erstellt sind und wurden 5 Kategorien. Mehr soll es auch zukünftig nicht geben. Weiterhin werden Tags genutzt, um Inhalte hier etwas besser zu ordnen. Noch ist nicht alles optimal, bspw. fehlt in vielen Beiträgen noch korrektes Code-Markup. Man wird es mir sicher nachsehen. Es geht bald weiter mit den Anpassungen des Inhalts, was auch dringend notwendig ist.

Dass osCommerce noch immer in meiner Linksammlung vorkommt – und dann noch an erster Stelle unter „Shopsysteme“ – kann man ja fast schon als Nostalgie verkaufen ;o)

15
Dez

SpeakR LogoR.I.P. SpeakR (?)

Der von AvatR im März gestartete – und von mir mitentwickelte – Service wird zunächst auf Eis gelegt. Spätestens zum Ende des Jahres wird der SpeakR Webservice abgestellt, der per Microsoft SAPI und Loquendo TTS Engine gute deutsche Sprachausgabe zu übermittelten Texteingaben lieferte. Es fehlen schlichtweg die Einnahmen, um die Lizenzkosten für die TTS Engine weiter zu tragen. Ohne Webservice läuft auch SpeakR selbst – ein von mir entwickeltes Flash Widget zur Echtzeitvertonung von Webseiteninhalten – schwerlich, also ist hiermit zunächst auch finit.

Davon ebenso betroffen: PodSpeak (Tool zum Erstellen von Podcasts aus RSS Feeds) und Speakpress. Letzteres ist ein WordPress Plugin zur einfachen Integration von SpeakR. Die letzte „Version“ habe ich vor ein paar Tagen commited. An dieser Stelle nochmal ein Dank an Felix, der Speakpress maßgeblich entwickelt hat … und das ohne auch nur einen Heller dafür gesehen zu haben.

SpeakR, PodSpeak und Speakpress haben mich Anfang und Mitte des Jahres ziemlich eingespannt. Es schmerzt natürlich, wenn sich eine so intensiv verfolgte Idee – aus welchen Gründen auch immer – nicht wie erwartet entwickelt.

Alle Müh umsonst? Mitnichten. Ich konnte viel KnowHow mitnehmen. ACE für Flex 4 und Air bin ich nur durch die SpeakR Entwicklung geworden. Wer weiß, eventuell kann die Idee 2011 einen neuen Anlauf nehmen. Ob mit oder ohne meine Person wird sich zeigen.

14
Dez

Noch immer bin ich nicht dazu gekommen, mehr über den JTL Shop 3 zu schreiben. Zwischenzeitlich beschäftigt mich eher WordPress und xtcModified. Zu letzterem ein Tipp betreffend Thickbox.

Das Standard Template von xtcModified (xtc5) verwendet die Thickbox, um Produktbilder per Popup zu vergrößern. Wer nun im Template Ordner nach einer entsprechenden *.html sucht, um den Code anzupassen oder zu optimieren wird leider nicht fündig. Grund: der HTML Code für die Thickbox wird per JavaScript ins Dokument geschrieben. Folgende Dateien sind relevant für die Thickbox:

  • [xtc5]/javascript/thickbox.js
  • [xtc5]/css/thickbox.css

Spezielles Problem bei mir: die Nummerierung der Bilder war im Standard Template fehlerhaft. Wem selbiges aufgefallen ist, der möge in oben genannter thickbox.js nach folgender Codezeile Ausschau halten:

TB_imageCount = "Bild/Image " + (TB_Counter + 1) +" / "+ (TB_TempArray.length);

Meine (zugegebnermaßen recht schlicht gehaltene) Änderung:

   // BOF niba: count changed
   // TB_imageCount = "Bild/Image " + (TB_Counter + 1) +" / "+ (TB_TempArray.length);
   TB_imageCount = "Bild " + (TB_Counter);
   // EOF niba      

Wer mag kann sich hier ja nochbetreffend Mehrsprachigkeit austoben. Eventuell poste ich hierzu später noch ein paar Zeilen.

27
Okt

Seit gestern kann JTL Shop 3 im Onlineshop von JTL Software vorbestellt werden. Der offizielle Verkauf startet am 29.10.2010. Folgende Preise ergeben sich:

  • Update JTL Shop 2 -> JTL Shop3 129 Euro
  • JTL Shop3 249 Euro
  • SEO Modul 129 Euro

Wer ein JTL Shop 2 mit SEO Modul besitzt benötigt nur das Update auf Shop 3. Das schon erstandene SEO Modul wird weiterhin funktionieren. Wie ich finde moderate Preise!

Laut JTL wird derzeit noch an diversen Dokumentationen gearbeitet. Diese werde ich auch dringend benötigen: ein von mir betreuter JTL Shop 2.19 wurde sehr stark modifiziert. Bei der Fülle der neuen Funktionen darf ich hier sicherlich ordentlich in die Tiefe gehen. Ich bin gespannt :)

In einer JTL Warenwirtschaft mußte ich folgenden Spezialfall lösen: von einem österreichischen Lieferanten wird Ware direkt an die Kunden geliefert. Der Onlineshop, der die Bestellungen entgegennimmt sitzt in Deutschland. Steuerrechtlich gibt es bei Bestellungen von Kunden aus Österreich nun ein Problem: verbleibt die Ware des Lieferanten in Österreich, ist auch die Mehrwertsteuer in Österreich zu entrichten. Die liegt – anders als in Deutschland – bei 20%. Hier musste also eine Lösung her. Die JTL WaWi hilft uns hier mit Steuerzonen, Steuerklassen und Steuersätzen.

  1. Steuerzone Österreich: über Einstellungen -> Steuern -> Steuerzonen legen wir eine neue Steuerzone mit dem Namen „Österreich“ an. In der Länderauswahl natürlich Österreich wählen :) Nicht vergessen: Österreich aus den bisherigen Steuerzonen (Standard: Zone-EU) entfernen!
  2. Steuerklasse anlegen: Einstellungen -> Steuern -> Steuerklassen eine neue Klasse anlegen. Bennenung bspw: „Österreich Spezial“.
  3. Steuerschlüssel: in Einstellungen -> Steuern -> Steuerschlüssel erstellen wir einen neuen Schlüssel für den Steuersatz. Beispielsweise „20% Umsatzsteuer“.
  4. Steuersätze: in Einstellungen -> Steuern -> Steuersätze fügen wir nun neue Steuersätze hinzu:
    1. „Österreich Spezial“ für Österreich: Steuerzone „Österreich“; Steuerklasse „Österreich Spezial“; Steuersatz 20; Steuerschlüssel „20% Umsatzsteuer“
    2. „Östereich Spezial“ für Zone EU: Steuerzone „Zone EU“ (Standard); Steuerklasse „Österreich Spezial“; Steuersatz 19; Steuerschlüssel „19% Umsatzsteuer“
    3. Bisherige Steuersätze für Österreich: da wir Österreich aus der Zone EU entfernt haben, müssen wir für die bisherigen Steuerklassen noch Steuersätze für Österreich erstellen. Die fertigen Steuersätze in meinem Fall zeigt Nachfolgende Abbildung.

Fertig ist die neue Steuerklasse „Österreich Spezial“. Diese kann nun in der Artikelansicht anwählen. Im JTL Shop und auf erzeugten Rechnungen der JTL WaWi erscheint nun bei Bestellungen aus Österreich die Abgabe in Höhe von 20%. Auch das mixen von Produkten mit verschiedenen Steuersätzen funktioniert problemlos.

28
Sep

JTL Shop 3 Logo

Ende Oktober 2010 kommt er nun endlich: der JTL Shop Version 3. Nach mehr als 2 Jahren Wartezeit erscheint ein neues Major-Release des – gerade unter kleineren Shopbetreibern – beliebten Shopsystems.

Neue Funktionen von JTL Shop 3

Alles neuen Funktionen hier aufzulisten spare ich mir, hierzu einfach den Demoshop besuchen. Für mich mit Abstand die wichtigsten Funktionen:

  • Pluginsystem: wer komplexere Funktionen (Zahlungsmodule, Newsletter, Gewinnspiele) in JTL Shop 2 einbringen wollte, frickelte nicht selten an allen Stellen des Shopsystems herum. Für mich war und ist das der Grund für fehlende Erweiterungen aus der Community.
  • Integriertes Content Management System: die Umsetzung in Version 2.x vergessen wir an dieser Stelle wohlwollend. Jetzt wird der wichtigsten Komponente neben den Produkten selbst – dem Inhalt rund um das Sortiment – hoffentlich mehr Platz eingeräumt.
  • Attributsuche und Filter: sehr schön in den Kategorien des Demoshops zu sehen, jetzt werden die Attribute aus der JTL WaWi auch sinnvoll und gewinnbringend genutzt! Gerade bei vielen ähnlichen Artikeln im Webshop ein tolle Feature für Kunden.

Ich freue mich auf den ersten Blick auf das Backend und dem „Code behind“. Aus dem Frontend lässt sich leider nicht viel über das Handling der Features für Shopbetreiber und das Pluginsystem sagen.

JTL Shop? Noch nie gehört …

Gerade wenn ich mit neuen Kunden in Kontakt trete begegnet mir diese Aussage öfters. Wie ich finde zu unrecht. Zusammen mit der kostenfreien JTL-Warenwirtschaft (erst vor kurzem mit einem größerem Update um einige wichtige Aspekte erweitert) lässt sich mit einem JTL-Shop recht kostengünstig ein kleines bis mittleres Business aufbauen, das dann auch noch perfekt mit eBay zusammenarbeitet.

Im Detail hat das System zwar Schwächen, punktet aber mit einem gutem Preis-Leistungs-Verhältnis. Das finden wohl auch die 120 von 1.885
Shopbetreiber, die JTL laut Shopbetreiberblog im Januar 2010 im Einsatz hatten.