Sitecore Commerce 8.2.1 – Wie lässt sich das neue Commerce einordnen?

Seit kurzer Zeit ist nun das neue Sitecore Commerce raus. In einem früherem Beitrag bin ich schon auf die Frage eingegangen, was das neue Sitecore Commerce eigentlich ist und wie es technisch aufgebaut ist. Nun würde ich gerne den Fokus auf die Fragestellung setzen.

Wie lässt sich das neue Commerce einordnen?

Um diese Frage adäquat beantworten zu können, werde ich zuerst einen Überblick darüber geben, was man eigentlich unter E-Commerce genau versteht, welche Commerce Systeme es gibt und was moderne Commerce System leisten müssen, um am Markt bestehen zu können. Im folgenden zeige ich characteristische Feature vom neuen Sitecore Commerce auf. Zum Abschluss wage ich dann eine Einschätzung, ob das neue Sitecore Commerce in der Lage ist mit seinen Featuren dabei mithalten zu können.

Definition

Um zu sagen, was E-Commerce eigentlich genau ist, zitiere ich hier einfach die Wikipedia Definition von E-Commerce:

E-commerce is a transaction of buying or selling online. Electronic commerce draws on technologies such as mobile commerce, electronic funds transfer, supply chain management, Internet marketing, online transaction processing, electronic data interchange (EDI), inventory management systems, and automated data collection systems. Modern electronic commerce typically uses the World Wide Web for at least one part of the transaction’s life cycle although it may also use other technologies such as e-mail. …

Folgt man dieser Definition, so fängt E-Commerce an, sobald man Verkaufsprozesse online abwickelt. Dazu zählen Dinge wie “Online shopping”, “Online Marketplaces”, “B2C”(Buisness to Customer) , “B2B (Buisness to Buisness) Transactions” etc.

Kategorisierung von Commerce Systemen

Schaut man sich auf dem Markt einmal um, so erkennt man schnell Beispiele für verschiedenste E-Commerce Systeme. So gibt es “Amazon, “eBay”, “Magento”, “uCommerce”, “Hybris”, “Woo Commerce” um nur ein paar der bekannteren zu nennen. Diese Liste kann auch noch viel weiter geführt werden, zeigt aber schon, dass es aktuell bereits zahlreiche Commerce Systeme am Markt gibt. Die Frage nun die sich einem stellt ist, wie unterscheiden sich all diese Systeme voneinander?

Um dies zu beantworten, können wir versuchen E-Commerce-Lösungen sehr grob in verschiedene Kategorien einzuteilen, um so zu erkennen, wo die einzelnen Systeme stehen.

  • Einsteiger-Lösung
  • Profi-Anwendungen
  • Enterprise-Systeme

Einsteiger-Lösung charakterisieren sich dadurch, das sie eher für einfache Geschäftsmodelle mit einem kleines Sortiment an Produkten, wenig Anbindungen an externen Schnittstellen und meist ohne Programmierkenntnise aufsetzbar sind. Das Budget für solche Lösungen ist auch im Vergleich zu anderen System sehr gering. Allerdings sind bei diesen Systemen auch keine großen Individualisierungen möglich Beispiele hierfür wären “Woo Commerce” oder “Drupal Commerce”.

Profi-Anwendungen dagegen haben bereits höhere Anforderungen bspw. wegen einer vielfältigen Produktpalette. Hierdurch ist es nötig ausgefallene und integligente Such- und Filtermöglichkeiten anzubieten. Bei solchen Lösungen ist es sehr üblich diverse externe Schnittstellen zu nutzen, die dann aufwändig angebunden werden müssen. Auch ist wegen dieser Gründe zu erwarten, dass die Besucherzahlen deutlich höher sind, als bei Einsteiger-Lösungen, was zu höheren Anforderungen an die Performance führt. Solche Lösungen sind in der Regel auch mit höheren Kosten bspw. bei der Lizensierung oder der Implementierung verbunden. Allerdings ist man auch in der Lage diverse Funktionalitäten an die eigenen Bedürfnisse anzupassen. Beispiele hierfür wären “Magento” oder “Shopware”.

