Hannes Pries - Web/Shopware/Java-Developer Blog
Weil es immer eine simple Lösung gibt!

  • Projekte
    • MP4toGIF
    • CJS
  • Impressum
  • Hire me

  • Blog
    • Search
    • Archive
    • My Blog

Projekte:
MP4toGIF
Shopware-Store

Social-Networks:
Facebook
Instagram
Blog: Blog-entries by search-pattern/Tags:
Pattern: (4 Entries)

Shopware: Product-Streams und Kategorien

Wie füllt man Kategorien in Shopware mit möglichst wenig Aufwand und weitestgehend automatisch?

Man kann könnte das im Import erledigen oder jemanden davor setzen, der alle Artikel in die entsprechenden Kategorien einsortiert. Wenn man aber nun eine neue Kategorie anlegt, müsste man durch alle Artikel gehen und gucken, ob man diese dort einsortieren muss.

Aber Product-Streams bieten hier eine tolle und einfache Lösung an. Weil hier kann man aus der Menge aller Produkte filtern. Einer Kategorie kann dann der Stream zugeordnet werden.

Als Beispiel nehmen wir Hersteller-Kategorien. Man will ja nicht jedes Produkt bei der Neuanlage der Kategorie zu ordnen müssen, die für den Hersteller existiert.

Wir erstellen uns einen Stream der nach unseren Hersteller filtert.

bbcode-image


Nun erstellen wir uns eine Kategorie für den Hersteller und wählen den Stream aus.

bbcode-image


Im Frontend sind in der Kategorie nun alle Produkte des Herstellers zu finden, ohne dass wir nur einen Artikel per Hand einsortieren mussten.

bbcode-image


Product-Streams sind sehr praktisch und nehmen einen viel Arbeit ab.
User annonyme Date 2017-09-23 19:57
Tags artikel auswahl, automatisierung, cherry, ecommerce, filter, hannes pries, hersteller, kategorie, php, productstream, shopware, streams, tipp

Creditfair Vereinsprogramm

Das Creditfair Vereinsprogramm ist released worden. Es basiert auf einem Shopware 5.3 Shop, das mit verschiedenen eigenen und dafür geschriebenen Plugins erweitert wurde.

bbcode-image


Auf der Seite kann ein Sportverein sich registrieren und für jede Angebotsanfrage eines Mitglieds, die zu einem Vertrag führt, wird dem Verein eine entsprechende Menge an Punkten gut geschrieben, die der Verein dann in Prämien eintauschen kann.

Es gibt also zwei verschiedene Kunden-Arten. Die normalen Mitglieder der Vereine, die sich Informationen über die Leistungen von Creditfair auf der Seite einholen können und dann über ein Anfrage-Formular ein Angebot anfordern können.
Dann gibt es noch die Vereine, die die eigentliche Shop-Funktionen nutzen und ihr Bonuspunkte-Konto dort pflegen können.
Vereine können sich nicht direkt registrieren sondern werden von einem Administrator dort angelegt und freigeschaltet. Es ist hier also eher eine B2B Lösung in einem sehr kontrollierten Rahmen.

Um diese Funktionen abbilden zu können, kommen 3 Plugins zum Einsatz:

1. Das Bonuspunkte-Plugin
Hier erhält jeder Verein ein Budget von Bonuspunkten, die ihm auch im Account angezeigt werden. Das Eintragen der Punkte geschieht im Backend. Dawird nicht nur ein einzelner Punkte-Wert gepflegt, sondern es gibt einzelne Einzahlungen. Das sit wichtig, weil die Punkte eine Sperrzeit haben können. Wenn nun ein Vereinsmitglied einen Vertrag abschließt erhält der Verein direkt seine Punkte. Das Vereinsmitglied hat aber natürlich noch eine Zeitspanne in dem es vom Vertrag zurück treten kann. Erst wenn diese Zeit abgelaufen ist, können die Punkte auch verwendet werden.
Im Checkout wird eine Bestellung verhindert, wenn sie das Budget übersteigt und die ausgegebenen Punkte werden nach der erfolgreichen Bestellung verrechnet und abgezogen.
Punkte verfallen nach einem gewissen Zeitraum auch wieder, wenn man möchte.

