Magento – Double Opt In bei Newsletter-Anmeldung verwenden

Leider ergibt sich bei Magento das Problem, dass die Double Opt In-Funktion, die es ja dankenswerterweise für die Newsletter-Anmeldung gibt, nicht wirklich funktioniert. Klickt ein Kunde bei der Registrierung auf die Checkbox, dass er den Newsletter zukünftig erhalten möchte, erhält er im besten Fall eine Mail mit der Bitte sein Konto zu bestätigen aber keine Mail zur Bestätigung seiner Newsletteranmeldung. Dies kann jedoch geändert werden.

Bild

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

Anschließend fügt man ca. bei Zeile 459 nach

folgende Zeilen ein

Weiterhin nach den Zeilen

die Zeile

Das sollte es schon gewesen sein.

Für alle, die die nette Newsletter Checkout Extension von Quafzi [HIER] verwenden, um die Newsletter-Checkbox im letzten Schritt des Checkouts in der Übersicht anzeigen zu lassen, die sollten auch noch die app/code/community/Quafzi/CheckoutNewsletterSubscription/Model/Observer.php unter die Lupe nehmen. Auf der einen Seite ist die Checkbox standardmäßig angehakt, was nach Deutschem Recht nicht erlaubt ist. Somit sollte man die Zeile

ändern in

Weiterhin die Zeile

auskommentieren oder löschen.

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

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

Magento – den Route / Controller / Action Pfad herausfinden

Es gibt verschiedene Möglichkeiten herauszufinden welchen Route / Controller / Action Pfad eine Seite des Shop hat. Dies benötigt man z.B. wenn man bestimmte Bereiche des Shops für Funktionen ausschließen oder eben einschließen möchte. Ein konkreter Anwendungsfall ist z.B. die Extension Login Only Catalog von Vinai Kopp. Die Extension kann verwendet werden, um den Shop „abzuschließen“ und nur registrierten Personen den Zugang zu gewähren.

Bild

Nach Deutschem Recht müssen bestimmte Seiten (wie z.B. das Impressum) aber immer einsehbar sein. Somit sollte diese Seite auch für eine Unregistrierte Person sichtbar sein.

In der Extension können nun bestimmte Bereiche eines Shops durch Eingabe des Pfades aufgeteilt in Route/Controller/Action von der Kontrolle ausgeschlossen werden.

Hierzu kopiert man einfach quick and dirty folgenden Code z.B. in die header.phtml des eigenen Templates (ganz oben rein):

Anschließend das Frontend und die gewünschte Seite laden und oben steht alles.

Eine CMS-Seite hätte z.B. den Pfad cms/page/view

Die Benutzeregistrierung customer/account/create

Passwort vergessen? customer/account/forgotpassword

Nachdem man weiß was man braucht: Code wieder entfernen.

Genutzt in Magento Versionen 1.4 – 1.9 Kommentare? Ergänzungen? Hinweise? Gerne!

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Allgemein | Hinterlasse einen Kommentar

Magento – PayPal Plus wird plötzlich nicht mehr angezeigt

Bild

Wir haben in einem Multishop eine neue Shopinstanz hinzugefügt und im Rahmen dieses neuen Shops wollten wir auch PayPal Plus mit dem Modul von i-ways weiterhin verwenden.

Bei allen Shops wird als „Drittanbieter“ Zahlung Vorkasse durch Überweisung angeboten. Diese ist direkt über die Extension in PayPal Plus integriert und wird dort mit angezeigt.

Beim Test des Checkouts fiel auf, dass beim „Drittanbieterinformationstext“ eine kleine Unklarheit in der Anweisung für den Kunden war. Somit konkretisierten wir den Beschreibungstext ein wenig.

Bild

Nach weiteren Anpassungen auf der Seite, machten wir dann wieder einen Checkout-Test und mussten feststellen, dass plötzlich im Schritt 4 des Checkouts bei den Zahlungsinformationen nichts mehr angezeigt wurde. Kein PayPal Plus, keine Zahlarten…

Es kostete dann einige Zeit, um das Problem zu identifizieren und zu beheben: Die Extension mag es überhaupt nicht, wenn im Beschreibungstext Anführungszeichen enthalten sind!

Wenn man auf diese aber verzichtet, klappt es wieder mit der Anzeige.

Bild

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

Magento – @font-face funktioniert nicht

Mannomann, was habe ich am Font-Face-Problem rumgespielt bis es endlich geklappt hat.

Ich will gar nicht lange auf die Einzelheiten eingehen, sondern nur kurz und knapp eine Anleitung geben:

Problem: Ich möchte eine eigene Schriftart in die Seite integrieren, die ich lokal auf dem Server zur Verfügung stelle.

