- Created by Roger Merz , last modified on Mar 27, 2024
-
Translate page
You are viewing an old version of this content. View the current version.
Compare with Current View Version History
« Previous Version 20 Next »
Einleitung
Das Plugin IntoSymbioConnector stellt eine Schnittstelle zwischen SYMBIOCOMMERCE und Shopware 6.5 bereit und deckt die folgenden Bereiche ab:
Kategorien
Initial Anlage, neue Kategorien, Änderungen (inhaltlich und Baumstruktur), Entfernung
Produkte
Initial Anlage, neue Artikel, Änderungen, Entfernung
Einzel- und Variantenartikel
Einschliesslich Produkt-Media-Dateien
Lagerbestand
Aktualisierung des Lagerbestands aus SYMBIOCOMMERCE
Kunden
Übertragung neu angelegter Kunden inklusive Adressbuch sowie aller folgender Änderungen
Bestellungen
Übertragung neuer Bestellungen
Versandinformationen
Import der Versandinformationen per CSV-Datei und automatische Bestimmung des Bestellstatus (teilweise oder vollständig ausgeliefert) in Shopware.
Inhalt
Installation und Konfiguration
System-Voraussetzungen
Damit unser Plugin korrekt läuft, wird ein shopware konformes aufgesetztes gehostetes Shopware-System vorausgesetzt.
Wir empfehlen ein Managed Shopware Hosting bei einem zertifizierten Shopware Hoster
https://www.shopware.com/de/partner/hosting/
und einer Shopware Agentur, die bei Problemen unterstützen kann.
Zu beachten sind die Systemvoraussetzungen.
https://developer.shopware.com/docs/guides/installation/requirements.html
Auf der Konsole des Hosting Servers müssen auf die sogenannten "CLI" Befehle ohne root-Berechtigungen ausführbar sein.
https://docs.shopware.com/de/shopware-6-de/tutorials-und-faq/shopware-cli
Unser Plugin läuft auf Shopware-Version 6.5.0 bis 6.5.8.2. Neuere Versionen wurden nicht getestet.
Installation
Wir empfehlen, die Installation zu erst auf einer Shopware-Testumgebung, die entsprechend ihrem Live-Shop konfiguriert ist. Somit können in aller Ruhe die Funktionalität und Bestellungen getestet werden.
Das Plugin wird über die Shopware-Admin (Erweiterungen -> Meine Erweiterungen) installiert.
Über die Funktion "Erweiterung hochladen" ist die gelieferte zip-Datei hochzuladen.
Anschliessend ist das Plugin zu installieren und zu aktivieren.
Sollte auf der Configuratrationsseite die Schaltfläche «API Verbindung testen»

nicht sichtbar sein tun sie folgendes:
Wechsel auf die Server Console des Hostingservers. Ausführen des Komandos:
~/html$ bin/build-administration.sh
Damit wird die Administration neu gebaut und die neuen Frontendkomponenten werden nun angeziegt.
Konfiguration
Für die Konfiguration sind die folgenden Einstellungen vorzunehmen:
Zugangsdaten
Ihre Zugangsdaten für das SYMBIOCOMMERCE-API erhalten Sie von Symbionet. Alle Felder sind auszufüllen.
Symbio-API URL: Die URL für das produktive SYMBIOCOMMERCE-System wird von Symbionet vergeben.
Client-id: Name des gewünschten Clients wird von Symbionet vergeben.
Username: Ein gültiger Benutzer des Accounts für den der SYMBIOShop aufgesetzt wurde.
Legen sie auf SYMBIOCOMMERCE in der Benutzerverwaltung ihres Geschäftskontos einen dezidierten Benutzer für den SYMBIOConnector an.
Vergeben sie ihm Administratorrechte. Somit wird verhindert, dass das Passwort ungewollt verändert wird und die Verbindung zu SYMBIOCOMMERCE fehlschlägt.
Client-Secret: Das Client-Secret des Clients, wird von Symbionet vergeben.
Die id des Sales-Group-Channels: Für SYMBIOShop wird die Id 3 verwendet.
Land (ISO-2): Das Land des Kataloges, welchen wir anbinden wollen.
Währung (ISO-3): Die Währung des Kataloges, welchen wir anbinden wollen.

