Das Löschen von positionen aus artikelliste übe action bestellungedit führt zu leeren Artikeln

Hallo,

da die neu api noch keinen endpunkt für Einkauf » Bestellungen liefert habe ich mir ein kleines python programm geschrieben um vorhandene Bestellungen zu bearbeiten. Damit werden zunächst alle positionen gelöscht und anschließend neue artikelpositionen aus eine csv datei wieder in die bestellung importiert.
Das importieren funktioniert wunderbar.
Das Löschen prinzipiell auch, aber beim Ausführen meiner Löschfunktion (delete_positions) werden immer zwei leere Artikel in der Bestellung angelegt. Diese finden sich dann auch ind er Artikelübersicht wieder und müssaen hier manuell gelöscht werden. Ich habe wie im Beispiel die ganze liste gelöscht, auch einzelne Positionen versucht, aber immer das gleich Ergebnis.

Ist das ein Bug der action bestellungedit?

def delete_positions(order_id, api_base_url, xentral_user_id, xentral_password):
    # Bestellung über den bestellungedit-Endpunkt abrufen
    get_order_url = f"{api_base_url}/bestellungget?id={order_id}"
    order_response = requests.post(get_order_url, data={'action': 'bestellungget'}, auth=HTTPDigestAuth(xentral_user_id, xentral_password))

    if order_response.status_code == 200:
        try:
            order_data = ET.fromstring(order_response.content)
        except ET.ParseError:
            logging.error("Fehler beim Parsen der XML-Antwort")
            return

        artikelliste_element = order_data.find(".//artikelliste")

        # Die gesamte artikelliste aus der Bestellung entfernen
        artikelliste_element.clear()

        # XML-Daten in einen String umwandeln
        updated_order_xml = ET.tostring(order_data, encoding='utf-8')

        # Bestellung über den bestellungedit-Endpunkt aktualisieren
        edit_order_url = f"{api_base_url}/bestellungedit?id={order_id}"
        edit_response = requests.post(edit_order_url, data={'action': 'bestellungedit', 'xml': updated_order_xml}, auth=HTTPDigestAuth(xentral_user_id, xentral_password))

        if edit_response.status_code == 200:
            logging.info(f"Alle Positionen für Bestellung {order_id} wurden gelöscht.")
        else:
            logging.error(f"Fehler beim Löschen der Positionen für Bestellung {order_id}. Statuscode: {edit_response.status_code}")
    else:
        logging.error(f"Fehler beim Abrufen der Bestellung {order_id}. Statuscode: {order_response.status_code}")

Danke,
Grüße,
Florian