Sitecore Commerce Connect – Teil 4: Preise darstellen

In den letzten beiden Teilen dieser Serie ging es um die Synchronisation von Produkten und Klassifizierungen. Das Ziel dieses Artikels ist es auch die Preise aus dem externen Shopsystem, in unserem Fall Hybris, auf der Webseite anzeigen zu können.

ProduktDemo

Der Pricing Layer ist ein “klassischer” Layer im Sitecore Commerce Connect, d.h. die Preise werden online abgerufen und nicht synchronisiert. Der Grund: Preise ändern sich häufiger und die Preisfindung ist sehr komplex, hier wird die Hoheit im externen Shopsystem (kurz ECS) belassen.

Preisabfragen

Für die Abfrage von Preisen ist der Service Provider ‚PricingServiceProvider‘ zuständig.

Eine Beispiel:

[csharp]using System.Linq;
using Sitecore.Commerce.Entities.Prices;
using Sitecore.Commerce.Services.Prices;
using Sitecore.Globalization;

namespace Comspace.Sitecore.CommerceConnect.Services.Prices
{
/// <summary>
/// Sitecore.Commerce.Prices.config
/// </summary>
public class PriceManager
{
public static Price GetPrice(string productId, Language language)
{
CustomGetProductPriceRequest request = new CustomGetProductPriceRequest(language.Name, productId);
GetProductPricesResult result = new PricingServiceProvider().GetProductPrices(request);

return result.Prices.Any() ? result.Prices.First().Value : null; //simplified
}
}
}[/csharp]

Um die Preise aus dem ECS abzurufen, muss die Pipeline ‚getProductPrices‘ der Sitecore.Commerce.Prices.config erweitert werden:

Pipeline getProductPrices

.config

[xml]<!– GET PRODUCT PRICES Gets the price object that matches the specified criteria.
This pipeline is responsible for reading pricing data from a commerce system.
This pipeline requests product pricing information from the commerce system and
then converts the output into the proper Commerce format.
–>
<commerce.prices.getProductPrices>
<processor type="Sitecore.Commerce.Pipelines.Prices.GetProductPrices.GetProductPrices, Sitecore.Commerce">
<patch:delete />
</processor>
<processor type="Comspace.Sitecore.CommerceConnect.Hybris.Pipelines.Prices.GetProductPrices, Comspace.Sitecore.CommerceConnect.Hybris" />
</commerce.prices.getProductPrices>[/xml]

Processor GetProductPrices

[csharp]using Comspace.Sitecore.CommerceConnect.Hybris.Connector;
using Comspace.Sitecore.CommerceConnect.Hybris.Connector.Model;
using Comspace.Sitecore.CommerceConnect.Services.Prices;
using Sitecore.Commerce.Entities.Prices;
using Sitecore.Commerce.Pipelines;
using Sitecore.Commerce.Services.Prices;

namespace Comspace.Sitecore.CommerceConnect.Hybris.Pipelines.Prices
{
/// <summary>
/// commerce.prices.getProductPrices
/// </summary>
public class GetProductPrices : PipelineProcessor<ServicePipelineArgs>
{
public override void Process(ServicePipelineArgs args)
{
var request = args.Request as CustomGetProductPriceRequest;

//get from ECS
ExternalProduct productSource = ProductConnector.Load(request.Language, request.ProductId);
if (productSource != null && productSource.Price != null)
{
//convert to commerce connect price
Price price = new Price
{
Amount = productSource.Price.Value,
CurrencyCode = productSource.Price.CurrencyIso
};

//persist for next processor
((GetProductPricesResult) args.Result).Prices.Add("List price", price); //simplified
}
}
}
}[/csharp]

Stolpersteine

Der ‚GetProductPricesRequest‘ enthielt überraschenderweise kein Attribut für die aktuell zu synchronisierende Sprache. Daher musste dieser überschrieben werden:

[csharp]using Sitecore.Commerce.Services.Prices;

namespace Comspace.Sitecore.CommerceConnect.Services.Prices
{
/// <summary>
/// Extendended GetProductPricesRequest.
/// </summary>
public class CustomGetProductPriceRequest : GetProductPricesRequest
{
public string Language { get; set; }

public CustomGetProductPriceRequest(string language, string productId, params string[] priceTypeIds)
: base(productId, priceTypeIds)
{
Language = language;
}
}
}[/csharp]

Resumé

Zuletzt möchte ich wieder ein paar Eindrücke und Erkenntnisse zusammenfassen:

  • Der Service Layer ist eher klein und schnell erfasst.
  • Was mir wirklich gut gefällt ist, dass die Preishoheit im ECS verbleibt.
  • In umfangreicheren Produklisten sollte zwecks Performance die Nutzung der Methode/Pipeline ‚getProductBulkPrices‘ bevorzugt werden.

Wenn ihr mehr zum Sitecore Commerce Connect wissen wollt, dann schaut mal hier:

Sitecore Commerce Connect – Teil 2: Produkte synchronisieren

Im ersten Teil dieser Serie ging es darum einen kurzen Überblick über das Sitecore Commerce Connect Modul zu verschaffen. In diesem Beitrag geht es nun um die Synchronisation von Produkten zwischen einem externen Shopsystem (kurz ECS, in unserem PoC Hybris) und Sitecore.

Zunächst ist es wichtig zu verstehen, dass Preise und Bestand im Commerce Connect nicht als Produktstammdaten gelten. Der Bestand ändert sich ständig und DEN Preis gibt es ja auch nicht, Preisfindung ist ein sehr komplexes Thema. Sitecore geht davon aus, dass diese Informationen online vom ECS ermittelt und geliefert werden. Im Teil 4 dieser Serie wird dann beschrieben, wie ihr auch an diese Informationen kommt.

image00

Die Hoheit für die Produktdaten liegt sicherlich im ECS. Für die Synchronisation der Produktdaten schlägt Sitecore folgende Varianten vor:

  1. Produkte als Items in Sitecore Datenbank (optional bidirektional)
  2. Produkte in ECS, Zugriff über Sitecore Data Provider
  3. Produkte in ECS, Zugriff über Sitecore Index

Wir haben uns im Verlauf des PoC für die Variante 1 entschieden, da diese standardmäßig vom Sitecore so vorgesehen ist und den höchsten Komfort bietet. In der Sitecore Commerce Components Overview im Kapitel “Products” sind einige Argumente für oder gegen die unterschiedlichen Variante aufgeführt.

So, jetzt aber Butter bei die Fische 🙂

Installation Modul

Falls ihr das Modul noch nicht installiert habt, findet ihr wie gewohnt eine gute Installationsanleitung auf dev.sitecore.net.

Synchronisation Produkte

Das Ziel: Titel, Beschreibung und Bilder der Produkte aus dem externen Shopsystem mit Sitecore zu synchronisieren.

image01

In folgende Pipelines der Sitecore.Commerce.Products.config muss für die unidirektionale Synchronisation der Produkte eingegriffen werden:

Pipeline getExternalCommerceSystemProductList

.config

[xml]
&lt;!– GET EXTERNAL COMMERCE SYSTEM PRODUCT LIST
This pipeline is responsible for obtaining the list of product Ids to be synchronized from the external commerce system.–&gt;
&lt;commerce.synchronizeProducts.getExternalCommerceSystemProductList&gt;
&lt;processor type="Sitecore.Commerce.Pipelines.Products.GetExternalCommerceSystemProductList.GetExternalCommerceSystemProductList, Sitecore.Commerce"&gt;
&lt;patch:delete /&gt;
&lt;/processor&gt;
&lt;processor type="Comspace.Sitecore.CommerceConnect.Hybris.Pipelines.Products.ReadProducts, Comspace.Sitecore.CommerceConnect.Hybris" /&gt;
&lt;/commerce.synchronizeProducts.getExternalCommerceSystemProductList&gt;
[/xml]

Processor ReadProducts

[csharp]
using System.Collections.Generic;
using System.Linq;
using Comspace.Sitecore.CommerceConnect.Hybris.Connector;
using Comspace.Sitecore.CommerceConnect.Hybris.Connector.Model;
using Sitecore.Commerce.Pipelines;
using Sitecore.Commerce.Services.Products;

namespace Comspace.Sitecore.CommerceConnect.Hybris.Pipelines.Products
{
/// &lt;summary&gt;
/// commerce.synchronizeProducts.getExternalCommerceSystemProductList
/// &lt;/summary&gt;
public class ReadProducts : PipelineProcessor&lt;ServicePipelineArgs&gt;
{
public override void Process(ServicePipelineArgs args)
{
var request = args.Request as SynchronizeProductsRequest;
var productIds = args.Request.Properties["ExternalCommerceSystemProductIds"] as List&lt;string&gt;; //integration guide (page 12)
productIds = productIds ?? new List&lt;string&gt;();

//get products from ECS
IEnumerable&lt;ExternalProduct&gt; externalProducts = ProductConnector.Load(request.Language);

//convert and add to commerce connect list
productIds.AddRange(from product in externalProducts
where product.Code != null
select product.Code);

//persist for next processor
args.Request.Properties["ExternalCommerceSystemProductIds"] = productIds;
}
}
}
[/csharp]

Pipeline synchronizeProductEntity

.config

[xml]
&lt;!– SYNCHRONIZE PRODUCT ITEM –&gt;
&lt;commerce.synchronizeProducts.synchronizeProductEntity&gt;
&lt;processor type="Sitecore.Commerce.Pipelines.Products.SynchronizeProductEntity.ReadProductFromSitecore, Sitecore.Commerce"&gt;
&lt;patch:delete /&gt;
&lt;/processor&gt;
&lt;processor type="Sitecore.Commerce.Pipelines.Products.SynchronizeProductEntity.SaveProductToExternalCommerceSystem, Sitecore.Commerce" &gt;
&lt;patch:delete /&gt;
&lt;/processor&gt;
&lt;processor type="Comspace.Sitecore.CommerceConnect.Hybris.Pipelines.Products.ReadProduct, Comspace.Sitecore.CommerceConnect.Hybris" patch:after="processor[@type=’Sitecore.Commerce.Pipelines.Products.SynchronizeProductEntity.ReadExternalCommerceSystemProduct, Sitecore.Commerce‘]" /&gt;
&lt;/commerce.synchronizeProducts.synchronizeProductEntity&gt;
[/xml]

