Update auf Magento 1.9.2.3 oder SUPEE-7405: Bestelldetails laden nicht

Fehlerbeschreibung

Nach Update von Magento auf 1.9.2.3 oder Installation des Sicherheitspatches SUPEE-7405 wird die Bestellung in Detailansicht nicht geladen. Man sieht im Backend die folgende Ausgabe:

bestelldetails-magento-500-server-error

Mit FireBug lässt sich außerdem Server-Fehler 500 nachvollziehen.

Fehlerursache

Seit PHP 5.4 wurde ein neuer Array-Syntax eingeführt. Wird PHP Version unter 5.4 verwendet, kommt es zu diesem Fehler. Seit PHP 5.4 kann der Code $a = array(1, 2, 3) alternativ kürzer gefasst werden: $a = [1, 2, 3].

Fehlerbehebung

Um sich das Update von PHP  zu sparen, kann in Mage_Adminhtml_Helper_Sales (Datei: app/code/core/Mage/Adminhtml/Helper/Sales.php) in Zeile 124 die folgende Zeile:

$links = [];

durch die folgende ersetzt werden:

$links = array();

Weiterlesen:

Veröffentlicht unter Fehlerbehebung | Hinterlasse einen Kommentar

Installation von Magento 2.0: Erster Eindruck

Seit dem 17.11. ist Magento 2.0 in der finalen Version raus. Die Kommunikation im Downloadbereich ist deutlich: Magento 1.x ist im Tab „Release Archive“ zu finden:

magento1-archive

Der Installationsassistent ist freundlich aber deutlich: Magento 2 erfordert mindestens PHP 5.5 und MySQL 5.6, sodass viele Testumgebungen in den sich Magento 1.x noch funktionierte ohne Update unbrauchbar sind.

Der aktuelle XAMPP erfüllt die Anforderungen von Magento 2. Auch die PHP-Extensions (curl, dom, iconv, mcrypt, spl, xsl, intl, mbstring, ctype, hash, openssl, simplexml, xmlwriter, gd) sind alle enthalten.

magento2-system-requirementsPHP-Extensions intl muss nur noch in der php.ini aktiviert werden, im Verzeichnis ext ist die Datei php_intl.dll bereits enthalten. Nach dem Setzen von always_populate_raw_post_data = -1 in der php.ini sind alle Kriterien erfüllt:

magento2-ready-to-install

Da wir in Zukunft Magento auch unterwegs vom Handy aus installieren wollen, ist schon der Installationsassistent responsive:

magento2-ready-to-install-responsiveIm aktuellen XAMPP wird übrigens MariaDB 10.1.8 statt MySQL 5.6 mitgeliefert. MariaDB ist der binäre Ersatz für MySQL, d. h. alle binäre Dateien von MariaDB heißen mit denen von MySQL identisch, sodass alle Werkzeuge und Skripte für MySQL weiterhin funktioneren werden. Die MySQL Workbench würdigt MariaDB mit der folgenden Meldung, funktioniert aber trotzdem (vermutlich liegt es nur an der Versionsnummer 10.1.8 statt 5.6, die im Protokoll übermittelt wird):

xampp-maria-db-workbench

Der Installationsassistent von Magento 2 schlägt von sich aus eine kryptische URL für den Administrationsbereich vor:

magento2-admin-path

Unsere Zeitzone heißt anders, und man kann vorab die Ausgabe einzelner Module deaktivieren:

magento2-installation-zeitzone

Zusätzlich zu der kryptische Admin-URL wird noch auf ein schwaches Passwort hingewiesen:

magento-passwort-staerke

Die Datenbank wird nun nicht mehr im Hintergrund aufgebaut, sondern mit einer Fortschrittsanzeige und der Option es im Fehlerfall erneut zu versuchen:

magento2-db-installation-fortschritt-fehler

In diesem Fall ist der Speicher des Laufewerks vollgelaufen, auf dem die XAMPP-Testumgebung gerade läuft. Nach Speicherfreigabe und dem Klick auf Try Again wird der Fortschrittsbalken mit einer Animation zurückgespullt :-)

magento2-installation-erfolgreich

So sieht das neue Login-Formular aus:

admin-loginUnd so sieht es im Backend aus:

