Das 12. Treffen der Sitecore Usergroup Deutschland (SUGDE) seit deren Gründung in 2015 fand in der gut ausgewählten Location "Design Offices Nürnberg" statt, welches unmittelbar nahe dem Hauptbahnhof und der schönen Altstadt liegt. Schon am Abend davor berichteten Jana und Chris über die positive Entwicklung der Sitecore Usergroup Deutschland e.V.  Es gab wieder zahlreiche gute Vorträge und einen Austauschen zwischen den Sitecore'lern.

Übersicht der Vorträge

  1. Break out of Frames – A (crazy) Sitecore Solution, Verrückte Anforderungen führen zu verrückten Sitecore Solutions
  2. Sitecore Commerce 9 Insides – Plugins für Payment-Provider am Beispiel von Heidelpay
  3. Sitecore 9 – Known Issues & Learnings
  4. Helix in Practice and Helix.Skeleton Demo
  5. Sitecore Symposium 2018 Recap

Break out of Frames – A (crazy) Sitecore Solution, Verrückte Anforderungen führen zu verrückten Sitecore Solutions

von Dirk Schäfauer (Solution Architect, Indeca).
Twitter: https://twitter.com/monkeydsc

SUGDE Treffen Nürnberg, Dirk Schäfauer (Solution Architekt, Indeca)

Was sind eure schwierigsten Kunden?

fragte Dirk Schäfauer zum Beginn des Vortrag, wozu es seitens des Publikums nur ein betretenes Schweigen gab. Moderne Websites werden zumeist im Responsive Layout gefertigt, um den verschiedenen Auflösungen von Desktop, Tablet oder Smartphones gerecht zu werden. Teilweise haben Kunden eine sehr statische Vorstellung vom Layout, welches für die neue Website geplant ist. So orientiert man sich schnell an einem Photoshop-Layout, welches keinerlei Dynamik auf einer Seite mit auf- und zuklappenden Elementen oder Einrückungen von Blöcken bei Änderung der Auflösung zeigt. Am Beispiel eines Kunden aus der Werbeindustrie demonstrierte Dirk, dass die Design-Ansprüche eines Kunden oft zu holprigen Umsetzungen leiten und am Kundenbedürfnis einer einfach zugänglichen, schnell erfassbaren und gut navigierbaren Website vorbeigehen.

Um dem Problem Herr zu werden, konnten mittels dem Photoshop-Plugin "Zeplin" passende geräteabhängige Exports (inkl. einem Basis-Template mit vererbbaren Elementen) vorgenommen werden. Das Plugin ermöglicht die Platzierung von Elementen inkl. geräteabhängiger Visualisierung und ist damit für ein Visual Prototyping besser geeignet als eine rein statische PSD. Allerdings lieferten die exportierten Templates nur feste und keine relative Pixelkoordinaten.

Spätestens hier fängt die eigentliche technische Arbeit an: Umbau der festen Koordinaten in relative, um ein CSS3 Grid für das Responsive Layout passend zu machen. Die Integration in Sitecore erfolgte durch Übernahme des Markup als cshtml und der Erstellung von Komponenten inkl. Einstellungen zu Positionierungen. Das Resultat glich mehr einer Art Page-Builder-Applikation und erlaubte weit mehr Flexibilität bei der Erstellung einer Seite, als es bei vielen anderen Projekt typischerweise vorgenommen wird. Das Ziel der Kundenzufriedenheit war erfüllt und zeigte einmal wieder, wie flexibel Sitecore anpassbar ist.

Sitecore Commerce 9 Insides – Plugins für Payment-Provider am Beispiel von Heidelpay

von Jonne Kats und Bart Hoppe, Aviva Solutions
Produkt: https://mercury-ecommerce.com/
https://www.heidelpay.com/de/integration/shopmodule/

SUGDE Treffen Nürnberg, Jonne Kats, Aviva Solutions

Die Sitecore Commerce-Experten Jonne Kats und Bart Hoppe von Aviva Solutions stellten die E-Payment-Lösung "Heidelpay" vor, welche auf Basis des Mercury Commerce-System aufgesetzt wurde. Heidelpay wird bereits für verschiedene Plattformen als Plugin angeboten, bisher aber noch nicht für Sitecore Commerce. Mercury E-Commerce ist ein Sitecore Commerce-Plugin und versteht sich als Accelerator, welcher auf Sitecore 9 Experience Commerce und SXA aufbaut.

