Post on 06-Apr-2017
transcript
© 2015 .comspace
Evaluierung einer Hybris-Anbindung an Sitecore
Sitecor UserGroup Deutschland Sep. 2015
1
© .comspace2015
Dieser Vortrag wurde Ende September 2015 beim Treffen
der Sitecore Usergroup Deutschland in Bielefeld
gehalten. Der Vortrag befasst sich mit einem
Anwendungsfall für den Einsatz des Sitecore Commerce
Connect. In diesem Anwendungsfall hat das Sitecore
Team von Comspace einen PoC für eine Hybris
Integration in Sitecore erfolgreich durchgeführt.
Hintergrund
2
© .comspace2015
• Ziel des PoC
• Kurzvorstellung Sitecore Commerce Connect
• Erfahrungsbericht PoC
• Fazit
• Kontakt
Agenda
4
© .comspace2015
Warum ein PoC
6
• Evaluierung des Sitecore Commerce Connect (Funktionsumfang kennenlernen)
• Einsatzbereiche identifizieren
• Welche Aufwände sind bei einem solchen Integrationsvorhaben einzuplanen
• Umsetzbarkeit von Kunden- und Shop-spezifischen Anforderungen besser einschätzen können
• Wissenstransfer
© 2015 .comspace
Do not forget!
8
“Sitecore Commerce Connect is an abstract service layer and not a stand-alone
solution. It is a framework and an API for e-commerce with focus on
integration and at the same time, to track, act, and follow up on customer
behavior. The goal is to bring the unique customer engagement features of
Sitecore into e-commerce solutions, regardless of the back-end e-commerce
system being used.”
© 2015 .comspace
Architektur Ansatz
9
Commerce Server Connector
Dynamics AX Connector
Hybris Connector
Sitecore Experience Platform
Webshop
Connect Engagement Artifacts
Connect Service Layers (APIs)
Connect Product Data Modell
© 2015 .comspace
Architektur Ansatz
10
Commerce Server Connector
Dynamics AX Connector
Hybris Connector
Sitecore Experience Platform
Webshop
Connect Engagement Artifacts
Connect Service Layers (APIs)
Connect Product Data Modell
Conditional rendering rules, EA plans with actions and conditions, Pages Events and goals
© 2015 .comspace
Architektur Ansatz
11
Commerce Server Connector
Dynamics AX Connector
Hybris Connector
Sitecore Experience Platform
Webshop
Connect Engagement Artifacts
Connect Service Layers (APIs)
Connect Product Data Modell
Cart, Pricing, Customers, Inventory, Orders, Products, Sync
2015 .comspace
• Shopping Cart • Pricing • Customers and Users • Inventory • Orders • Product Sync • Gift Card • Wish List • Payments • Shipping • Loyality Programs
Existierende Service Layer (APIs)
12
© 2015 .comspace
Service Layer - Service Provider (Shopping Cart)
14
CartServiceProvider (aus dem Developer’s Guide
© 2015 .comspace
Service Layer - Pipelines, Pipelines… (Shopping Cart)
18
commerce.carts.saveCart
RunSaveCart
RunSaveCart
© 2015 .comspace
Prinzipien des Frameworks
19
Pipelines jeder Service Layer
benutzt Sitecore Pipelines
Abstraction keine Sitecore oder ECS* Abhängigkeit in Service Layern
Extensibility Domain Model
erweiterbar
Simplicity kleinster
gemeinsamer Nenner
Fallback fehlende
Implementierungen im ECS* können
überbrückt werden Independently
keine Abhängigkeit zwischen Service
Layern
* ECS = External Commerce System
© .comspace2015
Reminder: Warum ein PoC
21
• Evaluierung des Sitecore Commerce Connect (Funktionsumfang kennenlernen)
• Einsatzbereiche identifizieren
• Welche Aufwände sind bei einem solchen Integrationsvorhaben einzuplanen
• Umsetzbarkeit von Kunden- und Shop-spezifischen Anforderungen besser einschätzen können
• Wissenstransfer
© .comspace2015
Setup für den PoC
22
Ausgangssituation:
• Lokale Hybris Installation
• Demoshop eingerichtet (powertoolsProductCatalog/Online)
• Leere Sitecore Installation
Vorgehen:
• Funktionale Anforderungen definiert
• Parallele Entwicklung Hybris REST-Services (JSON) und Sitecore Demo HybrisConnect
• Layout von Azubis
© .comspace2015
Anforderungen
23
1. Einfache Produkte darstellen
2. Preise darstellen
3. Artikel in Warenkorb legen
© 2015 .comspace24
Theoretischer Hintergrund: Produktsynchronisation
Abgrenzung: Preise & Lagerbestand sind keine Produktdaten
wegen deren hoher Komplexität und Dynamik
Produktdatenverwaltung - naheliegende Varianten
• Produkte als Items in Sitecore Datenbank (bidirektional möglich)
• Produkte in ECS, Zugriff über Sitecore Data Provider
• Produkte in ECS, Zugriff über Sitecore Index
© .comspace2015
Theoretischer Hintergrund: Entscheidungskriterien
25
1. Aufwand (Variante 1 ist Modul-Standard)
2. Sitecore Funktionsumfang (Produkt als Item)
• Sitecore Experience Editor
• Personalisierung
• Rendering Engine (Caching, A/B-Tests etc.)
3. Bearbeitungsmöglichkeiten in Sitecore
4. Verfügbarkeit ECS (aus Sicht Sitecore)
5. Asynchrone Schnittstelle ausreichend?
6. Performance
…
© 2015 .comspace
Demo Produkte
26
sitecorepilotstorefront/rest/products/powertoolsProductCatalog/Online sitecorepilotstorefront/rest/product/powertoolsProductCatalog/Online sitecorepilotstorefront/rest/categories/powertoolsProductCatalog/Online
© 2015 .comspace27
Demo Sitecore - Funktionen
• Repository zeigen (X Produkte)
• Produkt zeigen
• Produkt in Hybris ändern
• Count hochsetzen
• Produkte synchronisieren
• Repository zeigen (X + 1 Produkte)
• Produkt gerändert
• Demo VS
© .comspace2015
Erfahrung Produkte: Funktionsumfang (Produkt als Item)
28
• Dauer ca. 5 Tage
• Erster Einstieg durch Pipelines in Pipelines herausfordernd
• Dokumentation
• „Top“: Synchronisation von Produkten und Klassifizierungen
• „Mau“: Zuordnung von Classifications zu Products
• Erkenntnis: Größter Aufwand wird in Abgleich der Datenmodelle gehen (Verständnis für ECS)
• Problemlos: Differenzabgleich, Multishop
• Standard umfasst keine Synchronisation von Bildern
• Applikation “Merchandising Manager” ist Bestandteil des CommerceServer Connect
© .comspace2015
Erfahrung Produkte: Was man wissen muss
29
• Einige nützliche Klassen sind in der CommerceServer API verortet: ProductsSearchResult & CommerceConstants → Selbst entwickeln
• Custom Product: ProductTemplateId in Sitecore.Commerce.Products.ItemClassificationService fest verdrahtet → Service überschreiben
• weitere Informationen auch in unserer Serie zum Commerce Connect unter blog.comspace.de
© .comspace2015
Anforderungen
30
1. Einfache Produkte darstellen
2. Preise darstellen
3. Artikel in Warenkorb legen
© 2015 .comspace
Demo Preise
31
sitecorepilotstorefront/rest/product/powertoolsProductCatalog/Online
© .comspace2015
Erfahrung Preise
32
• Dauer ca. 1 Tage
• „Top“: ECS Preishoheit
• Kleiner Service Layer
• Datenmodell schnell nachvollziehbar
• Wenig Pipelines, d.h. kurze Konfigurationsdatei
• Performance: Synchrone Schnittstelle sollte Bulk-Operationen nutzen:
• „Mau“: GetProductPricesRequest enthält keine Sprache → Custom Request schreiben
© .comspace2015
Anforderungen
33
1. Einfache Produkte darstellen
2. Preise darstellen
3. Artikel in Warenkorb legen
© 2015 .comspace
Demo Warenkorb
34
sitecorepilotstorefront/rest/cart sitecorepilotstorefront/rest/addToCart
© .comspace2015
Erfahrung Warenkorb: Was man wissen muss
35
• Dauer ca. 2 Tage
• Komplexer Service Layer
• Pipelines über Pipelines
• Herausforderungen:
✴ Datenhoheit/ Zuständigkeit
✴ Synchronisation: Sitecore Shop, ECS, EA-Plan
✦ Zwischenspeicher (z.B. Contact.Attachments)
✦ Trigger (je Aktion, Checkout)
• Stolpersteine:
• Processor FindCartInEaState benötigt CustomerId → eigentlich optionale CustomerId an CreateOrResumeCartRequest mitgeben
© .comspace2015
Sitecore Commerce Connect - Entwicklung
37
• Entwicklungsdauer: ca. 2 Wochen
• Materialien
• Umfangreiche Dokumentation
• Noch wenig Quellen im Internet
• Beispielimplementierungen für MS Dynamics AX und CommerceServer auf dev.sitecore.net zum download
• Erster Einstieg könnte durch Schulung und Cookbooks erleichtert werden
• Hohe Abstraktion: Customizing ist Grundkonzept
• eCommerce-KnowHow erforderlich
• Hoher Konzeptions- und Abstimmungsaufwand durch fachliche Komplexität
• Option: Einsatz als PIM-Connector
© 2015 .comspace38
Fazit
Die Entwicklung mit dem Sitecore Commerce Connect macht Spaß! Wir entwickeln den PoC weiter. Damit wir eine „runde“ Integration präsentieren können.
© .comspace2015
…Ihre Ansprechpartnerin
friederike.heinze@comspace.de