Materiales
Su integración mantiene el precio, el stock y el estado activo/inactivo de los materiales de la central: tableros, tapacantos y componentes. Los tres tipos tienen las mismas rutas y el mismo formato; solo cambia el path.
| Tipo | Path | Rutas en Swagger |
|---|---|---|
| Tableros | /materials/boards | Boards |
| Tapacantos | /materials/edges | Edges |
| Componentes | /materials/components | Components |
Los ejemplos a continuación usan tableros.
Código interno
Cada ruta de materiales localiza el ítem por el internal_code, el código interno del ítem en su sistema. Las rutas de actualización no crean ítems ni modifican el código interno de un ítem existente: el registro del material y su código interno se hacen en Cortecloud. La única ruta que crea ítems es la copia entre centrales, y solo en las centrales de destino. Los ítems sin código interno no aparecen en ninguna ruta.
Antes de integrar, confirme con la central que los ítems que el ERP va a actualizar están registrados en Cortecloud con los mismos códigos del ERP.
Listar
Ruta: GET /materials/boards (y las equivalentes de tapacantos y componentes).
Devuelve internal_code, active, price, stock y unit de cada ítem, paginado por limit y offset (ver paginación). Para buscar un solo ítem, use la consulta por código. Límite: 1 solicitud cada 5 segundos.
Consultar un ítem
Ruta: GET /materials/boards/{internalCode}.
Devuelve el ítem con el código interno indicado en la URL, o 404 si la central no tiene un ítem con ese código.
Actualizar varios ítems
Rutas: PUT /materials/boards o PATCH /materials/boards. Las dos hacen lo mismo.
Es la forma recomendada para sincronizar el ERP con Cortecloud: una llamada actualiza todos los ítems enviados. Solo cambian los campos enviados; los demás quedan como están.
[
{ "internal_code": "MDF-BR-18", "price": 289.9, "stock": 42 },
{ "internal_code": "MDF-CZ-15", "active": false }
]
El cuerpo puede ser una lista de ítems, como la anterior, un objeto { "resource": [...] } o un solo ítem.
- Cada ítem debe tener
internal_code. Si falta en alguno, la solicitud entera se rechaza con400y no se modifica nada. - Los ítems cuyo
internal_codeno existe en la central se ignoran sin error. La respuesta lista solo los códigos actualizados: compárela con lo que se envió para saber cuáles quedaron fuera. - Límite: 1 solicitud cada 5 segundos.
Campos aceptados:
| Campo | Efecto |
|---|---|
price | Precio del ítem. Un valor negativo borra el precio (queda nulo). |
stock | Stock. Un valor negativo se convierte en 0. |
unit | Unidad de redondeo. Cero o un valor negativo borra el valor (queda nulo). |
active | true activa el ítem en la central; false lo desactiva. |
Actualizar un ítem
Rutas: PUT /materials/boards/{internalCode} o PATCH /materials/boards/{internalCode}.
Actualiza el ítem con el código interno de la URL, con los mismos campos de la actualización en lote. Responde 404 si la central no tiene un ítem con ese código.
Si el cuerpo también trae internal_code, prevalece el del cuerpo: el ítem actualizado es el que tiene ese código, y no el de la URL. Para no actualizar el ítem equivocado, no envíe internal_code en el cuerpo de esta ruta.
Copiar materiales entre centrales
Ruta: POST /materials/boards/cross-sync (y las equivalentes de tapacantos y componentes).
Sirve para empresas con varias centrales que venden el mismo catálogo: en lugar de actualizar cada central, la integración actualiza una y copia sus materiales a las demás.
{
"sourceCompanyInternalCode": "CENTRAL-SP",
"targetCompanyInternalCodes": ["CENTRAL-RJ", "CENTRAL-MG"],
"syncPrice": true,
"syncStock": false,
"syncActive": false
}
Cada central de destino queda con los mismos materiales que la central de origen: los ítems que el destino no tenía pasan a existir en él, y los que ya tenía reciben los datos del origen, como el código interno y el estado activo/inactivo.
| Opción | true | false (predeterminado) |
|---|---|---|
syncPrice | Copia el precio. | El destino conserva el precio que tenía; los ítems nuevos en el destino quedan con precio 0. |
syncStock | Copia el stock. | El destino conserva el stock que tenía; los ítems nuevos en el destino quedan con stock 0. |
syncActive | Desactiva en el destino los ítems que no existen en el origen. | Esos ítems quedan como están. |
Reglas:
- La central de origen debe ser la central de la solicitud (
x-company-internal-code), y las de destino deben estar activas en Cortecloud y vinculadas a la misma api key. Si alguna no lo está, la respuesta es403y no se copia nada. - La copia se ejecuta en segundo plano: la respuesta
202solo confirma que fue programada. Ninguna ruta informa cuándo termina la copia; para verificar el resultado, liste los materiales con el código de la central de destino enx-company-internal-code. - Límite: 1 solicitud cada 5 segundos.