Es gibt zahlreiche Anbieter von E-Payment-Modulen für alle möglichen E-Commerce-Systeme. Jeder Website Betreiber hat dabei seine Vorlieben bzw. sein bereits erprobtes System beim E-Payment. Die Integration des E-Payment-Providers "Heidelpay" für Mercury E-Commerce war dabei eine Herausforderung. Jonne beschrieb den typischen Ablauf bei einer Bestellung im Online Shop und wie mittels der Integration von Hooks die Heidelpay-Adapter zusammengebracht worden sind.

  1. Erstellung einer Bestellung
  2. Übertragung der Bezahlung auf Payment Provider
  3. Heidelpay Backend Payment-Verarbeitung
  4. Generierung Back-Url, Rücksprung auf Shop-Seite

Das Plugin setzt auf Sitecore 9, .Net Core 2.0 und ist erweiterbar. Ein Datenaustausch findet mittels der REST OData API statt. Mercury E-Commerce erweitert Sitecore 9 Experience Commerce um Funktionen für Catalog, Card, Inventory, Promotions, Order, Pricing, Sitecore Identity Server und dem Commerce Business Tools-System.

Probleme bei der Erstellung des Heidelpay-Plugins bereitete immer wieder die Sitecore 9-Dokumentation und letztendlich konnte viele Dinge erst mittels der Erkenntnisse von DotPeek-Analysen gefertigt werden. Ziel war die Erstellung einer Request Payment API inkl. Validatoren sowie einer Connection Library und HTTP Handler. Jonne demonstrierte die Applikation mittels einem Docker Image für Sitecore Experience 9.

Zudem stellte sich noch der Platinum Implementierungspartner Macaw vor, welcher nun auch Partner von Mercury ist. Macaw bietet eine Erweiterung für Sitecore Experience Commerce 9 mit rund 120 zusätzlichen Funktionen wie Faceted Navigation, Product Bundles, Comparison und ist SXA-Compliant. Dadurch sollen kürzerer Time-to-Market und weniger Projektaufwände und -risiken entstehen.

Sitecore 9 Migration – Known Issues & Learnings

von Stefan Graber, kuehlhaus AG
Blog: https://stefans-sitecore-blog.kuehlhaus.com/
Twitter: https://twitter.com/stefangraber_sc

SUGDE Treffen Nürnberg, Stefan Graber, kuehlhaus AG

Stefan Graber präsentierte die vielen Erfahrungen aus 4 verschiedenen Migrationsprojekten von Sitecore 8.x auf Sitecore 9 (SC9). Die Ziele der Migration waren primär die Nutzung von Sitecore 9 Feature und die Übernahme der meisten Features aus v8, einer möglichst verlustfreien Übernahme der xDB-Daten, einer Verbesserung der (Backend) Performance sowie minimale Downtime beim Server-Umzug.

Es stellten sich viele Herausforderungen:

  • Mongo DB fällt weg
  • Lucene ist mit SC9 obsolete und sollte durch SOLR abgelöst werden
  • WFFM ist obsolete und sollte nicht mehr verwendet werden. Nach wie vor ist es unklar, ob der WFFM-Nachfolger wirklich zu empfehlen ist.
  • Neue Anforderungen an der Infrastruktur wie SQL Server 2016, Windows Server und IIS
  • Die Content-Produktion beim Kunden sollten nicht blockiert werden und bestehender Content vollständig übernommen werden

Zu empfehlen sind folgende Maßnahmen zur Vorgehensweise beim Upgrade:

  • Kein Update einer bestehende Instanz, sondern besser eine neue Instanz / neuen Server mit Sitecore 9 aufsetzen. Erst dies erlaubt den notwendigen Aufräum-Prozess sowie den nicht-blockierenden Content-Produktionsprozess laufender Websites. Aufsetzen eines Parallsystems mit allen notwendigen angedockten Systemen wie Mailserver.
  • Pro Kundenprojekt ist ein PoC zu empfehlen, da jede Website eigenen Bedingungen hat die man kaum über einen Kamm scheren kann.
  • Content-Check durch den Kunden vor Going-Live sowie Content-Freeze
  • Zuletzt die Umschaltung der IP für die relevanten Domains auf den neuen Server

Tipps zur Implementierung der Migration von SC8 auf SC9:

  • Eigener Branch
  • Aktualisierung der DLLs inkl. 3rd Party
  • Anpassung Code wo nötig und Zeit für Refactoring nutzen
  • Erste Migration des produktiven Contents zwecks Prüfung der Funktionalität. Nur mit Test-Content werden nicht alle Fehler sichtbar.
  • Testing auf Stage, Korrekturschleifen
  • Snapshot der bisherigen VM erzeugen und archivieren
  • Learnings aus der Praxis der Migration