Um diese nun in ein Template einzubinden, verwende ich den @font-face Befehl in der geladenen CSS-Datei. Und zwar ganz vorne.

Die Schriftart-Dateien liegen dann natürlich im o.g. Verzeichnis. Selbstverständlich muss man nicht alle Formate anbieten. WOFF ist das wohl aktuell am kompatibelste. Es gibt einige Online-Konverter, die einem aus seiner Schriftart die anderen Formate erstellen, die man dann auf dem Server ablegen kann.

Damit sollte man dann eigentlich in der Lage in einer CSS-Klasse und „font-family: „MeineSchriftart“;“ die gewünschte Schriftart zu lassen.

Leider klappt dies ziemlich häufig nicht wie gewünscht und man sucht und sucht den Fehler.

Generell ist einer der wichtigsten Punkte, dass die URL genauso lauten sollte, wie die als Basis-URL genannte Domain. Hat man also eine Subdomain hinterlegt, sollte man auch diese laden. Die Domain sollte der entsprechen, die auch im Browser angezeigt wird, wenn man die Seite lädt.

Hier hatte ich einmal versucht die Schrift bei einem Multishop von einer anderen Domain (anderer Shop derselben Installation) zu laden, der Shop hat sich aber leider geweigert.

Bislang habe ich noch keine Lösung gefunden einen dynamischen Pfad zu verwenden. Es musste immer der absolute Pfad sein.

Wichtig ist auch: Hat man in der Basis-URL eine htttp-Adresse eingetragen, muss die zu ladende Adresse ebenso eine http-Adresse sein. Verwendet man aber durchwegs https, muss es auch https sein!

Ich hoffe, dass es dem einen und anderen hilft.

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

Magento – Warenkorb nach Anmeldung leer

Es kommt immer mal wieder vor, dass man bei Magento das Problem hat, dass der Warenkorb nach der Anmeldung des Benutzers im Benutzerkonto plötzlich leer ist. Es gibt auch weitere ähnliche Vorfälle, die man möglicherweise mit diesem kleinen Kniff beheben kann:

Im Backend unter System > Konfiguration > Web gehen und dort dann bei „Sitzungscookie Verwaltung“ bei Cookie Pfad ein „/“ eintragen sowie darunter die eigene Domain. Dies hat sehr häufig geholfen.

Bild

Wenn man das Problem vorher genauer betrachtet hat, sah man immer wieder, dass man eine Session / ein Cookie für die „www.“ Domain und die „.“ Domain erhielt. Und dies führte dann ab und zu zu Problemen.

Update vom 15.11.2017

Ein Problem, welches in diesem Zusammenhang gerade auftrat war, dass ausschließlich Chrome Nutzer nach der Anmeldung sofort wieder ausgeloggt / abgemeldet wurden wenn Sie auf einen Link klickten. Bei Firefox und IE gab es keine Probleme.
Das Problem stand wohl weiterhin im Zusammenhang mit der Umstellung der kompletten Seite auf SSL / https.

Nach Anpassung der Einstellung wie oben beschrieben (mit Ausnahme des Slashes im Feld „Cookie Pfad“, dieser wurde weggelassen), klappte es dann wieder und problemlos.

Ein ähnliches Thema gibt es auch HIER.

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

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

Magento – in einem Multishop mit mehreren Domains nur bestimmte Domains mit Passwortschutz versehen

Wir arbeiteten gerade an einem Multishop mit mehreren Domains für mehrere verschiedene Frontends.

Nun sollte ein neues Frontend mit einer neuen Domain hinzukommen. Selbstverständlich war die Aufgabe die Domain und den Shop vor der offiziellen Freigabe nicht zugänglich zu machen. Somit musste eine Lösung her, um eine einzelne Domain aber nicht den kompletten Shop zu sperren.

Viele Hoster bieten die Möglichkeit komfortabel ein Verzeichnis mit einem Passwortschutz zu versehen – meist mit einer .htaccess-Lösung. Dies würde uns hier aber nicht viel bringen, da wir eine Lösung für nur eine Domain aber nicht die Magento-Installation bzw. deren Verzeichnis brauchten.

Die .htaccess-Lösung ist jedoch auch für diesen Fall zu gebrauchen aber leicht abgewandelt. Man lässt sich nun entweder von seinem Hoster eine .htpasswd Datei erstellen oder tut dies bei einem der Onlineangebote wie z.B. HIER.

Diese .htpasswd legt man im Rootverzeichnis von Magento bei der .htaccess ab.

Anschließend öffnet man die .htaccess und schreibt dort unten folgenden Code:

Selbstverständlich werden sowohl der Pfad zur .htpasswd und die zu sicherende Domain gegen die eigenen Daten ausgetauscht.

Nun sollte die gewünschte Domain gesichert sein und erst nach Eingabe des Benutzers und des Passwortes einzusehen sein.

