Delete-API: Datensätze per DELETE löschen

DELETE · Safety-Checks

Delete API

Löschen Sie Datensätze sicher. Mit integrierten Safety-Checks gegen versehentliche Löschung von abhängigen Daten.

DELETE /xpanel/xoport/Delete/JSON/{entity}/{id}
Achtung – ab Version 2.70.0 wird die Methode erzwungen: Die Endpunkte unter Delete/JSON/ nehmen ausschliesslich die HTTP-Methode DELETE an. Jede andere Methode beantwortet die Schnittstelle mit 405 METHOD_NOT_ALLOWED und dem Kopfzeilenfeld Allow: DELETE – bevor irgendetwas geschieht. Bitte prüfen Sie Ihre Anbindung: Bisher wurde die Methode hier nicht geprüft, ein Aufruf per GET hat ebenfalls gelöscht. Verwendet Ihr Programm GET oder POST, stellen Sie es bitte auf DELETE um.

Verfügbare Endpoints

EndpointBeschreibungScopeSafety-Checks
DELETE /Delete/JSON/product/{id}Produkt löschenproducts:delete-
DELETE /Delete/JSON/category/{id}Kategorie löschencategories:deleteUnterkategorien, Produkte
DELETE /Delete/JSON/customer/{id}Kunde löschencustomers:deleteBestellungen
DELETE /Delete/JSON/manufacturer/{id}Hersteller löschenmanufacturers:deleteProdukte
DELETE /Delete/JSON/newsdesk/{id}News-Artikel löschennews:delete-
DELETE /Delete/JSON/newsdeskcat/{id}News-Kategorie löschennewscategories:deleteUnterkategorien, Artikel
DELETE /Delete/JSON/faq/{id}FAQ löschenfaq:delete-
DELETE /Delete/JSON/faqcategory/{id}FAQ-Kategorie löschenfaqcategories:deleteFAQ-Einträge
DELETE /Delete/JSON/seohistory/{id}SEO History löschenseohistory:deleteBulk-Delete, Filter, Expired
DELETE /Delete/JSON/newsletter_subscriber/{id}Newsletter-Abonnent löschen newsletter:deleteDSGVO-Cascade, Provider-Sync, Bulk-Delete
DELETE /Delete/JSON/newsletter/{id}Newsletter-Kampagne löschen newsletters:deleteLocked-Check, Sent-Check (409)
DELETE /Delete/JSON/ticket/{id}Ticket löschen NEUtickets:deleteCascade: History, Admins, Followers, Termine, Dateien
Media NEU v2.16.0DELETE /Delete/JSON/media/{id}media:delete
Slider NEU v2.22.0 DELETE /Delete/JSON/slider/{id} slider:delete
DELETE /Delete/JSON/project/{id}xoCRM-Projekt löschen NEU v2.35.0projects:deleteCascade: Aufgaben, Beschreibungen, Leiter, Kunden, Kategorien, Status-History; Orders/Tickets werden nur entkoppelt
DELETE /Delete/JSON/project_task/{id}Projektaufgabe löschen NEU v2.35.0project_tasks:deleteCascade: Beschreibungen, Bearbeiter, Kunden, Kategorien, Status-History (Projekt bleibt)
DELETE /Delete/JSON/appointment/{id}Termin löschen (Soft-Delete) NEU v2.44.0appointments:deleteSetzt deleted_at (CalDAV-Tombstone); Beschreibungen und Verknüpfungen bleiben erhalten
DELETE /Delete/JSON/order_status_history/{id}Verlaufseintrag einer Bestellung löschen NEU v2.95.0orders:writeBestellstatus wird nachgeführt; ältester Eintrag geschützt (409)
DELETE /Delete/JSON/ticket_status_history/{id}Verlaufseintrag eines Tickets löschen NEU v2.95.0tickets:deleteTicketstatus wird nachgeführt
DELETE /Delete/JSON/ticket_attachment/{tshid}?filename=…Ticket-Anhang entfernen NEU v2.97.0tickets:deleteDatei nur, wenn kein anderer Eintrag sie führt
DELETE /Delete/JSON/ticket_department/{id}Ticket-Abteilung löschen NEU v2.103.0tickets:deleteBelegt: 409 – ?reassign_to={id} oder ?force=1

Safety-Checks

Bestimmte Ressourcen können nicht gelöscht werden, wenn abhängige Daten existieren:

Kategorien

  • HAS_SUBCATEGORIES: Hat Unterkategorien
  • HAS_PRODUCTS: Enthält Produkte

News-Kategorien

  • HAS_SUBCATEGORIES: Hat Unterkategorien
  • HAS_ARTICLES: Enthält News-Artikel

Kunden

  • HAS_ORDERS: Hat Bestellungen

Response-Formate

Erfolgreiche Löschung

{
  "success": true,
  "deleted_id": 23,
  "details": {
    "newsdesk_id": 23,
    "newsdesk_article_name": "Gelöschter Artikel"
  }
}

Blockierte Löschung

{
  "success": false,
  "error": {
    "code": "HAS_SUBCATEGORIES",
    "message": "Cannot delete newsdesk category \"Shopnews\" (ID: 1): Has 3 sub-categories. Delete them first."
  }
}

Vorsicht beim Löschen!

Delete-Operationen sind unwiderruflich. Erstellen Sie zuerst einen Export als Backup.

Export erstellen

Datenimport mit der xoPort API

Die Import-Endpoints ermöglichen das effiziente Einpflegen von Daten aus externen Systemen. Dank intelligenter Upsert-Logik müssen Sie sich nicht um die Unterscheidung zwischen neuen und existierenden Datensätzen kümmern.

Best Practices

  • Verwenden Sie Batch-Imports (max. 50 Datensätze) für bessere Performance
  • Prüfen Sie die errors-Array in der Response auf fehlgeschlagene Records
  • Implementieren Sie Retry-Logik für transiente Fehler
  • Validieren Sie Daten vor dem Import auf Client-Seite