Pāriet uz saturu
ShopentlyLearn

Saraksts — Piegādes

Nolasiet datus no “Piegādes”. Rezultāts ir atkarīgs no šīs darbības parametriem.

GET/api/v1/inventory/deliveries

Autentifikācija
Bearer
Pieejams no
STANDARD
Nepieciešamās atļaujas
inventory.stock_delivery:read

Koda piemēri

Pieprasījuma piemērs

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/inventory/deliveries?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/inventory/deliveries?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/inventory/deliveries?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))

Atbildes piemērs 200

JSON
{
  "data": [
    {
      "created_at": "2026-01-01T12:00:00Z",
      "deleted_at": null,
      "delivered_at": "2026-01-01T12:00:00Z",
      "id": "example",
      "increases_stock": true,
      "location_id": "example",
      "quantity": 1,
      "received_at": null,
      "record_status": "active",
      "status": "planned",
      "stock_applied_at": null,
      "target_id": "example",
      "target_type": "product",
      "updated_at": "2026-01-01T12:00:00Z",
      "version": 1,
      "warehouse_id": "example"
    }
  ],
  "meta": {
    "pagination": {
      "has_more": false,
      "limit": 20,
      "next_cursor": null
    },
    "request_id": "example"
  }
}

Kā tas darbojas

  • Piegāde norāda produktu vai variantu, noliktavu, atrašanās vietu, daudzumu, datumu un statusu.
  • Skaidri izvēlieties planned vai received un iestatiet increases_stock atbilstoši iecerētajai ietekmei uz krājumiem.
  • Saņemtas piegādes izveide var mainīt krājumus, tāpēc jāpiešķir arī nosacītā krājumu atļauja.
  • Atkārtojiet to pašu loģisko piegādi ar sākotnējo idempotences atslēgu, lai to nereģistrētu divreiz.
  • Salīdzinot rezultātus, nolasiet stock_applied_at un pašreizējos krājumus.

Parametri

Vaicājuma parametri

limitVesels skaitlisNeobligāts

Maksimālais ierakstu skaits šajā lapā.

minimum: 1maximum: 100
Noklusējums: 50Piemērs: 20
cursorVirkne nullNeobligāts

Iepriekšējās lapas atgriezta neinterpretējama turpinājuma vērtība.

Virkne:minLength: 1maxLength: 1024
warehouse_idVirkne nullNeobligāts

Noliktavas identifikators.

Ierobežojumi · Virkne 1
pattern
"^[a-z0-9][a-z0-9_-]{0,62}$"
target_typeVirkne nullNeobligāts

Vai darbība attiecas uz produktu vai variantu.

Ierobežojumi · Virkne 1
enum
["product", "variant"]
target_idVirkne nullNeobligāts

Darbības ietekmētā produkta vai varianta identifikators.

Ierobežojumi · Virkne 1
pattern
"^[a-z0-9][a-z0-9_-]{0,62}$"
statusVirkne nullNeobligāts

Šai konkrētajai darbībai pieņemamais statuss.

Ierobežojumi · Virkne 1
enum
["planned", "received"]
record_statusVirkne nullNeobligāts

Saglabātā ieraksta statuss.

Ierobežojumi · Virkne 1
enum
["active", "deleted"]

Šī darbība nepieņem JSON saturu.

Atbildes

Atbilde 200

dataMasīvs <DeliveryData > Obligāts

Veiksmīgas atbildes dati.

Lauki · data

DeliveryData

created_atVirkneObligāts

Izveides laiks.

format: "date-time"
deleted_atVirkne nullObligāts

Dzēšanas laiks, ja norādīts.

Virkne:format: "date-time"
delivered_atVirkneObligāts

Piegādes datums un laiks.

format: "date-time"
idVirkneObligāts

Resursa identifikators; saglabājiet to atgrieztajā formā.

increases_stockLoģiska vērtībaObligāts

Vai piegādes saņemšana palielina krājumus.

location_idVirkneObligāts

Noliktavas atrašanās vietas identifikators.

quantityVesels skaitlisObligāts

Vienību skaits.

received_atVirkne nullObligāts

Piegādes saņemšanas datums un laiks.

Virkne:format: "date-time"
record_statusVirkneObligāts

Saglabātā ieraksta statuss.

Ierobežojumi
enum
["active", "deleted"]
statusVirkneObligāts

Šai konkrētajai darbībai pieņemamais statuss.

Ierobežojumi
enum
["planned", "received"]
stock_applied_atVirkne nullObligāts

Datums un laiks, kad piemērota piegādes krājumu izmaiņa.

Virkne:format: "date-time"
target_idVirkneObligāts

Darbības ietekmētā produkta vai varianta identifikators.

target_typeVirkneObligāts

Vai darbība attiecas uz produktu vai variantu.

Ierobežojumi
enum
["product", "variant"]
updated_atVirkne nullObligāts

Pēdējās atjaunināšanas laiks.

Virkne:format: "date-time"
versionVesels skaitlisObligāts

Resursa versija vienlaicīgu izmaiņu kontrolei.

warehouse_idVirkneObligāts

Noliktavas identifikators.

metaContextPageMeta ContextMeta PageMeta RequestMeta Obligāts

Atbildes metadati.

Lauki · meta

ContextPageMeta

localeVirkneObligāts

Šim pieprasījumam izvēlētā valoda.

market_codeVirkneObligāts

Konteksta galapunkta atgrieztais tirgus kods.

market_idVirkneObligāts

Konteksta galapunkta atgrieztais tirgus identifikators.

paginationPagination Obligāts

Kursora lapošanas metadati.

request_idVirkneObligāts

Pieteikuma identifikators; atbildes metadatos tas identificē HTTP pieprasījumu.

minLength: 1maxLength: 100

ContextMeta

localeVirkneObligāts

Šim pieprasījumam izvēlētā valoda.

market_codeVirkneObligāts

Konteksta galapunkta atgrieztais tirgus kods.

market_idVirkneObligāts

Konteksta galapunkta atgrieztais tirgus identifikators.

request_idVirkneObligāts

Pieteikuma identifikators; atbildes metadatos tas identificē HTTP pieprasījumu.

minLength: 1maxLength: 100

PageMeta

paginationPagination Obligāts

Kursora lapošanas metadati.

request_idVirkneObligāts

Pieteikuma identifikators; atbildes metadatos tas identificē HTTP pieprasījumu.

minLength: 1maxLength: 100

RequestMeta

request_idVirkneObligāts

Pieteikuma identifikators; atbildes metadatos tas identificē HTTP pieprasījumu.

minLength: 1maxLength: 100
Atbildes piemērs

HTTP statuss

200
Veiksmīga atbilde Shēma
400
Nederīgs pieprasījums
401
Nepieciešama autentifikācija
403
Piekļuve liegta
404
Resurss nav atrasts
409
Versiju konflikts
422
Validācijas kļūda
429
Pārsniegts pieprasījumu limits
Citi HTTP statusi (7)
405
Metode nav atļauta
413
Pieprasījums ir pārāk liels
415
Neatbalstīts formāts
500
Servera kļūda
502
API vārtejas kļūda
503
Pakalpojums nav pieejams
504
Noildze

Kļūdu katalogs: ErrorResponse

Galvenes

401

WWW-AuthenticateVirkneNeobligāts

Servera pieprasītā autentifikācijas shēma.

405

AllowVirkneNeobligāts

Šī resursa atbalstītās HTTP metodes.

429, 503

Retry-AfterVesels skaitlisNeobligāts

Minimālā aizkave pirms atkārtošanas sekundēs.

minimum: 0