Warenkorb API

Mit der Warenkorb API werden Positionen in den Warenkorb gelegt.

Funktionsweise

Die Warenkorb Positionen werden über Token referenziert. Jeder neue Token bedeutet ein neuer Warenkorb.

Token Anfordern

Ein neuer Token wird über den Entpunkt per POST über die URL /api/plugin/order/position/token angefordert.
Es muss der Header Accept: application/json gesendet werden.

Antwort:

{
    "dataset": {
        "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST"
    },
    "sys": {
        "message": "200 OK",
        "code": 200
    }
}

Warenkorb Position anlegen / aktualisieren

Die Positionen werden per POST über die URL /api/plugin/order/position angelegt oder aktualisiert.
Es kann eine Position oder mehrere in einem Request angelegt oder aktualisiert werden.

Die Header Content-Type:application/json und Accept: application/json müssen bei verwendung von Json mitgeliefert werden.

eine Position

{
    "itemSKU": "36259745224728",
    "positionCount": 1,
    "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST"
}

mehrere Positionen

{
    "dataset": [
        {
            "itemSKU": "36259745224728",
            "positionCount": 1,
            "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST"
        },
        {
            "itemSKU": "36259745224728",
            "positionCount": 2,
            "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST"
        },
        {
            "itemSKU": "36259745224728",
            "positionCount": 1,
            "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST"
        },
        {
            "itemSKU": "36259745224728",
            "positionCount": 1,
            "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST"
        }
    ]
}

Antwort

eine Position Update

{
    "dataset": [
        {
            "dataset": {
                "itemSKU": "1465948883717",
                "positionCount": 1,
                "token": "xczgFQ4PGqnHZmAw02WQfTNeUVbpC8AJ",
                "scid": 1695,
                "itemIID": 1005,
                "positionVariant": "L",
                "itemName": "Armkettchen",
                "itemNumber": "0 215 659 62"
            },
            "sys": {
                "message": "200 OK",
                "code": 200
            }
        }
    ],
    "sys": {
        "message": "200 OK",
        "code": 200
    }
}

eine Position Update und eine Position anlegen

{
    "dataset": [
        {
            "dataset": {
                "itemSKU": "1465948883717",
                "positionCount": 1,
                "token": "xczgFQ4PGqnHZmAw02WQfTNeUVbpC8AJ",
                "scid": 1695,
                "itemIID": 1005,
                "positionVariant": "L",
                "itemName": "Armkettchen",
                "itemNumber": "0 215 659 62"
            },
            "sys": {
                "message": "200 OK",
                "code": 200
            }
        },
        {
            "dataset": {
                "itemSKU": "1465948883717",
                "positionCount": 1,
                "token": "xczgFQ4PGqnHZmAw02WQfTNeUVbpC8AJ",
                "itemIID": 1005,
                "positionVariant": "L",
                "itemName": "Armkettchen",
                "itemNumber": "0 215 659 62",
                "scid": 1701
            },
            "sys": {
                "message": "201 Created",
                "code": 201
            }
        }
    ],
    "sys": {
        "message": "207 Multi-Status",
        "code": 207
    }
}

Fehler

{
    "sys": {
        "error": {
            "code": 400,
            "message": "400 Bad Request"
        }
    },
    "dataset": [
        {
            "dataset": {
                "itemSKU": "1465948883717",
                "positionCount": 0,
                "token": "xczgFQ4PGqnHZmAw02WQfTNeUVbpC8AJ",
                "scid": 1695
            },
            "sys": {
                "error": {
                    "code": 400,
                    "message": "400 Bad Request",
                    "hint": "Es wurde keine Menge angegenben. Verwenden Sie den Schlüssel:positionCount"
                }
            }
        }
    ]
}

Warenkorb auslesen

Mit GET /api/plugin/order/position/{token} können die angelegten Positionen ausgelesen werden

Beispiel : /api/plugin/order/position/Cf3Oh932SUytcbLcx7aI8g7q8kEfmCAY

