POST
/api/mod/productos/{espacio}/products/{producto}/variantsCrea una variante
Añade una unidad vendible a un producto: una talla, un sabor, una presentación. Cada variante tiene su SKU, su precio y su stock.
- PERMISOescribe
- CRÉDITOSno gasta
- AUTENTICACIÓNBearer bth_…
PARÁMETROS
| CAMPO | TIPO | REQUERIDO | QUÉ ES |
|---|---|---|---|
| espacio | string | SÍ | El id del espacio (sale en GET /api/companies). Tiene que tener el módulo Productos. |
| producto | string | SÍ | El id del producto: el que devolvió crearlo (32 caracteres hexadecimales). |
CUERPO · JSON
| CAMPO | TIPO | REQUERIDO | QUÉ ES |
|---|---|---|---|
| sku | string | SÍ | Único en el espacio. |
| option_values | object | no | El valor de cada opción del producto: {"Molienda": "En grano"}. |
| barcode | string | no | Su código de barras. |
| external_id | string | no | Su id en tu software contable, para cruzar el stock. |
| activo | boolean | no | Si se vende. Por defecto true. |
RESPUESTA 201
La variante creada.
| CAMPO | TIPO | QUÉ ES |
|---|---|---|
| id · product_id | string | La variante y su producto. |
| sku | string | Su SKU: único en el espacio. |
| option_values | object | El valor de cada opción, p. ej. {"Molienda": "En grano"}. Vacío si no tiene. |
| barcode · external_id | string | null | Los que diste. |
| activo | boolean | Si se vende. Una inactiva no sale en la búsqueda. |
| created_at | number | Segundos desde 1970, con decimales. |
ERRORES DE ESTA RUTA · SIEMPRE {"detail": …}
| STATUS | CUÁNDO | DETAIL LITERAL |
|---|---|---|
| 403 | El espacio no tiene el módulo Productos | módulo no habilitado para este espacio. |
| 403 | La clave es de solo lectura | Tu cuenta es de solo lectura en este espacio. |
| 404 | No hay un producto con ese id en el espacio | producto no encontrado. |
| 409 | Ese SKU ya lo usa otra variante | el SKU ya existe: … |
| 422 | Falta un campo obligatorio o uno no es de su tipo (detail es una lista) | — |
Y los de cualquier ruta —clave inválida, cuenta no al día, IP, límites—, en Errores, límites y créditos.
CONVIENE SABER
option_valuesno se comprueba contra las opciones del producto: manda los mismos nombres y valores que declaraste.