Processor ReadProduct

[csharp]
using Comspace.Sitecore.CommerceConnect.Entities.Products;
using Comspace.Sitecore.CommerceConnect.Hybris.Connector;
using Comspace.Sitecore.CommerceConnect.Hybris.Connector.Model;
using Sitecore.Commerce.Pipelines;
using Sitecore.Commerce.Services.Products;
using Sitecore.Diagnostics;

namespace Comspace.Sitecore.CommerceConnect.Hybris.Pipelines.Products
{
/// &lt;summary&gt;
/// commerce.synchronizeProducts.synchronizeProductEntity
/// &lt;/summary&gt;
public class ReadProduct : PipelineProcessor&lt;ServicePipelineArgs&gt;
{
public override void Process(ServicePipelineArgs args)
{
SynchronizeProductRequest syncProdRequest = args.Request as SynchronizeProductRequest;

//get product from ECS
ExternalProduct externalProduct = ProductConnector.Load(syncProdRequest.Language, syncProdRequest.ProductId); //TBD
if (externalProduct != null &amp;&amp; IsProductValidForImport(externalProduct))
{
CustomProduct product = new CustomProduct();
product.ExternalId = externalProduct.Code;
product.Name = externalProduct.Name;
product.FullDescription = externalProduct.Summary;
product.ImageUrl = HybrisSettings.Url + externalProduct.ImageUrl; //custom property

//persist for next processor
args.Request.Properties["Product"] = product; //integration guide (page 12)
}
}

protected bool IsProductValidForImport(ExternalProduct product)
{
var result = true;
if (string.IsNullOrEmpty(product.Name)) // = item.Name
{
result = false;
Log.Info("Skip product ‚" + product.Code + "‘: Name not valid.", product); //NOTE System.Messages
}
return result;
}
}
}
[/csharp]

CustomProduct

Wenn auch die Bilder synchronisiert werden sollen, muss das Produkt-Template des Commerce Connect erweitert werden. Konkret müssen dafür folgende Anpassungen vorgenommen werden:

Template
Neues Template “CustomProduct” anlegen, welches vom Standard Commerce Connect Template „Product“ erbt.

Klassen
Erweiterte Produkt-Klasse „CustomProduct“ definieren:

[csharp]
using Sitecore.Commerce.Entities.Products;
using Sitecore.Data.Items;

namespace Comspace.Sitecore.CommerceConnect.Entities.Products
{
/// &lt;summary&gt;
/// Custom product including image field.
/// &lt;/summary&gt;
public class CustomProduct : Product
{
public string ImageUrl { get; set; }

public MediaItem Image { get; set; }
}
}
[/csharp]

Die Klasse „CustomProductRepository“ definiert dann wie das erweiterte Produkt gelesen und geschrieben wird:

[csharp]
using Comspace.Sitecore.CommerceConnect.Entities.Products;
using Comspace.Sitecore.CommerceConnect.Model.sitecore.templates.User_Defined.Comspace.CommerceConnect;
using Sitecore.Commerce.Data.Products;
using Sitecore.Data.Fields;
using Sitecore.Data.Items;
using Product = Sitecore.Commerce.Entities.Products.Product;

namespace Comspace.Sitecore.CommerceConnect.Data.Products
{
/// &lt;summary&gt;
/// Custom product repository including image field.
/// &lt;/summary&gt;
public class CustomProductRepository : ProductRepository
{
/// &lt;summary&gt;
/// Save product data to related item.
/// &lt;/summary&gt;
/// &lt;param name="entityItem"&gt;&lt;/param&gt;
/// &lt;param name="product"&gt;&lt;/param&gt;
protected override void UpdateEntityItem(Item entityItem, Product product)
{
base.UpdateEntityItem(entityItem, product);

using (new EditContext(entityItem))
{
var url = (product as CustomProduct).ImageUrl;

var image = GetMediaItem(url, product); //TBD
ImageField imagefield = entityItem.Fields[IProductConstants.ImageFieldName];
imagefield.Alt = image.Alt;
imagefield.MediaID = image.ID;
}
}

/// &lt;summary&gt;
/// Read product data from related item.
/// &lt;/summary&gt;
/// &lt;param name="entityItem"&gt;&lt;/param&gt;
/// &lt;param name="product"&gt;&lt;/param&gt;
protected override void PopulateEntity(Item entityItem, Product product)
{
base.PopulateEntity(entityItem, product);

ImageField imageField = entityItem.Fields[IProductConstants.ImageFieldName];
(product as CustomProduct).Image = imageField == null ? null : imageField.MediaItem;
}

#region Handle MediaItem
//…
#endregion
}
}
[/csharp]

.config
Angepasste Templates und Klassen in Sitecore.Commerce.Products.config registrieren:

[xml]
&lt;!– PRODUCT REPOSITORY –&gt;
&lt;productRepository type="Sitecore.Commerce.Data.Products.ProductRepository, Sitecore.Commerce"&gt;
&lt;patch:delete /&gt;
&lt;/productRepository&gt;
&lt;productRepository type="Comspace.Sitecore.CommerceConnect.Data.Products.CustomProductRepository, Comspace.Sitecore.CommerceConnect" singleInstance="true"&gt;
&lt;template&gt;{0C589D66-A119-435A-907F-43481CD5199F}&lt;/template&gt;
&lt;branch&gt;{0C589D66-A119-435A-907F-43481CD5199F}&lt;/branch&gt;
&lt;path ref="paths/products" /&gt;
&lt;Prefix&gt;Product_&lt;/Prefix&gt;
&lt;ProductsIndex&gt;commerce_products_master_index&lt;/ProductsIndex&gt;
&lt;ManufacturerRepository ref="productManufacturerRepository" /&gt;
&lt;DivisionRepository ref="productDivisionRepository" /&gt;
&lt;TypeRepository ref="productTypeRepository" /&gt;
&lt;ClassificationsRepository ref="productClassificationsFieldRepository" /&gt;
&lt;ResourcesRepository ref="productResourcesRepository" /&gt;
&lt;RelationsRepository ref="productRelationsRepository" /&gt;
&lt;GlobalSpecificationsRepository ref="productGlobalSpecificationsRepository" /&gt;
&lt;ClassificationsSpecificationsRepository ref="productClassificationsSpecificationsRepository" /&gt;
&lt;TypeSpecificationsRepository ref="productTypeSpecificationsRepository" /&gt;
&lt;/productRepository&gt;

&lt;includeTemplates&gt;
&lt;ProductTemplateId&gt;{0C589D66-A119-435A-907F-43481CD5199F}&lt;/ProductTemplateId&gt;
&lt;/includeTemplates&gt;

&lt;!– Commerce ENTITIES
Contains all the Commerce cart entities.
The configuration can be used to substitute the default entity implementation with extended one. –&gt;
&lt;commerce.Entities&gt;
&lt;Product type="Sitecore.Commerce.Entities.Products.Product, Sitecore.Commerce" &gt;
&lt;patch:delete /&gt;
&lt;/Product&gt;
&lt;Product type="Comspace.Sitecore.CommerceConnect.Entities.Products.CustomProduct, Comspace.Sitecore.CommerceConnect" /&gt;
&lt;/commerce.Entities&gt;
[/xml]

Stolpersteine

In der Klasse „Sitecore.Commerce.Templates“ existiert eine Konstante „ProductTemplateId“, deren Id fest verdrahtet ist und nicht auf die zuvor eingerichteten Konfigurationsdateien verweist. Die Konstante wird u.a. in der Klasse „ItemClassificationService“ verwendet, daher ist dieser auszutauschen:

[xml]
&lt;itemClassificationService type="Sitecore.Commerce.Products.ItemClassificationService, Sitecore.Commerce"&gt;
&lt;patch:delete /&gt;
&lt;/itemClassificationService&gt;
&lt;itemClassificationService type="Comspace.Sitecore.CommerceConnect.Entities.ItemClassificationService, Comspace.Sitecore.CommerceConnect" /&gt;
[/xml]

Resumé

Zuletzt möchte ich ein paar erste Eindrücke und Erkenntnisse zusammenfassen:

  • Der erste Einstieg durch Pipelines in Pipelines in Pipelines ist herausfordernd.
  • Es gibt umfangreiche Dokumentationen.
  • Einige hilfreiche Klassen aus Beispielen im Internet verweisen leider auf die CommerceServer API, z.B. ProductsSearchResult und CommerceConstants. Auch in dem Dynamics AX Demoshop von Sitecore (Commerce.Dynamics.Storefront) sind Verweise auf die CommerceServer API enthalten. Die Trennung bzw. Abstraktion ist m.E. noch nicht ganz sauber erfolgt.
  • Verwunderlich fand ich zunächst, dass die Synchronisation von Bildern nicht im Standard enthalten ist. Aber dem von Sitecore definierten Prinzip “kleinster gemeinsamer Nenner” folgend, ist es verständlich, denn Bild-Quelle und -Ziel sind doch sehr projektspezifisch.
  • Der “Merchandising Manager” ist NICHT Bestandteil des Commerce Connect, sondern des CommerceServer Connect.
  • In einem echten Projekt mit einem umfangreichen Datenmodell wird der größte Aufwand in das Verständnis und das Mapping der Datenmodelle gehen.

Wenn ihr mehr zum Sitecore Commerce Connect wissen wollt, dann schaut mal hier:

Sitecore Commerce Connect – Teil 1: Ein Überblick am Beispiel Hybris

Wie in meinem Vortrag zum Thema “Evaluierung einer Hybris-Anbindung an Sitecore” auf der letzten Sitecore Usergroup in Bielefeld versprochen, möchte ich mit dieser Beitragsserie unsere ersten Eindrücke von der Anbindung eines externen Shopsystems (in diesem Beispiel Hybris) an Sitecore mittels des Commerce Connect Moduls mit euch teilen.

