Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Für Shop-Anbindungen kann ein ganzer Warenkorb gerechnet, und mit derselben Schnittstelle auch als Bestellung übermittelt werden. die Datenstruktur sieht wie folgt aus: 

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.

Optional können diverse Adressen mitgegeben werden, wobei immer die Online*-Adressen verwendet werden sollen (blaue Tabellen). In die gelben Adress-Tabellen sollte geschrieben werden, wenn dies im Projekt explizit so definiert wird.

Im Folgenden wird auf den Warenkorb und die angehängten Positionen eingegangen.

Ein einfacher Warenkorb (nur rechnen) mit einer Online-Lieferadresse sieht folgendermaßen aus:

Warenkorb-Bestellung
{
  "WarenkorbAktion": 10,
  "ExterneID": "123",
  "FremdsystemID": 1,
  "WarenkorbPosition": [
    {
      "ID": 1,
      "ArtikelID": 3889,
      "Anzahl": 10
    }
  ],
  "OnlineLieferAdresse": [
  	{
  	  "Name": "LA"
  	}
  ]
}

Die Antwort ist dann:

Antwort auf Warenkorb
{
    "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": 22.44,
    "TotalBetragNettoInkl": 23,
    "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
                }
            ]
        }
    ],
    "OnlineAdresse": [],
    "WarenkorbRabatt": []
}

In VinX wird unter anderem über die FremdsystemID die Standard Shop Adresse (Konditionen) ermittelt.

Warenkorb

Der Warenkorb ist eine temporäre Struktur, die nicht abgespeichert werden kann. Sie wird für das Berechnen der Preise und die Umwandlung in eine Bestellung verwendet (= Verteilung der übermittelten Daten auf die diversen Online-Tabellen). In Folge ist nur ein POST möglich:

Aufruf

URI

Methode

Return

./WarenkorbPOSTWarenkorb vervollständigt mit den angehängten Objekten

Daten

Hier werden nur diejenigen Felder beschrieben, die irgendeine Logik hinterlegt haben, oder Einfluss auf die Berechnung haben. Die vollständige Beschreibung der Tabelle kann über die Metadaten abgefragt werden.


Feld

Funktion

Richtung

Format

Bemerkungen

idId des Warenkorbes, wird in der Antwort unverändert zurückgegeben. Kann zu Steuerzwecken verwendet werden.Ikey
InklMWSTGibt an, ob der Kunde MWSt-pflichtig ist.ObooleanPreise werden inkl. und exkl. ausgegeben
BereichIDId des Bereichs, in dem der Warenkorb gerechnet werden sollIkey

Kann leer gelassen werden, falls nicht mit Bereichen gearbeitet wird

Ref nach ../Bereich

AdresseIDID der BestelladresseIkeyRef nach ../Adresse, nur möglich wenn bekannt (Abgleich Adressen)
LieferAdresseIDID der LieferadresseIkeyRef nach ../Adresse, nur möglich wenn bekannt (Abgleich Adressen)
RechnungsAdresseIDID der RechnungsadresseIkeyRef nach ../Adresse, nur möglich wenn bekannt (Abgleich Adressen)
ExterneIDId/Schlüssel des Warenkorbes im Shop. Wird bei der Speicherung in die Folgetabellen (z.B. Beleg) weitergereicht.Istring[30]Über diese ID kann der Shop ein Tracking der Weiterverarbeitung der Bestellung machen, indem er in den Online-Tabellen die generierte Bestellung sucht und weiterverfolgt.
FremdsystemIDId des Shopsystems, muss im VinX/PerformX angelegt und mitgeteilt werden. Dient der Unterscheidung der angebundenen Systeme.Ikeyz.B. 1=Test, 2=Prod, 3=QS
PreisgruppeIDZu verwendende Preisgruppe. Wenn leer gelassen findet eine Preisgruppenfindung statt.I/OkeyRef nach ../Preisgruppe, Empfehlung leer lassen, ausser eigene Preislogik
WarenkorbAktionAuszuführende Aktion:
10: nur rechnen
20: rechnen und als Bestellung speichern 
Iinteger
ZahlungswegKarteIDFalls im Shop bezahlt wird muss hier der verwendetet Zahlungsweg angegeben werdenIkeyRef nach ../Zahlungsweg
ZahlungskonditionIDFalls im Shop bezahlt wird kann hier zusätzlich eine Zahlungskondition angegeben werden (z.B. Sofortbezahl-Rabatt)IkeyRef nach ../Zahlungskondition
SaferPayBetragBezahlter Betrag falls im Shop bezahltInumber[20,4]
TotalBetragNettoExklTotal Nettobetrag des Warenkorb exkl MWStOnumber[20,4]TotalBetragNetto aller Positionen - möglicher Auftragsrabatt
TotalBetragNettoInkldito inkl.Onumber[20,4]

