© 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
© 2015 .comspace
Agenda
© .comspace2015
• Ziel des PoC
• Kurzvorstellung Sitecore Commerce Connect
• Erfahrungsbericht PoC
• Fazit
• Kontakt
Agenda
4
© 2015 .comspace
Ziel des PoC
© .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
Kurzvorstellung Sitecore
Commerce Connect
© 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 - Domain Model (Shopping Cart)
13
© 2015 .comspace
Service Layer - Service Provider (Shopping Cart)
14
CartServiceProvider (aus dem Developer’s Guide
© 2015 .comspace
Service Layer - Pipelines, Pipelines… (Shopping Cart)
15
© 2015 .comspace
Service Layer - Pipelines, Pipelines… (Shopping Cart)
16
RunSaveCart
© 2015 .comspace
Service Layer - Pipelines, Pipelines… (Shopping Cart)
17
RunSaveCart
RunSaveCart
© 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
© 2015 .comspace
Erfahrungsbericht PoC
© .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
© 2015 .comspace
Fazit
© .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.
© 2015 .comspace
Ihre Fragen. Nehmen Sie
Kontakt mit uns auf…
© .comspace2015
…Ihre Ansprechpartnerin
friederike.heinze@comspace.de

Evaluierung einer Hybris-Anbindung an Sitecore mittels Commerce Connect

  • 1.
    © 2015 .comspace Evaluierungeiner Hybris- Anbindung an Sitecore Sitecor UserGroup Deutschland Sep. 2015 1
  • 2.
    © .comspace2015 Dieser Vortragwurde 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
  • 3.
  • 4.
    © .comspace2015 • Zieldes PoC • Kurzvorstellung Sitecore Commerce Connect • Erfahrungsbericht PoC • Fazit • Kontakt Agenda 4
  • 5.
  • 6.
    © .comspace2015 Warum einPoC 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
  • 7.
    © 2015 .comspace KurzvorstellungSitecore Commerce Connect
  • 8.
    © 2015 .comspace Donot 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.”
  • 9.
    © 2015 .comspace ArchitekturAnsatz 9 Commerce Server Connector Dynamics AX Connector Hybris Connector Sitecore Experience Platform Webshop Connect Engagement Artifacts Connect Service Layers (APIs) Connect Product Data Modell
  • 10.
    © 2015 .comspace ArchitekturAnsatz 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
  • 11.
    © 2015 .comspace ArchitekturAnsatz 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
  • 12.
    2015 .comspace • ShoppingCart • Pricing • Customers and Users • Inventory • Orders • Product Sync • Gift Card • Wish List • Payments • Shipping • Loyality Programs Existierende Service Layer (APIs) 12
  • 13.
    © 2015 .comspace ServiceLayer - Domain Model (Shopping Cart) 13
  • 14.
    © 2015 .comspace ServiceLayer - Service Provider (Shopping Cart) 14 CartServiceProvider (aus dem Developer’s Guide
  • 15.
    © 2015 .comspace ServiceLayer - Pipelines, Pipelines… (Shopping Cart) 15
  • 16.
    © 2015 .comspace ServiceLayer - Pipelines, Pipelines… (Shopping Cart) 16 RunSaveCart
  • 17.
    © 2015 .comspace ServiceLayer - Pipelines, Pipelines… (Shopping Cart) 17 RunSaveCart RunSaveCart
  • 18.
    © 2015 .comspace ServiceLayer - Pipelines, Pipelines… (Shopping Cart) 18 commerce.carts.saveCart RunSaveCart RunSaveCart
  • 19.
    © 2015 .comspace Prinzipiendes 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
  • 20.
  • 21.
    © .comspace2015 Reminder: Warumein 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
  • 22.
    © .comspace2015 Setup fürden 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
  • 23.
    © .comspace2015 Anforderungen 23 1. EinfacheProdukte darstellen 2. Preise darstellen 3. Artikel in Warenkorb legen
  • 24.
    © 2015 .comspace24 TheoretischerHintergrund: 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
  • 25.
    © .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 …
  • 26.
    © 2015 .comspace DemoProdukte 26 sitecorepilotstorefront/rest/products/powertoolsProductCatalog/Online sitecorepilotstorefront/rest/product/powertoolsProductCatalog/Online sitecorepilotstorefront/rest/categories/powertoolsProductCatalog/Online
  • 27.
    © 2015 .comspace27 DemoSitecore - 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
  • 28.
    © .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
  • 29.
    © .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
  • 30.
    © .comspace2015 Anforderungen 30 1. EinfacheProdukte darstellen 2. Preise darstellen 3. Artikel in Warenkorb legen
  • 31.
    © 2015 .comspace DemoPreise 31 sitecorepilotstorefront/rest/product/powertoolsProductCatalog/Online
  • 32.
    © .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
  • 33.
    © .comspace2015 Anforderungen 33 1. EinfacheProdukte darstellen 2. Preise darstellen 3. Artikel in Warenkorb legen
  • 34.
    © 2015 .comspace DemoWarenkorb 34 sitecorepilotstorefront/rest/cart sitecorepilotstorefront/rest/addToCart
  • 35.
    © .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
  • 36.
  • 37.
    © .comspace2015 Sitecore CommerceConnect - 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
  • 38.
    © 2015 .comspace38 Fazit DieEntwicklung mit dem Sitecore Commerce Connect macht Spaß! Wir entwickeln den PoC weiter. Damit wir eine „runde“ Integration präsentieren können.
  • 39.
    © 2015 .comspace IhreFragen. Nehmen Sie Kontakt mit uns auf…
  • 40.