Alles rund um Magento!

Google Wallet startet

Auch wenn wir ein wenig in Gefahr geraten, bald als Google-Werbe-Blog zu erscheinen, wollen wir kurz auf den Start des neuesten Produktes der Entwickler aus Kalifornien, dem Google Wallet, verweisen, zumal die Auswirkungen dieser Technologie nicht nur auf den Offline-Handel beschränkt sein bleiben.

Mit dem Launch können vorerst jedoch nur Besitzer eines Nexus 4G Smartphones in den USA den neuen Dienst in Kooperation mit dem PayPass-System von Mastercard nutzen. Bei diesem System hält der Nutzer im Regelfalle seine Kreditkarte an ein spezielles Kartenlesegerät und kann so schnell und unkompliziert zahlen. Dieser Vorgang ist nun auch mit dem Smartphone möglich. Die Übertragung der Daten erfolgt mit dem im Handy integrierten NFC-Chip, in dem die Zahlungsinformationen des Nutzers gespeichert sind. Nach und nach sollen das Bezahlen mit weiteren Karten möglich sein, auch eine Zusammenarbeit mit Visa und American Express ist bereits geplant. Gesichert ist das Verfahren durch eine zusätzliche PIN und dem sog. “Secure Element”, das die sensiblen Daten getrennt von den restlichen Informationen auf dem Smartphone speichert.

Google Wallet Payment

Google Wallet soll auf Dauer den Geldbeutel ersetzen. (Bild:Google)

Bereits seit Sommer lief ein Feldtest, der für Google offenbar zufriedenstellend verlief. Die zugrunde liegende NFC-Technik war auch bereits in den für das PayPass-System genutzten Kreditkarten eingebaut und wird nun für das Wallet genutzt. Derzeit können Kunden der Citibank mit einer Mastercard den Dienst bereits nutzen, alternativ bietet Google auch eine hauseigene Prepaid-Karte Early Adopter an. Neben weiteren Kartenanbietern wartet man vor allem auf die flächendeckende Einführung weiterer NFC-fähigen Smartphones.

Doch Google wäre nicht Google, wenn die Ziele nicht schon wieder viel weiter gesteckt wären. Neben der Bezahlfunktion sollen weitere Dienstleistungen wie Kundenkarten oder Gutscheine ermöglicht werden. Hier ist vor allem die Synchronisation des Wallet mit Google Offers als Konkurrenz zu Groupon interessant, zumal Google sich mit dem Ankauf von Daily Deal weiter in diesem Bereich verstärkt hat. Das Ganze soll per App realisiert werden. Vor allem das Thema Sicherheit steht dabei noch im Brennpunkt, Kritiker weisen vor allem darauf hin, dass eine PIN allein nicht ausreichend Schutz biete. Zudem wird die Kopplung an traditionelle Kreditkarten ebenso bemängelt wie (natürlich!) der mangelnde Datenschutz für die sensiblen Kontendaten.

Auch die deutschen Mobilfunkunternehmen Telekom, Vodafone und O2 wollen sich für ihr Payment-Projekt Mpass die NFC-Technologie zu Nutze machen und damit im nächsten Jahr ebenfalls den breiten Markt in Angriff nehmen.

Inwieweit dies Auswirkungen auf E-Commerce Plattformen wie Magento haben wird, ist noch unklar. Zumindest fürs erste scheint eine Kooperation zwischen Google und Magento in diesem Bereich unwahrscheinlich, hat doch PayPal, wie Magento eine eBay-Tochter, auch schon gegen Google Wallet geklagt, es geht mal wieder um Plagiatsvorwürfe und Abwerbung von Topkräften. Die Technologie an sich ist jedoch auf für Magento interessant. Vor allem im Hinblick auf Mobile Commerce ist denkbar, dass Bezahlvorgänge ebenfalls über das Wallet oder vergleichbare Systeme laufen könnten und hier E-Commerce und Offline-Handel wieder einen Schritt näher zusammenrücken. Gespannt sein darf man auch auf die Entwicklungen im Bereich Sicherheit. Das es mit einer zusätzlichen Pin und dem derzeitigen Secure-Element für das Wallet nicht getan ist, zumal Angriffsflächen erst durch die flächendeckende Einführung jetzt geboten werden, dessen ist man sich auch im Hause Google bewusst. Wenn man den Geldbeutel inklusive Kreditkarten in Zukunft wirklich komplett ersetzen will, sind noch ein paar Errungenschaften zu erwarten, die auch auch für Magento und Co. durchaus interessante Entwicklungen anstoßen könnten.

