Note |
---|
Die Funktion Warenkorb wird als separate Lizenz-Option angeboten. Einfache Bestell-Rückmeldungen (ohne Berechnungen, Rabatte, Gebinde, ...) ans VinX-System müssen direkt über Online-Tabellen übermittelt werden. |
Für Shop-Anbindungen kann ein ganzer Warenkorb gerechnet, und mit derselben Schnittstelle auch als Bestellung übermittelt werden. die Datenstruktur sieht wie folgt aus:
Drawio | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Als Wurzelelement steht der Warenkorb, dem die Positionen angehängt sind. Auf dem Warenkorb, wie auch der Position, kann ein Rabatt ausgegeben werden, dieser kann aber nicht übersteuert werden (Output only). Das selbe gilt für die Gebinde-Position.
...
Feld | Funktion | Richtung | Format | Bemerkungen | ||||
---|---|---|---|---|---|---|---|---|
Anzahl | Menge des Gebinde | O | number[20,4] | |||||
GebindeArtikelID | Id des Gebinde-Artikel | O | key | Ref nach ../Artikel | ||||
MWSTProzentArtikel | dito Position | O | number[20,4] | Gebinde ist in VinX immer 0.0 | ||||
MWSTProzentInPreis | dito Position | O | number[20,4] | Gebinde ist in VinX immer 0.0 | ||||
PreisExkl | Preis des Gebinde-Artikel exkl. MWST | O | number[20,4] | PreisInkl | dito inkl. | O | number[20,4][20,4] | |
PreisInkl | dito inkl. | O | number[20,4] |
Umgang mit Promocodes, Gutscheinen etc.
VinX unterstützt aktuell die Verwaltung von Promocodes, Gutscheinen, Einmalrabatten etc. nicht. Der Grund ist die enorme Vielvalt der Rabatt- und Aktionsmöglichkeiten, die nicht in einer allgmeinen Schnittstelle sinnvoll abgebildet werden können.
In der Warenkorbschnittstelle können diese Funktionalitäten aber ins VinX übergeben werden, wenn der Shop diese verwalten kann. Dazu muss wie folgt vorgegangen werden:
- Im Shop müssen die Spezialkonditionen, Aktionen, Gutscheine etc. verwaltet werden.
- Im VinX muss für die Fibu, Kostenrechnung oder Nachkalkulation je nach Anforderungen mindetstens ein Promo-Artikel angelegt werden. Dieser muss dem Shop bekannt sein, analog zu den Versandkosten.
- Wird ein Rabatt eingelöst, muss der Shop wie folgt vorgehen:
- Der Warenkorb muss im Modus "nur berechnen" übermittelt werden (Flag WarenkorbAktion = 10)
- Rabatte bestimmen, Z.b. Fixpreis-Promo, z.B. 20.- ab 100.- Bestellwert:
- Im Warenkorb ist eine neue Bestellposition hinzuzufügen, die
- als Artikel den obigen Promoartikel hat
- als Preis den negative Rabatt hat, im Beispiel hier wären das -20.-
- in der Preisregel (Feld PreisErmittlung) muss 55 sein. Damit macht der Warenkorb keine Neuberechnung des Preises.
- Der Warenkorb wird normal übermittelt (Flag WarenkorbAktion = 20)
Vorgehen Adressen
Bestellung als Gast
...
Optional: OnlineLieferadresse, OnlineRechnungsadresse
...
Mutation bei einer Adresse mit Login
Eine Änderung einer OnlineAdresse (Hauptadresse) sollte im VinX mitgeteilt werden. Für optionale OnlineLiefer- und OnlineRechnungs-adressen Adressen ist dies nicht nötig.
Dazu kann bei der Übernahme einer Bestellung (WarenkorbAktion 20) auf der OnlineAdresse zusätzlich das Attribut EintragTyp mit dem Wert 6 mitgegeben werden.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
--Aufruf: { "WarenkorbAktion": 10, "ExterneID": "123", "FremdsystemID": 1, "WarenkorbPosition": [ { "ID": 1, "ArtikelID": 3889, "Anzahl": 10 }, { "ID": 2, "Anzahl": 1, "ArtikelID": 700, "EinzelPreisInkl": 15.0, "PreisErmittlung": 55 }, { "ID": 3, "Anzahl": -1, "ArtikelID": 2035, "EinzelPreisInkl": 5.0, "PreisErmittlung": 55 } ], "OnlineLieferAdresse": [ { "Name": "LA" } ] } --Antwort: { "ID": null, "BereichID": null, "AdresseID": null, "ExterneID": "123", "FremdsystemID": 1, "Hinweis": null, "InklMWST": true, "KundenkonditionID": null, "LieferAdresseID": null, "Lieferdatum": null, "OnlineAdresseID": null, "OnlineLieferAdresseID": null, "OnlineRechnungsAdresseID": null, "PreisgruppeID": 2, "RechnungsAdresseID": null, "SaferPayBetrag": null, "SaferPayID": null, "SaferPayToken": null, "TotalBetragNettoExkl": 31.37, "TotalBetragNettoInkl": 33, "ZahlungswegKarteID": null, "WarenkorbAktion": 10, "LieferbedingungID": null, "ZahlungskonditionID": null, "OnlineLieferAdresse": [ { "ID": null, "DatumErfassung": "2019-04-29T00:00:00.000Z", "Eintragtyp": 1, "LandID": 1, "OnlineAktiv": false, "OnlineMailIstVerifiziert": false, "OnlinePasswortIstGeaendert": false, "Verarbeitet": false, "Name": "LA" } ], "WarenkorbPosition": [ { "ID": 1, "Anzahl": 10, "ArtikelID": 3889, "Bezeichnung": "Coca-Cola 6-Pack 1.5 L PET EW", "EinzelPreisExkl": 2.24, "EinzelPreisInkl": 2.3, "MWSTProzentArtikel": 2.5, "MWSTProzentInPreis": 2.5, "PreisErmittlung": null, "TotalBetragNettoExkl": 22.44, "TotalBetragNettoInkl": 23, "AnzahlAbzug": 0, "GebuehrenArtikelID": null, "BetragGebuehrenExkl": 0, "BetragGebuehrenInkl": 0, "WarenkorbRabatt": [], "WarenkorbGebindePosition": [ { "Anzahl": 1, "GebindeArtikelID": "50009", "MWSTProzentArtikel": 0, "MWSTProzentInPreis": 0, "PreisExkl": 0, "PreisInkl": 0 } ] }, { "ID": 2, "Anzahl": 1, "ArtikelID": "700", "Bezeichnung": "Lieferbeitrag Fr. 5.- (da Warenwert unter Fr. 100.-)Versandkosten", "EinzelPreisExkl": "13.93", "EinzelPreisInkl": "15", "MWSTProzentArtikel": 7.7, "MWSTProzentInPreis": 7.7, "PreisErmittlung": "55", "TotalBetragNettoExkl": "13.93", "TotalBetragNettoInkl": "15", "AnzahlAbzug": "0", "GebuehrenArtikelID": null, "BetragGebuehrenExkl": "0", "BetragGebuehrenInkl": "0", "WarenkorbRabatt": [], "WarenkorbGebindePosition": [ { "Anzahl": 1, "GebindeArtikelID": "", "MWSTProzentArtikel": 0, "MWSTProzentInPreis": 0, "PreisExkl": 0, "PreisInkl": 0 }, { "Anzahl": 1, "GebindeArtikelID": "", "MWSTProzentArtikel": 0, "MWSTProzentInPreis": 0, "PreisExkl": 0, "PreisInkl": 0 } ] }, { "ID": 3, "Anzahl": -1, "ArtikelID": "2035", "Bezeichnung": "SCHÜWO Geschenkgutschein", "EinzelPreisExkl": "5", "EinzelPreisInkl": "5", "MWSTProzentArtikel": 0, "MWSTProzentInPreis": 0, "PreisErmittlung": "55", "TotalBetragNettoExkl": "-5", "TotalBetragNettoInkl": "-5", "AnzahlAbzug": "0", "GebuehrenArtikelID": null, "BetragGebuehrenExkl": "0", "BetragGebuehrenInkl": "0", "WarenkorbRabatt": [], "WarenkorbGebindePosition": [ { "Anzahl": -1, "GebindeArtikelID": "", "MWSTProzentArtikel": 0, "MWSTProzentInPreis": 0, "PreisExkl": 0, "PreisInkl": 0 } ] } ], "OnlineAdresse": [], "WarenkorbRabatt": [] } |
...