Magento – Nutzer nach Login auf bestimmte Seite leiten

Bild

Generell kann im Magento Backend unter System > Konfiguration > Kunden / Kundenkonfiguration > Anmeldeoptionen hinterlegt werden, ob der Kunde nach dem erfolgreichen Login in sein Benutzerkonto geleitet werden soll oder aber auf der Seite bleiben soll auf der er vor dem Login war.

Dies kann sich aber unter Umständen als schwierig entpuppen vor allem wenn man eine Extension wie z.B. Login Only Catalog von Netzarbeiter verwendet. Hier wird man dann immer in das Benutzerkonto weitergeleitet.

Über das Backend kann man hier im Standard nicht entgegenwirken.

Ein kleiner Eingriff in die Dateien ist notwendig. Am sinnvollsten wäre es ein kleines Modul zu schreiben, welches den folgenden Controller überschreibt (und auch sehr geraten!), ansonsten bleibt nur der Eingriff in eine Kerndatei.

Es geht um die Datei AccountController.php im Verzeichnis app/code/core/Mage/Customer/controllers.

Hier sorgt die Zeile (ca.) 184 für die Weiterleitung nach erfolgreichem Login. Im Standard lautet diese

$this->_loginPostRedirect();

Nun kann man sie ändern wie gewünscht. Soll nach der Anmeldung zur Home-Seite geleitet werden, ändert man die Zeile in

$this->_redirect(‚/‘);