Enterprise-Systeme  siedeln sich dort an, wo hochgradig komplexe Kunden- und Vertriebsstrukturen vorherrschen. Da solche Lösungen auf individuelle und komplexe Anforderungen eingehen müssen, kommen bei solchen Lösungen zu den deutlich höheren Lizenzkosten noch diverse Implementierungskosten dazu, um die neuen Anforderungen lösen zu können. Die Kosten für solche Lösungen sind somit in der Regel drastisch höher als bspw. bei einfachen Profi-Anwendungen. Beispiele hierfür wären “Hybris” oder “Intershop”.

Umsatz

Wie man schon gut erkennen kann, haben die einzelnen E-Commerce Systeme ihre ganz eigenen Stärken und Schwächen und positionieren sich somit in ihrem Segment ganz eigen am Markt. Abb. 1 zeigt dagegen sehr schön eine Aufteilung am Markt der Top 1000 Online-Shops

picture1
Abb. 1 Shopsysteme Top 1000 Online Shops (EHI/Statista: E-Commerce-Markt Deutschland 2016)

Hier ist zu beachten, dass der größte Teil des Diagramms entweder Eigenentwicklungen wie bspw. von Amazon oder eBay sind oder schlicht nicht erfasst werden konnten.

Wie man sieht, existieren zwar die verschiedensten E-Commerce Systeme und alle haben ihre eigenen Stärken und Schwächen, allerdings wird der Markt deutlich von den “Eigenentwicklungen” dominiert. Die Restlichen E-Commerce Systeme, welche auf bestimmtem Technologien basieren fallen bereits sehr deutlich zurück und machen bereits hier nur noch einen kleinen Anteil aus. Zusaätzlich sollte man allerdings hier auch der Fairness halber festhalten, dass bei manchen Commerce Systeme zwar der Marktanzeil gering erscheint, allerdings der Umsatz deutlich höher ist. Hierzu kann Abb. 2 zu rate gezogen werden. Vergleicht man diese mit Abb. 1 so ist biespielsweise zu erkennen, dass Hybris zwar nur kleinere Marktanteile hat, allerdings höhere Umsätze generiert als andere Systeme mit höheren Marktanteilen. Daher muss dieses immer in Releation zueinander gesetzt werden.

Picture2.png
Abb.2 Umsatzateile der Shopsysteme Top 1000 (EHI/Statista: E-Commerce-Markt Deutschland 2016)

So erkennt man bereits hier ganz klar, dass der Markt E-Commerce hart umkämpft und hochgradig professionell aufgebaut ist.

Ansprüche an Commerce Systeme

Das gesamte Thema E-Commerce ist bereits seit Jahren im Wandel. Wo es früher reichte seine Waren in irgendeiner Art online anzubieten, so sind die Ansprüche der Konsumenten heutzutage enorm gestiegen. Sowohl Usability als auch Design sind wichtiger denn je geworden und werden im Grunde als “must haves” vorausgesetzt, so dass eine Differenzierung zu anderen Shops bzw. Systemen auf einer anderen Ebene erfolgen muss. Heutzutage ist es Kernpunkt den Nutzer nicht den eigentlichen Kauf selbst zu ermöglichen , sondern ihn über über die gesamte Customer Journey hinweg zu begleiten und ihm so ein Kauferlebnis zu bringen.  Konkret heißt dass, den Kunden angefangen von der Informationsfindung, über die eigentliche Kaufentscheidung bis hin zum After-Sales zu begleiten. Wichtige Aspekte dabei sind z.B. individuell und personalisiert auf Kunden eingehen zu können und auf den jeweiligen Kunden abgestimmte Informationen anzubieten. Ein anderer Aspekt ist das Erkennen und auch Wiedererkennen eines Kunden über die verschiedensten Touchpoints, wie soziale Medien, eMails oder das Web, über die verschiedensten Geräte wie Smartphones, Tablets oder Notebooks, hinweg. Solche Aspekte erlauben es, Kunden zur richtigen Zeit mit den richtigen Informationen anzusprechen

Sitecore Commerce Feature und Funktionalitäten

Genau in diese Situation gerät nun Sitecore mit dem neuen Commerce Release. Die Frage ist nun, wie geht Sitecore mit dieser Marktsituation um und noch viel wichtiger, wie ordnet sich Sitecore bzgl. der Ansprüche und Marksegmente ein. Die Beantwortung dieser Fragen ist essenziell, um bereits in dieser frühen Phase klären zu können, für welche Kunden bspw. Sitecore Commerce überhaupt in Frage kommt, aber ebenso, um klar die Besonderheiten hinsichtlich der Ansrpüche aufzuzeigen. Um diese Fragen allerdings beantworten zu können,schauen wir uns das Commerce bzgl. der Feature einmal genauer an.