bbcode-image


Dieses Plugin wurde allein für diese Seite geschrieben und deckt eine sehr spezielle Anforderung ab, die mit den vorhandenen Lösungen so nicht erreicht werden konnte.

2. Kunden/Vereins-Liste
Da man gerne damit werben wollte, welche Vereine schon an dem Programm teilnehmen, sollte eine Liste der Vereine mit Logo, Beschreibung und Suche ermöglicht werden. Hier kann jeder Kunde/Verein sein Profil selbst verwalten. Unter jedem Eintrag kann es einen Promotion-Link geben, der auf eine andere Seite verlinkt und den Vereinsnamen mitgibt (z.B. zum automatischen befüllen eines Formulars.. was momentan noch eher schlecht als recht funktioniert).

bbcode-image


Dieses Plugin dient also rein zur Eigenwerbung und der Präsentation der Kunden. Das sich die Kunden selbst noch mal präsentieren können, ist dabei eher nettes Beiwerk.

bbcode-image


3. Registrierungsanfrage mit eigenen Formular
Vereine sollen sich über ein Formular melden, damit ein Admin sie anlegen können. Dabei soll das normale Formular für die Registrierung durch ein eigenes ersetzt werden.

bbcode-image


bbcode-image


Hier kommt mein eigenes Plugin zum Einsatz, das unter anderen die Funktion bietet ein beliebiges Formular dort anzeigen zu können. Es sind keine speziellen Formulare, so dass diese ganz normal wie immer im Backend angelegt und bearbeitet werden können.

bbcode-image


Neben den Plugins waren die Einkaufswelten der zweite große Punkt bei der Realisierung. Man klickt diese nicht in paar Minuten zusammen. Auch sollte man davon ausgehen, dass man HTML + CSS schreiben muss. TinyMCE ist nett, kommt aber auch sehr schnell an seine Grenzen. Ein Duo aus Designer und Entwickler/Programmierer ist hier nötig, wenn nicht direkt beides in einer Person hat. Man kämpft viel mit dem Layout. Bilder suchen und finden kann auch ein größerer Unterfangen werden.
Mit 5.3 kann man Einkaufswelten exportieren. Damit gibt es Staging und man kann sich selbst Sicherheitskopien ziehen und Änderungen versionieren. Ohne ist es echt nervig, da man nicht einfach Undos für größere Bereiche hat.

bbcode-image


Und für Mobile-Ansichten muss man nochmal Hand anlegen. Das Grid ist gut, aber funktioniert eben auch anders als das von z.B. Bootstrap das sich besser anpasst. Auch die Skalierung der Bilder muss beachtet werden. Sie verhalten sie wie "cover" bei "background-size" in CSS. Also sind Bilder gut, die viel freie Fläche am Rand hab, die abgeschnitten werden kann und das Bild Trotzdem noch gut aussieht. Fotos funktionieren hier sehr viel besser als
Info-Grafiken.

Das Projekt wurde "nebenbei Abends" innerhalb von 3 Monaten Umgesetzt, was wohl 2 Wochen normaler Arbeitszeit entsprechen würden und war mein erstes echtes Shopware-Projekt. Es gab viel zu lernen aber auch viele positive Erkenntnisse wie einfach es ist mit Shopware zu arbeiten und zu entwickeln.
User annonyme Date 2017-08-21 19:40
Tags creditfair, ecommerce, hannes pries, php, plugin, shopware

Shopware... Standards und Plugins

Ich habe mich jetzt die letzten 2-3 Monate doch relativ ausführlich mit Shopware beschäftigt. Das erste Projekt das live ging war das Creditfair Fair-Vereinsprogramm. Dafür mussten 2 Plugins geschrieben und einige Theme-Anpassungen vorgenommen werden.

