Zum Inhalt springen

OmniSeller:SW6 Plugin: Unterschied zwischen den Versionen

Aus HTK Wiki
MH (Diskussion | Beiträge)
Korrekturlauf: Rechtschreibung, Grammatik und Stil ueberarbeitet
Zeile 2: Zeile 2:
<div class="mw-parser-output">
<div class="mw-parser-output">
<div class="mw-parser-output">
<div class="mw-parser-output">
== das OmniSeller Plugin für Zusatzfunktionen in Shopware6 ==
== Das OmniSeller Plugin für Zusatzfunktionen in Shopware6 ==
<div class="mw-parser-output">
<div class="mw-parser-output">
=== Hintergründe ===
=== Hintergründe ===
<div>Uns erreichen zunehmend Anfragen zur Ausleitung von bestimmten Sage100/ERP Daten in Richtung Shopware, um dort zusätzliche Funktionen &nbsp;wie z.B. Kundenstamm-Import, kundenspezifische Preise oder Erstellungsmöglichkeiten von Verkaufsstatistiken abbilden zu können.</div> <div>&nbsp;</div> <div>Dieses Plugin soll ein paar dieser Punkte abbilden.</div> <div>Technisch erweitert dieses Plugin die von Shopware existierende REST-API.</div> <div>Es werden spezifische Endpunkte zur Verfügung gestellt, die dann angesprochen werden können.</div> <div>Eine Übersicht hierzu finden Sie unten.</div> <div>&nbsp;</div> </div> <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
<div>Uns erreichen zunehmend Anfragen zur Ausleitung von bestimmten Sage100/ERP Daten in Richtung Shopware, um dort zusätzliche Funktionen &nbsp;wie z.B. Kundenstamm-Import, kundenspezifische Preise oder Erstellungsmöglichkeiten von Verkaufsstatistiken abbilden zu können.</div> <div>&nbsp;</div> <div>Dieses Plugin soll ein paar dieser Punkte abbilden.</div> <div>Technisch erweitert dieses Plugin die von Shopware bereitgestellte REST-API.</div> <div>Es werden spezifische Endpunkte zur Verfügung gestellt, die dann angesprochen werden können.</div> <div>Eine Übersicht hierzu finden Sie unten.</div> <div>&nbsp;</div> </div> <div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output"><div class="mw-parser-output">
=== Inhalte/API Endpunkte ===
=== Inhalte/API Endpunkte ===


Zeile 15: Zeile 15:
| style="width: 385px;" | /api/oauth/token
| style="width: 385px;" | /api/oauth/token
|-
|-
| style="width: 102px;" | Request-Tpye
| style="width: 102px;" | Request-Type
| style="width: 385px;" | POST
| style="width: 385px;" | POST
|-
|-
Zeile 38: Zeile 38:
| style="width: 385px;" | /api/v3/omniseller/statistik
| style="width: 385px;" | /api/v3/omniseller/statistik
|-
|-
| style="width: 102px;" | Request-Tpye
| style="width: 102px;" | Request-Type
| style="width: 385px;" | POST
| style="width: 385px;" | POST
|-
|-
Zeile 59: Zeile 59:
{{!}} style="width: 385px;" {{!}} /api/v3/omniseller/b2bpricesCheck
{{!}} style="width: 385px;" {{!}} /api/v3/omniseller/b2bpricesCheck
{{!}}-  
{{!}}-  
{{!}} style="width: 102px;" {{!}} Request-Tpye
{{!}} style="width: 102px;" {{!}} Request-Type
{{!}} style="width: 385px;" {{!}} GET
{{!}} style="width: 385px;" {{!}} GET
{{!}}-  
{{!}}-  
Zeile 73: Zeile 73:
&nbsp;
&nbsp;


Anlegen von B2B-Preise
Anlegen von B2B-Preisen


{{{!}} style="width: 500px; height: 604px;" border="1" cellspacing="1" cellpadding="1"
{{{!}} style="width: 500px; height: 604px;" border="1" cellspacing="1" cellpadding="1"
Zeile 80: Zeile 80:
{{!}} style="width: 389.729px; height: 28px;" {{!}} /api/v3/omniseller/b2bprices
{{!}} style="width: 389.729px; height: 28px;" {{!}} /api/v3/omniseller/b2bprices
{{!}}- style="height: 28px;"  
{{!}}- style="height: 28px;"  
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Tpye
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Type
{{!}} style="width: 389.729px; height: 28px;" {{!}} POST
{{!}} style="width: 389.729px; height: 28px;" {{!}} POST
{{!}}- style="height: 362px;"  
{{!}}- style="height: 362px;"  
Zeile 112: Zeile 112:
{{!}} style="width: 389.729px; height: 28px;" {{!}} /api/v3/omniseller/b2bpricesdeleteold
{{!}} style="width: 389.729px; height: 28px;" {{!}} /api/v3/omniseller/b2bpricesdeleteold
{{!}}- style="height: 28px;"  
{{!}}- style="height: 28px;"  
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Tpye
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Type
{{!}} style="width: 389.729px; height: 28px;" {{!}} POST
{{!}} style="width: 389.729px; height: 28px;" {{!}} POST
{{!}}- style="height: 28px;"  
{{!}}- style="height: 28px;"  
Zeile 133: Zeile 133:
{{!}} style="width: 385px;" {{!}} /api/v3/omniseller/b2bpricesDeleteSpecific
{{!}} style="width: 385px;" {{!}} /api/v3/omniseller/b2bpricesDeleteSpecific
{{!}}-  
{{!}}-  
{{!}} style="width: 102px;" {{!}} Request-Tpye
{{!}} style="width: 102px;" {{!}} Request-Type
{{!}} style="width: 385px;" {{!}} POST
{{!}} style="width: 385px;" {{!}} POST
{{!}}-  
{{!}}-  
Zeile 162: Zeile 162:
| style="width: 385px;" | /api/v3/omniseller/customersImport
| style="width: 385px;" | /api/v3/omniseller/customersImport
|-
|-
| style="width: 102px;" | Request-Tpye
| style="width: 102px;" | Request-Type
| style="width: 385px;" | POST
| style="width: 385px;" | POST
|-
|-
Zeile 181: Zeile 181:
<div class="mw-parser-output">
<div class="mw-parser-output">
= Installation =
= Installation =
<div>Da das Plugin in dieser Form (noch) nicht im Shopware Store existiert muss dieses manuell über das Shopware Backend installiert werden.</div> <div>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.</div> <div>Bei älteren Shopware6 Versionen ist das Prinzip das gleiche, nur ist die Plugin Seite links im Menü unter Einstellungen->System->Plugins zu finden.</div> </div></div>
<div>Da das Plugin in dieser Form (noch) nicht im Shopware Store existiert, muss dieses manuell über das Shopware Backend installiert werden.</div> <div>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.</div> <div>Bei älteren Shopware6 Versionen ist das Prinzip das gleiche, nur ist die Plugin Seite links im Menü unter Einstellungen->System->Plugins zu finden.</div> </div></div>

Version vom 25. August 2026, 06:15 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. 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.