In diesem Artikel geht es mir darum, euch einen ersten Überblick über das Marketing-Potenzial und Funktionsumfang des Moduls zu verschaffen. In den nächsten Beträgen wird es dann technischer mit konkreten Ausschnitten aus Konfigurationsdateien und Quellcode.

Warum sollten WebCMS und E-Commerce Platform verbunden werden?

Bevor wir an die technischen Details gehen, erlaube ich mir zunächst einige Gedanken aus Sicht von Produkt-Management, Marketing und Vertrieb auf Betreiberseite:

Webnutzer erwarten immer mehr eine einheitliche User-Experience, die sich über alle Kanäle und Plattformen eines Unternehmens erstrecken soll. Zudem  bringen auch Online-Shop Systeme kleinere CMS-Funktionalitäten mit und damit wird auch die Darstellung von Inhalten immer besser. Warum sollten dann CMS und Shop miteinander verbunden werden?

Sitecore bietet bereits in seiner eigenen Suite ein umfangreiches Bundle an Funktionen, um verschiedenste Touchpoints (Webseite, Newsletter, Social Media, Offline-Kanäle am POS usw.) zu einem Nutzererlebnis aus einem Guss zu verschmelzen.

Mit diesem Beispiel möchte ich Möglichkeiten aufzeigen, mit denen Besuchern auch auf Unternehmenswebseiten die Kernfunktionalitäten eines Online-Shops angeboten werden können (wie bspw. Produkte in den Warenkorb legen) und wie diese kombinierten Webseiten- und E-Commerce-Daten dann von der Unternehmenswebseite automatisch an das Shopsystem übergeben werden.

Ein Beispiel für eine Customer Journey mit Optimierungspotenzial sähe beispielsweise so aus:

Der Kunde schaut auf einer Webseite nach einem Produkt, muss sich das Produkt merken und im separaten Online-Shop danach suchen um zu bestellen. 

Das bedeutet:
Durch die zwei separaten Technologien Webseite und Shop entsteht für den Kunden Fehler- und Frustrations-Potenzial. Für Unternehmen und Shop-Anbieter kann das bedeuten: Erhöhte Abbruchgefahr und damit niedrigere Conversion-Rate.

Mit Lösungen wie dem Commerce Connect arbeitet die Technologie im Hintergrund für den Kunden, nimmt ihm Arbeitsschritte ab und erhöht damit die Wahrscheinlichkeit, dass es zu einem Verkauf kommt.

Der Endkunde bemerkt so den Technologiewechsel aus dem WebCMS in den Online-Shop überhaupt nicht und hat ein nahtloses Nutzererlebnis im Bestellprozess.

Kurzvorstellung Sitecore Commerce Connect

Sitecore Commerce Connect sieht sich als Framework und API zur nahtlosen Integration von 3rd-Party Commerce Systemen in Sitecore. Das Ziel ist die Überführung der Experience Marketing Features in die Commerce Welt:

  • Einheitliche Darstellung:  Produktkataloge, “normale” Inhalte und Bilder aus einem Guss
  • Bearbeitung von Produktkatalogen, Seiteninhalten und Bildern in einen System
  • Nutzung der Sitecore Facettensuche über ALLE Inhalte.
  • Personalisierung auch über das Kaufverhalten der Besucher
  • Tracking von Conversions und Values rund um den Einkauf
  • Identifizierung von und Einblick in die wertvollsten Kunden
  • Reaktion auf Änderungen im Geschäft, in Echtzeit

Konkreter Umfang des Commerce Connect Moduls

Das Sitecore Modul bietet die Möglichkeit Produktkataloge mit dem externen Commerce System zu synchronisieren, d.h. es stellt entsprechende Templates, Klassen, Repositories, Import-Pipelines etc. zur Verfügung:

Sitecore-Commerce-Connect-Modul

Erste Engagement-Pläne zu Warenkorb-Abbrüchen, neuen Aufträgen und Wiederverfügbarkeit von Produktbeständen werden mitgeliefert und genutzt:

Sitecore-Commerce-Connect-Engagement-Plan

Selbstverständlich kommen auch Erweiterungen für die Sitecore Rule Engine mit:

Sitecore-Commerce-Connect-Rule-Engine

Das Framework des Sitecore Commerce Connect 

Die Architektur wird von Sitecore wie folgt skizziert, wobei der Commerce Server Connector und der Dynamics AX Connector fertige Connectoren von Sitecore selbst sind und der Hybris Connector von uns im Rahmen der Evaluierung entwickelt wurde.

Service Layer:

Folgende Bereiche deckt das Modul ab:

  • Warenkorb
  • Preise
  • Kunden und Benutzer
  • Bestände
  • Produkte
  • Aufträge
  • Geschenkkarten
  • Wunschlisten
  • Bezahlung
  • Versand
  • Treueprogramme

Die einzelnen Layer sind optional und unabhängig voneinander. Ein Layer umfasst ein Datenmodell und Pipelines mit ggf. zugehörigen Service Providern. Die farblich markierten Service Layer wurden im Rahmen des PoC näher beleuchtet. Wenn ihr einen Eindruck haben möchtet was sich dahinter verbirgt, habt etwas Geduld – die zugehörigen Artikel folgen.

Prinzipien

Weil sie mir so gut gefallen haben, hier eine kurze Zusammenfassung und Übersetzung der Prinzipien welche dem Modul von Sitecore selbst auferlegt wurden:

  • Simplicity – kleinster gemeinsamer Nenner
  • Extensibility – Domain Model erweiterbar
  • Independently – keine Abhängigkeit zwischen Service Layern
  • Abstraction – keine Sitecore oder Shopsystem Abhängigkeit in Service Layern
  • Pipelines – jeder Service Layer benutzt Sitecore Pipelines
  • Fallback – fehlende Implementierungen im Shopsystem können überbrückt werden

Erstes Resumé

Mein Eindruck nach der Evaluierung des Commerce Connect anhand einer Hybris-Anbindung:

  • Der erste Einstieg ist herausfordernd, kurz stand ich davor wie “der Ochs vorm Berg”. Auf dem Partnertag in Frankfurt wurde von Sitecore eine Schulung zu dem Modul angekündigt. Die kann ich dann nur empfehlen.
  • Das bringt mich zu den zur Verfügung stehenden Materialien:
    • Es gibt umfangreiche Dokumentationen über das Modul im Developer Netzwerk.
    • Cookbooks gibt es leider keine, diese helfen sonst häufig die erste Hürde zu nehmen.
    • Wenn die Dokumentation nicht weiter hilft, gibt es im Internet aktuell leider noch wenig Material zum Commerce Connect.
    • Geholfen haben immer wieder die herunterladbaren Beispiel-Implementierungen für AX und CommerceServer und natürlich dotPeek.
  • Customizing gehört zum Grundkonzept. Durch eine gute Abstraktion ist fast alles flexibel anpassbar. Das gefällt, auch wenn es manchmal nicht einfach ist, im Pipeline-Dschungel den Überblick zu bewahren.
  • Für eine solide und benutzerfreundliche Integration ist eCommerce-KnowHow unumgänglich. Die dahinterliegenden Modelle und Prozesse müssen durchdrungen werden.
  • Die Komplexität einer Commerce Integration bringt auch höhere Konzeptions- und Abstimmungsaufwände mit sich als vielleicht sonst im CMS-Umfeld üblich.
  • Das Modul umfasst keine Layout-Komponenten und keine speziellen Applikationen.
  • Der “Merchandising Manager” ist  NICHT Bestandteil des Commerce Connect, sondern des CommerceServer Connect.
  • Eine gute Einsatzmöglichkeit für das Modul ist m.E. eine PIM-Integration.
  • Zu guter Letzt: Die Arbeit mit dem Modul hat mir Spaß gemacht!

Die Präsentation zum Vortrag:

In den kommenden Tagen werde ich diese Serie mit den folgenden Artikeln fortführen:

 

 

Sitecore Usergroup Deutschland: Ein Rückblick auf das Treffen in Bielefeld

Christopher Wojiciech Agentur netzkern

Vor kurzem waren wir Ausrichter des 3. Sitecore Usergroup (SUG) Deutschland Treffens in Bielefeld. Rund 30 Entwickler, Anwender und Projektmanager aus Sitecore-Agenturen und Unternehmen, die ihre Website auf Sitecore-Basis betreiben, konnten wir im Vortragssaal des Historischen Museums Bielefeld begrüßen. Die meisten waren “Wiederholungstäter” und schon bei einem der beiden ersten Treffen dabei gewesen, aber es gab auch einige neue Gesichter.

SUG Deutschland Treffen in Bielefeld

 

Nach einem ersten Kennenlernen und Small Talk bei Brötchen und Kaffee haben als offizielle Vertreter der Sitecore Usergroup Deutschland unser Account Manager Johannes Tappmeier und Christopher Wojciech von der Agentur netzkern das Treffen eröffnet. Danach starteten die Fachvorträge.

Evaluierung einer Anbindung von Hybris an Sitecore mittels Commerce Connect

So lautete das erste Thema, über das unsere Sitecore-Expertin Friederike Heinze referierte. In ihrer dreiwöchigen Evaluierungsphase hat sie sich intensiv damit beschäftigt, einen fiktiven Hybris-Shop mit Sitecore Commerce Connect an die Sitecore Experience Platform anzubinden. Dabei wurden folgende Anforderungen umgesetzt:

  • Produkte synchronisieren
  • Preise darstellen
  • Artikel in den Warenkorb legen.

 

Präsentation Friederike bei dem SUG Deutschland Treffen in Bielefeld

 

Friederikes Fazit:

Die Entwicklung und Arbeit mit dem Sitecore Commerce Connect macht Spaß. Customizing gehört zum Grundkonzept des Moduls, dadurch ist alles ist flexibel anpassbar, das bringt aber natürlich auch Komplexität mit sich. Durch die nahtlose Integration des Shopsystems in Sitecore werden die umfangereichen Personalisierungs-Features mit in die eCommerce Welt genommen. Für eine gute Anbindung eines Shopsystems ist E-Commerce Knowhow unbedingt empfehlenswert und man sollte einen hohen Konzeptions- und Abstimmungssaufwand einplanen.