Die Plugin-API mit den Events ist wirklich einfach zu erlernen. Einzig die Suche nach dem passenden Event kann immer etwas länger dauern, wobei am Ende weniger die Frage ist, ob es das richtige Event ist, sondern ob es das beste Event ist. Events für jeden Fall gibt es mehr als genug, wobei die Unterschiede wirklich oft in Feinheiten zu suchen sind.

Nebenbei habe ich als Test ein kleines Plugin geschrieben, das das Kunden-Objekt (wenn denn ein Kunde eingeloggt) ist auch beim Versenden von Forms im Template verfügbar macht. Forms verwenden eine eigene kleine und sehr einfache Template Engine. Für die Erweiterung um den Kunden kommt aber dann Smarty3 zum Einsatz. Damit kann man bei Anfragen über Forms, die nur angemeldeten Kunden zur Verfügung stehen, die Kundendaten direkt zur Email hinzufügen, ohne dass der Kunde es selber tun muss.

Hier kann man es Downloaden

Insgesamt macht es viel Spass mit Shopware zu entwickeln.. nur.. nur eine Sache gibt.. die bereitet mir noch Kopfzerbrechen.

STAGING


Mit der 5.3 kann man wenigstens Einkaufwelten exportieren und wieder importieren. Das ist schon mal wirklich eine große Hilfe, da so Designer auf dem lokalen System arbeiten und testen können und man erst dann nach der Freigabe die Einkaufwelten auf das produktive System verschieben kann.

bbcode-image


bbcode-image


Themes kann auch relativ einfach kopieren. Plugins aus dem Community-Store sollte man so oder so nicht durch ein Staging laufen lassen, sondern auf dem produktiven Server neu installieren und konfigurieren.

Content-Seiten sind der Punkt, wo ich noch am Überlegen bin wie man damit umgehen soll. Hier fehlt eine vergleichbare Import/Export Funktion wie bei den Einkaufwelten.


Ein anderes Thema betrifft Shopware aber auch fast alle anderen Shop-Systeme. Das Problem beginnt damit Produkte, Hersteller, etc in das Shop-System zu bekommen. Denn wenn man keinen winzigen Shop mit 10-50 Artikeln hat, wird man sicher die Produkte aus einem Waren-Wirtschafts-System beziehen wollen. Die REST-API von Shopware ist toll und man kommt schnell zu Ergebnissen. Der CSV-Import ist auch nicht schlecht. Aber das Problem ist, dass man dann immer eine Lösung für Shopware baut. Bei anderen Shops eben für das jeweilige System.
Es gibt wohl kaum Shop-Systeme (oder ich konnte sie nicht finden), die Standard-Formate als Core-Feature lesen oder schreiben können.

Bei der Arbeit dürfte ich nun mit CSV, XML und IDocs aus SAP kämpfen. IDocs sind für den Datenaustausch wirklich nicht toll. Jedenfalls nicht, wenn man die SAP-Welt verlässt. In dem Artikel Warum Sie beim Datenaustausch im E-Commerce auf Standardformate setzen sollten von Daniel Peters trifft es sehr gut gut. Ich stimme da zu 100% zu und er trifft wirklich den Punkt, den ich schon seit Jahren nicht verstehe. Wenn ich ein neues System entwickle, dass mit anderen Systemen kommunizieren und Daten austauschen muss. Warum baue ich mir dann immer wieder ein eigenes Format und nehme mir nicht von Anfang an ein Standard-Format. Damit habe ich auch schon mal eine Art Blaupause, wie man mit dieser Art von Daten umgehen kann und sollte mal ein System ausgewechselt werden, muss ich hoffentlich nicht wieder ein neues proprietäres Format in eine Schnittstelle für mein System umwandeln.

