Skip to content

Trasabilitate Comenzi de Test (API) ​

COMENZI REALE

Acest API acoperă comenzile plasate pe store-ul de test alocat. Pentru comenzile din magazinele voastre reale se folosește ecranul Trasabilitate comenzi din portal.

API-ul de trasabilitate permite verificarea parcursului unei comenzi prin sistemul de integrare Glovo — de la primirea de la Glovo, până la trimiterea către POS și răspunsul primit.

Parcursul unei comenzi ​

Glovo App → Glovo Backend → Middleware Integrare → POS
                                  │
                            ┌─────┴─────┐
                            │  Recepție  │  receivedTime
                            │  Comanda   │  status: INITIAL
                            └─────┬─────┘
                                  │
                            ┌─────┴─────┐
                            │ Transformare│  Conversie format
                            │  & Execuție │  Glovo → POS
                            └─────┬─────┘
                                  │
                            ┌─────┴─────┐
                            │ Trimitere  │  executedTime
                            │ către POS  │  status: EXECUTED
                            └─────┬─────┘
                                  │
                            ┌─────┴─────┐
                            │  Răspuns   │  posResponse
                            │   POS      │  (success / error)
                            └───────────┘

Etapele procesării ​

EtapăCe se întâmplăCâmp actualizat
RecepțieComanda ajunge de la Glovo în middlewarereceivedTime, status → INITIAL
TransformareFormatul JSON Glovo este convertit în formatul acceptat de POSstatus → TRANSFORMED
ExecuțieComanda transformată este trimisă către endpoint-ul POSexecutedTime, status → EXECUTED
Răspuns POSRăspunsul de la POS este capturat și salvatposResponse (succes sau eroare)

Endpoint Trasabilitate ​

GET /api/v3/orders/traceability/{orderCode} ​

AUTENTIFICARE

Acest endpoint folosește accessToken-ul primit la alocarea store-ului de test (nu token-ul de integrare POS).

Parametri:

ParametruLocațieTipDescriere
orderCodepathstringCodul comenzii (ex: ISRQHPPK1) — câmpul order_code din notificarea primită
bash
curl -X GET "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/orders/traceability/ISRQHPPK1" \
  -H "Authorization: Bearer ACCESS_TOKEN_FROM_ALLOCATION"
python
import requests

url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/orders/traceability/ISRQHPPK1"
headers = {"Authorization": f"Bearer {access_token}"}
response = requests.get(url, headers=headers)
trace = response.json()

if trace["sentToPos"]:
    print(f"Comanda trimisă la POS la: {trace['executedTime']}")
    print(f"Răspuns POS: {trace['posResponse']}")
else:
    print(f"Comanda NU a fost trimisă la POS. Status: {trace['status']}")
javascript
const response = await fetch(
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/orders/traceability/ISRQHPPK1',
  { headers: { 'Authorization': `Bearer ${accessToken}` } }
);
const trace = await response.json();
console.log(`Status: ${trace.status}, Sent to POS: ${trace.sentToPos}`);

Răspuns (200 OK) ​

json
{
  "orderCode": "ISRQHPPK1",
  "storeId": "gi__001",
  "receivedTime": "2026-03-11T09:30:00",
  "orderReceived": true,
  "executedTime": "2026-03-11T09:30:05",
  "executed": true,
  "sentToPos": true,
  "posResponse": "{\"status\":\"accepted\",\"orderId\":\"POS-789\"}",
  "status": "EXECUTED"
}

Câmpuri răspuns ​

CâmpTipDescriere
orderCodeStringCodul comenzii căutate
storeIdStringID-ul store-ului asociat comenzii
receivedTimeDateTimeMomentul exact când comanda a fost recepționată de la Glovo
orderReceivedBooleantrue dacă comanda a fost recepționată cu succes
executedTimeDateTimeMomentul exact când comanda a fost trimisă către POS
executedBooleantrue dacă comanda a trecut prin etapa de execuție
sentToPosBooleantrue dacă comanda a fost efectiv trimisă către POS
posResponseStringRăspunsul complet de la POS (JSON string). Conține fie răspunsul de succes, fie mesajul de eroare
statusStringStatusul curent al comenzii (vezi tabelul de mai jos)

Status-uri posibile ​

StatusDescriere
INITIALComanda a fost recepționată de la Glovo, dar nu a fost încă procesată
TRANSFORMEDFormatul comenzii a fost convertit din format Glovo în format POS
EXECUTEDComanda a fost trimisă cu succes către POS și s-a primit răspuns
ERRORProcesarea a eșuat la una din etape

Coduri de eroare ​

HTTP StatusDescriere
200Informații trasabilitate returnate cu succes
401Access token invalid sau lipsă
404Comanda nu există sau nu aparține store-ului alocat
429Rate limit depășit (max 10 cereri/oră)

Interpretare rezultate ​

Comandă procesată cu succes ​

json
{
  "orderReceived": true,
  "sentToPos": true,
  "status": "EXECUTED",
  "posResponse": "{\"status\":\"accepted\"}"
}

Comanda a parcurs tot fluxul: recepție → transformare → trimitere POS → răspuns pozitiv.

Comandă recepționată dar netrimisă la POS ​

json
{
  "orderReceived": true,
  "sentToPos": false,
  "status": "ERROR",
  "posResponse": "Store execution is deactivated"
}

Comanda a fost recepționată de la Glovo, dar a eșuat la execuție. Câmpul posResponse conține motivul erorii. Cauze posibile:

  • Execuția dezactivată pentru store
  • Eroare la transformarea formatului
  • Configurare integrare incorectă

Comandă cu eroare de la POS ​

json
{
  "orderReceived": true,
  "sentToPos": true,
  "status": "EXECUTED",
  "posResponse": "{\"error\":\"Connection timeout\"}"
}

Comanda a fost trimisă către POS, dar POS-ul a răspuns cu o eroare. Verificați configurarea POS-ului și conectivitatea.

Comandă negăsită ​

Dacă primiți 404 Not Found, verificați:

  • Codul comenzii este corect (câmpul order_code din notificare, nu order_id)
  • Comanda aparține store-ului de test alocat
  • Comanda nu este prea veche

Rate Limiting ​

API-ul de trasabilitate are o limită de 10 cereri pe oră per access token.

Dacă depășiți limita, primiți:

json
{
  "error": "RATE_LIMIT_EXCEEDED",
  "message": "Maximum 10 requests per hour. Try again at 2026-03-11T11:00:00",
  "retryAt": "2026-03-11T11:00:00"
}

RECOMANDARE

Nu faceți polling frecvent. Verificați trasabilitatea după ce ați primit confirmarea de livrare a comenzii sau după un interval rezonabil (30-60 secunde de la plasare).

Exemplu flux complet ​

bash
# 1. Plasați o comandă de test prin aplicația Glovo
#    (folosiți contul de test creat la alocare)

# 2. POS-ul primește comanda pe notificationUrl
#    → POS răspunde cu 200 OK

# 3. Verificați trasabilitatea cu order_code din notificare
curl -s -X GET \
  "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/orders/traceability/ISRQHPPK1" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .

# Rezultat:
# {
#   "orderCode": "ISRQHPPK1",
#   "orderReceived": true,     ← comanda a ajuns în sistem
#   "sentToPos": true,          ← a fost trimisă către POS
#   "posResponse": "{...}",     ← răspunsul POS-ului
#   "status": "EXECUTED"        ← procesare completă
# }