Locații
Locațiile depozitului identifică unde se află stocul fizic — de obicei un cod ierarhic, ca CULOAR1-RAFT-3. O locație poate avea o locație-părinte (parent_location_id) și sub-locații (children).
Read-only prin API
Locațiile sunt doar de citit prin API. Crearea / actualizarea / ștergerea se fac din editorul de layout din interfața WMS, ca să se păstreze integritatea referențială cu inventory.
Endpoint-uri
| Metodă | Cale | Descriere |
|---|---|---|
| GET | /api/v1/locations | Listă paginată; filtre zone, zone_id, type, parent_location_id, roots_only, search. |
| GET | /api/v1/locations/{id} | Citește o locație (cu sub-locațiile și stocul ei). |
Filtre la listare
| Parametru | Tip | Note |
|---|---|---|
zone | string | Filtrează după zonă. |
zone_id | integer | Doar locațiile din zona cu acest id. |
type | string | Filtrează după tipul locației. |
parent_location_id | integer | Doar sub-locațiile acestei locații. |
roots_only | boolean | true → doar locațiile fără părinte (ignorat dacă trimiți parent_location_id). |
search | string | Potrivire parțială pe location_code. |
per_page | integer | Implicit 100. |
Câmpuri adăugate în septembrie 2026
| Câmp | Tip | Implicit | Semnificație |
|---|---|---|---|
is_pickable | boolean | true | stocul de aici poate fi alocat la picking (fals pentru carantină, QC hold, locații inactive) |
pick_sequence | integer|null | null | ordinea locației în ruta de picking (mod sequence); locațiile fără valoare vin ultimele |
is_sellable | boolean | true | stocul de aici intră în cantitatea comunicată magazinelor (eMAG, Wix) |
allow_putaway | boolean | true | recepția poate sugera și accepta locația |
putaway_sequence | integer|null | null | ordinea preferată de recepție când nu există deja stoc din produs; locațiile fără valoare vin ultimele |
storage_policy | string | mixed | mixed / single_product / dedicated / allowed_products |
dedicated_product_id | integer|null | null | produsul dedicat (pentru dedicated) |
allowed_product_ids | array|null | null | lista de produse permise (pentru allowed_products) |
allow_other_products | boolean | true | pentru dedicated / allowed_products: alte produse acceptate cât timp slotul e gol |
zone_id | integer|null | null | zona ca înregistrare; zone rămâne codul ei |
Rândurile din inventoryItems (la citirea unei locații) au acum și level_number (integer|null) — nivelul ca număr, derivat din textul shelf_level.
Exemplu — citire locație
bash
curl https://tenant.notsowms.ro/api/v1/locations/14 \
-H "Authorization: Bearer tenant.7c4a8d09ca3762af61e59520943dc26494f8941b"Răspuns:
json
{
"data": {
"id": 14,
"location_code": "CULOAR1-RAFT-3",
"zone": "CULOAR1",
"zone_id": 3,
"type": "shelf",
"parent_location_id": 2,
"status": "active",
"is_pickable": true,
"pick_sequence": null,
"is_sellable": true,
"allow_putaway": true,
"putaway_sequence": null,
"storage_policy": "mixed",
"dedicated_product_id": null,
"allowed_product_ids": null,
"allow_other_products": true,
"children": [
{ "id": 31, "location_code": "CULOAR1-RAFT-3-A", "zone": "CULOAR1", "type": "bin", "parent_location_id": 14, "status": "active" }
],
"inventory_items": [
{ "id": 3391, "product_id": 812, "quantity": 20, "product": { "product_id": 812, "sku": "BRK-PAD-001", "name": "Plăcuțe frână față" } }
]
}
}GET /api/v1/locations/{id} încarcă sub-locațiile (children) și stocul curent (inventory_items, cu produsul aferent). Listarea (GET /api/v1/locations) întoarce locațiile fără aceste relații, paginate.