1.348
Bearbeitungen
MH (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
MH (Diskussion | Beiträge) |
||
| (13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
<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 wie z.B. Kundenstamm-Import, kundenspezifische Preise oder Erstellungsmöglichkeiten von Verkaufsstatistiken abbilden zu können.</div> <div> </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> </div> </div> | <div>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.</div> <div> </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> </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 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 36: | Zeile 31: | ||
| | ||
==== Statistik Import | ==== Statistik Import ==== | ||
{| border="1" cellpadding="1" cellspacing="1" style="width: 500px;" | {| border="1" cellpadding="1" cellspacing="1" style="width: 500px;" | ||
| Zeile 54: | Zeile 49: | ||
| | ||
<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 class="mw-parser-output"> | |||
==== B2BPreise ==== | |||
einfacher Request für Versionserfragung und Test ob Plugin installiert/aktiv | |||
{{{!}} style="width: 500px;" border="1" cellspacing="1" cellpadding="1" | |||
{{!}}- | |||
{{!}} style="width: 102px;" {{!}} Route | |||
{{!}} style="width: 385px;" {{!}} /api/v3/omniseller/b2bpricesCheck | |||
{{!}}- | |||
{{!}} style="width: 102px;" {{!}} Request-Tpye | |||
{{!}} style="width: 385px;" {{!}} GET | |||
{{!}}- | |||
{{!}} style="width: 102px;" {{!}} Request-Json | |||
{{!}} style="width: 385px;" {{!}} | |||
{{!}}- | |||
{{!}} style="width: 102px;" {{!}} Response-Json | |||
{{!}} style="width: 385px;" {{!}} <div><div>{</div> | |||
<div> "Installation": "OK",</div> | |||
<div> "version": "1.0.2"</div> | |||
<div>}</div></div> | |||
{{!}}} | |||
| |||
Anlegen von B2B-Preise | Anlegen von B2B-Preise | ||
{ | {{{!}} style="width: 500px; height: 604px;" border="1" cellspacing="1" cellpadding="1" | ||
{{!}}- style="height: 28px;" | |||
{{!}} style="width: 103.271px; height: 28px;" {{!}} Route | |||
{{!}} style="width: 389.729px; height: 28px;" {{!}} /api/v3/omniseller/b2bprices | |||
{{!}}- style="height: 28px;" | |||
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Tpye | |||
{{!}} style="width: 389.729px; height: 28px;" {{!}} POST | |||
{{!}}- style="height: 362px;" | |||
{{!}} style="width: 103.271px; height: 362px;" {{!}} Request-Json | |||
{{!}} style="width: 389.729px; height: 362px;" {{!}} <div>[</div> | |||
<div> {<br> "Company": "123",<br> "CustID": "D12345",</div> | |||
<div> "Email":"example@htk.de",<br> "Item": "08154711",<br> "Variation": "0",<br> "Ref": "",</div> | |||
<div> "AbMenge":"0",<br> "Price": "123,45",</div> | |||
<div> "Discount": "10,00",</div> | |||
<div> "IsBruttoPrice": true,</div> | |||
<div> "AllowDiscount": true,</div> | |||
<div> "UploadID": 1234657890<br> }</div> | |||
<div>]</div> | |||
{{!}}- style="height: 158px;" | |||
{{!}} style="width: 103.271px; height: 158px;" {{!}} Response-Json | |||
{{!}} style="width: 389.729px; height: 158px;" {{!}} <div>{</div> | |||
<div> "status": "FINISHED",</div> | |||
<div> "successful": 1,</div> | |||
<div> "inserts": 0,</div> | |||
<div> "updates": 1,</div> | |||
<div> "errors": 0</div> | |||
<div>}</div> | |||
{{!}}} | |||
| |||
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 | |||
{{{!}} style="width: 500px; height: 197px;" border="1" cellspacing="1" cellpadding="1" | |||
{{!}}- style="height: 28px;" | |||
{{!}} style="width: 103.271px; height: 28px;" {{!}} Route | |||
{{!}} style="width: 389.729px; height: 28px;" {{!}} /api/v3/omniseller/b2bpricesdeleteold | |||
{{!}}- style="height: 28px;" | |||
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Tpye | |||
{{!}} style="width: 389.729px; height: 28px;" {{!}} POST | |||
{{!}}- style="height: 28px;" | |||
{{!}} style="width: 103.271px; height: 28px;" {{!}} Request-Body | |||
{{!}} style="width: 389.729px; height: 28px;" {{!}} "1234567890" | |||
{{!}}- style="height: 113px;" | |||
{{!}} style="width: 103.271px; height: 113px;" {{!}} Response-Json | |||
{{!}} style="width: 389.729px; height: 113px;" {{!}} <div><div>{</div> | |||
<div> "message":"Es wurden xx Einträge gelöscht",</div> | |||
<div> "success":true</div> | |||
<div>}</div></div> | |||
{{!}}} | |||
| | ||
Es können auch gezielt einzelne Preise gelöscht werden: | |||
{{{!}} style="width: 500px;" border="1" cellspacing="1" cellpadding="1" | |||
{{!}}- | |||
{{!}} style="width: 102px;" {{!}} Route | |||
{{!}} style="width: 385px;" {{!}} /api/v3/omniseller/b2bpricesDeleteSpecific | |||
{{!}}- | |||
{{!}} style="width: 102px;" {{!}} Request-Tpye | |||
{{!}} style="width: 385px;" {{!}} POST | |||
{{!}}- | |||
{{!}} style="width: 102px;" {{!}} Request-Json | |||
{{!}} style="width: 385px;" {{!}} <div>[ </div> | |||
<div> {<br> "Company": "123",<br> "CustID": "D12345",<br> "Item": "08154711",<br> "Variation": "0"<br> }</div> | |||
<div>]</div> | |||
{{!}}- | |||
{{!}} style="width: 102px;" {{!}} Response-Json | |||
{{!}} style="width: 385px;" {{!}} <div>{</div> | |||
<div> "status":"FINISHED",</div> | |||
<div> "successful":1,</div> | |||
<div> "errors":0,</div> | |||
<div> "deleted":1</div> | |||
<div>}</div> | |||
{{!}}- | |||
{{!}} style="width: 102px;" {{!}} | |||
{{!}} style="width: 385px;" {{!}} | |||
{{!}}} | |||
| | ||
<div class="mw-parser-output"> </div> | |||
==== Kundenimport ==== | |||
{| border="1" cellpadding="1" cellspacing="1" style="width: 500px;" | {| border="1" cellpadding="1" cellspacing="1" style="width: 500px;" | ||
|- | |- | ||
| style="width: 102px;" | Route | | style="width: 102px;" | Route | ||
| style="width: 385px;" | /api/v3/omniseller/ | | style="width: 385px;" | /api/v3/omniseller/customersImport | ||
|- | |- | ||
| style="width: 102px;" | Request-Tpye | | style="width: 102px;" | Request-Tpye | ||
| Zeile 108: | Zeile 166: | ||
|- | |- | ||
| style="width: 102px;" | Request-Json | | style="width: 102px;" | Request-Json | ||
| style="width: 385px;" | <div>[{<br/> " | | style="width: 385px;" | <div><div>[{<br/> "Kto_Aktiv":"1",<br/> "Kto":"D10000",<br/> "AdressID":"12345",<br/> "EUUStID":"DE 12345677",<br/> "EULand":"DE",<br/> "Sprache":"DE",<br/> "Rabattgruppe":"R1",<br/> "Rabattsatz":"20", <br/> "Istgesperrt":0,<br/> "Zahlungskondition":"Vorkasse", <br/> "Vertreter":"",<br/> "Adressgruppe":"",<br/> "Ansprechpartner_Nummer":"123546", <br/> "EMail":"mh@htk.de",<br/> "Anrede":"Herr",<br/> "Ansprechpartner":"",<br/> "Vorname":"Marvin",<br/> "Nachname":"Harant",<br/> "Typ":"L",<br/> "Name1":"",<br/> "Name2":"",<br/> "Lieferstrasse":"In der Nauroth 2",<br/> "LieferPLZ":"67158",<br/> "LieferOrt":"Ellerstadt",<br/> "Lieferzusatz":"",<br/> "Lieferland":"DE",<br/> "Telefon":"06237 306010",<br/> "Telefax":""</div> <div>}</div> <div>]</div> </div> | ||
|- | |- | ||
| style="width: 102px;" | Response-Json | | style="width: 102px;" | Response-Json | ||
| style="width: 385px;" | <div>{</div> <div> "status": "FINISHED",</div> <div> "successful": 1,</div> <div> " | | style="width: 385px;" | <div>{</div> <div> "status": "FINISHED",</div> <div> "successful": 1,</div> <div> "inserts":10,</div> <div> "updates":2, </div> <div> "errors": 0</div> <div>}</div> | ||
|- | |- | ||
| style="width: 102px;" | | | style="width: 102px;" | | ||
| style="width: 385px;" | | | style="width: 385px;" | | ||
|} | |} | ||
</div> </div> </div> | |||
| |||
<div class="mw-parser-output"> | |||
<div class="mw-parser-output"> | |||
<div class="mw-parser-output"> | |||
= 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> | |||