Die gesamte Präsentation können Sie hier nachlesen.

The good, the bad and the ugly modul

Der nächste Vortrag kam von Sitecore-Entwickler Maksym Ponomarenko von der Agentur netzkern und beschäftigte sich mit dem Thema “The good, the bad and the ugly modul”.

Präsentation Maksym Ponomarenko Agentur netzkern

 

Dabei ging es um Design- und Architektur-Spezifika bei der Entwicklung von Sitecore Modulen. Neu entwickelte Module sollten über eine durchdacht gestaltete, flexible Architektur verfügen, die zukünftige Weiterentwicklungen unterstützt. Die Präsentation beinhaltete einige Architektur Tricks und Tipps, sowie Best Practices bei der Modul-Entwicklung.

Weitere Entwicklung der Sitecore Usergroup Deutschland

Nach einer Kaffeepause berichtete Chris von netzkern über die angedachte Weiterentwicklung der Sitecore Usergroup Deutschland und stellte die geplante Vereinsgründung vor. Über die grob skizzierte Satzung wurde lebhaft diskutiert. Anvisiert wird, den Verein im Rahmen des nächsten SUG Treffens zu gründen.

Christopher Wojiciech Agentur netzkern

 

Erfahrungen mit Sitecore 8 und Möglichkeiten zur CRM-Anbindung

Zum Abschluss gab es zwei Kurzvorträge mit anschließender Diskussions- und Fragerunde.

Chris von netzkern gab den Teilnehmern Praxis-Einblicke in die Experience Management Features von Sitecore 8 mit Schwerpunkt auf die xDB und die Entwicklung und den API-Zugriff auf die jeweiligen Features. Diese führte zu intensiven Diskussionen über die noch bestehenden Bugs von Sitecore 8. U.a. waren sich die meisten Teilnehmer einig, dass das Arbeiten im Experience Editor momentan sehr langsam und zeitaufwändig ist.

Unserer Sitecore-Expertin Friederike stellte das Sitecore Modul “Dynamics CRM Campaign Integration” vor. Sie berichtete über mögliche Integrationslevel und über ihre Erfahrungen aus einem PoC mit MS Dynamics 2015. Näheres dazu werden Sie demnächst in einem eigenen Beitrag hier im Blog lesen können.

Ausklang mit Führung im Museum Wäschefabrik

Nach dem offiziellen Programm, das von allen Teilnehmern als sehr informativ und bereichernd empfunden wurde, stand eine interessante Führung durch das Museum Wäschefabrik auf dem Programm, dem einzigen im Originalzustand verbliebenen Bielefelder Zeitzeugnis von ehemals über 250 Wäschefabriken der Stadt im 20. Jahrhundert. Wir konnten uns glücklich schätzen, vom Vorsitzenden des Fördervereins des Museums selbst durch die Räume der damaligen Fabrik und des Wohnhauses der Unternehmer geführt zu werden. Er brachte uns die damalige Zeit mit zahlreichen spannenden Anekdoten und Details nahe, so dass es keine der rund 90 Minuten langweilig wurde.

Museum Wäschefabrik Bielefeld

Bei gutem Essen und anregenden Gesprächen haben die noch verbleibenden Teilnehmer die Veranstaltung im numa Restaurant ausklingen lassen.

Fazit

Die engagierten Teilnehmer sowohl von Agentur- wie auch Kunden-Seite mit ihrem unterschiedlichen Sitecore-Hintergrund und die interessanten Vorträge zu aktuellen Themen und Weiterentwicklungen haben das Treffen zu einer erfolgreichen Veranstaltung gemacht, aus der sicherlich jeder Teilnehmer etwas für seine Arbeit mitnehmen konnte.

Sie haben ebenfalls Interesse an Sitecore-Themen?

Wir freuen uns auf die Weiterentwicklung der Sitecore Usergroup Deutschland und viele weitere regelmäßige Treffen mit konstruktivem Austausch. Wenn auch Sie mit Sitecore arbeiten und Interesse an den kommenden SUG-Veranstaltungen haben, melden Sie sich gerne unter sugde@comspace.de. Dann schreiben wir Sie an, wenn das nächste Treffen in Planung ist.

Von Rasensprengern, steten Tropfen und Gartenschläuchen im Social Media Marketing

Summertime by Eric Sonstroem (CC BY 2.0)

Summertime by Eric Sonstroem (CC BY 2.0)

Qualität ist und bleibt für uns bei comspace immer einer der Hauptwerte im Online-Business. Doch im Einsatz von Content im Social-Media-Umfeld werden immer mehr Stimmen laut, dass Quantität wichtiger und wichtiger wird, um sich Aufmerksamkeit und Gehör zu verschaffen. Die Qualität der Inhalte darf selbstverständlich nicht leiden, doch sowohl die Anzahl der Inhalte, wie auch die Anzahl der Verbreitungs-Plattformen und -Häufigkeit spielt eine immer stärkere Rolle.

tl;dr: Qualitativ exzellente Beiträge sollten zukünftig mit hoher Frequenz, in verschiedenen Formen und Längen über mehr Kanälen verbreitet werden, um durchs Aufmerksamkeitsfenster der Zielgruppe zu flattern.

Bei comspace sprechen wir eine sehr spitze B2B-Zielgruppe an und gingen darum immer eher den Weg von qualitativ exzellenten und sehr spezifisch auf die Zielgruppe abgestimmten Inhalten.
Seit einigen Monaten stellen wir jedoch fest, dass wir mit Inhalten, die weniger zielgruppenspezifisch sind, deutlich mehr Menschen erreichen, als (nur) mit den auf unser Alltagsgeschäft abgestimmten Inhalten.

Ein Beispiel:
Die Themen Human Relations und Unternehmenskultur finden in unseren Kanäle derzeit deutlich mehr statt als Web-Technologie und Content Management Systeme. Warum? Weil wir zu diesen Themen momentan mehr Geschichten erzählen können und das über sämtliche Kanäle hinweg: Von Presse, Mail-Newsletter, persönliche Kontakte, hin zu Blog und Social Media. Auch wenn es sich bei den Themen nicht um unsere wertschöpfenden Kernkompetenzen handelt, hört man uns da draußen zu, nimmt uns wahr und es entwickeln sich wertvolle Kontakte, die dann plötzlich auch wieder für das Kerngeschäft interessant werden.

Durch einen Vortrag von Jay Bear, wurde mir das Potenzial, das in unseren eigenen Erfahrungen steckt plötzlich klar, als Jay den Vergleich zwischen Schrotflinte und Scharfschützengewehr zieht und zum Schluss kommt, dass wir zukünftig deutlich mehr auf Schrotflinten zurückgreifen sollten.

Im reinen B2B-Kosmos mag die Problematik noch nicht so ernst sein, doch im Endkunden-Umfeld, in dem sich einige unserer Kunden bewegen, wird es schwerer und schwerer, sich in den unzähligen Social Media Meldungen pro Tag hervorzuheben und die Aufmerksamkeit der Kunden zu wecken.

Digitale Strategien müssen her.

Dazu möchte ich Jays eher amerikanisch-pragmatische Metapher umdeuten. Ziehen wir doch passend zum überraschend guten Sommerwetter den Vergleich zwischen Rasensprenger und Gartenschlauch:

Erreichen statt Reichweite

Jahrelang haben wir in Social Media auf die Reichweite geschaut. An wie viele Follower, Fans, Besucher kann ich Nachrichten aussenden? Dabei haben wir uns wenig Gedanken darüber gemacht, was denn tatsächlich bei den Empfängern ankommt. Social Media war ein Selbstläufer. Die Inhalte wurden besser und besser. Corporate Publishing und Content Marketing haben eine ganz neue Qualität erreicht. (Dabei ist das Thema nicht neu, hier erklärte ich u.a. dass Content Marketing durch Dr.Oetker in Bielefeld bereits 1891 zum Einsatz kam).

Super Inhalte in einem spezifischen Kanal sind wie ein Gartenschlauch mit hohem Druck, mit dem sich Wasser schnell und gezielt an einen bestimten Punkt im Garten transportieren lässt. Doch wenn Sie diesen Wasserstrahl zu lange auf eine Stelle halten, zerstören Sie erstens die Pflanzen und spülen den Boden fort und zweitens bekommen Pflanzen in der breiten Fläche nicht genug Wasser.

Die Darstellung und Durchdringung von Inhalten in Social Media Kanälen wandelt sich immer stärker. Denn Facebook, Google, Twitter, YouTube usw. wollen Geld verdienen. Damit wird es immer schwieriger, die Kunden zu erreichen, ohne mit gezielten Kampagnen (und Budgets) Inhalte in den Fokus der Zielgruppen zu pushen.

Menschen zu erreichen wird immer schwerer. Denn mit der ständig steigenden Reichweite von Social Media Kanälen wurde auch die Konkurrenz innerhalb der Kanäle immer größer. Wir ringen um die Aufmerksamkeit unserer Zielgruppen.

Aufmerksamkeit erregen bei Menschen, die sich für unsere Inhalte interessieren

Natürlich wollen wir exzellente Inhalte anbieten. Das ist die Pflicht – 10 historische Beispiele für Content Marketing habe ich Ihnen hier zusammen gestellt. Doch damit dieser aufwändig produzierte Content einen Effekt erzielt,  muss er erst einmal in den Fokus der Zielgruppe kommen. Das ist dann die Kür. Ein durchschnittlicher Facebook-User hatte bereits im Jahr 2013 ungefähr 1500 Meldungen! pro Login in seiner Timeline.

Wenn wir die Aufmerksamkeit unserer Zielgruppen als auf großer Fläche, eng gesetzte Pflänzchen betrachten, dann wird uns schnell klar, dass hier ein starker Wasserstrahl aus dem oben erwähnten Gartenschlauch ineffektiv und Ressourcenverschwendung ist.

Übrigens ist die durch die schwer zu erreichende Aufmerksamkeit und breite Streuung der Zielgruppen die Gefahr des Langweilens oder Überfrachtens meiner Meinung nach relativ gering.

