internationale expansion mit dem (e)commerce framework spryker

13
Internationale Expansion Umsetzung länderspezifischer Shops mit dem (e)Commerce Framework Spryker

Upload: fabianwesnerberlin

Post on 16-Jul-2015

1.109 views

Category:

Software


0 download

TRANSCRIPT

Internationale Expansion

Umsetzung länderspezifischer Shops mit dem  (e)Commerce Framework Spryker

Zur Person

Tobias Rosenstock / PHP Developer Project A Ventures

Was ist Spryker?

• Lizenzpflichtiges (e)Commerce Framework

• Keine Out of the Box Software

• Weiterentwicklung von Yves&Zed

• Erfahrungen aus verschiedenen Ventures

Was ist Spryker?

• Zielgruppe: Größere Unternehmen bzw. Start-Ups

• Gängige Lösungen nicht performant und schwierig auszubauen

• Erweiter- und austauschbare Komponenten

• Leichtgewichtig und CleanCode

Die Spryker-Architektur

• Separate Applikationen

• Performantes und skalierbares Front-End Yves

• Back-End Zed verantwortlich für Geschäftslogik und Bestellverarbeitung

Internationalisierung

• Business will oftmals schnell in mehrere Länder expandieren

• Globale Features vs. länderspezifische Anforderungen

• Schnelle Implementierung vs. Wartbarkeit

I18N - Option 1

Eine Codebase für alle Stores

• Vorteile: Neue Features sind global verfügbar

• Nachteile: Schwer zu wartende IF-ElSE Ketten bzw. SWITCHES

...

if ($store === `DE`) { $this->doSomething();

} elseif ($store === `FR`) { $this->doSomethingElse();

}

...

I18N - Option 2

Eine Codebase für jeden Store

• Vorteile: Länder sind leicht zu individualisieren

• Nachteile: Repositories entwickeln sich auseinander, verschiedene Entwicklerteams, neue Features, die in jedem Land verfügbar sein sollen, müssen einzeln ausgerollt werden

I18N mit Spryker - Grundlagen

• Alle Stores teilen sich die selbe Codebase

• Jeder Store hat seine eigene Datenbank -> Vermeidung von Komplexität, nur eine Währung pro Datenbank

• Überschreibungslogik für länder-spezifische Shops

I18N mit Spryker - Factory

• Instanziierung von Klassen mit Spryker-Factory

• Projekt-Code überschreibt Core-Code

• Länderspezifischer Code überschreibt Projekt-Code

$calculator = $this->factory->createCalculator();

I18N mit Spryker - Überschreibungslogik

Factory prüft anhand von Länderkürzel ob spezielle Implementierung vorhanden:

namespace SprykerCore\Zed\Cart;

class Calculator {

public function calculate($items) {...} }

namespace SprykerProject\Zed\CartFR;

class Calculator {

public function calculate($items) {...} }

FR-Feature überschreibt Core-Feature

I18N mit Spryker - Fazit

• Keine IF-ELSE Verkettungen -> höhere Wartbarkeit

• Mehr Übersicht, länderspezifische Features in der Verzeichnisstruktur vom Projekt verankert

• Normale Features sofort in allen Ländern verfügbar

• Ein Entwicklerteam kann mehrere Länder verwalten

Fragen ?