Ich hatte mir ein kleines Plugin geschrieben, dass Bestellungen direkt nach dem Speichern als JSON auf dem Server abgelegt hat. Es war zuerst zur Kontrolle und zum Debuggen auf dem Live-Server da. Es hat nicht lange gedauert und ich hatte auch einen XML-Export und 2 Stunden später auch einen rudimentären [url=]OpenTrans[/url] 1.0 export. Auch wenn der Standard sicher noch nicht zu 100% korrekt umgesetzt ist, habe ich doch schon mal ein Export-Format für Bestellungen, das alles enthält was man braucht, strukturiert ist und auch einfach wieder gelesen werden kann.
Ich werde auf jeden Fall an dem Plugin noch mal weiter rumbauen und vielleicht nochmal OpenTrans 2.1 implementieren.

Ich glaube auch das man einfacher eine OpenTrans zu IDoc Lösung findet, ohne selbst was machen zu müssen, als eine Shopware-internes-Format zu IDoc.

Auch der Import der Produkte... warum kann ich nicht einfach OCI oder BMEcat verwenden, um meinen Shop mit Daten zu befüllen. WWS und andere ERP-Systeme können ja diese Format ausgeben. Die Formate, gerade OCI, sind ja auch sehr verbreitet. Warum kann der Shop diese also nicht nativ lesen und benötigt Zusatzsoftware oder Plugins?

Auf der Roadmap von Shopware-Enterprise steht bei B2B jetzt OCI in der "Unsere Visionen für die Zukunft". Richtiges Punchout muss ja nicht mal sein.
Aber die OCI-XML Daten importieren zu können wäre schon einfach toll und würde an vielen Stellen sehr viel Arbeit und Geld sparen.

bbcode-image


Das wohl gerade an einem Import für Kunden aus Drittsystemen gearbeitet wird kommt wohl für mich auch zu spät, aber ist schon mal eine tolle Sache.


bbcode-image


Momentan überlege ich einen kleines Plugin zu schreiben, dass BMEcat versteht. Nichts all umfassendes mit User-Data-Extensions und so. Ein einfaches kleines, dass nur dafür sorgt, dass Systeme die BMEcat ausgeben können, grundlegend den Shop mit Produkten befüllen können. Wenn ich dann mal wieder Daten aus einem System in Shopware importieren soll, würde ich einfach die Daten auf BMEcat umbiegen können (mit einer Middleware oder XSLT oder so) und müsste an Shopware nichts mehr ändern. Shopware hätte dann eine stabile Schnittstelle, die nicht nur für mich sondern allgemein genutzt werden kann und sogar ein sehr gut dokumentiertes Format nutzt.

Sich der Welt mit Standard-Formaten als Core-Feature zu öffnen, würde vielen Shop sehr gut tun. ... aber wohl auch einen Markt der sich nur auf das verschieben von Daten zwischen Systemen spezialisiert hat, empfindlich treffen können. Für den normalen Entwickler und seinen Shop wäre es aber wirklich ein großer Vorteil.
User annonyme Date 2017-08-05 07:45
Tags bmecat, ecommerce, export, hannes pries, idoc, import, integration, oci, opentrans, plugins, rest api, shops, shopware, smarty3, staging, standard formate, xml

Mein-Online-Adventskalender und Shopware

Ich hatte bei der Entwicklung von mein-online-adventskalender.de schon sehr darauf geachtet, dass es sich leicht integrieren lässt. Aber bei meinem Test mit Shopware hat sich gezeigt, dass es auch wirklich gut klappt.

Ich hab es über ein Iframe-Element in einer Einkaufswelt eingebunden. Das Element sollte eine Höhe von 1350 haben auf dem Desktop.

bbcode-image


Vielleicht baue ich im Herbst ja noch mal ein richtiges Plugin dafür :-)
User annonyme Date 2017-07-08 11:41
Tags adventskalender, ecommerce, einkaufswelt, emotion element, free, hannes pries, iframe, kostenlos, mein onlkine adventskalender, php, projekt, service, shopware, weihanchten