Garden-Sprinkler by Thangaraj Kumaravel (CC BY 2.0)
Garden-Sprinkler by Thangaraj Kumaravel (CC BY 2.0)

Quantität meets Qualität

Das revolutionäre an Social Media war das Wahrwerden von Brechts RadiotheorieJeder kann Sender sein. Unternehmen treten in Dialog mit Kunden und aus der typischen eins zu vielen Einbahnstraßenkommunikation wurde eine Viele-zu-viele-Kommunikation.

Insbesondere für exzellente Inhalte ist es tragisch, wenn sie zwischen all den konkurrierenden Inhalten untergehen. Schließlich stehen sie mit Ihren Inhalten im direkten Wettbewerb zu Klatsch und Tratsch, Nachrichten, Sport, andere Unternehmen, Ihre Wettbewerber, Kollegen, Freunde und Familie Ihrer Kunden.

Mindestens genauso wichtig wie hohe Qualität – wenn nicht gar wichtiger – ist es also, regelmäßig Aufmerksamkeit für die hohe Qualität zu erreichen. Dazu bedarf es aber deutlich kleineren Content-Häppchen, die zueinander passen und in zahlreichen verschiedenen Kanälen gespielt werden und auf ein strategisches Ziel einzahlen.

Merken Sie was? Hier kommt der Rasensprenger zum Einsatz. Der dauerhaft kleine Mengen Wasser durch seine vielen Kanäle über eine große Fläche mit Pflänzchen verteilt.

Das Telefonbuch wird wichtiger als die Freundeliste auf Facebook

Haben Sie noch das Gefühl, die Kontrolle darüber zu behalten, was Sie in Ihrer Facebook-Timeline sehen? Oder in Ihrem Twitter-Feed? Oder in den Suchergebnissen bei Google? Selbst im E-Mail-Postfach wird es schon schwierig die Trennlinie zwischen den gewünschten und angeforderten und den ungefragten Informationen zu unterscheiden.

Das ist der Grund, warum immer weniger junge Digital Natives auf Facebook oder Twitter aktiv sind. Viele wollen gar keine brechtschen Sender sein und große Reichweite aufbauen. Besonders junge Menschen wollen sich einfach nur mit Ihren Freunden und Bekannten austauschen. Über sichere, exklusive Verbindungen. Und dort kann man nicht einfach so reinplatzen, sondern hier höhlt steter Tropfen den sprichwörtlichen Stein.

Das persönliche Adressbuch der Nutzer ist dabei der Gartenzaun, der die echten Kontakte schützt. Wir kennen das alle: Twitter, Facebook, XING, LinkedIn: Überall haben wir verschiedenste Verbindungen zu anderen Menschen. Verbindungen, die Mark Granovetter in seinem über 40 Jahre alten Essay Weak Ties (hier als PDF-Dokument) nannte. Die strong ties – also starken Verbindungen – finden sich digital am ehesten in den persönlichen Telefonbüchern auf Smartphone oder Computer.

Grass and sidewalk - Blake Burkhart - (CC BY 2.0)
Grass and sidewalkBlake Burkhart – (CC BY 2.0)

Kanäle gezielt miteinander verbinden

Schauen wir noch einmal auf unser Beispiel der Gartenbewässerung: Das Wurzelwerk unserer Pflanzen stellen ein ebenso engmaschiges Netzwerk dar, wie unsere Kommunikationskanäle. Und sie beeinflussen sich gegenseitig.

Ein Tweet kann zu einem Bild auf Instagram führen, das wiederum auf Facebook geteilt wird, gemeinsam mit einem Verweis auf  eine Landingpage, die das eigentliche Produkt anteasert. Dort findet der Nutzer wiederum ein YouTube-Video des Produkts usw.

Doch auch verschiedene Unternehmens-Kanäle können gezielt mit einander verbunden werden und sich gegenseitig unterstützen. Die Karriere-Kanäle verweisen auf Produkt-Kanäle und umgekehrt. Internationale Tochtergesellschaften greifen gegenseitige Themen auf und sorgen dadurch für Social Signals, die wiederum Interaktionen, Sichtbarkeit und Reichweite erzeugen.

Was bedeutet das nun alles?

Sie fragen sich jetzt sicher, was Sie mit diesen Informationen für Ihr Unternehmen anfangen sollen? Mit Recht.

Letzten Endes bedeutet ein breiterer Einsatz von feiner strukturierten Inhalten natürlich immer eins: Mehr Arbeit.

Dem lässt sich auf unterschiedliche Weise begegnen: Sie können sich Verstärkung holen und Teams vergrößern. Sie können externe Unterstützung beauftragen um Sie bei der operativen Arbeit zu entlasten. Und sinnvoller Weise strategische Prozesse entwickeln, mit denen die Arbeit automatisierbar oder zumindest einfacher ausführbar wird.

So können Sie vorgehen:

  • Content Audit durchführen
  • Inhalte feiner aufteilen
  • Mehr Kanäle noch gezielter bespielen
  • Ähnliche Aussagen häufiger wieder aufgreifen
  • Technische Lösungen zur automatischen Verbreitung und Auswertung einsetzen

Auch steter, kleiner Tropfen aus dem Rasensprenger höhlt den Stein – beziehungsweise: Lässt die Social Media Landschaft wachsen und aufblühen 😉

Derzeit ist die Qualität in Social Media so hoch, dass ein Herausstechen und Aufmerksamkeit erregen durchaus über Quantität möglich ist.

Watering-201410-02 by eosdude (CC BY-SA 2.0)
Watering-201410-02 by eosdude (CC BY-SA 2.0)

Und wenn das alle machen?

Auch das ist eine berechtigte Frage. Lassen Sie es mich abschließend so sagen:
Natürlich steigt das Grundrauschen durch ein mehr an (qualitativ hochwertigen) Einzelmeldungen auf noch mehr Kanälen deutlich an. Solange dadurch eine messbar höhere Aufmerksamkeit erreicht werden kann und durch Mehrfachverwertung bereits bestehender Inhalte der Aufwand gering bleibt, ist es eine Methode, die in Betracht gezogen werden sollte.

Spätestens wenn ein kritisches Maß an Grundrauschen von hoher Qualität erreicht ist, wird vermutlich wieder die Qualität eine Stellschraube sein, mit der wir ein Alleinstellungsmerkmal erzielen können.

Dann kommt auch wieder der Gartenschlauch zum Einsatz 😉

Übrigens gibt es ja auch noch die gute, alte Gießkanne, ganz ohne Automatisierung. Aber das ist nochmal ein ganz anderes Thema.

* Artikelbild Summertime by Eric Sonstroem (CC BY 2.0)

8 Tipps für eine entspannte Urlaubsvorbereitung und den Wiedereinstieg ins Arbeiten

Urlaubsvorbereitung-Schreibtisch

Damit die Erholung nach dem Urlaub nicht gleich nach 2 Stunden wieder verpufft, gibt es einige Tricks um bereits vorm ersten Urlaubstag vor zu sorgen. Passend zum Beginn der Urlaubszeit haben wir hier einige davon zusammen gestellt:

Informieren Sie Kunden und Kollegen

Zwei Wochen vor Urlaubsantritt ist eine gute Zeit um vor allem diejenigen zu informieren, dass Sie bald einige Zeit nicht erreichbar sein werden, die möglicherweise noch offene Punkte zu klären haben.

Beginnen Sie den Urlaub einen Tag früher

Allen Menschen, mit denen Sie nicht direkt zusammen arbeiten sagen Sie, dass Ihr Urlaub bereits einen Tag früher beginnt. So schaffen Sie sich einen kleinen Sicherheitspuffer für diejenigen, die immer auf den letzten Drücker kommen. Nichts ist fehleranfälliger, als eine hektisch erledigte Aufgabe, die kurz vor knapp noch auf den Tisch kommt.

ToDo-Liste anlegen bzw. aufräumen

Zwei Wochen vor dem Start in den Urlaub ist ebenfalls der passende Zeitpunkt, um die noch offenen Aufgaben zu sammeln und zu kategorisieren:

  • Was muss dringend noch vorm Urlaub erledigt werden?
  • Welche wichtigen Aufgaben können an die Vertretung delegiert werden
  • Welche unangenehmen Tasks können Sie noch direkt vor den Ferien erledigen?
  • Welche angenehmen Aufgaben können für nach dem Urlaub aufgespart werden? (siehe Abschnitt: “bergab parken”)

Vertretung / Übergabe

Haben Sie alle notwendigen Informationen für Ihre Vertretung(en) zusammen gestellt? Führen Sie die Übergabe in einem persönlichen Gespräch statt in einer E-Mail durch. Nur so ist gewährleistet, dass mögliche offenen Fragen direkt geklärt werden können.

  • Kontaktdaten von wichtigen Kollegen, Dienstleistern, Kunden
  • Termine
  • Checklisten für Routineaufgaben
  • Kurzinfos zu laufenden Projekten
  • Links zu wichtigen Dokumenten, Webseiten und Ordnern

“Bergab Parken”

Dieser Artikel im Harvard Business Review sprcht vom Bergab-Parken, damit Sie Ihre Arbeit nach den Ferien gleich mit richtig Schwung und Spaß wieder aufnehmen können. Das Prinzip ist einfach und effektiv:

Sie hinterlassen sich selbst eine positive Notiz mit dem nächsten logischen Schritt je Projekt, wo Sie am ersten Arbeitstag wieder in Ihre Aufgaben einsteigen wollen. Der psychologische Trick dahinter ist, dass es leichter fällt, in einen laufenden Prozess wieder einzusteigen, als den Tag auf der grünen Wiese anzufangen. Hierfür eignen sich insbesondere die Aufgaben, die Sie besonders gerne erledigen, um nach dem Urlaub gleich wieder Spaß an der Arbeit zu haben.

Mir ist die Methode zum ersten Mal im Zusammenhang mit Ernest Hemingway über den Weg gelaufen, der seine schriftstellerische Arbeit immer dann für den Tag beendet hat, wenn ihm hundert Pprozentig klar war, wie es im nächsten Satz weiter gehen würde. Der Blogger und Autor Shawn Blanc beschreibt das Prinzip in seinem Artikel The Note im Detail. Die Arbeit Bergab parken funktioniert also auch jeden Feierabend und nicht nur vorm Urlaub 😉