Konfiguration
Hauptkategorie für Symbio-Kategoriebaum: Wählen Sie eine Kategorie aus der Auswahlliste. Welche dies ist, hängt vom Setup Ihres Shops bzw. der verwendeten Verkaufskanäle ab.
Medien-Ordner für Produktbilder: Wählen Sie einen Medienordner aus, in dem die aus SYMBIOCOMMERCE importierten Produktbilder abgelegt werden.
Produkt-Sichtbarkeit - Sales-Channel: Wählen Sie einen Verkaufskanal aus, dem die SYMBIOCOMMERCE-Produkte zugeordnet werden.
Standard-Steuersatz: Wählen Sie einen Steuersatz aus, der den Produkten beim Import zugeordnet wird.
Liste der Bestell- und Zahlungsstatuscodes zur Übertragung: Wählen Sie einen oder mehrere Statuscodes aus, bei deren Auftreten die Übertragung einer Bestellung zu SYMBIOCOMMERCE ausgelöst wird. Einige Statuscodes sind mehrfach vorhanden, stehen aber nicht für das Selbe. Wählen sie am Besten alle von diesen aus.
Bestellexport
Datum, ab wann die Bestellungen übertragen werden sollen.
Verzögerung der Bestellübertragung


Shopware Scheduled-Tasks
Die einzelnen Import- und Export-Funktionen der Schnittstelle werden über Scheduled-Tasks gesteuert. Die dabei bei Plugin-Installation Ausführungsintervalle sind in dieser Tabelle zusammengefasst:
Beschreibung | Technischer Name | Standard-Intervall |
Kategorieupdate | into.symbio_connector.category_sync | 7.200 sec |
Produktupdate | into.symbio_connector.product_sync | 3.600 sec |
Bestellungen übertragen | into.symbio_connector.order_downstream | 300 sec |
Bestandsupdate | into.symbio_connector.stock_sync | 300 sec |
Versandmeldungen | into.symbio_connector.delivery_import | 300 sec |
Eine Änderung der Intervalle oder eine Deaktivierung der Tasks ist zur Zeit nur über die
Bearbeitung der Tabelle scheduled_task in der Shopware-Datenbank möglich.
Empfohlen wird aber das gratis Plugin Tools von Friends Of Shopware.
https://store.shopware.com/frosh12599847132f/tools.html
Synchronisation Sperre
Zwischen 16:00 und 04:00 Uhr (UTC) werden Synchronisationen gesperrt.
Der Export der Kundendaten aus Shopware zu SYMBIOCOMMERCE erfolgt ereignisgesteuert in Echtzeit.
Administration
Kategoriebaum
Eine aus SYMBIOCOMMERCE übernommene Kategorie erkennen Sie in der Administration an den in der Karte Symbio-Daten angezeigten Feldern.
In der Karte Symbio-Daten finden sie die Felder:
Symbio-CategoryId finden Sie die zugehörige CategoryId aus SYMBIOCOMMERCE.
Erzeugt zeigt den Zeitstempel der ersten Übertragung.
Aktualisiert zeigt den Zeitstempel der letzten Aktualisierung.
Prüfsumme enthält die Prüfsumme der zuletzt an SYMBIOCOMMERCE übermittelten Daten.

Produkte und Artikel
Einen aus SYMBIOCOMMERCE übernommenen Artikel (in Shopware als Produkt bezeichnet) erkennen Sie in der Administration an den in der Karte Symbio-Daten angezeigten Feldern und dienen der Identifikation der Produkte und Varianten.
In der Karte Symbio-Daten finden sie die Felder:
SymbioProductId zeigt die ProductId aus SYMBIOCOMMERCE - ist bei Varianten leer.
SymbioArticleId zeigt die ArticleId aus SYMBIOCOMMERCE - ist bei Produkten leer.
SymbioArticleSKU zeigt die SKU des Artikels aus SYMBIOCOMMERCE - ist bei Produkten leer.
Handelt es sich um ein Einzelprodukt (d.h. das Produkt hat keine Varianten), sind alle diese drei Felder gefüllt. Wenn es sich um die Kopfdarstellung eines Variantenprodukts handelt, ist nur das Feld SymbioProductId gefüllt.
Handelt es sich um eine Produktvariante, sind dagegen nur die Felder SymbioArticleId und SymbioArticleSKU gefüllt.
Erzeugt zeigt den Zeitstempel der ersten Übertragung.
Aktualisiert zeigt den Zeitstempel der letzten Aktualisierung.
Prüfsumme enthält die Prüfsumme der zuletzt an SYMBIOCOMMERCE übermittelten Daten.