Google Analytics für den Datenschutz anpassen

Während die Debatte um den Facebook-Like-Button nach wie vor im Gange ist und die Äußerungen der Datenschützer aus Schleswig-Holstein im Internet eifrig diskutiert werden (die Meinungen reichen hierbei von „realitätsfremd“ bis „richtig so“), hat ein anderer Internetriese zumindest eine Problematik im deutschen Datenschutzdschungel beiseite geräumt. Google konnte letzte Woche eine Einigung mit Datenschützern hinsichtlich „Analytics“ verkünden. Die Analysesoftware stand vor allem deshalb in der Kritik, weil die IP-Adresse der Benutzer auch an die Server in den USA übermittelt wurde.Auch wenn Google weiterhin die Meinung vertritt, dass Analytics auch zuvor schon den Richtlinien entsprach, ist man nun nach ein paar Anpassungen auch offiziell Datenschutzkonform.

Google Analytics Magento

Analysesoftware Google Analytics

Schritt 1 auf diesem Weg war die Einführung eines Browser Add-Ons bereits im Mai diesen Jahres, dass es Usern ermöglichte, die Analytics-JavaScripts abzuschalten und so die Nachverfolgung ihres Surfverhaltens zu blocken. In der nun weitergehenden Maßnahme stellt Google für Webmaster eine Anpassung des Tracking-Codes zur Verfügung, nach der nun nicht mehr die komplette IP der Benutzer gespeichert, sondern ein Teil davon anonymisiert wird. Diese Anonymisierung müssen Webseitenbetreiber selbst vornehmen, in dem sie die IP-Masken-Funktion in Google Analytics aktivieren. Dies geht über eine Anpassung des Tracking-Codes von Analytics. Das Snippet hierzu finden Sie auf Google Code. Standardmäßig wird wohl weiterhin ersteinmal der Code mit der vollständigen Übermittlung von Google generiert.

Da bei Magento der Analytics-Code nicht manuell eingebunden, sondern im Backend einfach die Kundenkontonummer eingetragen wird, über die sich die Software dann den Code holt, ist es nicht mit der direkten Änderung getan. Wir werden das entsprechende Modul in den nächsten Tagen auf die neusten Magento-Versionen anpassen, zeitnah in GutHub hochladen und zur Verfügung stellen.

Mit den Anpassungen wird die Nutzung des Trackings, um wertvolle Informationen für die Auswertung in Analytics zu generieren, weiterhin ermöglicht, jedoch keine personenbezogenen Daten mehr übermittelt. Laut Google kann dies die Genauigkeit der Geotracking-Funktion etwas beeinträchtigen, sonst sollen alle Funktionalitäten erhalten bleiben.

Hackevening Javascript

Am 29. August hat das Trio von Developers Peak ihre 10 Städte Tournee in Karlsruhe fortgesetzt. An besagtem Abend wurden alle Interessierten zu einem Event mit dem Schwerpunkt JavaScript: Animations: Canvas vs DOM vs CSS3 vs WebGL eingeladen. Im Hotel Residenz in der Nähe des Karlsruher Hauptbahnhofs fanden sich ca. 25 begeisterte Teilnehmer in angenehmer Atmosphäre. Die Vorträge wurden ausnahmslos in Englisch gehalten.

David leitete das Event mit generellen Themen rund um Javascript ein und sorgte dafür, dass für das spätere Pair-Programming keine Basis-Fragen offen blieben. Der Vortrag befasste sich hauptsächlich mit der Interpretation von Javascript Code im Browser und hat sicherlich diejenigen am meisten berührt, die JS Frameworks wie Prototype und JQuery ausgiebig nutzen, aber nicht genau wissen wie der Funktionsumfang implementiert wurde.