An dieser Stelle möchte ich mit einem Auszug aus der Sitecore Commerce Dokumentation starten, in welcher ein paar allgemeine technische Kernfeature genannt werden.

  1. A simple, lean, extensible framework as a core, with all higher-level functionality implemented as plugins.
  2. Provides opt-in complexity by allowing customers and partners to take dependencies on only the information model and behaviors that they need. This allows simple down-market hosted solutions to use complex global enterprise solutions without modifying the core architecture.
  3. Lightweight hosting.
  4. Using the existing Sitecore Connect pipelines for commerce runtime, with a new Service API for business user scenarios.
  5. Using the Sitecore Experience Platform for runtime shopping experience and business users.
  6. The existing subsystems remain in place for backwards compatibility, with opportunities for customers to migrate for newer capabilities and experiences.

Quelle: (2)

Auf einige dieser Punkte würde ich im weiteren gerne den Hauptfokus legen, da sie im allg. eine gute Übersicht über den Funktionsumfang und  die Art der Architektur liefern.

Die ersten 2 Pukte beziehen sich hierbei konrket auf die Architektur von Sitecore Commerce. Im Grunde wird das Commerce System mit einem Grundset an Services und Features ausgestattet um ein Basis Commerce System einzurichten und zu betreiben. Solche gelieferten Feature sind in der folgenden Tabelle aufgelistet.

Shopping Cart Manage interactions with a shopping cart.
Checkout Accept additional information during checkout.
Order Capture Capture an order after checkout.
Shops Shops support provides the ability to administrate multiple shops, both online branded and physical shops.
Catalog Abstract pipelines for integrating with other catalog systems.
Availability Manage the availability of sellable items.
Inventory Abstract artifacts for integrating with external inventory systems.
Entitlements Manage digital product ownership.
Fulfillment Manage orders fulfillment.
Payments Manage payment integration.
Sitecore Commerce Order Service Post-order capture support.
Sitecore Commerce Pricing Service Dynamic pricing that supports the ability to author and calculate at runtime pricing on products based on date, quantity and currency.
Sitecore Commerce Promotions Service Provides the ability to define and calculate at run time various promotions that the shop owner may wish to support.
Sitecore Commerce Entitlement Service Provides the ability to manage entitlement rights to digital assets to allow sales and support for digital products such as movies, games, or ebooks.
Views Business user focused API for a customizable business user experience.
Dynamic Pricing Manage pricing by date, currency and quantity in the shopping cart.
Promotions A promotion is a unique offer that you present to a targeted group of customers or prospects.
DevOps Support for extension through development and deployment.

Quelle: (3)

All diese Funktionalitäten können durch bereitgestellte Buisness Tools wie Customer and Order Manager, Price and Promotion Manager oder Merchandising Manager direkt eingerichtet und administriert werden. Wie ich finde, erhält an schon hierdurch einen recht guten Überblick über den groben Leistungsumfang von Sitecore Commerce, auch wenn man zu diesem Zeitpunkt natürlich noch nicht wissen, was genau alles dahinter steckt. Im Grunde genommen kann man aber sagen, dass hinsichtlich der Ansprüche bspw. an Design und Useability, Sitecore Commerce Potential hat dies gut abzudecken. Allerdings hatte ich bereits am Anfang skizziert, dass dies heutzutage nicht mehr reicht, um am Markt dauerhaft bestehen zu können. Hier kommt es sehr auf die Differenzierungsfaktoren an. Daher mache ich nun einen Versuch aufzuzeigen, wie genau diese bei Sitecore Commerce aussehen könnten.

Differenzierungsfaktoren

Nun kommen wir auf die Frage zu sprechen, wie sich das Sitecore Commerce von anderen Commerce Systemen differenzieren kann. Noch bevor man das System wirklich einmal im Einsatz gesehen hat oder selbst ausprobiert hat, ist dies sicherlich schwer  zu beantworten. Allerdings kann man jetzt schon einige offensichtliche Feature festhalten. Hier sind die Punkte 4 und 5 aus der vorherigen Auflistung explizit zu nennen.

