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

Magento – Nicht angemeldete Kunden direkt auf Login-Seite weiterleiten

Möchte man z.B. einen B2B-Shop einrichten bei dem sich der Nutzer erst einmal anmelden / bzw. registrieren muss, um Artikel und / oder Kategorien sehen zu können, kann man auf verschiedene Extensions zurück greifen. Eine sehr verbreitete Extension ist Groups Catalog 2 von Netzarbeiter.

Mit dieser Extension ist es möglich nur eingeloggten oder sogar nur bestimmten Kundengruppen Produkte und Kategorien anzuzeigen sowie einzelne Artikel für bestimmte Gruppen auszublenden. Also eine großartige Extension.

Nur am Anfang hatten wir ein wenig Handlungsbedarf: Kommt der Kunde auf die Shopseite / Landingpage wird er nicht direkt auf die Login-Seite weitergeleitet, sondern auf die im Backend unter „Web“ definierte Seite. Hier kann man zwar die Login-Seite hinterlegen was aber bedeuten würde, dass der Kunde nun jedes Mal, wenn er zu „Home“ will -also auch auf das Logo klickt- auf der Login-Seite landen würde.

Da wir dies aber nicht wollen, greifen wir auf einen kleinen Trick zurück. Hierzu haben wir eine neue Datei angelegt. Diese heißt „forced-login.phtml“ und befindet sich im Ordner app/design/frontend/[Ihr Template]/[Ihr Template]n/template/customer.

In dieser Datei ist folgender Code:

Nun wird diese Datei bzw. Funktion in die Home-CMS-Seite eingebaut indem man einfach die Startseite im Backend öffnet und dort folgende Zeile im Standard-Text-Bereich einfügt:

Nun prüft das System, ob der Nutzer eingeloggt ist. Ist er dies nicht, wird er direkt auf die Anmelde-Seite geleitet ansonsten kann er sich die Home-Seite ganz normal anschauen.

Klar werden Google & Co. nun Probleme bekommen, da man aber -wie in der o.g. Lösung- die Produkte und Kategorien eh versteckt, sollten die Suchmaschinen auf der Seite nichts finden können. Man könnte dies auch über einen entsprechenden robots.txt Eintrag klar machen.

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

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Allgemein | Hinterlasse einen Kommentar

Magento 1.9 – Bestell eMails sofort versenden und nicht über Cron

Ab Magento Version 1.9 werden die Bestellbestätigungs-eMails nicht mehr per Event verschickt (also nach erfolgreicher Bestellung) sondern über eine Mail-Queue, die über den Cron angestoßen wird. In vielen Fällen wird die Bestellbestätigung also nur alle 15 Minuten verschickt.

Ausgerechnet bei der Bestellbestätigung nicht wirklich optimal, da der Kunde diese nach der Bestellung erwartet, um sicher zu sein, dass auch wirklich alles geklappt hat. Bei Rechnungsmails oder Versandbestätigungen wäre es hingegen wohl nicht so schlimm, wenn diese einige Minuten später verschickt würden. Diese werden aber weiterhin per Event verschickt – also direkt.

Wer nun doch möchte, dass die Bestellbestätigung direkt nach der Bestellung verschickt wird, kann dies relativ unkompliziert nachrüsten.

Hierzu kopiert man die Datei app/code/core/Mage/Sales/Model/Order.php in den Ordner app/code/local/Mage/Sales/Model/Order.php

und sucht dort nach der Zeile

Diese wird auskommentiert oder gelöscht und durch diese Zeile ersetzt

Anschließend wird dann noch die app/design/frontend/[IhrTemplate]/[IhrTemplate]/template/checkout/success.phtml geöffnet und ganz oben noch vor dem schließenden ?> folgender Code integriert:

Anschließend eventuell noch einmal den Cache leeren. Nun kommen die Mails aber direkt nach der Bestellung.

Update vom 17.02.2017

Es fiel auf, dass immer wieder Bestellbestätigungsmails doppelt verschickt wurden. Um dies zu beheben, wurde die Änderung der success.phtml wieder rückgängig gemacht (s.o.). Sollte also auch das Problem des doppelten eMail-Versandes auftauchen, dann diese Anpassung wieder entfernen und nur die Order.php ändern.

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

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

Magento – Artikel vergleichen funktioniert nicht

Dies als kleine Randnotiz: Wir haben gerade in einem RWD Template die Anzeige der Vergleichsbox von rechts nach links umgestellt und hatten dann das Problem, dass zwar „gesagt“ wurde, dass der Artikel erfolgreich zur Vergleichsliste hinzugefügt wurde, angezeigt wurde er jedoch nicht.

Dies war umso komischer, da es im 1:1 Testshop einwandfrei funktionierte.

Die Lösung war: Index neu laden. Nach dem Neuladen aller Indizes war das Problem behoben und die Artikel wurden in der Vergleichsliste angezeigt.

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

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