magento2-backend

FireBug zeigt, dass diverse Schriftarten für die Menü-Icons nicht geladen wurden:

magento2-schriftartenDer Ordner pub/static/adminhtml/Magento/backend/en_US/fonts/opensans/bold ist tatsächlich leer. Magento 2 kopiert statische Dateien in öffentlich zugängliche Ordner bei Bedarf. In diesem Fall hat diese Logik anscheinend versagt, und wir finden sicherlich später warum.

Veröffentlicht unter Tutorials | Hinterlasse einen Kommentar

Erklärung des Google Doodle zum 200. Geburtstag von George Boole

google-doodleBool’sche Algebra ist in der Programmierung nicht mehr wegzudenken. Heute feiert Google den 200. Geburtstag von George Boole, der die Bool’sche Algebra erfunden hat.

Während im Alltag uns die mathematischen Operationen wie Addition und Multiplikation eher begegnen, sind boolsche Operationen in der Programmierwelt der Alltag. Google demonstriert die Rechenergebnisse von vier Operatoren: AND, OR, XOR, NOT. Ähnlich wie 2 +3 = 5 ist, ist 1 OR 0 = 1. Bool’sche Operatoren rechnen mit binären Zahlen 1 (wahr, engl. true) und 0 (falsch, engl. false). Das Ergebnis einer Bool’schen Operation ist ebenfalls eine binäre Zahl.

Der Buchstabe g im Logo zeigt die Eingabe, die bestimmt, welche anderen Buchstaben leuchten (d. h. mit Farbe gefüllt werden). Ein leuchtender Buchstabe entspricht der binären 1 oder dem logischen Wert Wahr, während ein grauer Buchstabe der 0 entspricht, oder dem logischen Wert Falsch. Wird der x bzw. y eingeblendet, so ist x bzw. y wahr, d. h. gleich 1. Wird x bzw. y ausgeblendet, so ist x bzw. y falsch oder gleich 0. Die Animation des Logos wechselt die vier Kombinationen von x und y ab und zeigt in den anderen Buchstaben die Ergebnisse des jeweiligen Operators.

Intuitive Erklärung der Operatoren:

  • AND: Beides muss wahr sein, x und y müssen beide wahr sein.
  • OR: Mindestens eins von beiden x oder y muss wahr sein.
  • XOR: Genau eins x oder y muss wahr sein, aber nicht beide x und y.
  • NOT: Der umgekehrte Wert, die Negation, nicht wahr ist falsch, nicht 0 ist 1.

Die nachfolgende Wahrheitstabelle fasst alle vier Kombinationen zusammen:

G o o g l e
AND XOR OR x y NOT y NOT x
0 0 0 0 0 1 1
0 1 1 0 1 0 1
0 1 1 1 0 1 0
1 0 1 1 1 0 0

Auf der Seite mit Suchergebnissen ist die Animation nicht mehr zu sehen. Dort setzt Google das Thema mit dem &-Zeichen vor dem Buchstaben g fort:

google-mini-bool

Weiterlesen:

Veröffentlicht unter Entwicklung | Hinterlasse einen Kommentar

Static Blocks Everywhere: Keine Ausgabe nach Installation von SUPEE-6788

Static Blocks Everywhere auf Magento Connect

Fehlerbeschreibung

Kurz nach der Veröffentlichung des Magento-Patch SUPEE-6788 und Magento-Update haben wir mehrere Anfragen bekommen, dass die Ausgabe für statische Blöcke in Zusammenhang mit der Erweiterung Static Blocks Everywhere nicht mehr funktioniert.

Ursache

Das Problem hängt mit der Verfeinerung des Rechtesystems in Magento zusammen.

Lösung

Zur Behebung des Problems muss unter System > Berechtigungen > Blocks ein neuer Block angelegt werden:

system-berechtigungen-blocks

Der Blockname ist cms/block, Is Allowed wird auf Yes/Ja gesetzt:

cms-block-berechtigungNach dem Speichern des neuen Blocks sieht die Liste der Block-Berechtigungen wie folgt aus:

magento-berechtigungen-blocks

Siehe auch:

Veröffentlicht unter Fehlerbehebung | 1 Kommentar

MySQL: Job failed to start, mysqld: Can’t create test file user.lower-test