Man kann aber auch andere Ziele verwenden. Für das Impressum (erreichbar unter www.domain.de//index.php/impressum/ ) z.B.

$this->_redirect(‚impressum‘);

Wichtig ist hierbei keinen / zu versenden.

Wie gesagt, sollte ein Modul hierfür geschrieben werden, ein einfaches Kopieren in app/code/local/Mage/Customer/controllers reicht leider nicht aus, da Controller nicht automatisch geladen werden, wenn sie im local-Verzeichnis liegen.

Genutzt in Magento Version 1.9 Kommentare? Ergänzungen? Hinweise? Gerne!

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Allgemein | Hinterlasse einen Kommentar

Magento – Neue Extension, um CMS-Inhalte nur definierten Kunden anzuzeigen

customergroupcmsMagento bietet diverse Möglichkeiten, um Funktionen und Inhalte vor bestimmten Kunden / -gruppen zu verstecken oder nur bestimmten Kunden anzuzeigen.

So können (mit oder ohne Extensions) Versand- oder Zahlarten nur definierten Kundengruppen zugänglich gemacht werden. Es können Preise je Kundengruppe definiert werden, es können Kategorien oder Artikel ein- oder ausgeblendet werden.

Bislang war es aber noch nicht möglich bestimmte Teile eines CMS-Bereiches nur für bestimmte Personen anzuzeigen.

Ein konkretes Beispiel: Sie bieten Ihren Stammkunden Zahlung auf Rechnung und kostenlosen Versand an, den normalen Nutzern aber nicht. Nun könnten Sie mit verschiedenen CMS-Seiten arbeiten und diese dann je nach Gruppe anzeigen.

Viel einfacher ist es aber doch EINE Seite zu haben und die relevanten Teile dann nur bestimmten Gruppen anzuzeigen.

„Versandkosten:
[nur Stammkunden Anfang] Sie zahlen keine Versandkosten [nur Stammkunden Ende]
[alle anderen Kundengruppen Anfang] Die Versandkosten betragen 5,95€ [alle anderen Kundengruppen Ende]

Dies kann natürlich auch für viele andere Dinge verwendet werden. Bis zu einem Gewinnspiel, da es auch möglich ist den Inhalt nur definierten KUNDEN (nicht nur Gruppen) anzuzeigen. Mehr Informationen finden Sie direkt in unserem SHOP.

Und als kleine Aktion für unsere Stammleser: Die ersten 15 Besteller erhalten eine Lizenz für einen Shop kostenlos mit Gutscheincode „customergroupcmsfree“ (im Warenkorb eingeben). Der Code kann pro Kunde nur ein Mal verwendet werden. Die Lizenz der Extension gilt -wie bei unseren anderen Extension auch- für eine Magento-Installation.

Nachtrag von 17.25 Uhr: Da die 15 Lizenzen schnell weg und die Anfragen da waren: Wir verlängern die Aktion noch bis Montag 🙂

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Magento Extensions | Hinterlasse einen Kommentar

„Have I told you lately that I hate Magento 2?“

Dies ist eine leicht abgewandelte Zeile eines sehr schönen Liedes, die mir in den letzten Tagen häufiger durch den Kopf schwirrte. Ich arbeite nun seit guten 8 Jahren mit Magento und habe alle Versionen seit 1.4 (vielleicht auch noch eine kleiner – ist zu lange her). Ich kann also behaupten viel gesehen und erlebt zu haben.

Nun war ich dann doch gezwungen mich nach langem Sträuben und Abraten mit Magento 2 auseinander zu setzen nachdem ich es direkt beim Erscheinen schon einmal getestet und als „warten wir mal ab“ wieder abgetan.

Ich kann voller Überzeugung (und nicht weil früher prinzipiell alles besser war!) sagen, dass ich Magento 2 schrecklich finde! Mein neues Credo wird #IHM2 – passenderweise sowohl Englisch als auch Deutsch – Ich hasse Magento 2!

Es sollte schneller sein als M1 – konnte ich bislang nichts von spüren.

Es sollte komfortabler und aufgeräumter sein als M1 – es ist…anders. Sicherlich gewöhnt man sich daran, jedoch habe ich eine fehlende Ordnung in M1 nicht bemägelt.
Alleine die Möglichkeit in einer Liste wie Bestellungen oder Produkten zu filtern – bei M2 muss man erst einmal auf „Filters“ klicken, dann den passenden Filter raussuchen, da die Filter nicht nebeneinander sind wie die Spalten und dann geht es los…unnötig!
Möchte man eine CMS Seite oder einen Block bearbeiten, hilft nicht der Klick auf den jeweiligen Block, man muss erst auf „Select“ klicken und dann auf „Edit“ – was soll das? Toll, ich habe durch den Klick eine „Quickedit-Funktion“ aber wie häufig benennt man den URL-Key mal eben um im Vergleich zu inhaltlichen Änderungen im Text?

Wie kommt man vom neuen Magento Connect „Web Setup Wizard“ zurück zum Backend? Ich habe bis auf die Änderung der URL noch keine Möglichkeit / einen Link gefunden.

Und erst die Installation von Extensions….ein Graus! Wenn man nicht mit Magento Connect arbeitet und das gemütliche „Drag and Drop to Rootfolder“ gern hatte – das gibt es auch immernoch. Nur damit ist es nicht getan! An alle, die keinen Shell-Zugriff auf Ihren Server haben: Vergesst M2 (wie es aktuell funktioniert)! Nach jedem DnD muss man per Shell / Command Line (häufiges Tool ist hier Putty) die Installation der Extension anstoßen (z.B. durch „php bin/magento setup:upgrade“). M2 wird daraufhin die zu installierende Extension in die Datei bin/config.php eintragen -wie häufig gab es von Seiten M1 eine Änderung in einer Datei? Ok, die installierten Patches wurden vermerkt…aber sonst?
Teilweise ist auch noch ein Deploy notwendig („php bin/magento setup:static-content:deploy“) – und der hat es in sich. Hierbei werden möglicherweise deutlich mehr Änderungen vorgenommen als man eigentlich wollte. Mal eben schnell ist nicht.

Ein Problem, das sich hier stellen kann: M2 erwartet zum Ausführen der o.g. Befehle min. PHP (cli) Version 5.3 – ist diese nicht vorhanden, wird es schwierig. Es gibt zwar Workarounds, die sind aber nicht ohne. Man kann evtl. auf eine serverseitig installierte höhere Version zurückgreifen, wenn man nicht

„php bin/magento [Befehl]“

ausführt, sondern

„/usr/local/php7.0/bin/php bin/magento [Befehl]“

Dies half in unserem Fall.

Weiter geht es mit dem M2-Grauen:

Wenn man früher am Template arbeitete, fand man sich häufig im skin-Ordner wieder und dort im jeweiligen CSS des eigenen Themes. Heute ist dies nicht mehr ganz so einfach.
Die im Frontend angezeigt CSS -als Beispiel- liegt im Ordner pub/static/frontend/Theme/Theme. Wenn man also kleinere, kontinuierliche Anpassungen an der CSS vornimmt und später deployed, sind alle Änderungen wieder weg… Warum?
Magento kopiert die CSS (und auch Bilder etc.) aus dem Ordner app/design/frontend/Theme/Theme in das o.g. Verzeichnis UND es löscht auch Dateien und Ordner, die nicht im zuletzt genannten Ordner vorhanden.

Wie arbeitet man also im Sinne von M2 am CSS? Ganz einfach: Man schreibt nur in der CSS im app-Verzeichnis und muss für jede Änderung (die man gerne sehen möchte) beim Cache-Management die „Static Files Caches“ löschen. Effizient, oder?

Ach – ich könnte noch lange weiter schreiben und der eine und andere wird nun sicher denken „Quatsch – das ist doch viel besser“ – ich erlaube mir aber meinen persönlichen Shit-Storm oder Brandbrief mit meiner GANZ persönlichen Meinung, die mir aktuell die Wut in die Haarspitzen treibt.

Daher #IHM2 und „Ich bleibe (vorerst) bei M1“

Ach, das tut gut – Ich bin dann mal weg 🙂

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Allgemein | Verschlagwortet mit | 2 Kommentare

Magento – Eigene CSS erstellen, die Standard-CSS überstimmt

Verwendet man ein bestehendes (Standard-)Template wie z.B. das RWD Theme und möchte dies nach seinen eigenen CSS-Vorstellungen anpassen, müsste man eigentlich die styles.css nehmen und alles anpassen was man geändert haben will.

Möchte man aber nichts / so wenig wie möglich an der styles.css arbeiten, um z.B. zukünftig seine Änderungen besser sehen zu können, kann man auch eine eigene CSS-Datei erstellen und diese in das Theme mit einbinden. Dies ist ansich relativ einfach.

Man öffnet die local.xml im Theme (oder erstellt sie) aus dem Ordner app/design/frontend/[Eigenes Theme]/[Eigenes Theme]/layout und fügt folgenden Code ein

Nun erstellt man natürlich noch eine eigene CSS-Datei mit dem gewünschen Namen im Verzeichnis skin/frontend/[Eigenes Theme]/[Eigenes Theme]/css

Anschließend werden die CSS-Anpassungen im Theme übernommen.

Nun gibt es aber das Problem, dass die Standard-CSS-Dateien wie die styles.css vom System als vorrangig vor der eigenen CSS angesehen werden. Dies ist kein Problem wenn man eine Anpassung macht, die bislang nicht von einer CSS-Datei angesprochen wird. Möchte man aber eine schon vorhandene Definition z.B. aus der styles.css überstimmen, funktioniert dies so nicht.

Wie Simon Sprankel in seinem Blog-Beitrag (HIER) erklärt, liegt dies daran, dass Magento die CSS-Dateien bevorzugt, die eine Bedingung enthalten.
Die anderen CSS-Dateien werden z.B. in der page.xml mit einer Bedingung wie

geladen.

Um also die eigene CSS zu priorisieren, muss man ebenfalls eine Bedingung hinterlegen – auch wenn in dieser nichts steht.

Der Code in der local.xml (wenn diese z.B. nur diese eine Sache beinhaltet) lautet dann

Damit werden dann die meisten CSS-Definitionen der Standard-CSS-Dateien von der eigenen CSS überstimmt. Ansonsten hilft immer mal wieder ein „!important“ hinter der Definition.

Genutzt in Magento Version 1.9 Kommentare? Ergänzungen? Hinweise? Gerne!

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Magento Design | Hinterlasse einen Kommentar

Magento – Herzlich willkommen – Nachricht auf CMS Seite / in CMS Block zeigen

Die Standard „Willkommen“-Nachricht aus Magento kennt man schon lange. Sie wird zumeist oben im Header angezeigt und häufig auch gleich wieder ausgeblendet.

Bild

Möchte man aber diese „Willkommen“-Nachricht nicht im Header sondern an einer gewünschten Stelle z.B. auf der Home-Seite haben, geht dies nicht ganz so einfach aber -wenn man weiß wie- doch rel. schnell.

  1. Erstellt man eine Datei z.B. mit dem Namen „welcome-cms.phtml“ im Ordner app/design/frontend/[Eigenes Theme]/[Eigenes Theme]/template/page/html
  2. Hier kopiert man folgenden Code rein:
  3. Abspeichern, hochladen. Mit diesem Code wird einem nicht eingeloggten Besucher nun der Standard-Willkommens-Text angezeigt, den man im Backend unter System > Konfiguration > Design > „Sichtbarer Kopfbereich“ – „Begrüßungstext“ eintragen kann. Ist der Nutzer jedoch eingeloggt, wird ihm „Welcome, [sein Name]“ angezeigt. Dies kann nun direkt in der Datei angepasst werden oder aber über die Übersetzung. Diese war bei uns in der page.csv im Verzeichnis app/locale/de_DE zu finden und dort als „Welcome, %s“ geführt.
  4. Nun wird in der gewünschten CMS-Seite die Variable

    eingefügt.
  5. Zuletzt muss nun (bei Magento >= 1.9) die Berechtigung für den Block eingerichtet werden. Dies geschieht indem man unter System > Berechtigungen > Blocks einen neuen Eintrag macht und „page/html“ erlaubt.
  6. Nun sollte im Frontend die Willkommens-Nachricht schön angezeigt werden. Sie kann nun direkt über das CMS gelayoutet werden oder aber über das CSS mit der Klasse „.welcome-cms“

Genutzt in Magento Version 1.9 Kommentare? Ergänzungen? Hinweise? Gerne!

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Allgemein | Verschlagwortet mit | Hinterlasse einen Kommentar

Magento – M2E Error beim Speichern eines Produktes im Backend

Wir erhielten gerade eine Fehlermeldung, die beim Speichern eines Produktes im Magento-Backend auftritt. Komischerweise nicht bei allen Produkten sondern nur bei einem speziellen Produkt.

Sobald man auf „Speichern“ klickt kommt

Fatal error: Call to a member function getOptions() on boolean in /app/code/community/Ess/M2ePro/Model/Amazon/Listing/Product.php on line 308

(die Zeile kann natürlich variieren).

Dies hat mit einem Datenbank-Problem zu tun und kann wie folgt behoben werden (Datenbank sichern!).

z.B. per phpMyAdmin in die Datenbank einloggen und folgenden SQL-Befehl ausführen:

Anschließend funktionierte bei uns das Speichern der Produkte / des Produktes wieder problemlos.

Genutzt in Magento Version 1.9 Kommentare? Ergänzungen? Hinweise? Gerne!

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Allgemeine Magento Probleme | Hinterlasse einen Kommentar

Magento – die URL der Kontakt-Seite von contacts ändern

Standardmäßig wird Magento die Kontakt-Seite auf der URL /contacts unterbringen. Möchte man dies aber ändern – zum Beispiel da man über die URL zugespamt wird, kann dies mit einer kleinen Anpassung gemacht werden.

Wir haben diese Anpassung einmal in eine fertige kleine Extension gegossen und hier angehängt (HIER downloaden). Um die URL nun auf eine Wunsch-URL zu ändern muss einfach die app\code\local\Commercers\Contacts\etc\config.xml geöffnet werden und dort dann in Zeile 14 bei die gewünschte Adresse eingetragen werden an der aktuell „contact-us“ steht. Als Beispiel

In diesem Fall wäre die Kontakt-Seite dann über www.domain.de/ihre-kontaktseite erreichbar.

Vergessen Sie nicht mögliche Links z.B. im Footer zu prüfen, ob diese automatisch geändert werden oder aber manuell angepasst werden müssen.

Eine Datei, die man mglw. editieren muss ist dann die contacts.xml im layout-Verzeichnis des verwendeten Themes.

Genutzt in Magento Version 1.9 Kommentare? Ergänzungen? Hinweise? Gerne!

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Magento Extensions | Hinterlasse einen Kommentar

Magento – SSH Datenbank Import – Problem ERROR 1031 (HY000) at line 2623: Table storage engine for ‚catalog_product_relation‘ doesn’t have this option

Bild

Wir haben gerade probiert ein Datenbank-Dump per SSH (Putty) auf einen neuen Server zu spielen und erhielten den Fehler: „ERROR 1031 (HY000) at line 2623: Table storage engine for ‚catalog_product_relation‘ doesn’t have this option„.

Dies scheint ein Problem bzgl. MySQL zu sein, wenn früher ein Update gemacht wurde. Bei uns hat geholfen die SQL-Datei mit einem einfachen Text-Editor (z.B. PSPad) zu öffnen und dann mit der „Suchen und Ersetzen“-Funktion folgenden Text zu suchen:

BildROW_FORMAT=FIXED;“ (inkl. Leerzeichen und exkl. „“). Diesen Text dann ersetzen durch „;“ (nur ein ; ohne Leerzeichen und ohne „“).

Anschließend die SQL-Datei wieder per SSH-Import importieren. Nun sollte es problemlos klappen.

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Software | Hinterlasse einen Kommentar