Referință OpenAPI
Specificația OpenAPI completă este disponibilă pentru descărcare:
Medii
| Mediu | URL |
|---|---|
| Production | https://prod.store-management.glovo.alb.app.onlineservice.io |
Integrarea, inclusiv testarea pe store-uri de test, se face pe acest endpoint. Store-urile de test sunt alocate în același mediu și se disting prin configurație, nu prin adresă.
Menu Validate V3
POST /api/v3/menu/validate
Endpoint-ul oferă posibilitatea de a încărca un meniu și de a-l valida conform schemei JSON. Dacă nu sunt detectate erori sau avertismente, endpoint-ul va returna un mesaj "totul OK". Dacă sunt detectate erori sau avertismente, endpoint-ul va returna o listă de erori și avertismente, împreună cu informații detaliate despre fiecare eroare (numărul de linie, numărul de coloană și mesajul de eroare).
RECOMANDARE
Validați payload-ul înainte de a trimite meniul pentru execuție. Acest lucru va asigura că meniul este în format corect și va economisi timp prin identificarea erorilor din timp.
Request Body: application/json — payload-ul meniului ca string JSON
curl -X POST \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"store_environment": "prod",
"store_id": "partner__001",
"partner_name": "partner",
"super_categories": [...]
}'import requests
url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate"
headers = {
"Authorization": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"store_environment": "prod",
"store_id": "partner__001",
"partner_name": "partner",
"super_categories": [...]
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())const response = await fetch(
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate',
{
method: 'POST',
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
store_environment: 'prod',
store_id: 'partner__001',
partner_name: 'partner',
super_categories: [...]
})
}
);
const data = await response.json();HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate"))
.header("Authorization", "YOUR_API_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: YOUR_API_KEY',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonPayload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);req, _ := http.NewRequest("POST",
"https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate",
bytes.NewBuffer(jsonPayload))
req.Header.Set("Authorization", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)Răspunsuri:
| Status | Descriere |
|---|---|
200 | Rezultat validare meniu |
400 | Meniul nu este valid sau cererea nu a putut fi citită — motivul este în corpul răspunsului |
500 | Eroare internă |
Schema răspuns MenuValidationResponse:
{
"valid": true,
"errors": ["string"],
"warnings": ["string"]
}| Câmp | Tip | Descriere |
|---|---|---|
valid | boolean | Specifică dacă meniul este valid sau nu |
errors | array[string] | Informații detaliate despre erorile generate de schema JSON |
warnings | array[string] | Informații detaliate despre avertismentele generate de schema JSON |
Upload Menu V3
POST /api/v3/menu/upload
Acest endpoint permite utilizatorilor să încarce sau să actualizeze întregul meniu al unui magazin în Glovo. Procesul este asincron — endpoint-ul returnează un transaction_id care poate fi utilizat pentru a urmări progresul prin endpoint-ul de Check Status.
LIMITĂ ZILNICĂ
Există un maxim de 5 actualizări de meniu permise pe zi per adresă de magazin. Dacă limita este atinsă, endpoint-ul va returna codul de stare 429 (Too Many Requests). Pentru actualizări mici ale produselor și atributelor, se recomandă utilizarea endpoint-urilor individuale sau bulk.
OPERAȚIE ATOMICĂ
În cazul în care sistemul Glovo întâmpină o eroare la actualizarea meniului, nu se vor face modificări pentru a evita inconsistențele.
Request Body: application/json
{
"store_id": "partner__001",
"store_environment": "prod",
"partner_name": "partner",
"super_categories": [
{
"name": "default",
"position": 0,
"image_url": null,
"display_super_category": false,
"categories": [...]
}
]
}curl -X POST \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/upload' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d @menu.jsonimport requests
url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/upload"
headers = {"Authorization": "YOUR_API_KEY", "Content-Type": "application/json"}
response = requests.post(url, json=menu_payload, headers=headers)
print(response.json())Răspunsuri:
| Status | Descriere |
|---|---|
200 | Upload acceptat — conține transaction_id |
400 | Cerere invalidă, magazin necunoscut, magazin neactivat în Glovo sau meniu respins la validare |
429 | Limita zilnică depășită — detail conține motivul transmis de Glovo |
500 | Eroare internă — detail conține o referință care se comunică echipei de suport |
502 | Glovo nu a putut procesa upload-ul sau nu a putut fi contactat; se reîncearcă ulterior |
Schema răspuns MenuUploadResponse:
{
"status": "string",
"transaction_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
"message": "string",
"detail": "string"
}transaction_id se întoarce doar împreună cu 200. La orice alt status, message descrie ce a eșuat, iar detail indică ce trebuie corectat — calea câmpului, valoarea sau magazinul în cauză:
{
"status": "ERROR",
"transaction_id": null,
"message": "The menu upload request is invalid",
"detail": "Field 'super_categories[0].categories[1].sections[0].products[0].price' is not a number: '18,00'. Use a dot as the decimal separator, for example \"25.00\".",
"validation": null
}Schema MenuUpdateRequest
| Câmp | Tip | Descriere |
|---|---|---|
store_id | string | Identificatorul unic al magazinului |
store_environment | string | Mediul magazinului: prod sau staging |
partner_name | string | Numele partenerului / soluției POS |
super_category | SuperCategory | O singură super-categorie (backward compatibility V2) |
super_categories | array[SuperCategory] | Lista de super-categorii (V3 — recomandat) |
Schema SuperCategory
O "super-categorie" este cel mai înalt nivel de categorizare din meniul Glovo.
| Câmp | Tip | Descriere |
|---|---|---|
name | string | Numele super-categoriei |
position | integer | Poziția în meniu |
image_url | string | URL imagine (HTTPS obligatoriu) |
display_super_category | boolean | Dacă se afișează sau nu |
categories | array[Category] | Lista de categorii |
Schema Category
O categorie este un nivel secundar de organizare în meniul Glovo. Este obligatoriu să aveți cel puțin o categorie în meniu. Este formată din secțiuni și trebuie să aibă cel puțin o secțiune. Exemple: băuturi, burgeri, salate, deserturi, paste.
| Câmp | Tip | Descriere |
|---|---|---|
name | string | Numele categoriei |
position | integer | Poziția categoriei în meniu |
image_url | string | URL imagine categorie (HTTPS) |
sections | array[Section] | Lista de secțiuni |
Schema Section
| Câmp | Tip | Descriere |
|---|---|---|
name | string | Numele secțiunii |
position | integer | Poziția secțiunii |
products | array[Product] | Lista produselor din secțiune |
Schema Product
Un produs este un element fundamental al meniului Glovo, care reprezintă de obicei un element fizic disponibil într-un magazin. Magazinul are libertatea de a decide ce dorește să ofere ca produse. Fiecare produs este asociat cu o secțiune.
| Câmp | Tip | Descriere |
|---|---|---|
id | string | ID-ul produsului (trebuie să fie unic) |
name | string | Numele produsului |
price | string | Prețul produsului |
imageUrl | string | URL imagine principală (HTTPS obligatoriu) |
extraImageUrls | array[string] | URL-uri imagini suplimentare (HTTPS, max 9 imagini) |
description | string | Descrierea produsului |
available | boolean | Dacă produsul este disponibil (default: true) |
attribute_groups | array[AttributeGroup] | Grupuri de atribute ale produsului |
Schema AttributeGroup
Grupurile de atribute permit gruparea personalizărilor similare în grupuri generice, fiecare putând avea un număr minim și maxim de opțiuni pentru client. De exemplu: sosuri (maioneză, muștar, ketchup) sau băuturi (apă, cola, lămâie).
| Câmp | Tip | Descriere |
|---|---|---|
id | string | ID-ul grupului |
name | string | Numele grupului |
min | integer | Numărul minim de atribute selectabile |
max | integer | Numărul maxim de atribute selectabile |
collapse | boolean | Dacă grupul e collapsat sau expandat by default |
attributes | array[Attribute] | Lista de atribute |
multiple_selection | boolean | Dacă se pot selecta mai multe atribute |
Schema Attribute
Produsele pot fi personalizate în diverse moduri (adăugare maioneză, includere băutură, carne extra). Fiecare personalizare este un atribut. Produsele nu sunt obligate să aibă atribute, dar fiecare atribut poate avea un impact diferit asupra prețului.
| Câmp | Tip | Descriere |
|---|---|---|
id | string | ID-ul atributului (trebuie să fie unic) |
name | string | Numele atributului |
available | boolean | Dacă atributul este disponibil (default: true) |
selected_by_default | boolean | Selectat implicit (default: false) |
price | string | Prețul atributului (default: null) |
Check Status V3
GET /api/v3/menu/checkstatus/{trackingCode}
Permite verificarea stării procesului de actualizare a meniului pentru un anumit transaction_id.
Parametri:
| Parametru | Locație | Tip | Obligatoriu | Descriere |
|---|---|---|---|---|
trackingCode | path | string | Da | transaction_id returnat de upload |
curl -X GET \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/checkstatus/a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9' \
-H 'Authorization: YOUR_API_KEY'import requests
url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/checkstatus/a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9"
response = requests.get(url, headers={"Authorization": "YOUR_API_KEY"})
print(response.json())Schema răspuns MenuUploadStatus:
{
"transaction_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
"status": "FETCH_MENU_INVALID_PAYLOAD",
"last_updated_at": "2020-03-24T10:03:49.614Z",
"details": [
"Invalid section [\"Menus\"]: Section must contain at least one product"
]
}Status-uri posibile:
| Status | Descriere |
|---|---|
SUCCESS | Actualizarea meniului s-a finalizat cu succes |
PROCESSING | Procesul este încă în desfășurare |
FETCH_MENU_INVALID_PAYLOAD | JSON invalid |
FETCH_MENU_SERVER_ERROR | Eroare server la preluarea meniului |
FETCH_MENU_UNAUTHORIZED | Neautorizat |
NOT_PROCESSED | Configurare integrare incorectă |
LIMIT_EXCEEDED | Limita zilnică de actualizări depășită |
GLOVO_ERROR | Eroare în sistemul Glovo |
INFO
În cazul în care statusul indică o eroare, endpoint-ul returnează informații suplimentare în câmpul details pentru a ajuta la înțelegerea cauzei erorii.
Modify Product V3
POST /api/v3/item/modify/stores/{storeId}/products/{productId}
Actualizează un produs individual într-un store Glovo. Permite modificarea prețului și/sau disponibilității.
Parametri:
| Parametru | Locație | Tip | Obligatoriu |
|---|---|---|---|
storeId | path | string | Da |
productId | path | string | Da |
Request Body ModifyProduct:
{
"price": 10.0,
"available": true
}| Câmp | Tip | Descriere |
|---|---|---|
price | number (double) | Prețul nou al produsului. Dacă valoarea nu este prezentă sau este null, nu va fi actualizată |
available | boolean | Dacă produsul este disponibil. Dacă valoarea nu este prezentă sau este null, nu va fi actualizată |
curl -X POST \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/stores/partner__001/products/burger1' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"price": 10.0, "available": true}'import requests
url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/stores/partner__001/products/burger1"
response = requests.post(url, json={"price": 10.0, "available": True}, headers={"Authorization": "YOUR_API_KEY"})Schema răspuns ModifyProductResult:
{
"id": "burger1",
"name": "Burger Large",
"price": "10.0",
"image_url": "https://server.com/image",
"description": "A large cheeseburger",
"available": true,
"error": null
}Răspunsuri:
| Status | Descriere |
|---|---|
200 | Produs actualizat cu succes |
400 | Payload sau parametri invalizi |
401 | Neautorizat |
500 | Eroare internă server |
Modify Attribute V3
POST /api/v3/item/modify/stores/{storeId}/attributes/{attributeId}
Actualizează un atribut individual într-un store Glovo.
Parametri:
| Parametru | Locație | Tip | Obligatoriu |
|---|---|---|---|
storeId | path | string | Da |
attributeId | path | string | Da |
Request Body ModifyAttribute:
{
"price_impact": 1.5,
"available": true
}| Câmp | Tip | Descriere |
|---|---|---|
price_impact | number (double) | Prețul nou al atributului. Dacă valoarea nu este prezentă sau este null, nu va fi actualizat |
available | boolean | Dacă atributul este disponibil. Dacă valoarea nu este prezentă sau este null, nu va fi actualizat |
curl -X POST \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/stores/partner__001/attributes/side1' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"price_impact": 1.5, "available": true}'Schema răspuns ModifyAttributeResult:
{
"id": "side1",
"name": "French fries",
"selected_by_default": true,
"price": "1.5",
"available": true,
"error": null
}Răspunsuri: 200 OK | 400 Invalid | 401 Unauthorized | 500 Server Error
Bulk Update V3
POST /api/v3/item/modify/stores/{storeId}/bulk
Actualizare în masă pentru produse și atribute. Operație asincronă — returnează transaction_id.
Parametri:
| Parametru | Locație | Tip | Obligatoriu |
|---|---|---|---|
storeId | path | string | Da |
Request Body BulkUpdateItems:
{
"products": [
{
"id": "burger1",
"name": "Burger Large",
"price": 10.0,
"image_url": "https://server.com/image",
"extra_image_urls": [
"https://i.imgur.com/Tsj3NOK.png",
"https://i.imgur.com/Qj5DlEH.png"
],
"restrictions": {
"is_alcoholic": false
},
"available": true
}
],
"attributes": [
{
"id": "side1",
"name": "French fries",
"price_impact": 1.5,
"available": true
}
]
}Schema BulkUpdateItemsProducts
| Câmp | Tip | Descriere |
|---|---|---|
id | string | Identificator unic al produsului în store |
name | string | Numele produsului |
price | number | Prețul produsului |
image_url | string | URL imagine principală (HTTPS) |
extra_image_urls | array[string] | URL-uri imagini suplimentare (HTTPS, max 9 — dacă se trimit mai multe, se procesează primele 9). Afișate pe pagina de detaliu în ordinea din array, după imaginea principală |
restrictions | MenuRestrictions | Restricții produs |
available | boolean | Dacă produsul este disponibil |
Schema MenuRestrictions
| Câmp | Tip | Descriere |
|---|---|---|
is_alcoholic | boolean | Indică dacă produsul este o băutură alcoolică. Va declanșa un flux de utilizator conform cu restricțiile pentru magazinele din Polonia și România. Dacă doriți să activați restricția de alcool, contactați echipa de integrare la pos.integrations@appsmart.ro |
Schema BulkUpdateItemsAttributes
| Câmp | Tip | Descriere |
|---|---|---|
id | string | Identificator unic al atributului în store |
name | string | Numele atributului |
price_impact | number | Prețul atributului |
available | boolean | Dacă atributul este disponibil |
curl -X POST \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/stores/partner__001/bulk' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d @bulk-update.jsonSchema răspuns BulkUpdateItemsStatus:
{
"error": null,
"message": null,
"transaction_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
"status": "PARTIALLY_PROCESSED",
"last_updated_at": "2020-03-24T10:03:49.614Z",
"details": [
"Products updated: [11111, 22222]",
"Products not updated: [12345, 56789]",
"Attributes updated: [33333, 44444]",
"Attributes not updated: [67890, 45678]"
]
}Status-uri Bulk Update:
| Status | Descriere |
|---|---|
SUCCESS | Toate elementele actualizate cu succes |
PROCESSING | Procesare în curs |
PARTIALLY_PROCESSED | Doar o parte din elemente au fost actualizate |
NOT_PROCESSED | Niciun element nu a fost procesat |
GLOVO_ERROR | Eroare în sistemul Glovo |
Bulk Update Check Status V3
GET /api/v3/item/modify/checkstatus/bulk/{trackingCode}
Verificare status pentru actualizarea bulk.
Parametri:
| Parametru | Locație | Tip | Obligatoriu |
|---|---|---|---|
trackingCode | path | string | Da |
curl -X GET \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/checkstatus/bulk/a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9' \
-H 'Authorization: YOUR_API_KEY'Răspuns: Schema BulkUpdateItemsStatus (vezi mai sus)
Update Order Status V3
POST /api/v3/order/stores/orders/status
Permite actualizarea stării comenzii în diferite etape ale pregătirii.
Request Body OrderStatusChangeRequestVO:
{
"store_id": "partner__001",
"partner_name": "partner",
"order_id": "616342127",
"status": "ACCEPTED"
}| Câmp | Tip | Descriere |
|---|---|---|
store_id | string | ID-ul store-ului |
partner_name | string | Numele partenerului |
order_id | string | ID-ul comenzii |
status | string | Noul status (vezi mai jos) |
Status-uri disponibile:
| Status | Descriere |
|---|---|
ACCEPTED | Comanda a fost acceptată de magazin. Dacă nu acceptați comanda, Glovo va continua procesarea — acceptarea nu este obligatorie |
READY_FOR_PICKUP | Comanda este gata de ridicare de un curier sau client (doar comenzi livrate de curierii Glovo) |
OUT_FOR_DELIVERY | Curierul a preluat comanda și o livrează către client (doar comenzi Marketplace) |
PICKED_UP_BY_CUSTOMER | Comanda a fost ridicată de client (doar comenzi de tip pick-up de client) |
curl -X POST \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/order/stores/orders/status' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"store_id":"partner__001","partner_name":"partner","order_id":"616342127","status":"ACCEPTED"}'Răspunsuri: 200 Status actualizat | 400 Payload invalid | 401 Neautorizat | 500 Eroare server
Order Lifecycle V3
PUT /api/v3/order-lifecycle/integrations/orders/{orderId}/accept/{storeId}
Acceptare comandă cu timp opțional de pregătire.
Parametri:
| Parametru | Locație | Tip | Descriere |
|---|---|---|---|
orderId | path | string | Identificatorul unic al comenzii |
storeId | path | string | Identificatorul unic al magazinului |
Request Body:
{
"committedPreparationTime": "2024-02-02T19:20:30Z"
}| Câmp | Tip | Descriere |
|---|---|---|
committedPreparationTime | string (UTC Timestamp) | Opțional. Momentul în viitor la care comanda este așteptată să fie gata în magazin. Servește la estimarea mai exactă a sosirii curierului la magazin. Format ISO 8601, în UTC: YYYY-MM-DDThh:mm:ssZ. |
Intervalul acceptat
Valoarea este comparată cu timpul de preparare estimat de Glovo pentru comanda respectivă. Sunt aplicate două condiții distincte, nu o toleranță simetrică:
estimated < committed ≤ estimated + 900 secunde- Limita superioară — diferența față de estimare nu poate depăși 900 de secunde.
- Limita inferioară — valoarea trebuie să fie strict mai mare decât estimarea. Nu există toleranță aici: o valoare egală cu estimarea, sau sub ea fie și cu o secundă, este respinsă.
O logică de ajustare care aliniază valoarea la estimarea Glovo produce o respingere. Ținta corectă este strict peste estimare.
Coduri de răspuns
| Cod | Semnificație |
|---|---|
204 | Comanda a fost acceptată, iar timpul de preparare a fost înregistrat. Fără conținut. |
202 | Comanda a fost acceptată, dar timpul de preparare nu a fost înregistrat: fie nu a fost trimis, fie este în afara intervalului acceptat. Corpul răspunsului conține motivul. |
400 | Corpul cererii nu este un obiect JSON (de exemplu []). Comanda nu este acceptată prin această cerere. |
Respingerea valorii nu afectează comanda: aceasta rămâne acceptată atât la 204, cât și la 202. Se recomandă tratarea diferențiată a celor două coduri, astfel încât în POS să fie vizibil când timpul transmis nu a fost preluat.
Corpul cererii este întotdeauna un obiect JSON. Când nu se transmite un timp de preparare, se trimite obiectul gol {}.
Exemplu de răspuns 202 — timp în afara intervalului:
{
"invalid-params": [
{
"name": "committedPreparationTime",
"reason": "The difference in seconds between committed preparation time and estimated preparation time is exceeding [900] threshold. committed: [1953], estimated: [900]"
}
],
"title": "Your request parameters are not valid."
}Mesajul din reason conține pragul aplicat și ambele valori comparate. Se recomandă citirea pragului din mesaj și logarea lui, în locul păstrării unei valori fixe în cod.
Exemplu de răspuns 202 — timp netransmis:
Cererea fără committedPreparationTime (corp {}) primește tot 202, cu motivul de mai jos. Comanda este acceptată; răspunsul indică doar că nu a fost înregistrat un timp de preparare. Nu este o eroare și nu necesită o nouă cerere.
{
"invalid-params": [
{
"name": "committedPreparationTime",
"reason": "Committed preparation time is missing."
}
],
"title": "Your request parameters are not valid."
}Valoarea este definitivă
Timpul de preparare se transmite o singură dată, la acceptare. Nu există o operație de actualizare ulterioară: celelalte operații din ciclul de viață al comenzii primesc doar identificatorii, fără corp de cerere, deci nu pot transporta un timp revizuit.
Dacă prepararea durează mai mult decât s-a anunțat, singurul semnal disponibil rămâne ready_for_pickup, trimis în momentul în care comanda este efectiv gata. O a doua acceptare a aceleiași comenzi este respinsă.
PUT /api/v3/order-lifecycle/integrations/orders/{orderId}/ready_for_pickup/{storeId}
Marchează comanda ca gata de ridicare.
PUT /api/v3/order-lifecycle/integrations/orders/{orderId}/out_for_delivery/{storeId}
Marchează comanda ca în curs de livrare (doar Marketplace).
PUT /api/v3/order-lifecycle/integrations/orders/{orderId}/customer_picked_up/{storeId}
Marchează comanda ca ridicată de client.
Scheduling V3 — Închidere Temporară
PUT /api/v3/scheduling/stores/{storeId}/closing
Setează o închidere temporară pentru magazin până la o dată și oră specificată. Va ignora programul normal de funcționare.
Request Body TemporaryClosingRequest:
{
"until": "2024-12-20T10:00:00+01:00"
}| Câmp | Tip | Obligatoriu | Descriere |
|---|---|---|---|
until | string | Da | Data și ora (cu offset UTC) până la care magazinul va fi închis. Format ISO-8601 |
Răspunsuri:
| Status | Descriere |
|---|---|
204 | Închidere temporară setată cu succes |
400 | Payload invalid, dată în trecut, format storeId invalid |
401 | Neautorizat (token API invalid) |
403 | Interzis (token-ul nu are permisiuni) |
404 | Store negăsit |
500 | Eroare internă server |
GET /api/v3/scheduling/stores/{storeId}/closing
Obține starea închiderii temporare active, dacă există.
Schema răspuns TemporaryClosingStatusResponse:
{
"until": "2024-12-20T10:00:00+01:00"
}| Câmp | Tip | Descriere |
|---|---|---|
until | string (nullable) | Data și ora până la care magazinul este închis. null dacă nu există o închidere activă |
DELETE /api/v3/scheduling/stores/{storeId}/closing
Elimină închiderea temporară activă. După eliminare, magazinul va urma programul regulat de funcționare.
INFO
Glovo poate returna 204 chiar dacă nu există o închidere activă de eliminat.
curl -X PUT \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/scheduling/stores/partner__001/closing' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"until": "2024-12-20T10:00:00+01:00"}'curl -X GET \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/scheduling/stores/partner__001/closing' \
-H 'Authorization: YOUR_API_KEY'curl -X DELETE \
'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/scheduling/stores/partner__001/closing' \
-H 'Authorization: YOUR_API_KEY'