David ist massiv auf die Referenzierung von Variablen und Funktionen eingegangen und den damit verbundenen Flaschenhälsen. Ebenso wurden die mächtigen Closures näher gebracht und wie man damit performante Werkzeuge erstellen kann. Zudem wurde erklärt, wie die Bind-Funktionalität in Prototype implementiert wurde (Bind ermöglicht es an jede definierte Funktion einen beliebigen Context zu binden).

Marek hat uns dann im Anschluss in sein Ressort der Animationen geleitet. Es gab einige Showcases und einige generelle Themen, die im Vorfeld diskutiert wurden. Step by Step wurden wir durch die einzelnen Ansätze der Animation mit Javascript geführt, angefangen mit CSS3. Wir haben dann in Pair-Programming Sessions eine Animation in CSS3 mit Fallback auf DOM-Manipulation erstellt. Weiter ging es mit dem Lösungsansatz über das HTML 5 Canvas-Objekt, auch hier haben wir aus einer angedachten Vorlage von Marek gemeinsam eine laufende Animation erstellt. Als letzten Lösungsansatz haben wir uns WebGL gewidmet.

Javascript Animation Mortal Combat

Charakter aus dem Javascript Mortalkombat Clone

Marek und David sind auf die Vorzüge und Nachteile aller Möglichkeiten eingegangen und zum Abschluss gab es noch einige Showcases zu ein paar eigenen Projekten. Zum einen stellte Marek einen vollständig in Javascript geschriebenen Mortalkombat Clone vor. Das Spiel war Multiclient fähig und hat sogar Fights im Mutliplayer ermöglicht. Die serverseitige Implementierung wurde mit einem Aufsatz mit Node JS erstellt. David stellte uns ebenfalls ein Spiel vor, welches 2 Panzer gegeneinander hat antreten lassen. Die herausstechendste Besonderheit daran war, dass David seinen Panzer mit seinem Mobiltelefon ebenfalls über Node JS steuern konnte.

Den letzten Vortrag hat Piotr übernommen und uns eingeladen zu den kommenden Workshops von David und Marek. Piotr hat auch erzählt, welchen Themen sie sich in Zukunft bevorzugt widmen möchten. Im Anschluss an den Event gab es einen regen Interessensaustausch aller Anwesenden, einschliesslich der Gastgeber.

Der Event hat bei mir persönlich definitiv Appetit auf mehr gemacht, besonders die kommenden Workshops von David de Rosier haben mich angesprochen. In den Workshops geht es zum Teil um Objekt Orientierte Programmierung (Mastering Javascript Part 2: OOP und Patterns) und um fortgeschrittene Techniken (Mastering Javascript Part 3: Hardcore JS), welche einem einen sehr tiefen Einblick in die Sprache Javascript gewähren sollten.

Wer sich gerne direkt Code anschauen möchte, kann die Github Accounts von David und Marek besuchen.

 

Mut zur Veränderung – Potenzial von Online Shops aktivieren

Für Agenturen ist es ein alter Hut, auch wir müssen hin und wieder mit unseren Kunden darüber diskutieren. Viele Shopbetreiber wollen nach der Einrichtung Ihres Webshops kaum mehr Veränderungen vornehmen, auch wenn es nur Kleinigkeiten sind. Dabei wird Optimierungspotenzial oft erst nach und nach erkannt und die Anforderungen verändern sich ständig mit der technischen Entwicklung. Zudem sind viele Anpassungen mit Magento recht einfach umzusetzen. Hier gilt es oftmals hartnäckig zu bleiben, um den Kunden (der bei all dem natürlich noch König bleibt ;-) ) zu seinem Glück zu zwingen. Denn schon minimale Anpassungen erzielen erstaunlich Erfolge, gerade was Usabilitiy und Conversion betrifft. Hier kann man sich das Pareto-Prinzip in Erinnerung rufen, das besagt, dass man mit 20% der Zeit bereits 80% des gewünschten Ergebnisses erhält. Dieser Effekt trifft gerade bei Webshops in großem Maße zu. So sollten sich Shopbetreiber vom Vorschlag einer Veränderung nicht abschrecken lassen, sondern an dieses Prinzip denken. Erfolge lassen sich schon mit wenig Aufwand nachweisen.