Dadurch das Sitecore ein CMS ist, welches jetzt on-top Commercefunktionalitäten zur Verfügung stellt, liefert Sitecore Out-of-the-Box natürlich alle Vorteile bzw. Feature aus der, unter dem Commerce liegenden Sitecore XP mit. Seit der Version 7.5 als die xDB in Sitecore integriert wurde, hat sich das Thema Experience und Personalisierung stark weiterentwickelt. Laut dem Gartner Magic Quadrant 2016, in welchem die gängigsten CMS-Systeme verglichen werden, ist Sitecore ganz klar eines der führenden CMS-Systeme am Markt, insbesondere mit dem letzten Release der Version 8.2, welche als Basis für das neue Commerce dient. Ich werde hier nicht im Detail auf die xDB und ihre Feature eingehen, aber wer gerne im Detail wissen möchte, was sich alles hinter dem Begriff xDB steckt kann sich gerne diese Slides anschauen, die das ganze prägnant auf den Punkt bringen.

Konkret können Daten über Userbewegungen und -aktionen gesammelt werden, bspw. wo und wie sie auf der Seite unterwegs waren, was sie sich angeschaut haben und wo sie dann vll. sogar von der Webseite abgesprungen sind. Das ganze kann natürlich auch im Bereich Commerce weiter getrackt werden, wo man dann erkennen kann, welche Produkte sich Kunden angeschaut haben, wie sie ihre Warenkörbe befüllten,  wie oft sie die Seite wieder besucht haben usw.

Man ist somit in der Lage durch die Symbiose  der standard Sitecore XP  / Sitecore xDB und Commerce die gesamte Customer Journey des Kundens vom Eintritt über einen Touchpoint, wie der Webseite direkt, einem Newsletter bspw. aus dem Sitecore EXM, oder den sozialen Medien, mit Laptop, Tablet oder Smartphone, über das Surfen innerhalb der Webseite bis hin zum letztendlichen Kauf zu verfolgen. Diese Daten sind dann bestens dafür geeignet, um das Kauferlebnis der Kunden in Zukunft immer weiter zu verbessern und so im Endeffekt dauerhafte Bindungen der User und eine höhere Rate an Wiederkehrern  zu ermöglichen.

In diesem Zusammenhang kann natürlich auch die komplette Produktinzenierung mittels Personalisierung und den gesammelten Daten vollkommen individuell für den Endkunden gestaltet werden. Angefangen von den Inhalten die auf den Seiten sichtbar sind, welche Texte ausgespielt werden, bis hin zur Ausspielung verschiedener Rabatt-, Werbeaktionen oder Coupons für verschiedene Nutzer oder ganze Nutzergruppen, anhand von personalisierten Regeln oder durch die Sitecore XP gesammelten Daten, um jeden Kunden mit seinen individuellen Bedürfnissen ganz individuell ansprechen zu können.

Gerne würde ich auch besonderen Augenmerk auf die Performance von Sitecore Commerce legen. Hier verhält es sich so, dass wenn man die Dokumentationen liest oder auch mit Sitecorekontakten spricht, dass besonderer Wert auf eine performante Lösung gelegt wurde. Zum einen erreicht durch die Nutzung .NET Core, der neusten Entwicklung von Microsoft, welches um ein Vielfaches performanter ist, als noch die alten .NET Frameworks. Detailierte Benchmarks hierzu, kann man hier einsehen. Zum anderen aber auch durch optimierte Pipelines und Prozesse.

Wo steht Sitecore Commerce

Nachdem nun alles beschrieben wurde, versuche ich nun abschließend die Frage zu hinsichtlich meiner Sichtweise zu beantworten, wie das neue Sitecore Commerce denn potentiell eingeordnet werden kann.

Mit Sitecore Commerce erhält man einen auf Performance optimiertes System mit einem guten Basis Set an gängien und teils interessanten Featuren. Man ist jedoch auch jederzeit im Stande dieses Basis Set zu erweitern oder gar komplett zu individualisieren, um auf individuelle Ansprüche der Kunden oder der Marktsituation eingehen zu können. Durch die Sitecore XP sind Out-of-the-box  beinahe endlose Möglichkeiten im Bereich Personalisierung und Experience gegeben. So würde ich Sitecore in einem ersten Resume zwischen Profi-Anwendungen und Enterprise-Lösungen anordnen. Sitecore bietet einerseits alles, was Profi-Anwendungen an Ansprüchen vorbringen. Zum Anderen hat es sicherlich auch das Potential im Enterprise-Bereich eingesetzt zu werden, da es bereits jetzt viele Feature bietet, die den speziellen, komplexen und individuellen Anforderungen im Bereich der Enterprise-Lösungen gerecht werden können.

