EndpointNews
Newsdesk-Artikel, Kategorien und Autoren verwalten.
News-Artikel (newsdesk)
| Operation | Method | Endpoint | Scope |
|---|
| Export | GET | /xpanel/xoport/export/json/newsdesk | news:read |
| Import | POST | /xpanel/xoport/import/json/newsdesk | news:write |
| Update | PUT | /xpanel/xoport/import/json/newsdesk | news:write |
| Delete | DELETE | /xpanel/xoport/delete/json/newsdesk | news:delete |
News-Kategorien (newsdesk_categories)
| Operation | Method | Endpoint | Scope |
|---|
| Export | GET | /xpanel/xoport/export/json/newsdesk_categories | news:read |
| Import | POST | /xpanel/xoport/import/json/newsdesk_categories | news:write |
| Delete | DELETE | /xpanel/xoport/delete/json/newsdesk_categories | news:delete |
Autoren (newsdesk_authors)
| Operation | Method | Endpoint | Scope |
|---|
| Export (alle) | GET | /xpanel/xoport/export/json/newsdesk_authors | news:read |
| Export (einzeln) | GET | /xpanel/xoport/export/json/newsdesk_author/{id} | news:read |
Routen
| Route | Ergebnis |
|---|
/export/json/newsdesks | Alle Artikel |
/export/json/newsdesk/{id} | Genau ein Artikel |
/export/json/newsdesks/{id} | Alle Artikel ab dieser ID |
Query-Parameter
| Parameter | Typ | Beschreibung |
|---|
limit | int | Max. Anzahl Datensätze |
offset | int | Startposition |
Eine Einschränkung auf eine News-Kategorie gibt es serverseitig nicht — dafür das Feld categories_ids der Antwort auswerten.
Felder je Artikel
| Feld | Typ | Beschreibung |
|---|
newsdesk_id | int | ID des Artikels — bei PUT Pflichtfeld |
newsdesk_status | int | 1 = veröffentlicht, 0 = inaktiv |
newsdesk_date_available | datetime | Veröffentlichen ab (Y-m-d H:i:s) |
newsdesk_date_added | datetime | Erstelldatum |
newsdesk_last_modified | datetime | Letzte Änderung — nur Export |
newsdesk_sticky | int | 1 = oben angepinnt |
sort_order | int | Sortierreihenfolge |
newsdesk_image | string | Artikelbild (Dateiname) |
newsdesk_author | string | Autor als Freitext |
author_id | int | Autor aus der Autorenverwaltung (0 = keiner) |
categories_ids | int[] | News-Kategorien, z. B. [2, 5] — Mehrfachzuordnung möglich |
languages{} | object | Sprachblock, Schlüssel = Sprachcode (de, en …) |
Seit v2.121.0 Beim Anlegen (POST) ergänzt der Import jede aktive Sprache, für die kein eigener Block gesendet wurde, aus der Master-Sprache (dem de-Block, sonst dem ersten gesendeten Block). Ist die DeepL-Übersetzung eingerichtet, übersetzt sie diese Sprachen beim nächsten Lauf.
Felder je Sprache (im Block languages)
| Feld | Typ | Beschreibung |
|---|
newsdesk_article_name | string | Titel |
newsdesk_article_shorttext | html | Teaser / Kurztext |
newsdesk_article_description | html | Artikeltext |
newsdesk_image_text | string | Bildunterschrift / Alternativtext |
newsdesk_article_url | string | Externer Link (optional) |
newsdesk_article_url_name | string | Beschriftung des externen Links |
seo_name | string | URL-Slug — wird aus dem Titel erzeugt, wenn leer |
title_tag | string | Meta-Titel |
desc_tag | string | Meta-Beschreibung |
keywords_tag | string | Meta-Keywords |
newsdesk_article_viewed | int | Aufrufzähler — nur Export |
curl -X POST "https://shop.de/xpanel/xoport/import/json/newsdesk" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "newsdesk",
"data": [{
"newsdesk_status": 1,
"newsdesk_sticky": 0,
"sort_order": 0,
"newsdesk_date_available": "2026-08-12 08:00:00",
"author_id": 0,
"categories_ids": [2],
"languages": {
"de": {
"newsdesk_article_name": "Neue Produktlinie",
"newsdesk_article_shorttext": "<p>Kurz angerissen …</p>",
"newsdesk_article_description": "<p>Wir erweitern …</p>",
"title_tag": "Neue Produktlinie | Shop",
"desc_tag": "Wir erweitern unser Sortiment."
},
"en": {
"newsdesk_article_name": "New product line"
}
}
}]
}'
Für ein Update dieselbe Struktur per PUT senden und newsdesk_id mitgeben. Nur die übermittelten Felder werden geschrieben — nicht gesendete Felder bleiben unverändert.
categories_ids ist ein Vollspiegel: Wird das Feld gesendet, werden alle bisherigen Kategoriezuordnungen des Artikels ersetzt. Wird es weggelassen, bleiben sie unangetastet.- Die Kategoriezuordnung heißt
categories_ids (Array). Ein newsdesk_categories_id wird als unbekanntes Feld ignoriert — der Artikel entstünde ohne Kategorie. - Fehlt
seo_name, wird der Slug automatisch aus newsdesk_article_name erzeugt (strip_seo()). - Ändert sich
seo_name bei einem Update, legt der Import automatisch einen 301-Redirect von der alten URL an (SEO-History). - Nach dem Import werden der News-Cache geleert und die DeepL-Übersetzungen der geänderten Artikel zur Neuübersetzung markiert.
- Nur-Export-Felder (werden beim Import ignoriert):
newsdesk_last_modified, newsdesk_article_viewed.