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

Internationale Expansion mit dem (e)Commerce Framework Spryker

Embed Size (px)

Citation preview

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 ?