Der Kalender

Setzen Sie Erinnerungen in den Kalender für die wichtigsten Todos in der ersten Woche nach dem Urlaub., So befreien Sie sich vom unguten Gefühl etwas vergessen zu haben.

Blocken Sie sich vorher bereits einige größere Zeitblöcke nach Ihrer Rückkehr zum wieder einarbeiten. Warum? Damit Ihnen nicht gleich an den ersten zwei Tagen nach dem Urlaub Termine in den Kalender gesetzt werden.

Die Abwesenheitsmeldung

Bleiben Sie professionell und höflich. Wer Ihnen in Ihrer Abwesenheit eine Mail schickt möchte nicht unbedingt wissen, an welchem Pool Sie gerade liegen, sondern vermutlich ein Problem gelöst bekommen. Weisen Sie in Ihrer Abwesenheitsnotiz also ruhig auf Lösungsquellen hin – bsw. auf der Unternehmenswebseite, im Unternehmensblog oder einer FAQ-Section.

Führen Sie auf, wer in dringenden Fällen ansprechbar ist – inkl. Durchwahl und Mail-Adresse. Leiten Sie eingehende Mails aber nicht automatisch weiter und weisen Sie darauf auch in Ihrer Abwesenheitsmeldung hin. So vermeiden Sie Mißverständnisse.

Es ist auch durchaus möglich, die Absender darum zu bitten ihre Mail nach Ihrer Rückkehr noch einmal zu senden. Dieser kleine psychologischen Trick hilft ein Stück weit, allzu hartnäckige Mail-Absender davon abzuhalten, tägliche Todos zu verteilen und damit die unbeaufsichtigte Mailbox unnötig zu füllen.

Setzen Sie in Ihrer Abwesenheitsmeldung ein Datum 2 Tage nach Ihrer Rückkehr und einen Tag vor Ihrem Urlaubsbeginn ein, um Ihnen genug Zeit geben, sich in den ersten zwei Tagen durch die bisher angefallenen Mails zu arbeiten.

Social Media Kanäle

Ein kurzer Hinweis in den regelmäßig genutzten Social Kanälen beugt etwaigen Vermissenmeldungen vor, wenn plötzlich einige Wochen kein Tweet oder Instagram-Foto von Ihnen kommen sollte 😉

Alternativ lassen sich natürlich einige Einträge vorbereiten und automatisch veröffentlichen.

ABER: Wenn Sie die einzige Person sind, die ggf. auf Reaktionen über Social Web Kanäle reagieren kann, raten wir ausdrücklich davon ab, einen Kanal per Autopilot mit Inhalten zu füttern.

Genießen Sie Ihren Urlaub und erholen Sie sich gut!

Je entspannter Urlaubsbeginn und -Ende ablaufen, desto mehr haben sich die Ferien gelohnt. In diesem Sinne:

Schönen Urlaub!

 

Weitere Tips finden Sie hier:

Harvard Business Review

Urlaubs-Checkliste Karrierebibel

 

 

Tips vom Steuerausblick Blog http://www.steuerausblick.de/wordpress/?p=2071

Learnings und Tipps aus dem Upgrade von Sitecore 7.5 auf Sitecore 8.0

Sitecore Update-Installation-Wizard

Unser erstes Projekt-Upgrade von Sitecore 7.5 auf Sitecore 8.0 ist abgeschlossen und wir wollen es nicht versäumen, unsere Erfahrungen aus diesem Prozess mit Ihnen zu teilen. Als Ausgangsbasis für den Upgrade Prozess dient wie bei allen Sitecore Upgrades der „Sitecore Upgrade Guide“.

Dieser Guide bietet eine gut nachzuvollziehende Schritt-für-Schritt-Anleitung

Im wesentlichen besteht dieser Prozess aus den folgenden Schritten:

  1. Backup von Website und Datenbanken
  2. Ausführung von SQL Server Update Skripten auf den Sitecore Datenbanken
  3. Installation des Upgrade Packages über den “Update Installation Wizard”
  4. Aktualisierung der Konfigurationsdateien
  5. Neuaufbau der Suchindizes und der Link Datenbank
  6. Ggf. Aktualisierung weiterer Module (z.B. “Web Forms For Marketers”-Modul)
Sitecore Update-Installation-Wizard
Sitecore Update-Installation-Wizard

Nach dem Upgrade-Prozess sahen wir uns mit einigen Problemen konfrontiert. Dazu gehörten sowohl Issues im Sitecore Client als auch die Aggregation der Analytics-Daten in die Reporting Datenbank.

Probleme und Lösungen beim Laden des Sitecore Clients

1. Fehlermeldung „Could not load type ‚Sitecore.Shell.Applications.WebEdit.Commands.WebEditCommand‘ from assembly ‚Sitecore.Client, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null‘.“

Hintergrund ist die Einführung der neuen “Sitecore.ExperienceEditor”-Assembly. Wir verwenden eine Reihe von Custom Buttons im Page Editor. Diese hingen vorher vom “Sitecore.Shell.Applications.WebEdit.Commands”-Namespace ab. Dessen Funktionen sind mit Sitecore 8 nun in die neue Assembly “Sitecore.ExperienceEditor.dll” ausgelagert worden.Die Lösung bestand darin, in der Visual Studio Solution einen Verweis zu dieser neuen Assembly hinzuzufügen und das Projekt neu zu bauen.

2. Fehlermeldung „Could not resolve type name: Sitecore.ContentSearch.Events.PublishingEventHandler, Sitecore.ContentSearch (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)).“

Durch den Austausch der Sitecore.ContentSearch gegen die Default Sitecore 8 „Sitecore.ContentSearch.config“ bzw. „Sitecore.ContentSearch.dll“ konnte dieses Problem schnell ausgeräumt werden.

3. jQuery Konflikt mit Prototype im Sitecore 8 Experience Editor

JavaScript-Konflikte traten durch den parallelen Einsatz der JS-Frameworks Prototype und jQuery zu Tage. Mittels Wrapper-Workaround konnte dieses Problem umgangen werden.

Probleme und Lösungen bei der Aggregation der Analytics-Daten in die Reporting-Datenbank

1. Leere „Segments“- und „TreeDefinition“-Tabellen in der Reporting-Datenbank.

Als Workaround wurden die betreffenden Tabellen mit einer “sauberen” Default Sitecore 8.0 Reporting Datenbank manuell abgeglichen und ergänzt.

2. Fehlermeldung „Exception: System.IO.FileFormatException
An error occurred while deserializing the Pages property of class Sitecore.Analytics.Model.VisitData: An error occurred while deserializing the PageEvents property of class Sitecore.Analytics.Model.PageData: An error occurred while deserializing the CustomValues property of class Sitecore.Analytics.Model.Entity: Die“ Zeichenfolge kann keine Länge von 0 (nu ll) haben.““

Diese Exceptions sind der Tatsache geschuldet, dass das WFFM 2.5 Modul in Sitecore 7.5  Ereignisdaten in der Analytics MongoDB in anderer Weise abbildet und speichert als mit WFFM 8.0. Zudem werden unterschiedliche Klassen zur Deserialisierung während der Aggregation verwendet.Eine Lösung konnte dank des Sitecore-Supports umgesetzt werden: Dieser lieferte entsprechende Patches zur Aggregation historischer WFFM-Analytics-Daten.

Weitere Tipps für eine reibungslose Aktualisierung von Sitecore 7.5 auf 8.0

Folgende Punkte halten wir generell aus unseren Erfahrungen mit dem Upgrade auf Sitecore 8.0 für erwähnenswert:

1. Besondere Aufmerksamkeit sollte auf die Aggregation der Analytics-Daten und zusätzlicher Module wie WFFM oder EXM gelegt werden. Falls diese Anwendungen gar nicht erst eingesetzt werden sollen, sollte das Upgrade kaum Probleme bereiten.

2. Custom Buttons im Experience Editor können übergangsweise zunächst auf die alte SheerUI umgestellt und dann ggf. in das neue SPEAK-Framework umprogrammiert werden. Hilfreiche Hinweise zu diesem Thema liefert der Artikel “A New Look to Buttons in Experience Editor”.

3. Eine Übersicht über bereits bekannte Bugs in Sitecore 8 liefert die Sitecore Knowledge Base-Seite.

Welche Erfahrungen haben Sie mit einem Upgrade auf Sitecore 8.0 gemacht und welche Tipps können Sie anderen Sitecore-Entwicklern geben?

Wir freuen uns auf Ihre Kommentare.

Digitale Kundenerlebnisse schaffen mit der Sitecore Experience Plattform 8.0

Dashboard Sitecore 8.0

Sitecore hat sich in den vergangenen Jahren immer stärker von einem reinen Content Management System zu einer umfassenden Plattform für digitale Kundenerlebnisse gewandelt. In dieser Plattform werden verschiedenen Unternehmens-Systeme zusammenführt und Webseiten individueller auf den Nutzerbedarf anpasst. Mit Einführung der neuen Version 8.0 rücken die Marketing-Funktionalitäten des Systems noch stärker in den Vordergrund als bisher. User Experience ist der große Übergegriff, dem sich alle Sitecore CMS-Funktionalitäten verschreiben. Für den Endverbraucher der auf der Website angebotenen Produkte sollen über alle Kanäle hinweg konsistente digitale Erlebnisse geschaffen werden, die mit der Sitecore Experience Plattform eingerichtet und weitgehend automatisiert gesteuert, optimiert und analysiert werden können.

“Experience” ist Bestandteil aller Sitecore Produkte

So ist es nur konsequent dass Sitecore auch die Namensgebung seiner gesamten Plattform und der einzelnen Produkte im Laufe des vergangenen Jahres auf das Kundenerlebnis ausgerichtet hat: Die ehemalige Customer Engagement Plattform wurde in Sitecore Experience Platform umbenannt, aus dem Digital Marketing System (DMS) wurde die heutige Experience Database und den Page Editor findet der Redakteur jetzt als Experience Editor wieder. Email Experience Manager (EXM), Experience Profile und Experience Analytics sind weitere Module, die die User Experience schon im Namen tragen.

