Pāriet uz saturu
ShopentlyLearn

Saraksts — Pasūtījumi

Nolasiet datus no “Pasūtījumi”. Rezultāts ir atkarīgs no šīs darbības parametriem.

GET/api/v1/orders

Autentifikācija
Bearer
Pieejams no
BASIC
Nepieciešamās atļaujas
orders.order: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/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))

Atbildes piemērs 200

JSON
{
  "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"
  }
}

Kā tas darbojas

  • Kolekcija piedāvā pasūtījumu kopsavilkumus un numura, statusa, maksājuma statusa un izveides laika filtrus.
  • Pasūtījumu saraksts un informācija ietver delivery.dates. Datumi YYYY-MM-DD ir plānoti un neapstiprina nosūtīšanu. Pašreizējiem datumiem ir prioritāte; vecāki pasūtījumi izmanto saglabāto prognozi. Dzēstas vai nezināmas vērtības ir null. Informācija ietver arī visas pasūtījuma pozīcijas un produktu attēlus.
  • Derīgos statusu identifikatorus iegūstiet no /api/v1/order-statuses.
  • Pasūtījuma un maksājuma statusam ir atsevišķi PATCH galapunkti un atļaujas.
  • Reģistrētā maksājuma statusa maiņa neveic kartes maksājumu vai atmaksu ar maksājumu pakalpojuma sniedzēja starpniecību.

Pasūtījums · Kopsummas

Summas un likmes nāk no saglabātā pasūtījuma, ieskaitot pozīciju labojumus. Trūkstošie vēsturiskie dati ir null un netiek aizstāti ar pašreizējām kataloga likmēm. Summas paliek decimālās virknes.

Saraksts atgriež kopsavilkumus. Katram rezultātam iegūstiet GET /api/v1/orders/{order_id}, lai eksportētu pilnus finanšu datus. GET atkārtojumi ir ierobežoti un ievēro Retry-After. Eksports pēc izveides datuma nesinhronizē vēlākus labojumus.

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
numberVirkne nullNeobligāts

Lietotājam paredzēts pasūtījuma vai pieteikuma numurs.

Virkne:minLength: 1maxLength: 48
status_idVirkne nullNeobligāts

No atbilstošās statusu vārdnīcas iegūts identifikators.

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

Reģistrētais maksājuma statuss.

Ierobežojumi · Virkne 1
enum
["unpaid", "paid", "failed", "refunded"]
created_fromVirkne nullNeobligāts

Izveides laika filtra sākums.

Virkne:format: "date-time"
created_toVirkne nullNeobligāts

Izveides laika filtra beigas.

Virkne:format: "date-time"

Šī darbība nepieņem JSON saturu.

Atbildes

Atbilde 200

dataMasīvs <OrderSummaryData > Obligāts

Veiksmīgas atbildes dati.

Lauki · data

OrderSummaryData

created_atVirkneObligāts

Izveides laiks.

format: "date-time"
customerCustomerData Obligāts

Šim resursam saglabātā klienta informācija.

deliveryShippingData Obligāts

Piegādes metode un saistītā informācija.

discount_amountMoneyData Obligāts

Decimāla summa JSON virknes formā; null tikai tad, ja atļauts.

idVirkneObligāts

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

lifecycle_stateOrderLifecycleState Obligāts

Biznesa dzīves cikla stāvoklis.

localeVirkneObligāts

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

market_idVirkneObligāts

Konteksta galapunkta atgrieztais tirgus identifikators.

numberVirkneObligāts

Lietotājam paredzēts pasūtījuma vai pieteikuma numurs.

paymentPaymentData Obligāts

Pasūtījumā reģistrētās maksājuma detaļas.

prices_include_taxLoģiska vērtībaObligāts

Vai norādītās cenas ietver nodokli.

shipping_discount_amountMoneyData Obligāts

Decimāla summa JSON virknes formā; null tikai tad, ja atļauts.

statusOrderStatusData Obligāts

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

subtotalMoneyData Obligāts

Summa pirms atbildē parādītajiem papildu komponentiem.

taxMoneyData Obligāts

Nodokļu informācija.

tax_country_codeVirkne nullObligāts

Nodokļu valsts · Saglabātie pasūtījuma dati · ISO 3166-1 alpha-2; null.

totalMoneyData Obligāts

Kopējā summa.

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