Facebooktwitterredditpinterestlinkedinmailby feather
Veröffentlicht unter Allgemein | Hinterlasse einen Kommentar

Magento – PayPal (Plus) erstellt häufig zwei Rechnungen

Beim einen und anderen Magento Shop hatten wir das Problem, dass häufig (nicht immer) zwei Rechnungen für ein und dieselbe Bestellung erstellt wurden, wenn diese mit PayPal (bzw. PayPal Plus) bezahlt wurde.

Dies war natürlich unangenehm, da einige Kunden verunsichert waren wenn sie zwei Rechnungen erhielten und sich fragten, ob sie doppelt bestellt hatten.

Nach längerer Analyse und Debugging stellte sich heraus, dass (wahrscheinlich) durch die Änderung der Zahlungsmethode von PayPal auf PayPal Plus ein weiterer Webhook bei PayPal hinterlegt worden ist, so dass zwei Bestätigungen verschickt wurden.

Wo findet man diese Webhooks? Man meldet sich bei http://developer.paypal.com an und geht im Dashboard auf „MyApps & Credentials“. Dort klickt man bei „REST API apps“ auf die betreffende App. Anschließend ist wichtig zu unterscheiden nach Sandbox und Live (oben rechts neben dem App Namen). Weiter unten findet man dann die Webhooks. Fällt einem hier auf, dass es für ein und denselben Shop zwei (oder) mehr Webhooks gibt, sollten die überflüssigen gelöscht werden. Generell sieht eine Webhook-URL so aus: https://www.dies-ist-meine-domain.com/index.php/paypalplus/index/webhooks/.

Nach der Löschung des zweiten Webhooks gab es auch nur noch eine Rechnung und entsprechend auch nur eine Mail an den Kunden mit der Rechnung.

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

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

Magento – Einen statischen Block auf bestimmten Seiten aber auf bestimmten Seite nicht

Bild

Wir benötigten zuletzt eine Lösung, um einen kleinen Banner mit einer Kundeninformation auf allen Seiten anzeigen zu lassen aber NICHT im Checkout. Im Warenkorb hingegen sollte er auftauchen.

Einen Beitrag mit einem ähnlichen Thema (Info nur auf der Homepage auftauchen lassen aber auf keiner anderen Seite LINK) hatten wir schon, dieser Ansatz ist aber ein anderer.

Wir wollen hier einen Streifen oben am Rand des Bildschirms haben, dessen Inhalt aus einem Statischen Block kommt. Er soll frei editierbar sein und das ohne auf CSS-Dateien zugreifen zu müssen. Die Anzeige ist ähnlich wie der Demo-Store-Hinweis von Magento. Wir arbeiten hierfür mit verschiedenen Dateien.

  1. Erstellen die Datei
    app/design/frontend/[Eigenes Theme]/[ebenso]/template/page/html/site-info.phtml
  2. app/design/frontend/[Eigenes Theme]/[ebenso]/template/page/html/header.phtml
  3. app/design/frontend/rwd/default/layout/page.xml
  4. app/design/frontend/rwd/default/layout/checkout.xml

Die erste Datei legen wir neu an und schreiben folgenden Inhalt rein:

Die zweite Datei öffnen wir und schreiben

an eine uns beliebige Stelle (an der der Block auftauchen soll). Wir haben sie ganz oben vor

eschrieben. Dies lädt die erstgenannte Daten – aber erst nach der nächsten Änderung.

In der dritten Datei suchen wir nach

und fügen dort folgende Zeile darunter ein

Dies sorgt dafür, dass der HTML-Block geladen wird. Nun würde dieser Block auf jeder Seite geladen werden. Da wir aber wollen, dass er nicht im Checkout geladen wird, müssen wir noch

die vierte Datei anpassen. Hier wird dann nach

gesucht und dieser Code eingefügt

Wir haben dies nach

gemacht.

Hierdurch sagen wir dem Shop, dass er im One Page Checkout diesen Block nicht laden soll. Somit erfolgt auch keine Ausgabe. Die beiden letzten Änderungen könnten übrigens auch in der eigenen local.xml gemacht werden. Und selbstverständlich kann der genannte Code auch an jeder anderen beliebigen Stelle eingebaut werden.

Nun fehlt nur noch der Statische Block. Wir erstellen nun einen solchen mit dem Code „site-header-info“. Hier kann man nun alles reinschreiben was man will. Da wir keine CSS-Datei ändern wollen, sondern alle Änderungen aus dem Statischen Block vornehmen wollen, könnte ein möglicher HTML-Code für den Block so aussehen

Sobald man den Block aktiviert, wird der Block im Shop angezeigt. Deaktiviert man ihn wieder, ist der Block komplett unsichtbar.

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

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