Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


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
false
bordertrue1
viewerToolbartrue
fitWindowbaseUrlhttps://i-ag.atlassian.net/wiki
diagramNameWK-Struktur Vx
simpleViewerfalse
widthdiagramWidth777777
zoomrevision1
3pageId15598321
custContentId19891186
lbox1
diagramDisplayNameWK-Struktur Vx
contentVer1
revision3

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

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][20,4]
PreisInkldito inkl.Onumber[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
languagejs
titleBeispiel Bestellung mit 5.- Promo-Code und 10.- Versandkosten
collapsetrue
--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": []
}

...