El almacén
Un almacén es la instalación o silo donde se ejecutan las operaciones de carga y descarga. En DigiAnt, el almacén actúa como punto de referencia para las autorizaciones: define el lugar físico al que el transportista está autorizado a acceder.
Dos orígenes posibles
| Origen | Descripción |
|---|---|
| Nativo DigiAnt | Creado vía Partner API. No tiene referencia externa. Todos sus campos son gestionados directamente en DigiAnt. |
| Sincronizado desde ERP | Importado desde el ERP. Tiene un externalId que lo identifica unívocamente en el sistema de origen. |
Cuando el ERP actualiza un almacén (nombre, código), DigiAnt aplica los cambios sobre el registro existente usando el externalId como clave de upsert — nunca crea un duplicado.
Estado operativo
El campo status controla si el almacén admite nuevas operaciones. Hay tres valores posibles:
| Estado | Comportamiento |
|---|---|
Open | El almacén está operativo. Los camiones asignados avanzan en cola normalmente. |
Paused | El almacén está temporalmente pausado. Los camiones pueden asignarse pero la cola no avanza hasta que el almacén vuelva a Open. |
Closed | El almacén está cerrado. No se pueden asignar camiones. |
Un almacén recién creado —tanto nativo como sincronizado desde ERP— nace en estado Open.
El estado es un campo gestionado exclusivamente por DigiAnt. Las sincronizaciones desde ERP nunca sobrescriben el estado: si cambias el estado de un almacén en DigiAnt y el ERP hace una sincronización posterior, el estado se mantiene.
Campos gestionados por cada parte
DigiAnt distingue qué campos pertenecen a cada dominio:
| Campo | Propietario | Notas |
|---|---|---|
name | ERP (en almacenes sincronizados) | El ERP puede actualizarlo vía sync; DigiAnt no lo toca. |
code | ERP (en almacenes sincronizados) | Código corto del almacén. |
status | DigiAnt | Nunca lo sobrescribe una sincronización ERP. |
totemGroupId | DigiAnt | Asignado y gestionado en DigiAnt. |
hasDisplay | DigiAnt | Indica si el almacén tiene pantalla de visualización. |
displayText | DigiAnt | Texto mostrado en pantalla. Solo editable si hasDisplay: true. |
Para almacenes nativos (sin ERP), todos los campos son gestionados por DigiAnt vía Partner API.
Pantalla de visualización
Si un almacén tiene hasDisplay: true, dispone de una pantalla física que muestra información en tiempo real. El texto de esa pantalla se gestiona con el campo displayText.
Intentar cambiar displayText en un almacén sin pantalla (hasDisplay: false) devuelve un error de validación.
Ciclo de vida
Los almacenes soportan borrado suave: al eliminar un almacén, no se borra físicamente — se marca como deleted. Las autorizaciones existentes que referenciaban ese almacén no se ven afectadas.
| Operación | Efecto |
|---|---|
| Crear | Nuevo registro, estado Open. |
| Sincronizar desde ERP | Upsert por externalId: crea si no existe, actualiza nombre y código si ya existe. |
| Eliminar | Borrado suave — deleted: true, deletedAt registrado. |
Gestión de almacenes vía Partner API
Crear
POST /partner/warehouses
X-Partner-API-Key: dpk_live_...
Content-Type: application/json
{
"name": "Silo Central",
"code": "SILO-C",
"totemGroupId": "uuid-del-totem-group",
"hasDisplay": true
}
Los campos name, code y hasDisplay son obligatorios. totemGroupId es opcional.
Consultar
Lista todos los almacenes de tu empresa logística:
GET /partner/warehouses
X-Partner-API-Key: dpk_live_...
Consulta un almacén concreto por su UUID:
GET /partner/warehouses/{id}
X-Partner-API-Key: dpk_live_...
Actualizar
Modifica los campos de un almacén nativo. Solo funciona en almacenes nativos — los sincronizados desde ERP devuelven 403.
PATCH /partner/warehouses/{id}
X-Partner-API-Key: dpk_live_...
Content-Type: application/json
{
"name": "Silo Central Renovado",
"code": "SILO-CR",
"totemGroupId": "uuid-del-totem-group",
"hasDisplay": false
}
Los tres campos name, code y hasDisplay son obligatorios en el PATCH.
Eliminar
Soft-elimina el almacén. Solo funciona en almacenes nativos.
DELETE /partner/warehouses/{id}
X-Partner-API-Key: dpk_live_...
Devuelve 204 si tiene éxito, 403 si el almacén es de origen ERP.
El campo warehouseExternalId en las autorizaciones
Al crear una autorización, el almacén se referencia por su externalId en el campo warehouseExternalId:
{
"warehouseExternalId": "ERP-ALMACEN-01"
}
DigiAnt busca el almacén por ese identificador en el catálogo. Si no existe ningún almacén con ese externalId, la petición devuelve 422. La respuesta de la autorización devuelve la referencia resuelta como warehouse.