Xt:commerce 3 unter PHP5.4

Tags: Allgemein | osCommerce | xt:Commerce Kommentieren

Symptom

Es erschein eine weiße Seite, wenn man etwas in den Warenkorb legt.

Oder:

Lösung

Datei: /includes/functions/sessions.php

Ersetzen durch:

Artforms: Bugs im Release-Candidate für Joomla 1.5 beheben

Tags: Joomla! | Joomla! / Virtuemart | PHP Kommentieren

Wir verwenden auf einer Internetseite Joomla! mit installiertem ArtForms Version: 2.1b7.1 [RC1 For Joomla 1.5]. Wie zu erwarten sind noch einige Fehler in dem Modul zu finden. Im Folgenden möchte ich einige Lösungen für kleine Bugs vorstellen:
Bei falscher Captcha-Eingabe werden Eingabefelder gelöscht
Wird das Formular abgesendet, jedoch ein falscher Captcha-Code eingegeben, so werden alle anderen Eingabefelder geleert und man muss das gesamte Formular erneut ausfüllen. Wünschenswert wäre ja, wenn die Felder bestehen blieben und man lediglich das Captcha erneug eingeben müsste.
Um diesen Bug zu beheben, muss die direkte Weiterleitung nach dem Überprüfen des Captchas ausgeschaltet werden. Hierfür die Datei /components/com_artforms/artforms.html.php öffnen. Die Captcha-Überprüfung beginnt hier in der Zeile 103. Hier werden die einzelnen Varianten überprüft und gegebenenfalls der Benutzer zurückgeleitet. Die Zeile

die in jeder Überprüfung die Weiterleitung einleitet, unterbindet, dass andere Fehler überprüft werden und die Felder wieder mit Inhalt gefüllt werden.
Diese Zeile einfach durch die folgende ersetzen:

Dies bewirkt, dass nur eine Fehlermeldung erzeugt wird. Text, etc. der Meldung kann man hier entsprechend anpassen. Nachdem nun ein Fehler erzeugt wurde, wird das Script trotzdem weiter ausgeführt, andere Fehler werden gescannt und die Felder werden auch wieder mit Inhalten gefüllt.

Bei fehlerhaftem Absenden des Formulars werden Textarea-Felder geleert
Bei der Überprüfung und dem erneuten Füllen der Formularfelder, falls ein Fehler auftritt, haben die Programmierer vergessen, auch Textarea-Felder wieder mit Inhalt zu füllen. Deshalb werden diese geleert, wenn das Formular nicht erfolgreich abgeschickt werden konnte. Um diesen Bug zu beheben, die Datei /administrator/components/com_artforms/lib/af.lib.artforms.php öffnen und in der Zeile 327 den folgenden Code einfügen:

 

Joomla 1.0.x unter PHP5 / PHP5.3 lauffähig machen

Tags: Joomla! | Joomla! / Virtuemart | PHP Kommentieren

