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ție | Comanda ajunge de la Glovo în middleware | receivedTime, status → INITIAL |
| Transformare | Formatul JSON Glovo este convertit în formatul acceptat de POS | status → TRANSFORMED |
| Execuție | Comanda transformată este trimisă către endpoint-ul POS | executedTime, status → EXECUTED |
| Răspuns POS | Răspunsul de la POS este capturat și salvat | posResponse (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:
| Parametru | Locație | Tip | Descriere |
|---|---|---|---|
orderCode | path | string | Codul comenzii (ex: ISRQHPPK1) — câmpul order_code din notificarea primită |
curl -X GET "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/orders/traceability/ISRQHPPK1" \
-H "Authorization: Bearer ACCESS_TOKEN_FROM_ALLOCATION"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']}")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)
{
"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âmp | Tip | Descriere |
|---|---|---|
orderCode | String | Codul comenzii căutate |
storeId | String | ID-ul store-ului asociat comenzii |
receivedTime | DateTime | Momentul exact când comanda a fost recepționată de la Glovo |
orderReceived | Boolean | true dacă comanda a fost recepționată cu succes |
executedTime | DateTime | Momentul exact când comanda a fost trimisă către POS |
executed | Boolean | true dacă comanda a trecut prin etapa de execuție |
sentToPos | Boolean | true dacă comanda a fost efectiv trimisă către POS |
posResponse | String | Răspunsul complet de la POS (JSON string). Conține fie răspunsul de succes, fie mesajul de eroare |
status | String | Statusul curent al comenzii (vezi tabelul de mai jos) |
Status-uri posibile
| Status | Descriere |
|---|---|
INITIAL | Comanda a fost recepționată de la Glovo, dar nu a fost încă procesată |
TRANSFORMED | Formatul comenzii a fost convertit din format Glovo în format POS |
EXECUTED | Comanda a fost trimisă cu succes către POS și s-a primit răspuns |
ERROR | Procesarea a eșuat la una din etape |
Coduri de eroare
| HTTP Status | Descriere |
|---|---|
200 | Informații trasabilitate returnate cu succes |
401 | Access token invalid sau lipsă |
404 | Comanda nu există sau nu aparține store-ului alocat |
429 | Rate limit depășit (max 10 cereri/oră) |
Interpretare rezultate
Comandă procesată cu succes
{
"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
{
"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
{
"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_codedin notificare, nuorder_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:
{
"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
# 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ă
# }