Erstaunlicherweise scheint aber allem Early Adoptern in der E-Commerce-Branche der Gedanke an Veränderungen bei ihrem Shop zuwider zu sein. Eigentlich sollte man ja gerade bei diesen Internet-Pionieren Aufgeschlossenheit gegenüber Neuem vermuten, doch viele sind dem Denken verhaftet, dass der Shop ja früher auch funktioniert habe und zudem die Leute, die kaufen wollen, auch kaufen und andere sowieso nicht. Das mittlerweile so gut wie jede Branche auch im Internet von mehreren Mitbewerbern umkämpft ist, scheint bei vielen ungeachtet aller Visionen nicht angekommen zu sein.

Online Shop Umsatz steigernDabei liegt genau in solchen Veränderungen großes Potenzial. Nur mit neuen Ideen (und/oder einer extrem guten Marketing-Strategie) kann man sich positiv in umkämpften Märkten von der Konkurrenz abheben. Visionäre profitieren gerade im Netz von den Möglichkeiten, neue Ideen zu verwirklichen. Dies sollte nicht auf einen Launch/Relaunch beschränkt sein, sondern ein stetiger Gedanke zu sein. Zumal Google und Co. Dynamik in den Seiten auch entsprechend honorieren und dann die Seiten oben in den SERPs anzeigen.

Also kann man als Fazit festhalten: Stillstand = Rückschritt. Diese einfache Gleichung klingt abgedroschen, trifft aber für Online Shops mehr denn je zu. Eine Webseite ist sicher keine einmalige Investition, sondern ein dauerhafter Prozess, den man ständig im Auge behalten muss. So präsentiert auch Magento immer wieder neue und verbesserte Features, um den aktuellen Anforderungen gerecht zu werden. Wir wollen dafür werben, offener für neue Ideen und Anregungen zu werden.

Um diesen Gedanken auch in unserem Blog vorzuleben, werden wir in den nächsten Monaten immer wieder  Tipps, Gedanken oder Anregungen posten, an welchen Schrauben man denn drehen kann, um mit wenig Aufwand bereits eine große Wirkung in einem Online Store zu erzielen. Eine gute Orientierung liefert einem auch das Buch „Web Design for ROI“ von Lance Loveday und Wireframe-Königin Sandra Niehaus, was uns auch einige Ideen und Anregungen für die kommenden Artikel lieferte.

The Next Step: Magento Enterprise 1.11 und Magento Community 1.6

Die Weiterentwicklung von Magento geht voran und so steht das Release von Magento Enterprise 1.11 und der Community Version 1.6 (Stable ging vor ein paar Tagen raus) auf dem Spielplan. Magento selbst hat jüngst ein paar der voraussichtlichen Änderungen angekündigt, die unter anderem Rücksendungen, Warenkorb, Import/Export und Tracking betreffen und die wir euch auch hier kurz vorstellen wollen.

Return Merchandise Authorization (RMA)

Diese Funktion soll in 1.11 komplett runderneuert dargestellt werden, um sowohl Kunden als auch Händlern einfachere Rücksendeprozesse zu ermöglichen. Individuelles Tracking nach Kunde, Produkt oder Bestellung ist möglich und lässt eine verbesserte Übersicht erhoffen. Händler können verschiedene Optionen für Retouren wählen und auch eigene Versandsysteme integrieren. Zudem besteht die Möglichkeit, Kunden je nach Rücksendestatus Informationsmails zukommen zu lassen.

Persistenter Warenkorb (Persistent Shopping Cart)

Um dem veränderten Einkaufsverhalten der aktuellen Generation entgegen zu kommen, möchte Magento das Einkaufsverhalten noch variabler machen. Mit Persistent Shopping Cart (Persistenter Warenkorb) soll es Kunden eines Magento Stores vereinfacht werden, ihren Einkauf bequem von verschiedenen, auch mobilen, Geräten durchzuführen. Somit will Magento die Frustration des Kunden nach Verlassen der Session und des Browsers vermeiden. Sobald er wieder eingeloggt ist (egal ob am gleichen Gerät oder nicht) kann er seinen Einkauf fortsetzen, unabhängig davon wie weit fortgeschritten dieser ist oder war. Dies funktioniert über einen Langzeit-Cookie, der dem eingeloggten User im Backend zugeordnet wird. Dabei wird der Zugang jedoch nur zum Warenkorb gewährt, sensiblere Daten wie Kundeninformationen oder Bankdaten sind nur über die erneute Eingabe der Zugangsdaten möglich, genau wie das Beenden des Checkout-Vorgangs.

