Skip to main content
Skip table of contents

Architektur Centauri Shop / Marktplatz

Der Centauri Shop ist ein Nachfolger des WyRu Online-Shops, der ursprünglich auf Classic ASP für Microsoft Server in Wien entwickelt wurde.

Die aktuelle Software Version 5.x läuft auf Microsoft NET http://ASP.NET (IIS und Microsoft Framework 4.8) mit einem Microsoft SQL Server als Datenbank Backend (die kostenlose SQL Server Express Edition ist möglich) und kann damit auf jedem Windows Web Hosting betrieben werden.

Seit 2021 empfehlen wir den Betrieb als Software as a Service auch die Möglichkeit die eigenen Sortimente auch über andere Shop Betreiber dieses Marktplatzes zu vertreiben anbietet. Shop Betreiber können dabei andere Händler oder die Betreiber eines Inhouse Shops für den Einkauf der Bedarfsträger im Unternehmen (im Rahmen eines digitalen Einkaufs - eProcurement) sein.

Mit der nächsten Version 6.x (voraussichtlich 2025) wird auch der Betrieb mit wahlweise Unix Hosting bzw. der Betrieb in Container-Umgebungen ermöglicht.

Aufbau eines Shops

Aufgrund der verwendeten Basistechnologie benötigen wir einen Windows Server (alle aktuell lieferbaren Versionen werden unterstützt) mit installiertem Microsoft SQL Server - wobei für kleine Installationen auch die kostenlose SQL Server Express Edition (alle aktuell lieferbaren Versionen werden unterstützt) ausreicht.

Pro Shop ist eine Datenbank notwendig, in der alle Kunden- und Artikeldaten und alle Geschäftsfälle gehalten werden.

Pro Shop ist eine Site im Internet Information Server einzurichten, in der der Shop, das Admin Backend und alle APIs gehostet werden.

Diese Hosting Voraussetzungen sind in der untenstehenden Grafik in Rot eingezeichnet.

Auf dieser Umgebung arbeitet das Centauri.Shop Objektmodell, das Business Objekte wie Kunden, Produkte und Warenkörbe für die weiteren Komponenten bereitstellt.

Technisch korrekt zerfällt diese Schicht noch in

  • eine Bibliothek zur Abstraktion des Datenzugriffs und für Verschlüsselungsmethoden,

  • eine Bibliothek für abstrakte Content Elemente,

  • eine Bibliothek für die Realisierung eines Objekt Caches und

  • die eigentlichen Business Objekte.

Auf diesen Grundelementen aufbauend realisiert die Centauri Base Shop-Applikation den eigentlichen Shop mit Warenkorb, Checkout, Kundenkonto, etc.

Bis 2020 wurde dieser Teil projektspezifische für einzelne Shop Betreiber vom Centauri Team implementiert. Um SaaS Kunden einfacher mit Updates beliefern zu können, wurde dann die neutrale Base Shop-Applikation entwickelt, die seither Monat für Monat mit zusätzlichen Features ausgestattet wird und einfach per XCOPY Deployment auf die Kundeninstallationen ausgerollt werden kann.

Die Base Shop Applikation bringt mit dem Base Shop Frontend ein Set fertiger Layouts mit, die seit 2021 basierend auf dem Martfury HTML5 Theme entwickelt wird. Layouts bestehen aus typischen HTML Elementen (technisch korrekt HTML, CSS und Javascript).

In fast allen Shops sind Teile dieses Layouts für den Shop-Betreiber angepasst - minimal sind das Farben und Logos, maximal können große Teile des Layouts durch individuell entwickelte HTML Templates ersetzt sein. In der Praxis werden meist die Templates für die Produktpräsentation projektspezifisch angepasst und rein funktionelle Teile, wie Kundenkonto, Warenkorb, Merkliste, etc. aus dem Base Shop Frontend übernommen.

Der Besucher des Shops sieht dann diese HTML Templates, die von der darunterliegenden Applikation bereitgestellt und mit Daten versorgt werden.

APIs für eProcurement Applikationen

Benutzt der Besucher eine eProcurement Umgebung von SAP (z.B. SAP ARIBA) werden einige Zugriffe direkt von der Applikation durchgeführt und nicht vom Browser des Benutzers. Diese APIs werden zusätzlich zur HTML Oberfläche des Shops bereitgestellt und seit durch die eProcurement Anwendungen standardisiert.

APIs für die BaseShop App

Zusätzlich zu standardisierten APIs für cXML, OCI, etc. stellt die Base Shop Applikation auch APIs für die iOS bzw. Android App bereit, die der Kunde parallel zur Weboberfläche des Shops benutzen kann, um z.B. Bestellungen durch Scannen von Produkten zu bestellen oder den Status von Bestellungen zu ändern (z.B. im Rahmen eines Freigabe Workflows).

Admin Backend

Parallel zum Frontend des Online-Shops gibt es eine administrative Applikation, die bei allen Shops in identischer Form eingesetzt und nur für den jeweiligen Fall parametrisiert wird. Auch diese Applikation kann also - wie die BaseShop Applikation - im Rahmen von SaaS regelmäßig weiterentwickelt und aktualisiert werden.

