Sąrašas — Užsakymai
Skaitykite „Užsakymai“ duomenis. Rezultatas priklauso nuo šio veiksmo parametrų.
GET/api/v1/orders
- Tapatybės patvirtinimas
Bearer- Prieinama nuo plano
- BASIC
- Būtinos teisės
orders.order:read
Kodo pavyzdžiai
Užklausos pavyzdys
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/orders?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/orders?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/orders?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))
Atsakymo pavyzdys 200
{
"data": [
{
"created_at": "2026-10-19T10:00:00Z",
"customer": {
"email": "customer@example.invalid",
"first_name": "Example",
"last_name": "Example",
"phone": null
},
"delivery": {
"amount": {
"amount": "0.00",
"currency": "PLN",
"minor_units": 2
},
"dates": {
"dispatch_timezone": "Europe/Warsaw",
"estimated_delivery_from": "2026-10-20",
"estimated_delivery_to": "2026-10-21",
"planned_dispatch_on": "2026-10-19"
},
"method_code": "shipping-old",
"method_name": "Historic carrier",
"pickup_point": null,
"recipient_mode": "full_address"
},
"discount_amount": {
"amount": "24.60",
"currency": "PLN",
"minor_units": 2
},
"id": "order-0000",
"lifecycle_state": "placed",
"locale": "pl",
"market_id": "market-pl",
"number": "0001",
"payment": {
"amount": {
"amount": "329.40",
"currency": "PLN",
"minor_units": 2
},
"environment": "live",
"method_code": "payment-old",
"method_name": "Historic method",
"paid_at": null,
"status": "unpaid",
"updated_at": "2026-10-19T10:00:00Z",
"version": 0
},
"prices_include_tax": true,
"shipping_discount_amount": {
"amount": "24.60",
"currency": "PLN",
"minor_units": 2
},
"status": {
"id": "status-0",
"name": "Status 0",
"updated_at": "2026-10-19T10:00:00Z",
"version": 1
},
"subtotal": {
"amount": "329.40",
"currency": "PLN",
"minor_units": 2
},
"tax": {
"amount": "49.40",
"currency": "PLN",
"minor_units": 2
},
"tax_country_code": "PL",
"total": {
"amount": "329.40",
"currency": "PLN",
"minor_units": 2
}
}
],
"meta": {
"pagination": {
"has_more": false,
"limit": 20,
"next_cursor": null
},
"request_id": "example"
}
}
Kaip tai veikia
- Rinkinys pateikia užsakymų santraukas ir filtrus pagal numerį, būseną, mokėjimo būseną bei sukūrimo laiką.
- Užsakymų sąraše ir išsamioje informacijoje yra delivery.dates. YYYY-MM-DD datos yra planuojamos ir nepatvirtina išsiuntimo. Dabartinės datos turi pirmenybę; senesni užsakymai naudoja išsaugotą prognozę. Išvalytos arba nežinomos reikšmės yra null. Išsamioje informacijoje taip pat yra visos eilutės ir produktų vaizdai.
- Galiojančius būsenų identifikatorius gaukite iš /api/v1/order-statuses.
- Užsakymo ir mokėjimo būsenoms naudojami atskiri PATCH prieigos taškai bei teisės.
- Pakeitus užregistruotą mokėjimo būseną, kortelė neapmokestinama ir per mokėjimų paslaugų teikėją pinigai negrąžinami.
Užsakymas · Suvestinės
Sumos ir tarifai gaunami iš išsaugoto užsakymo, įskaitant eilučių pataisas. Trūkstami istoriniai duomenys yra null ir nepakeičiami dabartiniais katalogo tarifais. Sumos lieka dešimtainėmis eilutėmis.
Sąrašas grąžina suvestines. Kiekvienam rezultatui gaukite GET /api/v1/orders/{order_id}, kad eksportuotumėte visus finansinius duomenis. GET kartojimai riboti ir paiso Retry-After. Eksportas pagal sukūrimo datą nesinchronizuoja vėlesnių pataisų.
Parametrai
Užklausos parametrai
limitSveikasis skaičiusNeprivalomasDidžiausias įrašų skaičius šiame puslapyje.
minimum:1maximum:100cursorEilutė nullNeprivalomasAnkstesnio puslapio grąžinta tęsimo reikšmė; jos vidinės struktūros neinterpretuokite.
Eilutė:minLength:1maxLength:1024numberEilutė nullNeprivalomasŽmogui rodomas užsakymo arba prašymo numeris.
Eilutė:minLength:1maxLength:48status_idEilutė nullNeprivalomasIš atitinkamo būsenų žinyno gautas identifikatorius.
Apribojimai · Eilutė 1
pattern"^[a-z0-9][a-z0-9_-]{0,62}$"
payment_statusEilutė nullNeprivalomasUžregistruota mokėjimo būsena.
Apribojimai · Eilutė 1
enum["unpaid", "paid", "failed", "refunded"]
created_fromEilutė nullNeprivalomasSukūrimo laiko filtro pradžia.
Eilutė:format:"date-time"created_toEilutė nullNeprivalomasSukūrimo laiko filtro pabaiga.
Eilutė:format:"date-time"
Ši operacija nepriima JSON turinio.
Atsakymai
Atsakymas 200
Visas modelis: ApiResponse_list_OrderSummaryData__
dataMasyvas <OrderSummaryData> PrivalomasSėkmingo atsakymo duomenys.
Laukai ·
dataVisas modelis:
OrderSummaryDatacreated_atEilutėPrivalomasSukūrimo laikas.
format:"date-time"customerCustomerDataPrivalomasŠiam ištekliui užregistruota kliento informacija.
deliveryShippingDataPrivalomasPristatymo būdas ir susijusi informacija.
discount_amountMoneyDataPrivalomasDešimtainė suma, užkoduota JSON eilute; null tik ten, kur leidžiama.
idEilutėPrivalomasIštekliaus identifikatorius; išsaugokite grąžintą išraišką.
lifecycle_stateOrderLifecycleStatePrivalomasVerslo gyvavimo ciklo būsena.
localeEilutėPrivalomasŠiai užklausai pasirinkta kalba.
market_idEilutėPrivalomasKonteksto prieigos taško grąžintas rinkos identifikatorius.
numberEilutėPrivalomasŽmogui rodomas užsakymo arba prašymo numeris.
paymentPaymentDataPrivalomasUžsakymui užregistruoti mokėjimo duomenys.
prices_include_taxLoginė reikšmėPrivalomasAr nurodytos kainos apima mokesčius.
shipping_discount_amountMoneyDataPrivalomasDešimtainė suma, užkoduota JSON eilute; null tik ten, kur leidžiama.
statusOrderStatusDataPrivalomasŠios konkrečios operacijos priimama būsena.
subtotalMoneyDataPrivalomasSuma prieš papildomus atsakyme parodytus komponentus.
taxMoneyDataPrivalomasMokesčių informacija.
tax_country_codeEilutė nullPrivalomasApmokestinimo šalis · Išsaugoti užsakymo duomenys · ISO 3166-1 alpha-2; null.
totalMoneyDataPrivalomasBendra suma.
metaContextPageMetaContextMetaPageMetaRequestMetaPrivalomasAtsakymo metaduomenys.
Laukai ·
metaVisas modelis:
ContextPageMetalocaleEilutėPrivalomasŠiai užklausai pasirinkta kalba.
market_codeEilutėPrivalomasKonteksto prieigos taško grąžintas rinkos kodas.
market_idEilutėPrivalomasKonteksto prieigos taško grąžintas rinkos identifikatorius.
paginationPaginationPrivalomasSkaidymo į puslapius pagal žymeklį metaduomenys.
request_idEilutėPrivalomasPrašymo identifikatorius; atsakymo metaduomenyse nurodo HTTP užklausą.
minLength:1maxLength:100
localeEilutėPrivalomasŠiai užklausai pasirinkta kalba.
market_codeEilutėPrivalomasKonteksto prieigos taško grąžintas rinkos kodas.
market_idEilutėPrivalomasKonteksto prieigos taško grąžintas rinkos identifikatorius.
request_idEilutėPrivalomasPrašymo identifikatorius; atsakymo metaduomenyse nurodo HTTP užklausą.
minLength:1maxLength:100
paginationPaginationPrivalomasSkaidymo į puslapius pagal žymeklį metaduomenys.
request_idEilutėPrivalomasPrašymo identifikatorius; atsakymo metaduomenyse nurodo HTTP užklausą.
minLength:1maxLength:100
request_idEilutėPrivalomasPrašymo identifikatorius; atsakymo metaduomenyse nurodo HTTP užklausą.
minLength:1maxLength:100
HTTP būsena
200- Sėkmingas atsakymas Schema
400- Netinkama užklausa
401- Būtinas tapatybės patvirtinimas
403- Prieiga uždrausta
404- Išteklius nerastas
409- Versijų konfliktas
422- Tikrinimo klaida
429- Viršytas užklausų limitas
Kitos HTTP būsenos (7)
405- Metodas neleidžiamas
413- Užklausa per didelė
415- Nepalaikomas formatas
500- Serverio klaida
502- API tinklų sietuvo klaida
503- Paslauga nepasiekiama
504- Baigėsi laukimo laikas
Klaidų katalogas: ErrorResponse
Antraštės
401
WWW-AuthenticateEilutėNeprivalomasServerio reikalaujama tapatybės patvirtinimo schema.
405
AllowEilutėNeprivalomasŠio ištekliaus palaikomi HTTP metodai.
429, 503
Retry-AfterSveikasis skaičiusNeprivalomasMažiausias laukimo laikas prieš kartojant, sekundėmis.
minimum:0