Ga naar de inhoud
ShopentlyLearn

Lijst ophalen · Statussen — Retouren, klachten en ruilingen

Lees gegevens uit ‘Retouren, klachten en ruilingen’. Het resultaat hangt af van de parameters van deze bewerking.

GET/api/v1/request-statuses

Authenticatie
Bearer
Beschikbaar vanaf
BASIC
Vereiste rechten
returns.request:read

Codevoorbeelden

Voorbeeldverzoek

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))

Voorbeeldantwoord 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"
  }
}

Werking

  • Gebruik verzamelings- en detailendpoints voor aanvraagnummer en -type, bijbehorende bestelling, ingediende artikelen, klantgegevens en terugbetalingsgegevens.
  • Geldige aanvraagtypen zijn return, exchange en complaint.
  • Haal statusidentificaties op via /api/v1/request-statuses.
  • Status en terugbetalingsbedrag zijn afzonderlijke schrijfbewerkingen met versiecontrole.
  • Het wijzigen van het geregistreerde terugbetalingsbedrag werkt de aanvraag bij, maar voert geen geldoverdracht uit.

Parameters

Queryparameters

limitGeheel getalOptioneel

Maximaal aantal records op deze pagina.

minimum: 1maximum: 100
Standaard: 50Voorbeeld: 20
cursorTekenreeks nullOptioneel

Ondoorzichtige vervolgwaarde die de vorige pagina heeft teruggegeven.

Tekenreeks:minLength: 1maxLength: 1024
typeRequestType nullOptioneel

Resourcetype.

Deze bewerking accepteert geen JSON-inhoud.

Antwoorden

Antwoord 200

dataArray <shopently_engine__domains__returns__adapters__public_http__requests__schemas__StatusDefinitionData > Verplicht

Gegevens van een geslaagd antwoord.

Velden · data

shopently_engine__domains__returns__adapters__public_http__requests__schemas__StatusDefinitionData

codeTekenreeksVerplicht

Stabiele, machineleesbare code.

created_atTekenreeksVerplicht

Tijdstip van aanmaak.

format: "date-time"
idTekenreeksVerplicht

Resource-identificatie; bewaar deze zoals teruggegeven.

is_initialBooleaanse waardeVerplicht

Of dit de beginstatus is.

localeTekenreeksVerplicht

Taal die voor dit verzoek is geselecteerd.

nameTekenreeks nullVerplicht

Resourcenaam in de betreffende context.

positionGeheel getalVerplicht

Positie in de geordende verzameling.

typeRequestType Verplicht

Resourcetype.

metaContextPageMeta ContextMeta PageMeta RequestMeta Verplicht

Metadata van het antwoord.

Velden · meta

ContextPageMeta

localeTekenreeksVerplicht

Taal die voor dit verzoek is geselecteerd.

market_codeTekenreeksVerplicht

Marktcode die het contextendpoint teruggeeft.

market_idTekenreeksVerplicht

Marktidentificatie die het contextendpoint teruggeeft.

paginationPagination Verplicht

Metadata voor cursorpaginering.

request_idTekenreeksVerplicht

Aanvraagidentificatie; in antwoordmetadata identificeert dit het HTTP-verzoek.

minLength: 1maxLength: 100

ContextMeta

localeTekenreeksVerplicht

Taal die voor dit verzoek is geselecteerd.

market_codeTekenreeksVerplicht

Marktcode die het contextendpoint teruggeeft.

market_idTekenreeksVerplicht

Marktidentificatie die het contextendpoint teruggeeft.

request_idTekenreeksVerplicht

Aanvraagidentificatie; in antwoordmetadata identificeert dit het HTTP-verzoek.

minLength: 1maxLength: 100

PageMeta

paginationPagination Verplicht

Metadata voor cursorpaginering.

request_idTekenreeksVerplicht

Aanvraagidentificatie; in antwoordmetadata identificeert dit het HTTP-verzoek.

minLength: 1maxLength: 100

RequestMeta

request_idTekenreeksVerplicht

Aanvraagidentificatie; in antwoordmetadata identificeert dit het HTTP-verzoek.

minLength: 1maxLength: 100
Voorbeeldantwoord

HTTP-status

200
Geslaagd antwoord Schema
400
Ongeldig verzoek
401
Authenticatie vereist
403
Toegang geweigerd
404
Resource niet gevonden
409
Versieconflict
422
Validatie mislukt
429
Verzoeklimiet overschreden
Overige HTTP-statussen (7)
405
Methode niet toegestaan
413
Verzoek te groot
415
Niet-ondersteund formaat
500
Serverfout
502
API-gatewayfout
503
Service niet beschikbaar
504
Gatewaytime-out

Foutencatalogus: ErrorResponse

Headers

401

WWW-AuthenticateTekenreeksOptioneel

Authenticatieschema dat de server vereist.

405

AllowTekenreeksOptioneel

HTTP-methoden die deze resource ondersteunt.

429, 503

Retry-AfterGeheel getalOptioneel

Minimale wachttijd voordat u het opnieuw probeert, in seconden.

minimum: 0