Paypal Interface, Bestellungstracking, Import/Export

Der Einfluss des neuen Magento-Eigners eBay sind auch schon zu spüren, so wird ein neues und verbessertes Interface für die Bezahllösung PayPal angekündigt, bekanntlich ja ebenfalls eine Tochter des Auktionshauses.

Des Weiteren soll es Kunden ermöglicht werden, Bestellungen oder Rücksendungen zu tracken, ohne sich jedesmal in ihren Account einzuloggen.

Eine immer wieder spannende Frage ist der Import oder Export mit Magento. In der neuen Version soll ein zeitlich exakt getimter Import/Export entweder von lokalen Daten lokal oder per FTP mit den Features Fehlersteuerung, Statusreports und Backups hier für einen größeren Komfort sorgen.

Fazit

Die angekündigten Änderungen sollen nach eigener Aussage wieder für eine noch höhere Usability und freudige Gesichter bei Händlern und Kunden gleichermaßen sorgen. Inwieweit dies dann in die Realität umgesetzt wird, steht natürlich auf einem anderen Blatt.

Die verbesserte Rücksendeüberwachung kann vor allem für Branchen mit hohen Rücksendequoten zu einer Wohltat werden, sofern dies eine Verbesserung der derzeitigen RMA-Extension darstellt.

Gespannt sind wir aber vor allem auf die Funktionsweise des persistenten Warenkorbes und wie die Kunden diese Funktion annehmen werden. Einerseits können die verbesserten Features durchaus einen Mehrwert und eine Erhöhung der Kundenzufriedenheit darstellen und es den Händlern ermöglichen, ihre Kunden noch genauer einzuteilen. Die Frage ist aber, ob die ständige Verfügbarkeit des eigenen Warenkorbs auch ohne Login nicht eher vorsichtige Kunden abschreckt, die sich um ihre Daten sorgen. Da wir mal annehmen, dass alle hier lesenden Internet-Surfer auch schon einmal eine Bestellung in einem Online Store abgeschlossen haben, freuen wir uns auch auf eure Einschätzungen zu dieser Frage. ;-)

Startschwierigkeiten PHP-CLI auf Windows mit cURL

Schon seit längerem nervt mich, dass das PHP-CLI auf meinem Windows-Rechner etwa drei Sekunden braucht, bevor es überhaupt anfängt irgendetwas zu tun:

PS C:\> measure-command { php -v }
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 2
Milliseconds      : 844
Ticks             : 28442966
TotalDays         : 3,2920099537037E-05
TotalHours        : 0,000790082388888889
TotalMinutes      : 0,0474049433333333
TotalSeconds      : 2,8442966
TotalMilliseconds : 2844,2966

Beim letzten googlen kam irgendwie nichts brauchbares raus (wahrscheinlich hatte ich die falschen Keywords). Heute war’s wieder so lästig, dass ich einen neuen Versuch unternommen habe und siehe da: diesmal hatte ich Glück. Als Schuldige wurde von Mehreren die MySQL- und die cURL-Extension genannt. Da ich MySQL auf jeden Fall für meine Unittests brauche, habe ich erstmal nur die cURL-Extension deaktiviert, mit durchschlagendem Erfolg:

PS C:\> measure-command { php -v }
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 48
Ticks             : 485263
TotalDays         : 5,61646990740741E-07
TotalHours        : 1,34795277777778E-05
TotalMinutes      : 0,000808771666666667
TotalSeconds      : 0,0485263
TotalMilliseconds : 48,5263

Statt 2,85 Sekunden braucht PHP auf einmal nur noch 0,05 Sekunden um die Version auszugeben. Das ist ein Unterschied von Faktor 57! So, jetzt kann ich entspannt weiterarbeiten :)

