API - Überblick

API - Bestellungen

Rufe Kundenbestellungen ab, aktualisiere Status und Mengen und lösche Bestellungen.

Endpunktübersicht

MethodeEndpunktBeschreibungZugriff
GET/public-api/v1/customer-ordersGibt eine paginierte und filterbare Liste von Kundenbestellungen zurück.orders:read
GET/public-api/v1/customer-orders/:idGibt eine einzelne Kundenbestellung mit konfigurierten Produktpositionen zurück.orders:read
POST/public-api/v1/customer-orders/batchGibt bis zu 100 Bestellungen anhand ihrer IDs zurück.orders:read
PATCH/public-api/v1/customer-orders/:id/statusAktualisiert den Bestellstatus.orders:write
PATCH/public-api/v1/customer-orders/:orderId/quantityAktualisiert die Mengen ausgewählter Bestellpositionen.orders:write
PATCH/public-api/v1/customer-orders/:orderId/quantity/allLegt eine einheitliche Menge für jede Position einer Bestellung fest.orders:write
DELETE/public-api/v1/customer-orders/:idLöscht eine Kundenbestellung, die dem Shop-Inhaber gehört.orders:write

Kundenbestellungen

Mit den Kundenbestellendpunkten kann ein externer Shop konfigurierte Positionen lesen, Mengen aktualisieren, Bestellungen durch Abwicklungsstatus führen und aufgegebene Bestellungen entfernen.

ParameterErforderlichDetails
nameneinDurchsucht Designnamen und numerische Bestell-IDs.
category_idneinFiltert nach Produktkategorie-ID.
order_statusneinEiner der zulässigen Bestellstatus.
offsetneinStandard 0. Muss >= 0 sein.
limitneinStandard 9 für diesen Controller, maximal 50.
order_byneinid, created_at oder design_name.
directionneinASC oder DESC.

Beispielanfrage (fetch)

const params = new URLSearchParams({
  limit: '20',
  offset: '0',
  order_status: 'shopping_cart',
  order_by: 'created_at',
  direction: 'DESC'
});

const orders = await alterFetch(`/customer-orders?${params.toString()}`);

const order = await alterFetch('/customer-orders/123');

const batch = await alterFetch('/customer-orders/batch', {
  method: 'POST',
  body: JSON.stringify({
    customerOrderIds: [123, 124, 125]
  })
});

Zulässige Werte

StatusBeschreibung
shopping_cartWarenkorbablauf; der Kunde kann die Konfiguration weiterhin bearbeiten.
editableDie Bestellung bleibt für den Kunden bearbeitbar.
paidDie Bestellung ist bezahlt und bereit zur Abwicklung.
processingDie Bestellung wird abgewickelt.
completedDie Bestellung wurde abgewickelt.
cancelledDie Bestellung wurde storniert.

Beispielanfrage (fetch)

await alterFetch('/customer-orders/123/status', {
  method: 'PATCH',
  body: JSON.stringify({
    status: 'processing'
  })
});

await alterFetch('/customer-orders/123/quantity', {
  method: 'PATCH',
  body: JSON.stringify({
    items: [
      { orderDetailId: 987, quantity: 3 }
    ]
  })
});

await alterFetch('/customer-orders/123/quantity/all', {
  method: 'PATCH',
  body: JSON.stringify({
    quantity: 2
  })
});

await alterFetch('/customer-orders/123', {
  method: 'DELETE'
});

Beispielantwort

{
  "order": {
    "id": 123,
    "customizerId": 381,
    "orderStatus": "shopping_cart",
    "createdAt": "2026-05-28T10:15:00.000Z",
    "customizerOrderURL": "https://alterproduct.com/app/customizer/381/123",
    "productItems": [
      {
        "id": 987,
        "model3d": { "id": 381 },
        "size": {
          "id": 395,
          "name": { "pl": "M", "en": "M" },
          "measureSize": null
        },
        "material": {
          "id": 2,
          "name": { "pl": "Bawełna", "en": "Cotton" }
        },
        "printType": {
          "id": 1,
          "name": { "pl": "DTG", "en": "DTG" }
        },
        "color": {
          "id": 418,
          "name": { "pl": "Domyślny", "en": "Default" },
          "hex": "#ffffff"
        },
        "variant": {
          "id": 531,
          "metadata": null,
          "stockQuantity": 25
        },
        "unitPrice": { "value": 12.5, "currency": "EUR" },
        "totalPrice": { "value": 37.5, "currency": "EUR" },
        "quantity": 3
      }
    ],
    "customizerName": "Men's T-Shirt",
    "productGroup": {
      "id": 4,
      "name": { "pl": "Koszulka", "en": "T-Shirt" }
    },
    "totalPrice": { "value": 37.5, "currency": "EUR" }
  }
}