Zum Inhalt springen
ShopentlyLearn

Auflisten · Statusliste — Rückgaben, Reklamationen und Umtausch

Lesen Sie Daten aus „Rückgaben, Reklamationen und Umtausch“. Das Ergebnis hängt von den Parametern dieser Operation ab.

GET/api/v1/request-statuses

Authentifizierung
Bearer
Verfügbar ab
BASIC
Erforderliche Berechtigungen
returns.request:read

Codebeispiele

Beispielanfrage

cURL

: "${SHOPENTLY_SHOP_URL:?}"

curl --disable --globoff --fail-with-body --silent --show-error \
  --proto '=https' --connect-timeout 5 --max-time 30 \
  --request GET \
  --header "Authorization: Bearer ${SHOPENTLY_ACCESS_TOKEN:?}" \
  --url "${SHOPENTLY_SHOP_URL%/}"'/api/v1/request-statuses?limit=20'

PHP

<?php
declare(strict_types=1);

$baseUrl = rtrim(getenv('SHOPENTLY_SHOP_URL') ?: '', '/');
$origin = parse_url($baseUrl);
if (!$origin || ($origin['scheme'] ?? '') !== 'https' || empty($origin['host']) ||
    isset($origin['user'], $origin['pass']) || isset($origin['user']) || isset($origin['path']) ||
    isset($origin['query']) || isset($origin['fragment'])) {
    throw new RuntimeException('SHOPENTLY_SHOP_URL must be an HTTPS origin');
}
$credential = getenv('SHOPENTLY_ACCESS_TOKEN') ?: '';
if ($credential === '' || strpbrk($credential, "\r\n") !== false) {
    throw new RuntimeException('Invalid credential');
}
$headers = [];
$headers[] = 'Authorization: Bearer ' . $credential;
$responseHeaders = [];
$handle = curl_init($baseUrl . '/api/v1/request-statuses?limit=20');
curl_setopt_array($handle, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_PROTOCOLS => CURLPROTO_HTTPS,
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_CONNECTTIMEOUT => 5,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HEADERFUNCTION => static function ($handle, string $line) use (&$responseHeaders): int {
        if (str_contains($line, ':')) {
            [$name, $value] = explode(':', $line, 2);
            $responseHeaders[strtolower(trim($name))] = trim($value);
        }
        return strlen($line);
    },
]);
$raw = curl_exec($handle);
$status = curl_getinfo($handle, CURLINFO_RESPONSE_CODE);
$error = curl_error($handle);
curl_close($handle);
if ($raw === false) {
    throw new RuntimeException('Transport error: ' . $error);
}
if ($status < 200 || $status >= 300) {
    throw new RuntimeException('HTTP ' . $status . '; request_id=' .
        ($responseHeaders['x-request-id'] ?? '') . '; retry_after=' . ($responseHeaders['retry-after'] ?? ''));
}
$result = $raw === '' ? null : json_decode($raw, true, 512, JSON_THROW_ON_ERROR | JSON_BIGINT_AS_STRING);
echo json_encode($result, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), PHP_EOL;

Python

from contextlib import ExitStack
import json
import os
from urllib.parse import urlsplit

import requests  # python -m pip install requests

base_url = os.environ["SHOPENTLY_SHOP_URL"].rstrip("/")
origin = urlsplit(base_url)
if origin.scheme != "https" or not origin.hostname or origin.username or origin.password or origin.path or origin.query or origin.fragment:
    raise ValueError("SHOPENTLY_SHOP_URL must be an HTTPS origin")
credential = os.environ['SHOPENTLY_ACCESS_TOKEN']
if not credential or "\r" in credential or "\n" in credential:
    raise ValueError("Invalid credential")
headers = {}
headers["Authorization"] = 'Bearer' + " " + credential
body = None
if body is not None:
    headers["Content-Type"] = "application/json"

with ExitStack() as stack:
    session = stack.enter_context(requests.Session())
    files = None
    if False:
        image = stack.enter_context(open(os.environ["SHOPENTLY_IMAGE_FILE"], "rb"))
        if os.fstat(image.fileno()).st_size > 5242880:
            raise ValueError("Image exceeds 5 MiB")
        files = {"file": ("article.png", image, "image/png")}
    response = session.request(
        'GET', base_url + '/api/v1/request-statuses?limit=20', headers=headers,
        data=body.encode("utf-8") if body is not None else None, files=files,
        timeout=(5, 30), allow_redirects=False,
    )
    if not 200 <= response.status_code < 300:
        raise RuntimeError(f"HTTP {response.status_code}; request_id={response.headers.get('X-Request-ID', '')}; retry_after={response.headers.get('Retry-After', '')}")
    if False:
        if response.headers.get("Content-Type") != "image/webp" or len(response.content) > 5242880:
            raise ValueError("Unexpected image response")
        with open(os.environ["SHOPENTLY_OUTPUT_FILE"], "xb") as output:
            output.write(response.content)
    else:
        result = response.json() if response.content else None
        print(json.dumps(result, ensure_ascii=False, indent=2))

Beispielantwort 200