Stolperfalle mit mod_rewrite und Rückreferenzierung

Vor ein paar Tagen habe ich einen Blog-Beitrag gelesen, in dem es eigentlich um base62-Kodierung ging. Die Motivation für die unübliche Kodierung war aber ein unerwartetes Verhalten von mod_rewrite, dass mir so bisher auch nicht aufgefallen war:

There’s a really horrible bug (though they won’t call it that!) in Apache’s mod_rewrite that means that urlencoded inputs in rewrites get unescaped in their transformation to output patterns. The bug actually remains unfixed, though a workaround first appeared in Apache 2.2.12 (which wasn’t all that long ago). Put it like this: if you’re not using the [B] flag in your mod_rewrite rules, your site is probably only working due to blind luck.

RewriteRules, die Rückreferenzierungen verwenden und das B-Flag nicht gesetzt haben, entfernen auch gleich die URL-Maskierung. Oder wie es im Apache-Manual steht:

[...] will map /C++ to /index.php?show=/C++. But it will also map /C%2b%2b to /index.php?show=/C++, because the %2b has been unescaped. With the B flag, it will instead map to /index.php?show=/C%2b%2b.

Diese Verhalten kann einem im Zusammenhang mit verschlüsselten oder kodierten Werten in der URL ganz schön in die Suppe spucken. Mir fällt gerade auch kein Fall ein, wo ich dieses Verhalten als sinnvoll oder nützlich empfinden würde. Daher werde ich in Zukunft alle RewriteRules mit Rückreferenzierungen prophylaktisch mit dem B-Flag ausstatten.

Update (18.08.2011):

Ok, es gibt doch einen sinnvollen Anwendungsfall, weil das B-Flag sich nicht darum kümmert, ob die Eingabe kodiert war oder nicht. Im Apache-Manual wird folgende Regel als Beispiel genommen:

RewriteRule ^(/.*)$ /index.php?show=$1

In diesem Beispiel funktioniert alles und das B-Flag ist super, weil die Rückreferenzierung in den Query-String kommt und daher auf jeden Fall escaped werden muss. Wenn mann aber auf einen Pfad rewriten will, wie mit dieser Regel

RewriteRule ^(.*)$ /de/$1

kommmt einem das B-Flag in die Quere, weil es aus index.php ein /de/index%252ephp macht. Solange man entweder in den Query-String oder auf den Pfad rewriten will, ist alles kein Problem: Bei Query-String das B-Flag verwenden, ansonsten nicht. Aber wenn man sowohl in den Query-String als auch den Pfad mit Rückreferenzierungen verändern will wird das Ganze kompliziert.

Gutscheine in Magento Enterprise

Deutschland ist im Gutscheinfieber. Spätestens seit der amerikanische Dienst groupon auch hierzulande Fuß gefasst hat, erfreuen sich Gutschriften aus dem Netz großer Beliebtheit. Vor allem als Geschenkidee sind Gutscheine online wie offline immer wieder gefragt. Die steigende Relevanz dieser Thematik für Online Shops spiegelt sich auch im Erfolg von Systemen wie Sovendus (vormals Gutscheinconnecton) wider, bei denen verschiedene Partnershops mit Coupons untereinander vernetzt werden. So können auf der einen Seite Neukunden gewonnen und auf der anderen Seite Bestandskunden gehalten werden.

Auch in Magento gibt es die Möglichkeit, Gutschriften (Gift Cards), in den Shop zu integrieren. Bereits in der Community Edition  gibt  es die Möglichkeit von Gutschein-Integrationen, jedoch nicht die Option, diese auch von den Kunden buchen zu lassen. In der Enterprise Edition ist dieses Feature dann in seiner vollen Funktionalität verfügbar und ermöglicht es Kunden, Gutscheine in virtueller Form oder als Geschenkkarte per Post zu versenden. Auch die Kombination beider Varianten ist möglich. Dabei besteht immer die Möglichkeit, individuelle Grüße an den Adressaten zu übermitteln, was diese Option ideal als Geschenkmöglichkeit einsetzbar macht. Somit ist es sehr attraktiv, um neue Kunden in den Shop einzubinden.