Fehlerbeschreibung

Nach dem Verschieben des MySQL-Datenverzeichnisses (Parameter datadir in /etc/mysql/my.cnf) startet der MySQL-Server nicht mehr. Als Fehler wird Job failed to start gemeldet:

root@ubuntu:~# /etc/init.d/mysql restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
start: Job failed to start

Der MySQL-Server-Start direkt aus dem bin-Verzeichnis endet mit dem Fehler Can’t create test file /…./user.lower-test:

root@ubuntu:/bin# mysqld
150831  0:40:58 [Warning] Can't create test file /..../user.lower-test
150831  0:40:58 [Warning] Can't create test file /..../user.lower-test

Mögliche Ursache

Bei Ubuntu ist AppArmor eine häufige Ursache. Diese Sicherheitssoftware enthält ein Profil für MySQL, in dem u. a. das Datenverzeichnis von MySQL festgelegt ist. AppArmor blockiert den Zugriff von MySQL, weil das neue Datenverzeichnis nicht bekannt ist.

Lösung

Durch Eintrag des neuen Daten-Verzeichnisses in /etc/apparmor.d/usr.sbin.mysqld kann der Fehler behoben werden:

vi /etc/apparmor.d/usr.sbin.mysqld

...
  # /var/lib/mysql/ r,
  # /var/lib/mysql/** rwk,
  /neues-datenverzeichnis/mysql/ r,
  /neues-datenverzeichnis/mysql/** rwk,
...

Nach dem Neustart von AppArmor sollte auch MySQL-Server nun starten:

/etc/init.d/apparmor restart
/etc/init.d/mysql restart
Veröffentlicht unter Fehlerbehebung | Hinterlasse einen Kommentar

Magento-Marktanteil in 2015

Entwicklung seit 2012

Update von der Meet Magento 2015

Auf der diesjährigen Meet Magento hat uns Thomas Goletz (Vorstand der Netresearch App Factory AG) gab es einige Updates zu den Statistiken rund um die Magento-Infrastruktur:

  • Mehr als 240.000 Installationen
  • Mehr als 7.500 bekannte Erweiterungen
  • Über 7 Jahre erfolgreiches Magento 1.x

Marktanteile von Magento nach Wappalyzer

Nach Wappalyzer (ein Browser-Plug-In, der die auf der Webseite verwendete Software basierend auf dem Quellcode u. a. Merkmalen erkennt) ist der Marktanteil von Magento auf 19% weiter gesunken:

Absolute Zahlen der Top 10 Online-Shop-Systeme:

Die Spalte „Detections“ zeigt indirekt die Besucherzahlen und damit die Popularität einzelner Shops, die das jeweilige System verwenden.

Zum Vergleich: 2012 hat Wappalyzer bei 25% aller untersuchten Online-Shops Magento erkannt. 2014 waren es 22%, und heute noch 19%.

Nach dieser Quelle ist WooCommerce (WordPress-basierte Shops) der deutliche Gewinner mit einem Anstieg von 15% im Vergleich zum Vorjahr. Ob WooCommerce eine niedrige Einstiegshürde bietet und sich deshalb gut verbreitet oder ob Wappalyzer seine Erkennungsalgoritmen verbessert und die Statistik damit verzerrt, hat kann man nur vermuten.

Magento-Marktanteile nach Google Trends, Search Insights

Das Suchvolumen weltweit zeigt Magento als klaren Sieger mit stabiler Nachfrage:

In Deutschland gewinnt Magento mit deutlichem Abstand:

Während in den USA Shopify Magento überholt hat:

Veröffentlicht unter Marketing | Hinterlasse einen Kommentar

Anwenderdokumentation von Magento

Seit kurzem gibt es etwas, was seit Jahren gefehlt hat und den Grund für die Existenz solcher Blogs wie dieser geliefert hatte:

Veröffentlicht unter Tutorials | Hinterlasse einen Kommentar

Up-Selling-Produkte werden nicht gespeichert

Fehlerbeschreibung

Nach der Auwahl von Up-Sell-Produkten im Backend wird nach dem Speichern des Hauptprodukts die Liste zurückgesetzt.

Fehlerursache

Der Fehler tritt auf, wenn die Erweiterung BL_CustomGrid (Enhanced Admin Grid auf Magento Connect und GitHub).

Fehlerbehebung

Der Fehler kann dadurch behoben werden, dass die Erweiterung speziell für die Tabelle der Up-Sell-Produkte deaktiviert wird. Die Erweiterung stellt dazu selbst die entsprechende Mittel zur Verfügung.

In Grid Anpassung > Grid Infos zur Up-Sell-Tabelle kann der Blocktyp herausgefunden werden:

In System > Konfiguration > Enhanced Admin Grids: Konfiguration Basis wird der Blocktyp adminhtml/catalog_product_edit_tab_upsell als Ausnahme hinzugefügt:

Danach kann zwar die Tabelle für Up-Sell-Produkte nicht mehr angepasst werden, doch das Speichern der Auwahl funktioniert.

Veröffentlicht unter Fehlerbehebung | Hinterlasse einen Kommentar

Magento 1.9.1 sendet keine E-Mails

Seit Magento 1.9.1 wurden bei den Transaktions-E-Mails zwei wichtige Änderungen eingeführt: Responsive E-Mail-Vorlagen und E-Mail-Warteschlange (E-Mail-Queue). Mit dem ersten Shop auf Basis von Magento 1.9.1, wird man sich zunächst wundern, dass die Bestellbestätigung nicht sofort oder gar nicht nach Abschluss der Bestellung versendet wird, zumindest bis der Cron-Skript von Magento aufgerufen wurde.

Hinweis: Ein weiterer Grund, dass eine E-Mail nicht versendet wird könnte ein fehlendes E-Mail-Template oder ein Fehler im verwendeten Template sein.

Die E-Mail-Queue beschleundigt den Bestellvorgang, da die Bestellbestätigung im separaten Prozess versendet wird, und nicht wie in Vorgängerversionen, als Teilvorgang der Aufnahme einer neuen Bestellung. Dies ist Performance Optimierung, die sich besonders für Shops mit vielen Bestellabschlüssen lohnt. Mit der Magento-Erweiterung AOE_Scheduler lässt sich der Magento-interne Cron-Job der E-Mail-Queue gut veranschaulichen:

Die letzte Version dieser Erweiterung auf Magento Connect ist 0.3.2 und offiziell bis Magento 1.7 freigegeben, funktioniert jedoch mit Magento 1.9.1 ebenfalls einwandfrei. Die aktuelle Version 0.4.3 kann auf GitHub heruntergeladen werden.

Die Vorschaufunktion für E-Mail-Vorlagen ist in Magento ohnehin unbrauchbar, da sie die Vorschau ohne Kunden- oder Beispieldaten anzeigt, sodass das Endergebnis erst mit einer Testbestellung kontrolliert werden kann:

Bei der Einrichtung von E-Mail-Templates in einem neuen Shop wird die E-Mail-Queue die Arbeit allerdings erschweren, da die Email nicht sofort nach Abschluss einer Testbestellung ankommt, sodass bei der Kontrolle einer jeden Anpassung neben dem Aufwand einer Testbestellung noch eine zusätzliche Wartezeit entsteht.

Eine Abhilfe hierbei schafft die Magento-Erweiterung Modulwerft_EmailManager, die eine sofortige Vorschau bzw. Anzeige einer jeden von Magento vorbereiteten oder sofort versendeten E-Mail direkt im Backend ermöglicht.

Im Kommentarverlauf einer Bestellung kann die Bestellbestätigung, die an den Kunden versendet wurde oder wird, sofort augerufen werden:

An der Anzeige Versand ausstehend ist sofort erkennbar, dass die E-Mail noch nicht an den Kunden versendet wurde, sondern sich in der E-Mail-Warteschlange befindet. Der Klick auf den gelb hinterlegten Bereich zeigt die vorbereitete E-Mail so wie sie beim Kunden ankommen wird:

Neben der praktischen Anzeigefunktion der noch nicht versendeten E-Mails in Magento 1.9.1 überwacht und speichert der E-Mail-Manager alle E-Mails, die von Magento generiert und versendet wurden oder werden.

Dem Kundendienst wird diese Erweiterung helfen schnell nachzuvollziehen, welche E-Mails an den Kunden versendet wurden. Bei registrierten Kunden können die E-Mails in Kundendetails angezeigt und absteigend nach der Zeit sortiert werden:

In System > E-Mail-Log bekommt man die Übersicht über alle von Magento versendeten E-Mails und kann sie nach Typ (z. B. Bestellbestätigung, Rechnung, Lieferschein) Empfänger, Betreff und einigen weiteren Kriterien filtern. Nach dem Empfänger gefiltert können auch für Gastkunden alle versendeten E-Mails gefunden werden.

Veröffentlicht unter Entwicklung, Fehlerbehebung | Hinterlasse einen Kommentar

DHL-Label-Drucker und Etiketten-Format

DHL-Versand-Etiketten können entweder mit einem beliebigen Drucker gedruckt werden, der auch Papier im A5-Format bedrucken kann, oder mit einem Thermodrucker.

Etiketten-Drucker für DHL-Intraship

Von DHL wird der B-EV4T-G von Toshiba TEC empfohlen (vollständige Modellbezeichnung: B-EV4T-GS14-QM-R):

Der Anschaffungspreis beträgt inkl. MwSt. ca. 250,- EUR. Die passenden Thermo-Etiketten werden von DHL dem Kunden kostenfrei zugeschickt.

Der Drucker kann sowohl mit einer Etikettenrolle als auch mit gestapelten Etiketten verwendet werden, wie sie von DHL geliefert werden. Die Etiketten bleiben dann außerhalb des Druckers im Karton liegen und werden durch den hinteren Schlitz eingezogen. Da die Thermo-Etiketten von DHL die schwarze Druckfarbe bereits im Papier enthalten, wird das teuere Thermotransfer-Farbband nicht benötigt.

Der Vollständigkeit halber soll noch der große und ca. 700,- € (inkl. MwSt.) teuere Drucker B-EX4D2 von Toshiba erwähnt werden, der von der DHL bei 10.000 Sendungen pro Tag empfohlen wird. Der „kleine“ B-EV4T-G wird für viele Shop-Betreiber schnell genug sein: Für den Druck eines Etiketts (Format: s. u.) braucht er nur 2 Sekunden!

Installation des B-EV4T-G

Obwohl der Drucker einen Netzwerk-Anschluss hat und offiziell das Drucken über LAN unterstützen soll, haben wir es nicht geschafft ihn mit einem Windows-Rechner über LAN anzusprechen und betreiben ihn deshalb über USB.

In der eigenen Installationsanleitung schlägt DHL einen abgewandelten Druckertreiber vor: http://www.toshibatec-eu.de/IPD-PUBLIC/EasyLog/Treiber.zip

Dieser funktioniert einwandfrei, genau wie der offizielle Drucker-Treiber von Toshiba, jedoch wird das richtige DHL-Etikettenformat bereits vorinstalliert:

Die Testseite kann in den Druckereinstellungen gedruckt werden:

Gleich nach der Installation, ohne weitere Einstellungen, müsste der Drucker die Testseite erfolgreich ausgeben und dabei genau auf der Perforationslinie des nächsten Etiketts anhalten.

DHL-Etiketten-Format und DHL-Intraship in Magento

Wenn der offizielle Treiber von Toshiba bereits installiert wurde, kann das DHL-Etikettenformat (101,6 mm x 199,0 mm) manuell eingegeben werden:

In den Format-Einstellungen der Magento-Erweiterung DHL Intraship (die o. W. direkt mit dem neuen „DHL Versenden“ funktioniert) wird das passende Etiketten-Format nicht angeboten.

Für die Ränder können negative Abstände angegeben werden, um das perfekte Druckergebnis zu erzielen:

  • Papierformat der Etiketten: A5
  • Linker Rand: -53 mm
  • Oberer Rand: -49 mm

Eingaben der Abstände ohne Einheit in System > Konfiguration > Verkäufe: DHL > Etiketten-Einstellungen:

Das Ergebnis als PDF-Ausgabe liefert ein im linken oberen Rand des A5-Formats positionierten DHL-Etikett, der dann perfekt mittig aus dem Thermodrucker (B-EV4T-G) kommt:

Veröffentlicht unter Tutorials | Verschlagwortet mit , , , , , | 2 Kommentare