JSON
{
  "data": [
    {
      "code": "example",
      "created_at": "2026-01-01T12:00:00Z",
      "id": "example",
      "is_initial": false,
      "locale": "en",
      "name": "Example",
      "position": 1,
      "type": "return"
    }
  ],
  "meta": {
    "pagination": {
      "has_more": false,
      "limit": 20,
      "next_cursor": null
    },
    "request_id": "example"
  }
}

Funktionsweise

  • Sammlungs- und Detailendpunkte liefern Vorgangsnummer und Typ, zugehörige Bestellung, eingereichte Positionen, Kundendaten und Erstattungsinformationen.
  • Zulässige Typen sind return, exchange und complaint.
  • Statuskennungen erhalten Sie über /api/v1/request-statuses.
  • Status und Erstattungsbetrag werden getrennt und mit Versionsprüfung geändert.
  • Die Änderung des gespeicherten Erstattungsbetrags aktualisiert den Vorgang und führt keine Geldüberweisung aus.

Parameter

Abfrageparameter

limitGanzzahlOptional

Maximale Anzahl von Datensätzen auf dieser Seite.

minimum: 1maximum: 100
Standardwert: 50Beispiel: 20
cursorZeichenfolge nullOptional

Unverändert zu übernehmender Fortsetzungswert der vorherigen Seite.

Zeichenfolge:minLength: 1maxLength: 1024
typeRequestType nullOptional

Ressourcentyp.

Diese Operation akzeptiert keinen JSON-Inhalt.

Antworten

Antwort 200

dataArray <shopently_engine__domains__returns__adapters__public_http__requests__schemas__StatusDefinitionData > Erforderlich

Nutzdaten einer erfolgreichen Antwort.

Felder · data

shopently_engine__domains__returns__adapters__public_http__requests__schemas__StatusDefinitionData

codeZeichenfolgeErforderlich

Stabiler maschinenlesbarer Code.

created_atZeichenfolgeErforderlich

Zeitpunkt der Erstellung.

format: "date-time"
idZeichenfolgeErforderlich

Ressourcenkennung; unverändert aus der Antwort übernehmen.

is_initialBoolescher WertErforderlich

Gibt an, ob dies der Anfangsstatus ist.

localeZeichenfolgeErforderlich

Für diese Anfrage ausgewählte Sprache.

nameZeichenfolge nullErforderlich

Name der Ressource im jeweiligen Kontext.

positionGanzzahlErforderlich

Position in der geordneten Sammlung.

typeRequestType Erforderlich

Ressourcentyp.

metaContextPageMeta ContextMeta PageMeta RequestMeta Erforderlich

Metadaten der Antwort.

Felder · meta

ContextPageMeta

localeZeichenfolgeErforderlich

Für diese Anfrage ausgewählte Sprache.

market_codeZeichenfolgeErforderlich

Vom Kontext-Endpunkt zurückgegebener Marktcode.

market_idZeichenfolgeErforderlich

Vom Kontext-Endpunkt zurückgegebene Marktkennung.

paginationPagination Erforderlich

Metadaten der Cursor-Paginierung.

request_idZeichenfolgeErforderlich

Vorgangskennung; in Antwortmetadaten die Kennung der HTTP-Anfrage.

minLength: 1maxLength: 100

ContextMeta

localeZeichenfolgeErforderlich

Für diese Anfrage ausgewählte Sprache.

market_codeZeichenfolgeErforderlich

Vom Kontext-Endpunkt zurückgegebener Marktcode.

market_idZeichenfolgeErforderlich

Vom Kontext-Endpunkt zurückgegebene Marktkennung.

request_idZeichenfolgeErforderlich

Vorgangskennung; in Antwortmetadaten die Kennung der HTTP-Anfrage.

minLength: 1maxLength: 100

PageMeta

paginationPagination Erforderlich

Metadaten der Cursor-Paginierung.

request_idZeichenfolgeErforderlich

Vorgangskennung; in Antwortmetadaten die Kennung der HTTP-Anfrage.

minLength: 1maxLength: 100

RequestMeta

request_idZeichenfolgeErforderlich

Vorgangskennung; in Antwortmetadaten die Kennung der HTTP-Anfrage.

minLength: 1maxLength: 100
Beispielantwort

HTTP-Status

200
Erfolgreiche Antwort Schema
400
Ungültige Anfrage
401
Authentifizierung erforderlich
403
Berechtigung verweigert
404
Ressource nicht gefunden
409
Versionskonflikt
422
Validierung fehlgeschlagen
429
Anfragelimit überschritten
Weitere HTTP-Statuscodes (7)
405
Methode nicht erlaubt
413
Anfrage zu groß
415
Nicht unterstützter Medientyp
500
Serverfehler
502
API-Gateway-Fehler
503
Dienst nicht verfügbar
504
Gateway-Zeitüberschreitung

Fehlerkatalog: ErrorResponse

Header

401

WWW-AuthenticateZeichenfolgeOptional

Vom Server verlangtes Authentifizierungsschema.

405

AllowZeichenfolgeOptional

Von dieser Ressource unterstützte HTTP-Methoden.

429, 503

Retry-AfterGanzzahlOptional

Mindestwartezeit vor einem erneuten Versuch in Sekunden.

minimum: 0