Nach der kurzen Einführung der gewünschten Vorgehensweise kam Stefan zu den gewonnenen Learnings. Zwischen Theorie und Praxis gibt es ja oft einige Unterschiede, die sich auch beim Migrationsprojekt wieder gezeigt hatten.

Auszüge aus den Learnings:

  • Probleme mit Dynamic Placeholder, Nutzung des Fortis DynamicPlaceholder (http://fortis.ws/fortis-collection/dynamic-placeholders/). Durch unterschiedliche Formate kam es zu konflikten. Generell müssen in SC9 Dynamic Placeholder mit einem veränderten Seed / einer Unique Id versehen werden.
  • Glass Mapper-Fehlermeldung "Model can't be initiated" => Update auf GlassMapper v5, da ältere nicht kompatibel mit SC9.
  • SOLR: nach Migration von Lucene auf SOLR gab es Probleme mit Filter. Ursache leider unbekannt. Umgehung durch angepasste predicate-Statements.
  • Total Search Results: Problem mit hoher RAM Anforderung des w3p-Prozesses. => TotalSearchResults durch query.Count() ersetzen.
  • Link Database: Problem mit "Unrecognized Guid Format, Format Exception". Ursache: SC9 erlaubt keine leeren Id Attribute beim General Link. Lösung: Sitecore Support lieferte einen Fix. Trotzdem noch gleicher Fehler, dann gefixt mit Fix #771795, welcher auch Teil von SC9.02 ist.
  • Probleme mit AppPool und xConnect, Verbindungsfehler, auch Fehler im Log sichtbar. Ursache: Rechteprobleme. Lösung: AppPool von Website und xConnect rechtetechnisch zusammenbringen.
  • xDB-Daten-Migration: da die MongoDb wegfällt und man möglichst kein Datenverlust erleben möchte, ist hier besondere Vorsicht geboten. Das von Sitecore zur Verfügung gestellt Migrationstool war nur anteilig brauchbar wegen xDB Schema-Problemen, welche mit dem passenden Schema abgeglichen werden mussten. Nur bedingt zu empfehlen, da es zu Problemen mit der Stabilität kam. Abhilfe schaffte dann ein Restart des IIS AppPool oder (teilweise notwendig) der ganzen Maschine.
  • xDB-Daten werden nicht mehr angezeigt, Statistik ab einem beliebigen Datum keine Anzeige mehr. Rebuild der Reporting DB dauert ewig.
  • Ursache: v9.0.1 Bug. Lösung. Fix #828414 aufspielen, SC9.0.2 gilt besser, nochmal zu prüfen.
  • Probleme mit xProfiles, Vor- und Nachname nicht mehr auffindbar. Ursache: DSGVO-Thema, muss per Config "IndexPIISensitiveData" freigeschaltet werden. Aber mit eingeschränkter Suchergebnisdarstellung. Zudem stimmte die Anzahl der Ergebnisse nicht mehr, welches unbedingt geprüft werden muss.
  • GIF89a-Grafiken (animierte GIFs) werden falsch dargestellt wegen Fehler mit der Skalierung. Ursache: Skalierung mit MW-Param.
  • Sitecore Rocks läuft nicht direkt mit SC9. Lösung: Zugriffsrechte anpassen.
  • Performance mit "My Item" im Content und Experience Editor. Lösung: Fix #549951 aufspielen.

Tipp: Known Issues der Sitecore v9 Versionen checken. Übersicht ist leider unvollständig und sollte unbedingt von Sitecore auf einen aktuellen Stand gehalten werden.

Erfahrungen mit der Content-Migration:

  • Grundsätzliches Problem: i.d.R. ist nicht der gesamte Content in Unicorn bzw. TDS vorhanden, es wird aber "alles" gebraucht. Lösung: dafür gibt keine Pauschallösung, die Migration gestaltet sich sehr individuell. Gründliches Testen ist wichtig, FxM dabei nicht vergessen, Last Minute Content Updates nachschieben.
  • Profile Cards, nach Migration wurden Fehler geworfen. Ursache nicht bekannt. Lösung: manuelles neu anlegen, Menge war zum Glück überschaubar.
  • Sitecore Analytics Dashboards. Problem: zeigen keine Daten mehr. Lösung: Filterung für Ansicht anpassen, "{}" bei Guids weglassen.
  • Publish Service 3.x. Problem: Inhalte werden nicht publiziert. Ursache: Inhalte mit "bereits publiziert" markiert wurden nicht erneut publizert. Lösung: Publishing Dashboard öffnen, Repair Mode starten und neu publizieren.
  • EXM Subscription, API möchte bei Anmeldung keine Liste sondern eine (Newsletter) Message. Lösung: Dummy User manuell anlegen, Newsletter Mail verschicken.
  • EXM Testversand. Problem: Review-Tab mit Quick Test, Custom Tokens werde allerdings nicht befüllt. Dadurch ist die Mail nicht mehr identisch mit der regulären Mail. Lösung: Kampagne duplizieren.

Es kamen am Schluss der Präsentation einige Fragen auf, welcher in der kurzen Zeit Stefan noch beantworten konnte.

  • Sind Engagement Pläne, bei entsprechendem Umfang, aufwendig zu migrieren?
    Antwort: Das hängt sehr vom Projekt ab. Custom Actions, Conditions, etc. machen Probleme mit neuer API.
  • Ist die Content-Migration auch mit Update Wizard / Package mittels Items-Auswahl machbar? Antwort: Das hängt natürlich sehr von eventuell noch laufenden strukturellen Anpassungen ab und hat zudem eine Abhängigkeit eines eventuell parallel-laufenden Refactoring des Codes.

Helix in Practice and Helix.Skeleton Demo

von Tamás Tárnok
Website: https://trnktms.com/
Projekt: https://github.com/trnktms/Helix.Skeleton
https://github.com/trnktms/Helix.Skeleton.Example

SUGDE Treffen Nürnberg, Tamás Tárnok

Tamás Tárnok demonstrierte, wie die Sitecore Helix Design Principles bei Allwin umgesetzt werden. Die Präsentation startete mit einem kurzen Abriss, was Helix ausmacht und wofür es zu empfehlen ist, eingesetzt zu werden. Seine grundsätzliche Empfehlung: Habitat und HabitatHome sind Beispiele von Sitecore, aber eher ungeeignet für einen guten Einstieg in Helix, wenn es das erste mal angewandt wird.

Empfehlungen für den Einsatz von Sitecore Helix:

  • Kategorisierung des Projektes nach Funktionalität. Innerhalb einer Funktionalität-Gruppe liegen Module. Dabei keine Funktionen pro Modul anlegen.
  • GlassMapper ist für Helix geeignet, wenn man Interface anstatt Klassen benutzt.
  • Page Templates besser in kleinere Basis-Templates zerteilen. Es gilt, zu große Templates zu vermeiden. Lösung mittels PartialViews.
  • Geeignet ist auch eine Umsetzung von JSS mit Helix.
  • Support Patches als eigenes Projekt anlegen, im Visual Studio Insert as a Link integrieren.
  • Unicorn vs. TDS for Helix: die Serialisierung via Konfiguration pro Projekt, Aufteilung von Content und Development-Items, Dependencies in Konfiguration lagern.

Tamás beschrieb zudem die Evolution vom Helix Skeleton-Projekt, welches mittels eines Generators eine Skeleton Anwendung anlegt. Eine Frage gab es zum Schluss noch von den Teilnehmern: Kann man einfach ein bestehendes Projekt zu Sitecore Helix umbauen? Antwort: nicht wirklich, da der Aufwand recht hoch erscheint. Aber Schritt-für-Schritt machbar, wenn man keine Big-Bang-Umstellung erwartet. Immer eine Frage von Zeit & Geld, da viel Refactoring Aufwand anfällt, zudem die technischen Vorteile dem Kunden nicht einfach zu zeigen sind.

Recap Sitecore Symposium

von Christopher Wojciech, netzkern AG
Twitter: https://twitter.com/_chriswoj

Von Chris gab es zum guten Schluß der Veranstaltung noch einen persönlichen Recap des letzten Sitecore Symposiums 2018 in Orlando / FL.

Die Highlights:

Zudem wurde der Helix Infrastructure Level vorgestellt.

Das SUGDE-Treffen in Nürnberg war, wie zuletzt auch immer, sehr gut organisiert und es hat sich für die tollen Vorträge wieder voll gelohnt, dabei zu sein. Das nächste Treffen wird in Hamburg im Februar 2019 stattfinden.

SUGDE Treffen Nürnberg Teilnehmer

Also Moin Moin bis dahin!