Was sind die Highlights von Sitecore 8.0?

Zunächst einmal sorgt die an Windows 8 angelehnte Kachel-Optik für eine klare übersichtliche Gestaltung im Backend, das dem Anwender einen raschen Überblick über die verfügbaren Funktionalitäten bietet.

Dashboard Sitecore 8.0
Dashboard Sitecore 8

 

Die grundlegenden inhaltlichen Veränderungen gegenüber den Vorgänger-Versionen bestehen in der optimalen Visualisierung aller gewonnenen Kundendaten im Sitecore Experience Profile sowie in den vielfältigen Analyse-Möglichkeiten. Sämtliche Kundeninformationen und -interaktionen aus verschiedenen, auch Sitecore-unabhängigen Kanälen – ob Online oder Offline – werden in den Experience Profiles zusammen geführt – und dies nicht nur vergangenheitsbezogen, sondern in Echtzeit. Aus diesen lassen sich dynamisch Zielgruppen segmentieren, die ihrer Kundenhistorie entsprechend (Surf- und Klickverhalten, Geo-Daten etc.) relevante Inhalte angeboten bekommen.

Die Features von Experience Analytics helfen dem Marketer dabei, Szenarien und Website-Inhalte mit Hilfe von A/B- oder multivariaten Tests zu bewerten und zu optimieren und mit Hilfe der Engagement Values aufzuzeigen, welche Aktionen in den verschiedenen Kommunikationskanälen erfolgreich sind. Die umfangreichen Statistiken aus der xDB, der Experience Database, ergänzen die Erkenntnisse zum Kundenverhalten aus anderen Webanalyse-Tools.

MongoDB ergänzt die Datenbank-Architektur

Die Experience Database der Version 8.0 arbeitet auf der Basis von MongoDB. Diese NoSQL-Datenbank ist aufgrund ihrer flexiblen Datensatzstrukturen und ihrer Skalierbarkeit besser für Big Data Marketing geeignet als die Microsoft SQL-Datenbanken und erlaubt das Speichern umfangreicher Datenmengen als nicht-relationale Objekte. Weiterhin zeichnet die MongoDB Vorteile in der Zugriffsgeschwindigkeit aus.

Fazit:

Sitecore 8.0 stellt Unternehmen eine ausgereifte Marketing-Plattform zur Verfügung, um einerseits durch personalisierte Inhalte die Usability für die Nutzer zu steigern und andererseits durch tiefgehende Analysen die Kommunikation in allen Kanälen kontinuierlich und überwiegend automatisiert zu personalisieren und damit die Wertschöpfung des Unternehmens zu erhöhen.

Dabei sollte allerdings darauf geachtet werden, dass vor lauter automatisierten Optimierungsmöglichkeiten und einer Vielzahl an verfügbaren Kennzahlen nicht die gesetzten Kampagnenziele aus den Augen verloren werden. Kennzahlen wie Zugriffe, Verweildauer oder Click-through-rates geben zwar wichtige Signale, jedoch muss die Steigerung einzelner KPIs isoliert betrachtet nicht unbedingt auf die Online Marketing-Ziele einzahlen. Empfehlenswert ist daher ein in regelmäßigen Abständen wiederholter Abgleich der in Sitecore umgesetzten Maßnahmen mit den Zielen der Online Strategie.

Demnächst werden wir hier im Blog über einige unsere Praxiserfahrungen mit Sitecore 8.0 berichten.

Fazit: Die re:publica 2015 war sehr ruhig und sehr gut #rp15

Die re:pubica 2015 war sehr gut. Wieder einmal. Was Kontakte, Ideen und Geschäft angeht sogar besser als die vorher gegangenen Veranstaltungen. Das ist auch kein Wunder: Wenn um die 6.000 Leute aus dem digitalen Business für drei Tage auf einem Fleck zusammen kommen, sollte es schon mit dem Teufel zugehen, wenn nichts dabei heraus kommt.

Deswegen möchte ich mit meiner kleinen Rückschau einige Highlights heraus stellen und eine Meta-Kritik abliefern.

republica-2015-eroeffnung
Ein wenig Festival – sehr viel Konferenz – das muss die re:publica sein 😉

Die Kritik zur re:publica vorweg:

Mein erster Eindruck am Dienstag war: “Die re:publica hat sich kein bisschen weiter entwickelt.”

Optisch war das in sofern richtig, als dass das Betreten der Halle in den vergangenen Jahren bereits das erste Highlight darstellte: Was hat sich das Team um die Veranstalter dieses Jahr ausgedacht? Wie wurden die Hallen gestaltet? Wie hat sich das Konferenz-Design und die Nutzerführung weiter entwickelt?

In diesem Bereich gab es 2015 nur kleine bis gar keine Weiterentwicklung. Die Hallendeko wurde größtenteils aus 2014 wiederverwendet und die Designsprache entwickelte sich nur marginal weiter. Auffallend war einzig der Wechsel von den Hauptfarben grün/rosa zu blau/grün.

Andererseits ist ein solches Vorgehen durchaus nachhaltig. Warum das Rad immer wieder neu erfinden?

Nach den ersten Vorträgen beschlich mich das gleiche Gefühl im Hinblick auf die Themen. Der erste Gedanke war “Alter Wein in neuen Schläuchen!” und ein leichter Anflug von Enttäuschung machte sich breit.

Aber:
Mir wurde recht schnell klar, dass wir in Sachen Digitalisierung momentan auf einem Plateau angelangt sind.

Die großen Themen sind erst einmal durch. Die Devise wird in den nächsten Monaten und vielleicht sogar Jahren lauten:

Unaufgeregt Detailverbesserungen entwickeln und in verhältnismäßig kleinen Schritten weiter gehen.

Zur Verdeutlichung:
Selbst die Apple Watch ist keine wirkliche Innovation wie es das iPhone war, sondern eine Detailverbesserung des Telefons. Ein kleiner Schritt zu einer einfacheren Bedienung und daraus neu entstehenden Möglichkeiten.

Das ist richtig und wichtig. In den letzten Jahren wurden auf der re:publica Netz-Themen vertieft und weiterentwickelt, die auch in der anfassbaren Welt lange Zeit brauchen um sich zu bewegen:

Gesellschaft, Politik, Kultur an der Schnittmenge zum Geschäft. Denn natürlich verändert sich durch das vernetzte Leben auch ein ganz wesentlicher Teil: Die Arbeit in und mit dem Netz.

Am besten konnte unser Geschäftsführer Andreas Kämmer hier im Live-Talk zum Thema Zukunft der Arbeit auf der re:publica einen Überblick geben, wie wir bei comspace modernes Arbeiten angehen:

Gelernt auf der re:publica

  1. Bereits die Zugfahrt war inspirierend: Ich bekam mit Nummer 17 von 66 die erste von Wiebke Ladwigs handgezeichneten Visitenkarten
  2. Ebenfalls im Zug erfuhr ich einige spannende Neuigkeiten über das Marketing-Tool hubspot von Norbert Diedrich
  3. Erkenntnis der Zugfahrtrunde: Vertriebler werden zukünftig so etwas wie Profiler
  4. Design Thinking Methoden von IBM in einem Workshop angewendet. Design Thinking kannte ich schon länger, aber die Weiterentwicklung von IBM ist besonders für die Digitale Transformation hilfreich. Insbesondere das IBM-eigene Konzept der “Hills” ist sehr spannend und die Frage nach dem Wow-Effekt in Prozessen sollte man sich häufiger stellen.
  5. In einem Gespräch vor der Eröffnung lernte ich einiges über Business in Schweden. Überraschende Erkenntnis von jemandem, der 3 Jahre dort gearbeitet hat: Trotz aller Transparenz ist es immens wichtig, die Netzwerke und Zusammenhänge im Hintergrund zu kennen, um erfolgreich Geschäfte in Schweden zu machen.
  6. Thomas Andrae von 3M Ventures berichtete über den aktuellen Stand der Wearables. (Videolink) Dabei skizzierte er einen unglaublich spannenden Case:
    Mechaniker, die an Genera Electric Triebwerken arbeiten, tragen Google Glass Brillen. Einerseits werden bei Bedarf Hilfestellungen und nächste Schritte sowie Checklisten eingeblendet. Andererseits wird die gesamte Reparatur durch die Brille als Video aufgezeichnet. Bei einem Zwischenfall an einem Triebwerk kann so der Reparaturvorgang nachvollzogen werden.
    Aber das ist noch nicht alles:
    Die Triebwerke generieren während eines Fluges Gigabytewise Daten und senden diese an den Hersteller. Sollte eine der Titan-Lamellen beschädigt sein, fährt das Triebwerk die Leistung zurück um weitere Beschädigungen zu verhindern. Am Boden wird das Werk in München benachrichtigt und in einem der modernsten 3D-Drucker wird on-the-fly eine neue Lamelle produziert. Wenn das Flugzeug bspw. in Peking landet, geht es in den Hangar, die Reparatur wird vorbereitet und 7-8 Stunden später trifft die Lamelle ein. Früher dauerte es Tage, bis ein Flugzeug repariert war – heute Stunden.
  7. YouTube Session – WWF wird durch YouTuber Unge unterstützt „Seit Simon (@unge) uns unterstützt (@WWF_Deutschland), wachsen wir auf @youtube deutlich schneller“-Rezepte sind ausgelutscht. Entwickelt zu jeder eurer Aktionen eigene Ideen und PROBIERT SIE AUS! – BestCase: @caseyneistat Phillippinen – Meine Frage: Emotional, lustig, wo andere Leute sich wieder finden, Aufrufbuttons zum Klicken, dran glauben sind die #youtube Tipps vom Panel #rp15 #fb
  8. Was Mittelstand und Konzerne von Foodblogs lernen können: Die Kunden stimmen immer mehr mit dem Portemonnaie ab. Als B2B-Unternehmen kann man Wiederverkäufer bei der Kommunikation mit Endkunden unterstützen.
  9. Johannes Kleske prägte im Zusammenhang mit der Zukunft der Arbeit den Begriff  “Daten-Hausmeister” und den Algorithmus als Vorgesetzter (s.u.)
  10. People Analytics – in dieser Session wurden Ansätze zur Auswertung von Arbeitsplätzen und Arbeitskräften vorgestellt – von Google über IBM bis zum MIT. SEHR spannend und kontrovers. Hier zum Nachhören
