Saltar al contenido principal

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

OrigenDescripción
Nativo DigiAntCreado vía Partner API. No tiene referencia externa. Todos sus campos son gestionados directamente en DigiAnt.
Sincronizado desde ERPImportado 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:

EstadoComportamiento
OpenEl almacén está operativo. Los camiones asignados avanzan en cola normalmente.
PausedEl almacén está temporalmente pausado. Los camiones pueden asignarse pero la cola no avanza hasta que el almacén vuelva a Open.
ClosedEl 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.

precaución

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:

CampoPropietarioNotas
nameERP (en almacenes sincronizados)El ERP puede actualizarlo vía sync; DigiAnt no lo toca.
codeERP (en almacenes sincronizados)Código corto del almacén.
statusDigiAntNunca lo sobrescribe una sincronización ERP.
totemGroupIdDigiAntAsignado y gestionado en DigiAnt.
hasDisplayDigiAntIndica si el almacén tiene pantalla de visualización.
displayTextDigiAntTexto 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ónEfecto
CrearNuevo registro, estado Open.
Sincronizar desde ERPUpsert por externalId: crea si no existe, actualiza nombre y código si ya existe.
EliminarBorrado 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.