Viele Konfigurationsmöglichkeiten im Backend

Magento Gift Cards Backend

Konfiguration der Gutscheine im Magento Backend

Dabei gibt es im Backend jede Menge Optionen für den Admin, um ein vernünftiges Gutscheinsystem zu etablieren. Es kann ein Code Pool generiert werden, Länge und Format der einzelnen Gutschriftencodes können im Voraus eingestellt werden. Zudem ist es möglich, ein standardisiertes Prä- oder Suffix zu wählen, um eine Systematik in die Vergabe der Gutscheincodes zu bringen. Dem Gutscheinkäufer kann je nach Einstellung im Backend eine Reihe voreingestellter Preise auswählen oder den Gutscheinwert auch komplett frei bestimmen.

Auch beim Einlösen des Gutscheins gibt es einige Varianten. Neben dem ganzen normalen Eintausch beim Checkout gibt es auch die Möglichkeit, den Wert dadurch zu verwerten, dass er auf ein Kundenkonto übertragen wird, sofern ein solches Konto in der jeweiligen Magento Enterprise-Lösung aktiviert ist. Dadurch kann der Kunde verhindern, dass sein Gutschein verfällt. Als Admin kann man jedoch auch einen Pool an Codes generieren, die kein „Verfallsdatum“ besitzen.
Besonders gut eignet sich die Option in der Kombination mit anderen Aktionen. So ist es beispielsweise möglich festzulegen, dass Kunden beim Kauf über einem bestimmten Bestellwert einen Gutschein bekommen, mit dem sie ebenfalls an den Shop gebunden werden. Auch ist es sinnvoll, Kampagnen aus Social Media oder Offline-Werbung hier zu integrieren.

Fazit:

Gutscheine sind im heutigen E-Commerce ein wertvolles Mittel zur Neugewinnung und langfristigen Bindung von Kunden. Daher sollten vor allem Betreiber von B2C-Online Stores, bei denen Stammkunden ein wichtiges Umsatzpotential darstellen, diese Möglichkeit der Magento Enterprise Edition nutzen. Die vielen Konfigurationsmöglichkeiten gestatten dem Gutscheinkäufer die nötige Individualität, die er bei einem Geschenkgutschein sucht und ermöglichen auch die Verbindung mit anderen Aktionen.

Genau in diesem Punkt liegt meines Erachtens auch der Vorteil von Gutscheinen in Online Shops, bietet er doch viele Chancen für eine gut funktionierende Werbekampagne. Diese kann nur erfolgreich sein, wenn bestimmte Promo-Aktionen, die mit Magento einfach und flexibel aufgebaut werden können, mit anderen Maßnahmen kombiniert werden. Eine Gutschrift allein losgelöst mag zwar nett sein und wird als Geschenkidee sicher den ein oder anderen Abnehmer abgreifen, den maximalen Effekt bekommt man jedoch nur in der sinnvollen Kombination manigfaltiger Werbeaktionen, in denen der Gutschein ein Teil des Systems ist.

P.S.: Wer Interesse an einem funktionsfähigen und effektiven Gutscheinsystem für Online Shops hat, kann sich mal intensiver mit den Möglichkeiten der schon oben erwähnten Gutscheinconnection (Sovendus) außeinander setzen. ;-)

Flagbit launcht HADAKI Online Shop

In Zusammenarbeit mit der Schweizer Agentur  Trend Distribution AG hat Flagbit den Magento Online Shop des Taschenherstellers HADAKI für die Schweiz realisiert. Die graphische Umsetzung nahm die ebenfalls im Eidgenossenstaat beheimatete Agentur Ground15 vor. Die aus New Orleans stammende Marke HADAKI ist bekannt für seine außergewöhnlichen und kreativen Taschenkreationen, die oftmals durch ihre Farbpracht hervorstechen.

Startseite www.hadaki.ch

Startseite des neuen Hadaki Online Shops