Das Admin Backend erlaubt die Steuerung des Shops bzw. die Auftragsbearbeitung, sofern Aufträge nicht in ein nachgelagertes ERP System weitergeleitet werden. In der Praxis wird auch Produktanlage und Preiswartung nicht im Admin Backend zu erfolgen, sondern entweder durch ein angebundenes ERP erfolgen oder durch Import dieser Daten aus Produktkatalogen auf Excel oder BMECat Basis erfolgen.

Für eine solche ERP Anbindung kann die ERP Proxy Applikation verwendet werden, die im Netzwerk des ERP Systems auf einer Windows Maschine läuft und lokal Datei- (z.B. Bilder, Rechnung-PDFs, Sicherheitsdatenblätter) und Datenbankanbindungen (z.B. Kundendaten, Artikeldaten) vornimmt und diese Daten standardisiert an das API des Shops weitergibt.

Background Jobs

Zusätzlich zum Shop und dem Admin Backend laufen am Shop Server eine Reihe an Hintergrund Jobs im Zeitscheibenverfahren (z.B. alle 5 Minuten, alle 24 Stunden, etc.). Die Aufgaben erfüllen Aufgaben, deren Laufzeit die Abarbeitung im Shop nicht beeinflussen sollen.

Die Jobs sind als Kommandozeilenprogramme realisiert, die über den Windows Taskplaner (CRON) gestartet werden.

Typische Beispiele für diese Jobs sind das Service zum Abarbeiten der Mailqueue und das Service zum regelmäßigen aktualisieren des Suchindizes.

Viele Jobs wurden in den letzten Releases in Workflow Aktionen übernommen, da Steuerung und Protokolleinsicht dann über das Admin Backend stattfinden können.

Implementierung als Marktplatz

Mehrere Shops können auf einer Serverplattform nebeneinander installiert werden.

Mehrere Verkaufskanäle pro Shop

Ein Shop kann mehrere Verkaufskanäle anbieten und dafür unterschiedliche Oberflächen und Sortimente anbieten. Unterschiedliche Oberflächen können mit dem Multishop Feature realisiert werden, das abhängig von der Domäne, der Einsprungadresse (z.B. https://www.shop.com/subshop) oder der Kundengruppe einer Anmeldung die Einstellungen des Shops verändert. Unterschiedliche Sortimente können durch kundenspezifische Preise, Black- und Whitelists realisiert werden. Ein Shop hat aber immer einen Kundenstamm, den sich alle Multishops teilen. Auch das Admin Backend greift auf alle Multishops parallel zu und sieht alle Bestellungen. Dieses Feature entspricht nicht einem Multi-Mandanten System, das innerhalb einer Softwareinstallation mehrere komplett getrennte Shops abwickelt.

Paralleler Betrieb mehrerer getrennter Shops

Um mehrere komplett getrennte Shops zu implementieren, kann die Applikation mehrfach nebeneinander installiert werden. Die Installation erfolgt durch

  • XCOPY Deployment durch kopieren einer Grundversion in ein neues Applikationsverzeichnis

  • Erstellen einer neuen Shop Datenbank durch Einspielen eines Dumps einer Grundversion

  • Anpassen der Konfigurationsdatei für die Shop Datenbank

  • Anlegen einer Site im Internet Information Server Manager

Für die automatische Provisionierung eines neuen Shops können Scripts verwendet werden, die vom Serveradministrator oder über ein Webinterface angestoßen werden. Die entstehenden Instanzen sind unabhängige Installationen, die getrennt verändert werden können.

Wiederverkauf in Shops eines Marktplatzes

Der Marktplatz bietet Shops in der oben beschriebenen Form in SaaS Lizenzierung an, d.h. als laufende Instanz inklusive des Betriebs auf einer geeigneten Serverplattform.

Zusätzlich zum Betrieb mehrerer Shops für unterschiedliche Betreiber bietet der Markplatz auch die Möglichkeit an, Sortimente anderer Shops des Marktplatzes den eigenen Kunden anzubieten. Dazu können Sortimente zwischen den Shop Datenbanken synchronisiert werden.

  • Artikel können automatisch angelegt und danach aktualisiert werden,

  • Kundenpreise aufgrund von Regeln automatisch kalkuliert werden,

  • Produktbundles aus synchronisierten und Shop-eigenen Produkten gebildet werden und

  • Aufträge mit diesen Produkte an den Shop des ursprünglichen Anbieters weitergegeben werden.

Dabei werden nur die Teile weitergegeben, die synchronisierte Produkte enthalten - selbst wenn der Kunde ein Bundle aus synchronisierten und Shop-eigenen Produkten kauft. Ob der Teilauftrag als Wiederverkäufer mit Direktlieferung oder Anlieferung zum Shop-Betreiber für den gemeinsamen Versand oder gegen Verrechnung einer Verkaufsprovision weitergegeben wird, sind Parameter der Synchronisation und kann pro synchronisiertem Sortiment gewählt werden.

Die Synchronisation der Datenbanken kann als zusätzliches Service auf dem Marktplatz gebucht werden. Shop Betreiber müssen dazu vertraglich in Kontakt treten.

Angebot der Sortimente im gemeinsamen Marktplatz

Um die Abstimmung im obigen Modell zwischen Shop Betreibern zu erleichtern, bietet der einzelne Marktplatz die Möglichkeit, die Produkte in den gemeinsamen Marktplatz zu synchronisieren. Der Marktplatz ist eine weitere Shop Instanz, die von in Einkaufsprojekte übernommen wird und die für die Betreiber von Shops einen weiteren Verkaufskanal darstellt.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.