Wirft man einen letzten Blick auf die Ansprüche an Onlineshops, so sehe ich, dass Sitecore Commerce das Potential hat, diese bereits jetzt sehr gut zu erfüllen. Durch die Kombination von Sitecore XP und Sitecore Commerce wurde eine Symbiose geschaffen, welche einen entscheidenen Differenzierungsfaktor zu anderen Systemen liefern kann.

Ich bin weiterhin gespannt, wie uns Sitecore noch mit seinem Commerce System und den nächsten Releases überraschen wird und ebenso, was man alles bei einem technischen Einstieg erfährt. Als nächstes muss nun einmal geschaut werden, ob Sitecore Commerce all diese Erwartungen und Ansprüche auch halten kann, oder wo es ggf. diese sogar übertrifft.

Sitecore Habitat – Setting up an own instance

In this small article, I would like to share with you my experiences with setting up the Sitecore Demoproject “Habitat”. So much to be said in advance: Simply follow the instructions and get started does not work so easy.

To set up Sitecore Habitat, I followed the official instructions. Basically these are 5 simple steps; From cloning the GIT repository, to configuring and setting up your own site core instance, right up to the first publi- cation.

1. Clone this repository to your local file system

This was admittedly very easy and already within a few minutes the entire habitat project was cloned on my computer.

2016-12-18-14_14_49-habitat

2. (optional) Configure your settings if you are using settings other than the defaults

For my planned instance, it was necessary to change the described settings partly. Here are a few screenshots of the initial settings and the changes made for my environment

  • Setting the Roots of Sitecore Instance (Above Default – Bottom Adjusted)

2016-12-18-14_17_17-habitat-microsoft-visual-studio2016-12-18-14_17_55-habitat-microsoft-visual-studio

  • Settings for the Roots of the Solution and the Host (Above Default – Bottom Adjusted)

2016-12-18-14_18_44-habitat-microsoft-visual-studio2016-12-18-14_18_14-habitat-microsoft-visual-studio

  • Settings on Publishing Target (No changed necessary)

2016-12-18 14_19_30-Habitat - Microsoft Visual Studio.png

3. Set up a clean Sitecore install with the settings from the previous step

I do not go into this step, because there are at least a dozen good reviews on how to properly create your own sitecore instance.

4. Restore Node.js modules

This point is basically not difficult. It is enough to download and install node.js as described in the tutorial and then run the command “npm install” in the root directory of the solution, as shown in the screenshot

2016-12-18-14_16_01-node-js-command-prompt

After executing this command, the entire step has already been carried out.

It is important to note that the Gulp scripts mentioned in the next step are not visible in the solution until you have executed this step. I had after the check out of the solution at the beginning wondered why none of the scripts was present, until I realized that Node.js was not yet configured correctly.

5. Build and publish the solution

Let us come to the last and actually simplest of all steps. All you have to do is run all Gulp scripts. For this I use the TaskRunner Exlorer in Visual Studio. You can see this as follows

2016-12-18 14_16_35-Habitat - Microsoft Visual Studio.png

Here you can also see if everything is set up correctly. If this is the case, you will now see a series of predefined tasks in the TaskRunner Explorer.

2016-12-18-14_16_50-habitat-microsoft-visual-studio

To run the whole thing now, it is enough to start the “default” task.

Up to this point, everything was pretty simple and error-free. If only the Gulp Tasks would go through all without errors. Unfortunately, reality is a little different. After the first attempt to run the “default” task, I got a fatal error when running “03-Publish-All-Projects”, which caused the process to be canceled. The error itself showed the following message

2016-12-18-14_12_09-habitat-microsoft-visual-studio

