Zum Inhalt springen

OmniSeller:SW6 Plugin: Unterschied zwischen den Versionen

MH (Diskussion | Beiträge)
Korrekturlauf Teil 2: Markup-Reste, abgebrochene Saetze und Doppelungen bereinigt
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
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;" border="1" cellspacing="1" cellpadding="1"
{{{!}} style="width: 500px; height: 604px;" border="1" cellspacing="1" cellpadding="1"
{{!}}-  
{{!}}- style="height: 28px;"
{{!}} style="width: 102px;" {{!}} Route
{{!}} style="width: 103.271px; height: 28px;" {{!}} Route
{{!}} style="width: 385px;" {{!}} /api/v3/omniseller/b2bprices
{{!}} style="width: 389.729px; height: 28px;" {{!}} /api/v3/omniseller/b2bprices
{{!}}-  
{{!}}- style="height: 28px;"
{{!}} style="width: 102px;" {{!}} Request-Tpye
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Type
{{!}} style="width: 385px;" {{!}} POST
{{!}} style="width: 389.729px; height: 28px;" {{!}} POST
{{!}}-  
{{!}}- style="height: 362px;"
{{!}} style="width: 102px;" {{!}} Request-Json
{{!}} style="width: 103.271px; height: 362px;" {{!}} Request-Json
{{!}} style="width: 385px;" {{!}} <div>[</div>
{{!}} style="width: 389.729px; height: 362px;" {{!}} <div>[</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp;{<br>&nbsp; &nbsp; &nbsp; &nbsp; "Company": "123",<br>&nbsp; &nbsp; &nbsp; &nbsp; "CustID": "D12345",</div>
<div>&nbsp; &nbsp;&nbsp; {<br>&nbsp; &nbsp; &nbsp; &nbsp; "Company": "123",<br>&nbsp; &nbsp; &nbsp; &nbsp; "CustID": "D12345",</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "Email":"example@htk.de",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Item": "08154711",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Variation": "0",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Ref": "",</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "Email":"example@htk.de",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Item": "08154711",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Variation": "0",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Ref": "",</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "AbMenge":"0",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Price": "123,45",</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "AbMenge":"0",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Price": "123,45",</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "Discount": "10,00",</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "Discount": "10,00",</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"IsBruttoPrice": true,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "IsBruttoPrice": true,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"AllowDiscount": true,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "AllowDiscount": true,</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"UploadID": 1234657890<br>&nbsp; &nbsp; }</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "UploadID": 1234657890<br>&nbsp; &nbsp; }</div>
<div>]</div>
<div>]</div>
{{!}}-  
{{!}}- style="height: 158px;"
{{!}} style="width: 102px;" {{!}} Response-Json
{{!}} style="width: 103.271px; height: 158px;" {{!}} Response-Json
{{!}} style="width: 385px;" {{!}} <div>{</div>
{{!}} style="width: 389.729px; height: 158px;" {{!}} <div>{</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;"status":&nbsp;"FINISHED",</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;"status":&nbsp;"FINISHED",</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;"successful":&nbsp;1,</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;"successful":&nbsp;1,</div>
Zeile 102: Zeile 102:
<div>&nbsp;&nbsp;&nbsp;&nbsp;"errors":&nbsp;0</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;"errors":&nbsp;0</div>
<div>}</div>
<div>}</div>
{{!}}-
{{!}} style="width: 102px;" {{!}} <br>
{{!}} style="width: 385px;" {{!}} <div><br></div>
{{!}}}
{{!}}}
&nbsp;
&nbsp;


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
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;" border="1" cellspacing="1" cellpadding="1"
{{{!}} style="width: 500px; height: 197px;" border="1" cellspacing="1" cellpadding="1"
{{!}}-  
{{!}}- style="height: 28px;"
{{!}} style="width: 102px;" {{!}} Route
{{!}} style="width: 103.271px; height: 28px;" {{!}} Route
{{!}} style="width: 385px;" {{!}} /api/v3/omniseller/b2bpricesdeleteold
{{!}} style="width: 389.729px; height: 28px;" {{!}} /api/v3/omniseller/b2bpricesdeleteold
{{!}}-  
{{!}}- style="height: 28px;"
{{!}} style="width: 102px;" {{!}} Request-Tpye
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Type
{{!}} style="width: 385px;" {{!}} POST
{{!}} style="width: 389.729px; height: 28px;" {{!}} POST
{{!}}-  
{{!}}- style="height: 28px;"
{{!}} style="width: 102px;" {{!}} Request-Json
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Body
{{!}} style="width: 385px;" {{!}} &nbsp;
{{!}} style="width: 389.729px; height: 28px;" {{!}} "1234567890"
{{!}}-  
{{!}}- style="height: 113px;"
{{!}} style="width: 102px;" {{!}} Response-Json
{{!}} style="width: 103.271px; height: 113px;" {{!}} Response-Json
{{!}} style="width: 385px;" {{!}} <div><div>{</div>
{{!}} style="width: 389.729px; height: 113px;" {{!}} <div><div>{</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "message":"Es wurden xx Einträge gelöscht",</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "message":"Es wurden xx Einträge gelöscht",</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "success":true</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; "success":true</div>
Zeile 136: 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
{{!}}-  
{{!}}-  
{{!}} style="width: 102px;" {{!}} Request-Json
{{!}} style="width: 102px;" {{!}} Request-Json
{{!}} style="width: 385px;" {{!}} <div>[{<br>&nbsp; &nbsp; &nbsp; &nbsp; "Company": "123",<br>&nbsp; &nbsp; &nbsp; &nbsp; "CustID": "D12345",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Item": "08154711",<br>&nbsp; &nbsp; &nbsp; &nbsp; "Variation": "0"<br>&nbsp; &nbsp; }</div>
{{!}} style="width: 385px;" {{!}} <div>[&nbsp; &nbsp; &nbsp;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp;{<br>&nbsp; &nbsp;&nbsp; "Company": "123",<br>&nbsp; &nbsp;&nbsp; "CustID": "D12345",<br>&nbsp; &nbsp;&nbsp; "Item": "08154711",<br>&nbsp; &nbsp;&nbsp; "Variation": "0"<br>&nbsp; &nbsp; }</div>
<div>]</div>
<div>]</div>
{{!}}-  
{{!}}-  
{{!}} style="width: 102px;" {{!}} Response-Json
{{!}} style="width: 102px;" {{!}} Response-Json
{{!}} style="width: 385px;" {{!}} <div>{</div>
{{!}} style="width: 385px;" {{!}} <div>{</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;"status":&nbsp;"FINISHED",</div>
<div>&nbsp;&nbsp;&nbsp; "status":"FINISHED",</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;"successful":&nbsp;1,</div>
<div>&nbsp;&nbsp;&nbsp; "successful":1,</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;"errors":&nbsp;0,</div>
<div>&nbsp;&nbsp;&nbsp; "errors":0,</div>
<div>&nbsp; &nbsp; "deleted":1</div>
<div>&nbsp; &nbsp; "deleted":1</div>
<div>}</div>
<div>}</div>
Zeile 164: 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 183: 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>