Die eigenen Muster (Collections) werden daher auch in dem neuen Online Shop auf Magento-Basis besonders hervorgehoben. So kann der Anwender direkt auf der Startseite nicht nur bestimmte Produkte, sondern auch ein Farbmuster auswählen, zu dem dann alle verfügbaren Artikel angezeigt werden. Auch bei der Auswahl eines einzelnen Produktes bleiben die Muster nicht unbeachtet, sondern auch hier werden dazu  passende Artikel mit dem gleichen Muster in einem Slider angezeigt. Gefällt dem Kunden ein Muster sehr gut, kann er sich auch gleich die komplette Kollektion anzeigen lassen.

Des Weiteren wurde die Anbindung eines WordPress Blogs mit dem Flagbit-Feed-Reader ebenso realisiert wie ein Produktlisting mit einem Lückenfüller für Emotion-Images. Damit ist sichergestellt, dass auch bei einer ungeraden Anzahl Produkte keine freien Stellen in der Liste angezeigt werden.

Allen Worthington von der Trend Distribution AG zeigt sich begeistert von der Umsetzung durch Flagbit: „Unsere anspruchsvollen Wünsche für diesen interessanten und außergewöhnlichen Shop wurden hervorragend umgesetzt. Es war uns wichtig, dass die vielfältigen Kollektionen aus der HADAKI Produktpalette von Handtaschen, Totes über Portemonnaies, Laptop- und Reisetaschen zu anderen Accessoires im neuen Online Store für die Schweiz gut zur Geltung kommen. Dies ist uns dank der guten Zusammenarbeit mit Ground15 und Flagbit auch sichtbar gelungen“.

Wir wünschen der Trend Distribution AG sowie dem HADAKI Online Store viel Erfolg und freuen uns auch in der Zukunft auf die weitere Zusammenarbeit und spannende Projekte.

Leere Kategorien in Navigation

Wir mussten gerade feststellen, dass die Methode getProductCount des Kategorie Models nicht so arbeitet, wie man es von ihr erwartet.

Kurze Problembeschreibung:
Unser Problem bestand darin, dass in der Navigation Kategorien aufgetaucht sind, welche eigentlich keine Produkte enthalten. Es waren z.B. 2 Produkte der Kategorie zugewiesen, aber deaktiviert. Der ProductCount gab trotzdem eine Anzahl von 7 Produkten zurück.

Nach kurzer Analyse mussten wir feststellen, dass Produkte, welche in der gleichen Kategorie, aber in einem anderen Store waren, auch mitgezählt wurden. Ein kurzer Blick auf den Query von Magento hat dann auch schon gereicht, um festzustellen, dass weder die Stores noch die Verfügbarkeit der Produkte eine Rolle spielen.

Wir haben den Query um eine Filterung des aktuellen Stores und um eine Prüfung der Verfügbarkeit der Produkte erweitert. Das wollen wir euch natürlich nicht vorenthalten.

Ihr müsst folgendes Resource Model überschreiben: Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Flat

Und hier unsere getProductCount Methode:

public function getProductCount($category)
{
 $productEntityIntTable = (string)Mage::getConfig()->getTablePrefix() . 'catalog_product_entity_int';
 
 $select =  $this->_getReadAdapter()->select()
  ->from(array('p' => $this->getTable('catalog/category_product')), "COUNT(p.product_id)")
  ->joinLeft(array('w' => $this->getTable('catalog/product_website')),'p.product_id = w.product_id')
  ->joinLeft(array('ci' => $this->getTable('cataloginventory/stock_status')),'ci.product_id = p.product_id AND ci.website_id = w.website_id')
  ->joinLeft(array('cpi' => $productEntityIntTable),'cpi.entity_id = p.product_id')
  ->where("p.category_id = ?", $category->getId())
  ->where("w.website_id = ?", Mage::app()->getStore()->getWebsiteId())
  ->where("ci.stock_status = 1")
  ->where("cpi.attribute_id = 84")
  ->where("cpi.value = 1")
  ->group("p.category_id");
 
  return (int) $this->_getReadAdapter()->fetchOne($select);
}

Die “attribute_id” muss noch durch eure ersetzt werden. Es handelt sich hierbei um das “status” Attribut der Produkte mit dem Backend Type “catalog/product_status”.

Page optimized by WP Minify WordPress Plugin