Media (Produktabbildungen)
Die Produktabbildungen werden bei der Übertragung der Produkte aus SYMBIOCOMMERCE ebenfalls automatisch zu Shopware übertragen. Eine erfolgreich übertragene Produktabbildung erkennen Sie an den Feldern in der Karte Symbio-Daten.
In der Karte Symbio-Daten finden sie die Felder:
SymbioMediaId identifiziert die Produktabbildung in SYMBIOCOMMERCE.
Erzeugt zeigt den Zeitstempel der ersten Übertragung.
Aktualisiert zeigt den Zeitstempel der letzten Aktualisierung.
Prüfsumme enthält die Prüfsumme der zuletzt an SYMBIOCOMMERCE übermittelten Daten.

Kundendaten und Adressen
Kundendaten und Adressen werden nach ihrer Erfassung oder Aktualisierung in Shopware an SYMBIOCOMMERCE übertragen. Eine erfolgreiche Übertragung erkennen Sie in der Administration an den in der Karte Symbio-Daten angezeigten Feldern.
In der Karte Symbio-Daten finden sie die Felder:
SymbioRecipientId identifiziert den Empfänger in SYMBIOCOMMERCE.
SymbioRecipientIdentification identifiziert den Kunden in SYMBIOCOMMERCE.
Erzeugt zeigen den Zeitstempel der ersten Übertragung.
Aktualisiert zeigen den Zeitstempel der letzten Aktualisierung.
Prüfsumme enthält die Prüfsumme der zuletzt an SYMBIOCOMMERCE übermittelten Daten.

Bestellungen
In Shopware getätigte Bestellungen werden dem konfigurierten Intervall entsprechend (Scheduled Task) an SYMBIOCOMMERCE übertragen. Eine erfolgreich übertragene Bestellung erkennen Sie an den Feldern in der Karte Symbio-Daten.
Nachträgliche Änderungen in einer Bestellung werden nicht übertragen.
In der Karte Symbio-Daten finden sie die Felder:
SymbioOrderId identifiziert die Bestellung im SYMBIOCOMMERCE.
SymbioOrderStatus zeigt den von SYMBIOCOMMERCE vergebenen Order-Status an. Dieser sollte in der Regel "APPROVED" sein, wird hier ein anderer Wert gezeigt, so sollte die ordnungsgemässe Verarbeitung der Bestellung in SYMBIOCOMMERCE überprüft werden.
SymbioZeitstempel gibt den Zeitpunkt der Übertragung an SYMBIOCOMMERCE an.
Button 'Auftrag zurücksetzen'
Falls eine Bestellung nicht erfolgreich übertragen wurde, haben Sie die Möglichkeit, die Übertragung zu zurückzusetzen, indem Sie auf den Button 'Auftrag zurücksetzen' klicken. Dadurch wird sichergestellt, dass die Bestellung beim nächsten Übertragungsintervall erneut übermittelt wird.
Im Falle, dass die Bestellung zwar in SYMBIOCOMMERCE erstellt wurde, jedoch die Rückmeldung an den SymbioShop unterbrochen wurde, entsteht bei einer erneuten erfolgreichen Übertragung keine doppelte Bestellung.


