Wie Sie Ihren Commerce Connector erstellen
Apr. 13, 2021
--
How to write your own eCommerce connector 2700x740

Wie Sie Ihren Commerce Connector erstellen

Für einen Einzelhändler ist ein Commerce-System in der Regel eine der wichtigsten Komponenten seiner Digital Experience Platform (DXP). Magnolia bietet nicht nur flexible APIs und sofort einsatzbereite Konnektoren in seinem Connector Pack for Commerce, sondern ermöglicht Ihnen auch die Integration jedes modernen Commerce-Systems in Ihren DX-Stack. In diesem Artikel werden verschiedene Optionen zur Einrichtung einer benutzerdefinierten Integration vorgestellt.

Voraussetzungen

Unsere Dokumentation erklärt die Grundlagen der Integration von Commerce-Systemen mit Magnolia - von der Erstellung Ihres eigenen Maven-Moduls über die Implementierung von Datenlieferanten bis hin zum Hinzufügen von Warenkorb- und Checkout-Funktionen. Heute zeigen wir Ihnen Best Practices, wie Sie Ihre Commerce-Integration angehen können, und zeigen Ihnen, was Sie von unserer API standardmäßig erhalten.

Schritt 1: Kenne deinen Feind

Es ist gut, wenn man das Handelssystem insgesamt kennt, bevor man eine Integration beginnt. Aus diesem Grund machen wir uns in der Regel zu Beginn eines Projekts mit dem System vertraut.

Das Sammeln aller relevanten Links zur Dokumentation Ihrer Handelslösung und das Erlernen ihrer Verwendung kann während der Implementierung sehr wertvoll sein und Ihnen Zeit bei der Programmierung sparen.

Auf diese Weise habe ich einmal einen neuen, nicht dokumentierten REST-Endpunkt gefunden und verwendet, der die von uns benötigte Funktionalität bot.

Magnolia Connector Packs

Connector packs natively extend Magnolia into your other core digital systems. You get blueprints for easy integration, off-the-shelf connectors, and flexibility to change products at any time.

Schritt 2: Verbindung zu Ihrem Handelssystem

Die erste Frage, die Sie bei der Erstellung Ihres Commerce Connectors beantworten müssen, ist die folgende: "Ist es besser, das SDK des Handelssystems, eine REST-API oder einen anderen Weg zum Zugriff auf die Daten zu verwenden?"

Leider gibt es darauf keine einfache Antwort.

Was Sie berücksichtigen müssen, ist die Unterstützung durch Ihren Commerce-Anbieter. Aus Sicht von Magnolia können wir mit verschiedenen Optionen arbeiten. Ein SDK kann einfach als Maven-Abhängigkeit hinzugefügt und direkt von Ihrem Code aus verwendet werden; bei Verwendung einer REST-API können Sie zum Beispiel httpclient von Apache verwenden.

Während SDKs vorgefertigte Beans anbieten, werden REST-API-Daten als JSON oder anderer formatierter Text übertragen, und Sie müssen sich um die Serialisierung und Deserialisierung kümmern, z. B. mit FasterXML/jackson.

Die Verwendung eines SDK wäre oft die bessere Wahl, aber es gibt Ausnahmen. Die Abhängigkeit von Bibliotheken von Drittanbietern kann übergangsweise zu Abhängigkeiten von anderen Bibliotheken führen, die mit Ihrem System in Konflikt stehen, z. B. ältere Versionen oder inkompatible Implementierungen.

Viele Anbieter unterstützen beide Optionen, aber ihre Fähigkeiten können sich unterscheiden. Wählen Sie mit Bedacht, denn es gibt nur wenige Dinge, die schlimmer sind, als herauszufinden, dass ein SDK gut funktioniert, außer für einige Daten oder Funktionen, die Sie benötigen, während Sie mitten in einer Implementierung stecken.

Bevor Sie mit der Programmierung beginnen, empfehlen wir Ihnen, eine einfache Tabelle zu erstellen, in der Sie die Magnolia-Funktionen mit den Zugangspunkten des Handelssystems verknüpfen.