The reason for this error was not so easy to find. I’ve looked closely and turned off everything that could potentially access this file. But without success. The solution came to the end rather randomly. Finally, the problem was that I had before I run the script I have “strg” + “shift” + “b” pressed. So I had built the Solutuion via VS. Only when I had closed and reopened, I could go through the step of the scripts without error. It also runs the same VS run in administration mode. So I had in the following also no problems with any accesses.

When this problem was now recognized and fixed, the execution of the scripts continued. And this lasted …

2016-12-18-17_58_34-habitat-microsoft-visual-studio-administrator

Yes you see right. Only the Unicon Sync took a little more than 2 hours. The rest of the processes were still in the range of minutes.

But you do not need to worry about getting this to happen. The problem, why this has lasted so long, is due to the special infrastructure with which I currently use habitat. Since I can locally currently hosting a database that used Sitecore databases are on a remote network, where I’m connected via a VPN tunnel. The IIS for my habitat is located locally on my computer. The problem now is that the VPN tunnel used is so slow that all requests to the database take a lot of time. When working with Sitecore on a daily basis, this is only unpleasant. In the Habitat scenario, it is already intolerable, so I probably only run the “default” task if I am within the network of my databases and no VPN tunnel in between. For comparison: Without VPN tunnel I came to the following result when doing the same operations

2016-12-19 07_07_46-Habitat - Microsoft Visual Studio (Administrator).png

You can already see that it is much better than before. Now we can also finally see if everything has worked. Because just because everything went smoothly, this is not a guarantee that everything has worked. If you call the URL http: //habitat.dev.local/ to get the following result

2016-12-18 18_12_58-Einstellungen.png

We made it! We have successfully installed Habitat.

Small note: Now a small addition for all those who, like me, have no MongoDB installed and still try to install Habitat. Here you must already made some configuration on the installation of the standard Sitecor. Because if you just install Sitecore without Xdb <ou get the following error.

2016-12-18 14_44_41-Connection string 'analytics' could not be found..png

It is sufficient, however, to tell Sitecore that no Analytics should be used. You do this in the {WEB_ROOT} \ App_Config \ Include \ Sitecore.Xdb.config. There you only need the setting at the beginning

setting name=”Xdb.Enabled” value=”true”

to set it to

setting name=”Xdb.Enabled” value=”false”

And Sitecore does not try to use the non-established MongoDB and Analytics.

Another problem came after the successful installation of Habitat. Habitat uses features from Analytics and Xdb and a simple Xdb.Enabled = false is not enough. If you try to access the page after publishing, you get the following error

2016-12-18 18_22_20-Tracker.Current is not initialized.png

At first, I thought I’d turned off Analytics and Xdb. But then I noticed that I have to adjust the “complete” deactivation yet another setting. Right behind the setting Xdb.Enabled there are the following

setting name=”Xdb.Tracking.Enabled” value=”true”

This setting caused in this case for my tracker error. Just adjust this setting as follows

setting name=”Xdb.Tracking.Enabled” value=”false”

Now this error had disappeared and I could see the Habitat homepage.

So finally have fun with your Sitecore Habitat instance…

Evaluation verschiedener Suchalgorithmen bei der Nutzung von Geodaten

Bei der Betreuung eines Kundenprojekts ist eine immer schlechter werdende Performance eines Fillialfinders aufgefallen. Nach diversen Traces stand  schnell fest, dass die Geodatenverarbeitung der Ursprung der Performanceprobleme war.

Im Zuge der Behebung dieses Problems entstand eine detailiertere Auswertung, in welcher drei verschiedene Verfahren analysiert und mittels realer Testdaten evaluiert wurden. Die Wahl der evaluierten Verfahren war dabei keines Wegs zufällig.

  1. “Naiver Ansatz” des alten Fillialfinder als Referenzverfahren
  2. Eine simple, aber effektive Eigenimplementierung zur Steigerung der Performance
  3. Auslagerung der Berechnung in eine MongoDb

Insbesondere die Wahl des dritten Verfahrens ist dabei eher speziell. Die Idee kam dabei aus einem Vortrag bei einem Treffen der Sitecore Usergroup Deutschland. Dort wurde die MongoDb vorgestellt und kurz darauf eingegangen, was Sie alles theoretisch leisten kann. Dies habe ich dann zum Anlass genommen es auch praktisch einmal zu evaluieren.

Die Ergebninsse der so entstandenen Evaluation sprechen dabei für sich  …

Evaluation herunterladen