Import CSV-Versandmeldungen
Der Import der Versandmeldungen aus dem Kunden ERP erfolgt per CSV-Import. Dabei werden zu jeder Bestellung die übermittelten Trackingcodes und die zugehörigen Lieferpositionen und -mengen importiert. Der Bestellstatus wird entsprechend angepasst auf "teilweise ausgeliefert" bzw. "vollständig ausgeliefert". Die übermittelten Tracking-URLs werden in der Bestellung abgelegt und damit auch dem Kunden in seiner Bestellübersicht angezeigt.
Datentrennzeichen: ; (Semikolon)
Die zu verarbeitenden CSV-Dateien sind ohne Header und enthalten je Packstück eine Zeile mit den folgenden Feldern:
Beschreibung | Datentyp | Bemerkung |
ERP-Auftragsnummer | int | |
ERP-Auftragsposition | int | |
Shop-Aufragsnummer | string | Shopware Bestellnummer |
Shop-Auftragsposition | int | Position in der Shopware-Bestellung |
Menge | int | |
Carrier | string | |
Handling Unit | string | |
Tracking-URL | string |
Die zu importierenden CSV-Dateien sind z.B. per FTP in diesem Verzeichnis abzulegen:
<shopware root>/files/plugins/into_symbio_connector/delivery
Es werden regelmässig alle in diesem Verzeichnis abgelegten Dateien mit der Dateiendung .csv verarbeitet. Nach erfolgreicher Verarbeitung werden die Dateien in das Verzeichnis
<shopware root>/files/plugins/into_symbio_connector/archive/delivery
verschoben.
Verwendete APIs
Connector / SYMBIOCOMMERCE
GET https://{{Host}}/services/product/api/external/v1/categories
GET https://{{Host}}/services/product/api/external/v1/selling-products/channels/{shop-channelId}
POST https://{{Host}}/services/product/api/external/v1/resource-planning/article-availability
POST https://{{Host}}/services/recipient/api/external/v1/addresses/
POST https://{{Host}}/services/recipient/api/external/v1/recipients
PUT https://{{Host}}/services/recipient/api/external/v1/recipients
POST https://{{Host}}/services/order/api/external/v2/order-placement/submit/channel/{channelId}/countryIso/{countryIso}
Troubleshooting
Abgebrochene Message-Verarbeitung
Sollte es bei der Verarbeitung der Messages (z.B. Neuanlage oder Aktualisierung eines Produkts, Übertragung von Bestellungen zu SYMBIOCOMMERCE usw.) zu schwerwiegenden Fehlern kommen, werden diese Messages in die Shopware-Tabelle dead_messages verschoben. Zusätzlich wird in der Spalte exception_message die Fehlerursache beschrieben.
Bereits vorhandene Media-Dateien
Fehlermeldung
An exception occurred while executing 'INSERT INTO
`into_symbio_connector_media_addons` (`id`, `media_id`,
`symbio_id`, `hash`, `created_at`) VALUES (' …
Dieser Fehler entsteht, wenn neue Media-Dateien aus SYMBIOCOMMERCE mehrfach eingelesen werden, bevor sie in Shopware angelegt wurden. Dieser Fehler ist unkritisch und kann ignoriert werden.
Wenn dieser Fehler häufiger auftritt, sollten die Serverressourcen für die Abarbeitung der Message-Queue vergrössert werden.
Bereits vorhandene Produkte
Fehlermeldung
Product with number "xxxxx" already exists.
Dieser Fehler entsteht, wenn neue Produkte aus SYMBIOCOMMERCE mehrfach eingelesen werden, bevor sie in Shopware angelegt wurden. Dieser Fehler ist unkritisch und kann ignoriert werden.
Wenn dieser Fehler häufiger auftritt, sollten die Serverressourcen für die Abarbeitung der Message-Queue vergrössert werden.
Bestellungen
Bestellung wird nicht übertragen
In die Log-Datei von Shopware wird beim Fehlschlagen einer Bestellübertragung eine Fehlermeldung geschrieben.
Darin findet sich dem API-Aufruf mitgegebene Request Body
/services/order/api/external/v2/order-placement/submit/channel/3/countryIso/DE, request body: {"additionalOrderPayload":"{\"88\":0}","billingAddressId":17332,"shippingAddressId":17395,"currency":"EUR","externalMarketplaceReference":null,"externalPaymentReference":null,"externalShopReference":"10001","orderItems":[{"orderPosition":0,"orderQuantity":2,"articleSalesId":196242,"remark":"","salesPriceAbsolute":45,"uid":"MjAz.TUFOVUFMX0lOUFVU.NzAwMDA0NDE0NDQ1NzY3"}],"recipientId":9762,"remark":null,"orderOrigin":""
}
Im zurück gelieferten Response Body finden sich die Meldungen mit den Ursachen des Fehlschlags:
response contents:
"itemErrors\":{\"1\":{\"ITEM\":{\"orderPosition\":1,\"uid\":\"Mw.TUFOVUFMX0lOUFVU.YmwtYS1h\",\"articleSalesId\":196302,\"orderQuantity\":1,\"salesPriceAbs
olute\":10,\"remark\":\"\"},\"ERR_MSG\":\"Der Artikel kann nicht bestellt werden.\"}},\"headerErrors\":{\"9000\":{\"ERR_MSG\":\"Die Bestellung konnte wegen Validierungsfehlern nicht verarbeitet werden.\"}},\"id\":null,\"uuid\":null,\"ownerAccountId\":3,
\"recipientIdentification\":\"d181686a0e304788b29d3b1ed9bc2376\",\"recipientName\":\"Marty McFly\",\"
In itemErrors
sind die Fehler, wenn etwas mit den Artikeln nicht stimmt
In headerErrors
sind allgemeine Fehler, die nicht die Artikel betreffen.
Systembenutzer erstellen
Für die Verwendung der SYMBIOCOMMERCE API ist ein Benutzer mit Administratorenrechten anzulegen.
Einzuloggen ist mit einem Benutzer mit ebenfalls Administratorenrechten.
Der Video zeigt die Schritte dazu.
- No labels