Versucht man, eine alte Joomla!-Version (1.0.x) unter neueren PHP-Versionen zu installieren, beispielsweise von anderen Servern oder alten Seiten von Kunden, so stellt sich dies als gar nicht so einfach dar. Erst einmal bekommen man viele DEPRECATED-Fehlermeldungen. Diese beziehen sich nahezu ausschließlich auf Klassen-Aufrufe durch Referenzen und die Verwendung von ereg_replace, ereg, etc.
Durch die Ersetzung von ereg_replace() durch preg_replace() und ereg() durch preg_match() in allen fehlerhaften Dateien, behebt man dieses erste Problem. Hierbei bitte darauf achten, dass die preg_-Funktionen DELIMITERS benötigen – also einfach die Pattern durch Raute-Zeichen (#) oder auch Slashes (/) einschließen.
Die Klassenaufrufe durch Referenzen kann man aktualisieren indem man einfach alls &= durch einfach = ersetzt. PHP macht diesen Krimskrams in PHP5 nämlich ganz von allein.

Übrig bleibt noch eine letzte Fehlermeldung, die leider dazu führt, dass kein Content im Inhaltsbereich angezeigt wird:

Entgegen der Meinung, dass man hierbei nichts machen kann und einfach auf PHP5 upgraden soll, gibt es natürlich ein Workaround – denn nicht alle Provider erlauben ein Downgrade, insbesondere nicht für ausgewählte Virtuelle Hosts.
Zur Bug-Behebung in die Datei /includes/Cache/Lite/Function.php gehen und dort die gesamte Funktion call() durch die folgende ersetzen:

 

PrestaShop => Shopware: Column ‚id_product‘ in order clause is ambiguous

Tags: Shopware Kommentieren

Bei der Migration von PrestaShop zu Shopware tritt folgender Fehler auf:

Code : 23000
Line : 234
File : /var/www/vhosts/*****/httpdocs/engine/Library/Zend/Db/Statement/Pdo.php
Error : SQLSTATE[23000]: Integrity constraint violation: 1052 Column ‚id_product‘ in order clause is ambiguous

Verwendet Software und Versionen:

Shopware 5.2.8
Shopware Migration (SwagMigration) 2.5.0
PrestaShop 1.6.0.9

Lösung:

Durch eine kleine Korrektur kann dieser Fehler behoben werden. In Zeile #294 (https://github.com/shopwareLabs/SwagMigration/blob/master/Components/Migration/Profile/Prestashop15.php#L294) der Datei /httpdocs/engine/Shopware/Plugins/Community/Backend/SwagMigration/Components/MigrationProfile/Prestashop15.php muss  der Teil des Queries durch Folgendes ersetzt werden:

Insgesamt sieht der Block dann so aus:

Quellen:

Konfigurationsdateien und Backend-URLs der wichtigsten CMS und Shop-Systeme

Tags: CMS | Gambio | Joomla! | Joomla! / Virtuemart | phpBB | PrestaShop | Redaxo | TYPO3 | xt:Commerce | xt:Commerce VEYTON 4.0 Kommentieren

CMS

CMS Konfigurationsdatei Backend-URL
Conrete5 /config/site.php (?)
Contao /system/config/localconfig.php /contao
Drupal /sites/default/settings.php (?) /user
ProcessWire /site/config.php /wadmin/login/
Joomla! /configuration.php (?) /administrator
phpBB /config.php (?)
phpwcms /config/phpwcms/conf.inc.php  /login.php
Redaxo /redaxo/include/master.inc.php /redaxo
Typo3 4.7 /typo3conf/config.php (?) /typo3
Typo3 6.2 /typo3conf/LocalConfiguration.php /typo3
Typo3 7 /typo3conf/LocalConfiguration.php /typo3
Typolight /typolight
Vanilla /conf/config.php (?)
Website Baker CMS /config.php (?) /admin
WordPress /wp-config.php /wp-admin

Shop-Systeme

CMS Konfigurationsdatei Backend-URL
osCommerce /admin
Oxid E-Shop /config.inc.php (?)
Prestashop /config/settings.inc.php /adminXXXX
XXXX steht dabei für eine zufällige vierstellige Zahl, die automatisch bei der Installation generiert wird. Dies dient der Absicherung des Backends.
 ShopWare /config.php /backend
 xt:commerce 3 / Gambio /admin/includes/configure.php
/includes/configure.php
Der Login erfolgt über das Frontend
xt:commerce VEYTON 4 /conf/config.php /xtAdmin

Langsame Suchfunktion in xt:commerce 3

Tags: Allgemein | Debian (Linux) | MySQL | MySQL-Server | Webserver | xt:Commerce Kommentieren

Ein Kunde hatte das Problem, dass der auf unserem Server installierte xt:commerce 3 teilweise so hohen Datenbank-Load verursachte, dass der MySQL-Server abrauchte und somit den ganzen Server kurzzeitig in einer Nicht-Erreichbarkeit stürzte. Zwar war schon länger ein Update auf eine neue xt:commerce-Version geplant, jedoch befand sich der neue Shop noch in der Entwicklung und es musste kurzfristig eine Lösung erarbeitet werden, da die Ausfälle sich häuften (teilweise bis zu 3x am Tag).

Relativ schnell entpuppte sich die Suchfunktion des xt:commerce als ausschlaggebend, welche bei meinen Tests bei einer Volltextsuche meist zwischen 40 und 50 Sekunden benötigte, dabei den MySQL-Server komplett belastet – nun stelle man sich dies am Tages-Hoch mit hunderten Besuchern vor.

Mit den folgenden Umstellungen in der MySQL-Datenbank lässt sich die Suche durch einfaches Setzen von Indizes stark beschleunigen:

Tabelle „products_description„:

  • products_id
  • language_id
  • products_name
  • products_description (FULLTEXT)
  • products_short_description (FULLTEXT)
  • products_keywords

Tabelle „products_options„:

  • language_id
  • products_options_name

Tabelle „products_attributes„:

  • products_id
  • options_id

Tabelle „products_options_values„:

  • language_id
  • products_options_values_name

Tabelle „specials„:

  • products_id

Wichtig ist, dass die neuen Indexes eine möglichst hohe Kardinalität besitzen (also viele verschiedene Werte), damit eine Performancesteigerung erreicht werden kann.

Quellen

  • http://forums.xt-commerce.com/topic/60364-suchfunktion-sehr-langsam-sessions/
  • http://thomas.eses.name/mysql-indexe-richtig-setzen/

E_DEPRECATED-Fehlermeldungen im xt:commerce ausschalten

Tags: Allgemein | PHP | Programmierung | xt:Commerce Kommentieren

Besonders nach einem Update auf eine aktuelle PHP-Version erscheinen beim alten xt:commerce (z.B. Version 3.0.4) diverse Fehlermeldungen im Error-Log, die gemeinhin auf die veralteten ereg-Funktionen hinweisen, die im veralteten Shop-System an vieler Stelle Verwendung findet. Dies führt auf Dauer zu Gigabyte großen Log-Dateien und belastet den Server unnötig. Beispiel:

[Fri Apr 10 14:22:22 XXXX] [error] [client 213.221.XXX.XXX] PHP Deprecated:  Function eregi() is deprecated in /var/www/XXX/includes/classes/language.php on line 96, referer: http://www.google.de/imgres?imgurlXXX
[Fri Apr 10 14:22:22 XXXX] [error] [client 188.165.XXX.XXX] PHP Deprecated:  Function ereg() is deprecated in/var/www/XXX/includes/application_top.php on line 212
[Fri Apr 10 14:22:22 XXXX] [error] [client 188.165.XXX.XXX] PHP Deprecated:  Function ereg() is deprecated in/var/www/XXX/includes/classes/paypal_checkout.php on line 105

Das Error-Reporting lässt sich in der Datei /includes/application_top.php umstellen. Man ersetze Zeile 35 durch Folgende:

 

Gambio: Shop-Login im Wartungsmodus

Tags: Gambio Kommentieren

Ist der Wartungsmodus im Gambio-Shop einmal aktiviert, besteht leider auch keine offensichtliche Möglichkeit mehr, sich in das Backend einzuloggen.
Dies muss in diesem Fall direkt über die folgende URL geschehen:

https://www.shop-url.de/login_admin.php

Anschließend erscheint der Backend-Login und die Administration des Shops kann fortgeführt, sowie der Wartungsmodus deaktiviert werden.

Gambio: Google Conversion Tracking einrichten

Tags: Gambio | Online-Shops | Webdesign | xt:Commerce Kommentieren

Voraussetzungen:

  • Zugriff auf den Administratoraccount des Gambio-Shopsystems
  • Zugriff auf das Google Analytics-Konto des Kunden

Vorgehensweise:
Der Google-Analytics-Code kann im Gambio-Backen über den Punkt „Gambio-SEO“ / Google Analytics eingebunden werden. Hier dringen darauf achten, unter

_gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);

die Zeile

_gaq.push(['_gat._anonymizeIp']);

einzufügen, da ansonsten die IP ungekürzt an Google übertragen wird und dies gegen die deutschen Datenschutzrichtilinien verstößt. Ein Hinweis im Impressum ist ebenfalls Pflicht!

Im Google-Analytics-Konto kann nun als Ziel

/checkout_success.php
eingegeben werden. Um die Absprungrate auf den einzelnen CheckOut-Schritten zu ermitteln, sollten noch die Schritte 1 bis 3 des Gambio-Checkout-Prozesses als Steps mit aufgenommen werden:

  • Schritt 1: /checkout_shipping.php
  • Schritt 2: /checkout_payment.php
  • Schritt 3: /checkout_confirmation.php

xt:commerce 3: „Ab“ bei Artikelpreisen entfernen

Tags: Online-Shops | Webdesign Kommentieren

In der xtcPrice.php (/includes/classes/), Zeile 287 durch die folgende ersetzen:

Anschließend verschwindet der Textbaustein „Ab“ bei Produkten, die keine Staffelpreise integriert haben.

TOP