{
    "dataset": [
        {
            "scid": 1702,
            "customerUID": 0,
            "customerNumber": "",
            "customerText": "",
            "salesmanUID": 0,
            "orderOID": 0,
            "packagingItemIID": 0,
            "positionCount": "1.",
            "positionVariant": "L",
            "positionDescription": "",
            "positionCreated": "2021-05-04T08:17:57",
            "positionSerialnumber": "",
            "positionCustom1": "",
            "positionCustom2": "",
            "positionCustom3": "",
            "positionSystemtext": "",
            "restrictionToCount": "",
            "restrictionToVariant": "",
            "stockUpdated": "0",
            "itemIID": 1005,
            "itemName": "Armkettchen",
            "itemSKU": "1465948883717",
            "itemNumber": "0 215 659 62",
            "itemDealersnumber": "",
            "priceVat": 0,
            "priceGross": 0,
            "priceNet": 0,
            "priceDigits": 0,
            "priceType": 0,
            "priceCurrency": "",
            "deliveryDID": 0,
            "priceRecommendedGross": 0,
            "priceRecommendedNet": 0,
            "priceRecommended": "",
            "pricePurchasingGross": 0,
            "pricePurchasingNet": 0,
            "priceBaseNet": 0,
            "priceBaseGross": 0,
            "priceBaseMesaureReference": 0,
            "priceBaseMeasureValue": 0,
            "priceExchangerateLeadCurrency": "",
            "priceExchangerateRate": 0,
            "priceExchangerateNet": 0,
            "priceExchangerateGross": 0,
            "priceExchangerateDigits": 0,
            "validated": "0",
            "token": "Cf3Oh932SUytcbLcx7aI8g7q8kEfmCAY"
        }
    ],
    "sys": {
        "message": "200 OK",
        "code": 200
    }
}

Wird der Token nicht gefunden wird 404 zurück geliefert

{
    "sys": {
        "code": 404,
        "message": "404 Not Found"
    }
}

sind keine Positionen enthalten wird ein leerer Datensatz zurück geliefert

{
    "dataset": {},
    "sys": {
        "message": "200 OK",
        "code": 200
    }
}

Warenkorb löschen

Wenn ein Fehler beim löschen auftritt wird keine Position gelöscht.

Alles löschen

Mit DELETE /api/plugin/order/position/{token} werden alle Einträge und den alle Token Informationen gelöscht.

Antwort:

{
    "dataset": [
        {
            "sys": {
                "message": "200 OK",
                "code": 200
            },
            "dataset": {
                "token": "Cf3Oh932SUytcbLcx7aI8g7q8kEfmCAY",
                "scid": 1713
            }
        },
        {
            "sys": {
                "message": "200 OK",
                "code": 200
            },
            "dataset": {
                "token": "Cf3Oh932SUytcbLcx7aI8g7q8kEfmCAY",
                "scid": 1714
            }
        },
        {
            "sys": {
                "message": "200 OK",
                "code": 200
            },
            "dataset": {
                "token": "Cf3Oh932SUytcbLcx7aI8g7q8kEfmCAY",
                "scid": 1715
            }
        },
        {
            "sys": {
                "message": "200 OK",
                "code": 200
            },
            "dataset": {
                "token": "Cf3Oh932SUytcbLcx7aI8g7q8kEfmCAY",
                "scid": 1716
            }
        }
    ],
    "sys": {
        "message": "200 OK",
        "code": 200
    }
}

Einzeln löschen

Mit DELETE /api/plugin/order/position können einzelne Positionen gelöscht werden

{
    "scid": 1254
    "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST"
}

oder mehrere in einem Datensatz

{
    "dataset": [
        {
            "scid": 1254
            "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST"
        },
            "scid": 1255
            "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST"
        },   
    ]
}

Antwort - OK

{
    "dataset": [
        {
            "sys": {
                "message": "200 OK",
                "code": 200
            },
            "dataset": {
                "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST",
                "scid": 1254
            }
        },
        {
            "sys": {
                "message": "200 OK",
                "code": 200
            },
            "dataset": {
                "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST",
                "scid": 1255
            }
        }
    ],
    "sys": {
        "message": "200 OK",
        "code": 200
    }
}

Antwort - Fehler

In diesem Beispiel wird die SCID nicht gelöscht obwohl diese gefunden und gelöscht werden könnte.

{
    "dataset": [
        {
            "sys": {
                "message": "404 Not Found",
                "code": 404
            },
            "dataset": {
                "token": "2Cf3Oh932SUytcbLcx7aI8g7q8kEfmCAY",
                "scid": 1710
            }
        },
        {
            "sys": {
                "message": "400 OK",
                "code": 200
            },
            "dataset": {
                "token": "ielkdyU2ROvRiGQUzaa6gO.oHz2vOTST",
                "scid": 1255
            }
        }
    ],
    "sys": {
        "code": 400,
        "message": "Bad Request"
    }
}