table

Schritt 3: Codieren oder nicht codieren

Je nachdem, was Sie im vorherigen Schritt ausgewählt haben, wählen Sie einen vorgefertigten Konnektor als Referenz. Unser Konnektorprojekt begann zum Beispiel mit der Implementierung von zwei Konnektoren:

Ich habe gute Nachrichten für Sie. In jedem Fall müssen Sie nicht viel programmieren, außer ein paar sorgfältig ausgewählten Methoden:

Java
  /** * Magento Implementierung von {@link Categories.All} */ public class All implements Categories.All { private static final Logger log = LoggerFactory.getLogger(All.class); private static final String ALL_CATEGORIES_PATH = "/rest/V1/categories/list"; private static final String SEARCH_CRITERIA_CURRENT_PAGE_PARAM = "searchCriteria[current_page]"; private final Connection connection; private final MagentoRestClientProvider clientProvider; public All(Connection connection, MagentoRestClientProvider clientProvider) { this.connection = connection; this.clientProvider = clientProvider; } @Override public Stream<? extends Category> fetch() { // Suchkriterien der aktuellen Seite werden benötigt, um alle Kategorien zu erhalten List<NameValuePair> queryParams = Collections.singletonList(new BasicNameValuePair(SEARCH_CRITERIA_CURRENT_PAGE_PARAM, "0")); try { return Optional.ofNullable(clientProvider.createConnection(connection).executeGet(ALL_CATEGORIES_PATH, queryParams, MagentoCategoryList.class).getItems()) .map(Collection::stream) .orElse(Stream.empty()); } catch (IOException | URISyntaxException e) { log.error("Kann nicht alle Kategorien laden", e); clientProvider.closeClient(connection); return Stream.empty(); } }  

Es gibt vier Datenlieferanten für Kategorien und vier Datenlieferanten für Produkte. Sie ermöglichen das Durchsuchen von Kategorien und Produkten in der Magnolia-Commerce-App sowie manuelles oder automatisiertes Produkt-Tagging mithilfe von Textklassifizierungs- oder Bilderkennungsdiensten. Außerdem gibt es einige FreeMarker-Vorlagen, zum Beispiel für Produktlisten, Teaser und Details.

Um die Warenkorb-, Kassen- und Benutzerfunktionen in Magnolia zu nutzen, müssen Sie die entsprechenden Anbieter implementieren. Sie können bei den Anbietern und Methoden, die Sie implementieren, wählerisch sein. Es müssen nicht alle Methoden implementiert werden, wenn sie auf Ihren Seiten nicht benötigt werden. So können Sie zum Beispiel die Benutzerverwaltung implementieren, müssen aber die Kasse nicht implementieren, wenn die Benutzer ihre Bestellungen über ein Formular aufgeben.

Magnolia stellt Ihnen automatisch REST-Endpunkte für die von Ihnen implementierten Anbieter zur Verfügung, so dass Sie deren Funktionalität direkt auf Ihren Seiten nutzen können.

Verknüpfung von Handel und Inhalt

Die Integration Ihrer Commerce- und Content-Systeme ist für den Aufbau eines integrierten Technologie-Stacks von entscheidender Bedeutung. Und wie Sie sehen, ist die Erstellung des Konnektors für Magnolia einfach, wenn Sie wissen, welche Commerce-Funktionen Sie nutzen möchten.

Wenn Sie ein paar Tage in die Einrichtung eines Connectors investieren, kommen Sie Ihrem Traum von einem E-Shop auf einer großartigen Content-Plattform wie Magnolia schon viel näher. Zusammen mit Ihren Content-Autoren, eCommerce-Managern und Frontend-Entwicklern liegt es nur an Ihnen, wie großartig und erfolgreich er sein wird.

Über den autor

Evzen Fochr

Software Engineer, Magnolia

Evžen works as a Software Engineer at Magnolia. He initially specialized on back-end development and the integration of external systems. Nowadays, he focusses on Magnolia’s cloud technologies. Nature and horses help him find balance between his personal life and solving complex problems at work.