Kurzes Treffen der Ostwestfalen v.l.n.r. ich, Frank Michna, Thorsten Ising, Jan Westerbarkey
Kurzes Treffen der Ostwestfalen v.l.n.r. ich, Frank Michna, Thorsten Ising, Jan Westerbarkey – Foto: Anke Knopp

 

Alternativen zur re:publica

Gibt es Vergleichbares? Klares: Jain. Hier eine kleine Auswahl an Konferenzen, die mir spontan einfallen – Ergänzungen gerne in den Kommentaren:

  • Smashing Conference – variierende Veranstaltungsorte: Design- und entwicklungslastiger
  • Chaos Communication Congress in Hamburg – mit 12.000 Besuchern in 2014 deutlich größer. Ähnlich politisch, aber technischer und mehr Underground.
  • ars electronica in Linz – stärker von Kunst und Kultur geprägt
  • DLD in München – medienlastiger, auf Hubert-Burda-Medien ausgerichtet
  • SXSW in Austin – noch mehr Festival-Charakter, mehr Musik, Film, Entertainment
  • Le Web in Paris, größte Web-Konferenz Europas
  • Web Summit in Dublin – größte Technikkonferenz Europas
  • Webstock in Neuseeland – soll eine der besten Konferenzen im Web-Bereich sein

Was ich mir für die rp16 wünschen würde

Der Einstieg in die Konferenz mit dem IBM Desing Workshop hat mir mal wieder gezeigt, dass sich Themen vor allem dann in Hirn und Herz festsetzen, wenn ich mit ihnen arbeiten kann.

Deswegen wünsche ich mir für zukünftige re:publicas:

Mehr mitmachen. Workshops im Anschluss an die Vorträge mit den Vortragenden. Mehr Projekte, die im Anschluss an die Veranstaltung weiter gehen.

Zum Abschluss noch ein typischer rp15 Dialog 🙂

Vorträge der re:publica 2015 als YouTube Videos ansehen

Wie gehabt lassen sich fast alle der 450 Vorträge als Video anschauen, oder zumindest als Tonspur hören. Einzig einige Workshops sind nicht aufgezeichnet worden. Hier eine kleine Zusammenstellung interessanter Beiträge. Um den Beitrag hier nicht zu lang werden zu lassen, beschränke ich mich auf Links rüber zu YouTube:

  1. Die Eröffnungsrede von Ethan Zuckerman – braucht einige Minuten, um in Schwung zu kommen
  2. Alexander Gerst erzählt von seiner Zeit auf der ISS
  3. Pragmatische Sicht auf die Netzgemeinde und netzpolitische Soforttipps von Markus Beckedahl und Leonhard Dobusch
  4. Frank Rieger – Wir müssen etwas gegen Geschäftsmodelle tun, nicht gegen Technologie
  5. Slow Media Studie: Die Digitalen kommen wieder zu langsamen Medien zurück https://twitter.com/probefahrer/status/595614816636637187
  6. Gunther Dueck – Schwarmdumm: „Mit Überstunden kriegt man Wunder nicht hin.“ Leider etwas zu kurz, um Duecks komplexe Ideen, warum Mathe meist vor BWL Recht behält, zu transportieren
  7. Mensch, Macht, Maschine – wer bestimmt, wie wir morgen arbeiten? Mit Johannes Kleske. Sehr gute Weiterführung seines Talks von 2013. Hintergrundinformationen zum Beitrag
  8. Eine bedrückende, sehr interessante und doch humorvolle Session analysierte die Social Marketing-, “Unternehmenskommunikation”- und Employer Branding der ISIS – mit Sascha Stoltenow und Thomas Wiegold:

Artikelbild:

Kurzes OWL-Treffen mit mir, Frank Michna, Thorsten Ising und Jan Westerbarkey – Bild: Anke Knopp

https://twitter.com/nowanda1/status/595606217029980160

Weitere Zusammenfassungen zur re:publica finden Sie bei:

Baut uns doch mal eine Referenz City

Unser Kunde Xella Deutschland stellt massive Bausteine her, aus denen Häuser aller Art und Größe gebaut werden. (Hier haben wir schon einmal darüber berichtet, wie es in einem Xella-Werk zugeht.) Was liegt für ein solches Unternehmen also näher, als über 25 Referenz-Gebäude seiner Marken Ytong, Silka und Multipor zu einer Referenz City zusammen zu stellen, die sich aus den Referenz-Objekten im OpenText CMS generiert.

Xella-Multipor-Referenz-City

Damit war die Idee zur Referenz City geboren.

Zunächst einmal war eine sorgfältige Anforderungsanalyse notwendig. Bei Elementen, die nicht zum Standard-Baukasten einer Website gehören, ist das besonders wichtig. Wir mussten genau definieren, was bei welchem Klick passieren sollte und wie das alles aussehen musste. Ohne eine solche Analyse kann es schnell passieren, dass der Kunde bildlich gesprochen vom einem Pudel spricht, aber einen Dackel geliefert bekommt.

Basierend auf der Anforderungsanalyse konnte ich dann die Umsetzung konzipieren und abschätzen, wie lange ich dafür brauchen würde oder wo wir noch genauere Informationen benötigten.

WAGA, unser Kreativpartner in diesem Projekt, hat verschiedene Möglichkeiten der Darstellung konzipiert und wir haben deren Umsetzung evaluiert.

Technologische Herausforderungen einer Panorama-Anwendung

Die Schwierigkeit lag darin, dass es sich hier nicht um einen “normalen” Slider handelte, sondern eine individuell steuerbare Panorama-Anwendung. Für diesen speziellen Fall konnte ich daher kein passendes Plugin finden, dass genau den Anforderungen des Kunden entsprach. In Folge dessen musste ich selbst etwas programmieren, das in allen modernen Browsern funktioniert und nebenbei auch noch responsives Verhalten an den Tag legt.

Die “Referenz City” habe ich dann mit Hilfe von HTML, CSS und JavaScript (jQuery) umgesetzt. Die Nutzung der JavaScript-Bibiothek jQuery hat mir an manchen Stellen zwar geholfen, aber die Logik für die Benutzung konnte sie leider nicht liefern. Somit habe ich nahezu die komplette Panorama-Anwendung selbst programmiert.

Die Features der Referenz City im OpenText CMS

Momentan setzt sich die “Referenz City” aus 4 verschiedenen Bereichen zusammen: Es gibt den Einleitungs-/Intro-Bereich, die Referenzen der Marke Ytong, die Referenzen der Marke Silka und die Referenzen der Marke Multipor.

  1. Unter der City befinden sich die verschiedenen Markennamen. Klickt man auf einen der Namen, fährt die Ansicht der City direkt zu dem Bereich in dem sich Häuser (Referenzen) dieser Marke befinden. Die Markennamen, zu denen dann Referenzen in der City sichtbar werden, werden dann farblich hervorgehoben (in diesem Fall grau).
  2. Neben den Markennamen sieht der Nutzer auf größeren Geräten auch noch 2 Pfeil-Icons. Mit Hilfe der Pfeile kann der Besucher ebenfalls durch die City navigieren. Auf mobilen Geräten (z.B. iPhone) sind die Pfeile nicht sichtbar. Stattdessen kann der Nutzer hier über die Stadt wischen. Je nach Wischrichtung bewegt sich die Stadt entweder nach links oder rechts.
  3. Desweiteren kann der Besucher der Website auch per Druck auf die Pfeiltasten seiner Tastatur (sofern vorhanden) die City nach links und rechts bewegen.
  4. Sobald man dann ein Haus in der City gefunden hat, über das man mehr erfahren möchte, kann man mit dem Maus-Cursor übers Gebäude fahren und es erscheint ein gelber Kreis, in dem sich der Titel dieser Referenz befindet.
  5. Klickt man dann auf den Kreis oder das Haus, öffnet sich ein Pop-Up auf der Seite. Dieses Pop-Up beinhaltet ein Foto der Referenz, einen Titel, einen kurzen Text über die Referenz und einen Button, über den man auf eine andere Seite weitergeleitet wird. Diese Seite enthält dann Detailinformationen zu der Referenz.
  6. Öffnet man die “Referenz City” auf mobilen Geräten (z.B. iPhone) so kann man nicht mit einem Maus-Cursor über die Häuser fahren. Stattdessen erscheinen über allen Referenzen kleine gelbe Kreise mit Pfeil nach unten, die sich über dem Gebäude auf und ab bewegen. Sie zeigen dem Besucher der Seite so, dass dieser auf die Gebäude klicken/touchen kann um so mit der City zu interagieren.
  7. Die Integration ins OpenText hat keine besondere Schwierigkeit dargestellt. Eigentlich hätten wir das auch mit jedem beliebigen anderen CMS realisieren können. Wir mussten nur pro Referenz die Pflege der Bilder und Texte im CMS ermöglichen.
  8. Aus der Liste der Referenzen wird die “Referenz City” generiert. Kommt eine neue Referenz hinzu, muss lediglich die entsprechende Grafik im Panorama angepasst werden.

 Welche Einsatzszenarien wären noch möglich?

Denkbare Alternativen wären

  • Präsentation einer Produktpalette
  • Darstellung einer Wertschöpfungskette
  • Präsentation einer Customer Journey
  • Firmenhistorie als Zeitstrahl
  • usw.

Generell lassen sich Daten aus Content Management Systemen heraus im Web auf viele verschiedene Arten darstellen. Ob als Diagramm, Tabelle, Weltkarte oder eben ein interaktives Panorama. Dabei ist die Darstellung der Informationen prinzipiell unabhängig vom CMS. Zu bedenken sind aber technische Grenzen wie die Browserkompatibilität oder auch das Verhältnis von Aufwand und Nutzen.

Hier kommen Sie direkt zur Referenz-City von Multipor.