OmniSeller:SW6 Plugin: Unterschied zwischen den Versionen
Erscheinungsbild
Admin (Diskussion | Beiträge) Korrekturlauf: Rechtschreibung, Grammatik und Stil ueberarbeitet |
Admin (Diskussion | Beiträge) Korrekturlauf Teil 2: Markup-Reste, abgebrochene Saetze und Doppelungen bereinigt |
||
| Zeile 105: | Zeile 105: | ||
| | ||
Ein Delete Request, der alle Einträge löscht, die eine alte UploadID haben. | Ein Delete Request, der alle Einträge löscht, die eine alte UploadID haben. Er bereinigt alte Einträge unmittelbar nach einer vollständigen B2BPrice-Synchronisation | ||
{{{!}} style="width: 500px; height: 197px;" border="1" cellspacing="1" cellpadding="1" | {{{!}} style="width: 500px; height: 197px;" border="1" cellspacing="1" cellpadding="1" | ||
Aktuelle Version vom 25. August 2026, 06:21 Uhr
Das OmniSeller Plugin für Zusatzfunktionen in Shopware6
Hintergründe
Uns erreichen zunehmend Anfragen zur Ausleitung von bestimmten Sage100/ERP Daten in Richtung Shopware, um dort zusätzliche Funktionen wie z.B. Kundenstamm-Import, kundenspezifische Preise oder Erstellungsmöglichkeiten von Verkaufsstatistiken abbilden zu können.
Dieses Plugin soll ein paar dieser Punkte abbilden.
Technisch erweitert dieses Plugin die von Shopware bereitgestellte REST-API.
Es werden spezifische Endpunkte zur Verfügung gestellt, die dann angesprochen werden können.
Eine Übersicht hierzu finden Sie unten.
Inhalte/API Endpunkte
Shopware API Authentifizierung
| Route | /api/oauth/token |
| Request-Type | POST |
| Request-Json | { "client_id": "administration", "grant_type":"password", "username":"<username>", "password":"<password>" } |
| Response-Json | { "token_type": "Bearer", "expires_in": 600, "access_token": "<Token>", "refresh_token": "<RefreshToken>" } |
Nach der erfolgreichen Authentifizierung wird dann bei den folgenden Endpunkt Requests ein Authorization Header mit "Bearer <Token>" angehängt.
Statistik Import
| Route | /api/v3/omniseller/statistik |
| Request-Type | POST |
| Request-Json | [{ "kunde": "D100000", "periode": "2002003", "mandant": 123, "menge": "10,0000", "umsatz": "77,7900", "roherloes": "77,7900" } ]
|
| Response-Json | { "status": "FINISHED", "successful": 1, "inserts": 0, "updates": 1, "errors": 0 }
|
B2BPreise
einfacher Request für Versionserfragung und Test ob Plugin installiert/aktiv
| Route | /api/v3/omniseller/b2bpricesCheck |
| Request-Type | GET |
| Request-Json | |
| Response-Json | {
"Installation": "OK",
"version": "1.0.2"
} |
Anlegen von B2B-Preisen
| Route | /api/v3/omniseller/b2bprices |
| Request-Type | POST |
| Request-Json | [
{
"Company": "123", "CustID": "D12345", "Email":"example@htk.de",
"Item": "08154711", "Variation": "0", "Ref": "", "AbMenge":"0",
"Price": "123,45", "Discount": "10,00",
"IsBruttoPrice": true,
"AllowDiscount": true,
"UploadID": 1234657890
} ]
|
| Response-Json | {
"status": "FINISHED",
"successful": 1,
"inserts": 0,
"updates": 1,
"errors": 0
}
|
Ein Delete Request, der alle Einträge löscht, die eine alte UploadID haben. Er bereinigt alte Einträge unmittelbar nach einer vollständigen B2BPrice-Synchronisation
| Route | /api/v3/omniseller/b2bpricesdeleteold |
| Request-Type | POST |
| Request-Body | "1234567890" |
| Response-Json | {
"message":"Es wurden xx Einträge gelöscht",
"success":true
} |
Es können auch gezielt einzelne Preise gelöscht werden:
| Route | /api/v3/omniseller/b2bpricesDeleteSpecific |
| Request-Type | POST |
| Request-Json | [
{
"Company": "123", "CustID": "D12345", "Item": "08154711", "Variation": "0" } ]
|
| Response-Json | {
"status":"FINISHED",
"successful":1,
"errors":0,
"deleted":1
}
|
Kundenimport
| Route | /api/v3/omniseller/customersImport |
| Request-Type | POST |
| Request-Json | [{ "Kto_Aktiv":"1", "Kto":"D10000", "AdressID":"12345", "EUUStID":"DE 12345677", "EULand":"DE", "Sprache":"DE", "Rabattgruppe":"R1", "Rabattsatz":"20", "Istgesperrt":0, "Zahlungskondition":"Vorkasse", "Vertreter":"", "Adressgruppe":"", "Ansprechpartner_Nummer":"123546", "EMail":"mh@htk.de", "Anrede":"Herr", "Ansprechpartner":"", "Vorname":"Marvin", "Nachname":"Harant", "Typ":"L", "Name1":"", "Name2":"", "Lieferstrasse":"In der Nauroth 2", "LieferPLZ":"67158", "LieferOrt":"Ellerstadt", "Lieferzusatz":"", "Lieferland":"DE", "Telefon":"06237 306010", "Telefax":"" } ] |
| Response-Json | { "status": "FINISHED", "successful": 1, "inserts":10, "updates":2, "errors": 0 }
|
Installation
Da das Plugin in dieser Form (noch) nicht im Shopware Store existiert, muss dieses manuell über das Shopware Backend installiert werden.
Bei neuen Shopware6 Versionen (6.4+) gibt es links ein Feld "Erweiterungen". Dort kann dann unter "meine Erweiterungen" das Zip File hochgeladen werden. Anschließend über die 3 Punkte installieren und zuletzt aktivieren.
Bei älteren Shopware6 Versionen ist das Prinzip das gleiche, nur ist die Plugin Seite links im Menü unter Einstellungen->System->Plugins zu finden.