WarenkorbPosition

Die Warenkorbpositionen sind immer an den Warenkorb gebunden und sind als Unterelemente mitzugeben (siehe auch Beispiel-Aufruf oben).

Daten

Es werden wiederum nur diejenigen Felder beschrieben, die irgendeine Logik hinterlegt haben, oder Einfluss auf die Berechnung haben. Die vollständige Beschreibung der Tabelle kann über die Metadaten abgefragt werden.

Feld

Funktion

Richtung

Format

Bemerkungen

idId der Position, muss eindeutig seinIkey
AnzahlBestellmengeInumber[20,4]
ArtikelIDId des BestellartikelsIkey

Ref nach ../Artikel

BezeichnungArtikelbezeichnungOstring[40]nicht übersteuerbar
EinzelPreisExklPreis des Artikel exkl. MWStI/OfloatWird bei Preisermittlung = 55 übernommen, ansonsten ignoriert und ausgegeben
EinzelPreisInkldito inkl.I/OfloatWird bei Preisermittlung = 55 übernommen, ansonsten ignoriert und ausgegeben
MWSTProzentArtikelMWSt-Satz, der dem Artikel zugrunde liegtOnumber[20,4]
MWSTProzentInPreisMWSt-Satz welcher im Grundpreis bereits enthalten istOnumber[20,4]
PreisErmittlung

Art des Preises, kann je nach Systemeinstellung übernommen oder ignoriert werden. Gültig sind:

10        Spezialpreis
20        Aktionspreis
30        Preis aus Preisgruppe
40        Basispreis

55        Shop-Preis
I/Ointegerleer lassen = Preisberechnung wie in VinX
mit 55 kann überschrieben werden
TotalBetragNettoExklTotal Nettobetrag der Position exkl MWStOnumber[20,4]EinzelPreis * Anzahl - Betrag aller Rabattpositionen + (Anzahl * Preis aller Gebindepositionen)
TotalBetragNettoInkldito inkl.Onumber[20,4]
BetragGebuehrenExklBetrag der hinterlegten Gebühren exkl MWStOnumber[20,4]Anzahl * GebuehrenArtikel.Grundpreis
BetragGebuehrenInkldito inkl.Onumber[20,4]
GebuehrenArtikelIDId des Gebühren-ArtikelOkeyRef nach ../Artikel

WarenkorbRabatt

WarenkorbRabatt kann auf dem Warenkorb (Auftragrabatt) wie auf der Position erscheinen und kann nicht überschrieben werden.

Daten

Feld

Funktion

Richtung

Format

Bemerkungen

RabattBasisExklBetrag auf welchem der Rabatt angewandt wurde (vor Rabatt) exkl. MWSTOnumber[20,4]
RabattBasisInkldito inkl.Onumber[20,4]
BetragExklRabattbetrag exkl. MWSTOnumber[20,4]
BetragInkldito inkl.Onumber[20,4]
BezeichnungRabattbezeichnungOstring[40]

WarenkorbGebindePosition

WarenkorbGebindePosition wird auf der Position ausgegeben und kann nicht überschrieben werden.

Daten

Feld

Funktion

Richtung

Format

Bemerkungen

AnzahlMenge des GebindeOnumber[20,4]
GebindeArtikelIDId des Gebinde-ArtikelOkeyRef nach ../Artikel
MWSTProzentArtikeldito PositionOnumber[20,4]Gebinde ist in VinX immer 0.0
MWSTProzentInPreisdito PositionOnumber[20,4]Gebinde ist in VinX immer 0.0
PreisExklPreis des Gebinde-Artikel exkl. MWSTOnumber[20,4]
PreisInkldito inkl.Onumber[20,4]

Vorgehen Adressen

Bestellung als Gast

Mindestanforderung: OnlineLieferadresse

Optional: OnlineRechnungsadresse

OnlineAdresse wird bei diesem Fall nicht ausgefüllt. Die Konditionen-Adresse wird anhand der FremdsystemID gefunden (Standard Shop-Adresse).

Bestellung mit Login

Mindestanforderung: OnlineAdresse mit Angabe von OnlineBenutzername (matching mit VinX Adresse, bei erster Bestellung Shop-Standard als Konditionsadresse)

Optional: OnlineLieferadresse, OnlineRechnungsadresse

Muatation bei einer Adresse mit Login

Eine Änderung einer OnlineAdresse (Hauptadresse) sollte im VinX mitgeteilt werden. Für optionale OnlineLiefer- und OnlineRechnungs-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.

Wird eine Änderung der Hauptadresse nicht mitgeteilt, wird diese im VinX auch nicht angepasst.

Beispiel Bestellung mit Promo-Code und Versandkosten

Beispiel Bestellung mit 5.- Promo-Code und 10.- Versandkosten
--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.-)",
            "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": []
}



  • No labels