Editar un producto
Proceso que permite editar un producto.
Request 🚀
url
https://app.aveonline.co/avestock/api/editProduct.php
Method
POST
Header
Content-Type: application/json
Características Principales
- Edición de productos con variantes: Permite actualizar un producto principal y sus variantes.
- Gestión de variantes: Crear, actualizar y desactivar variantes existentes.
- Validación de referencias: Verifica que las referencias del producto y variantes sean únicas.
- Gestión de inventario: Manejo automático del inventario para variantes.
- Manejo de archivos: Soporte para actualizar imágenes y videos del producto.
- Dimensiones y peso: Cálculo automático de volumen basado en dimensiones.
- Logs de precios: Registro automático de cambios de precios.
- Integración con listas de precios: Actualización automática en listas de precios de marketplace.
Params JSON
- tipo*
String
Enrutador de la API, "authave"
- empresa*
Number
Identificador de la empresa dentro de AVEONLINE, se obtiene en la [Autenticación](./autenticacion)
- productId*
Number
Identificador del producto.
- editProductName*
String
Nombre único del producto.
- editProductDesc
String
Descripción del producto.
- editShortDesc
String
Descripción corta del producto.
- editWarrantyTime
Number
Tiempo de garantía del producto en meses.
- editWarranty
String
Garantía del producto.
- editSendConditions
String
Condiciones de envío del producto.
- editReturnConditions
String
Condiciones de devolución del producto.
- editProductRef
String
Referencia única del producto.
- referenciaEquivalente
String
Referencia equivalente del producto.
- referenciaEquivalente2
String
Referencia equivalente del producto 2.
- referenciaEquivalente3
String
Referencia equivalente del producto 3.
- referenciaEquivalente4
String
Referencia equivalente del producto 4.
- referenciaEquivalente5
String
Referencia equivalente del producto 5.
- editCosto
Number
Valor del producto.
- editRate
Number
Precio de venta del producto.
- editSugerido
Number
Precio sugerido del producto.
- editDeclarado
Number
Valor declarado del producto.
- editProductStatus*
Number
Identificador del estado del producto. 1 - Activo 2 - Inactivo.
- editCategoryName
Number
Identificador de la categoría a la cual pertenece el producto.
- editBrandName
Number
Identificador de la marca del producto.
- editMarcaName
Number
Identificador de la marca del producto.
- editTax
Number
Porcentaje de impuesto aplicado al producto.
- editMinimo
Number
Stock mínimo del producto.
- editInventarioNegativo
Number
Permite el stock menor a 0 en el producto. 1 - Sí 2 - No.
- editTipoActivacion
Number
1 - Publicar en Marketplace 2 - Sólo por activación 3 - Desactivado.
- editPeso
Number
Peso del producto en kilogramos.
- editAlto
Number
Alto del producto en centímetros.
- editAncho
Number
Ancho del producto en centímetros.
- editLargo
Number
Largo del producto en centímetros.
- editUbicacion
String
Ubicación del producto en la bodega (máximo 10 caracteres).
- editUbicacionCliente
String
Ubicación del cliente (máximo 10 caracteres).
- editTallaName
Number
Identificador de la talla del producto.
- editColorName
Number
Identificador del color del producto.
- editPresentacionName
Number
Identificador de la presentación del producto.
- editEtiquetasName
String
Etiquetas del producto.
- editPriceMin
Number
Precio mínimo del producto.
- editPriceMax
Number
Precio máximo del producto.
- editDropshipperPrice
Number
Precio para dropshipping del producto.
- editPrepTime
Number
Tiempo de alistamiento del producto (por defecto 3).
- editBodegaName
Number
Identificador de la bodega (requerido si editInventarioNegativo = 1).
- editProductImageFile
File
Archivo de imagen del producto.
- editProductImageUrlField
String
URL de la imagen del producto.
- editProductVideoUrl
String
URL del video del producto.
- variants
String
JSON con las variantes del producto (opcional).
Estructura de Variantes
El parámetro variants
debe ser un JSON string con la siguiente estructura:
[
{
"id": 12345,
"name": "Nombre de la variante",
"sku": "SKU-VARIANTE-001",
"cost": 35000,
"price": 50000,
"suggested_price": 45000,
"status": 1,
"iva": 19,
"stock": 100,
"weight": 1.2,
"length": 10.5,
"width": 8.0,
"height": 5.0,
"warehouse": 1,
"negative_inventory": false,
"min_price": 40000,
"max_price": 60000,
"declared_value": 45000,
"dropshipping_price": 48000,
"additional_references": ["REF-ALT-001", "REF-ALT-002", "REF-ALT-003"]
}
]
Parámetros de Variantes
- id
Number
ID de la variante (para actualizar variante existente, omitir para crear nueva).
- name*
String
Nombre de la variante (máximo 255 caracteres).
- sku*
String
SKU único de la variante (máximo 40 caracteres).
- cost
Number
Costo de la variante.
- price
Number
Precio de venta de la variante.
- suggested_price
Number
Precio sugerido de la variante.
- status*
Number
Estado de la variante. 1 - Activo, 2 - Inactivo.
- iva
Number
Porcentaje de IVA de la variante (0-100).
- stock
Number
Stock de la variante (mínimo 0).
- weight
Number
Peso de la variante en kilogramos (mínimo 0.01).
- length
Number
Largo de la variante en centímetros (mínimo 0.1).
- width
Number
Ancho de la variante en centímetros (mínimo 0.1).
- height
Number
Alto de la variante en centímetros (mínimo 0.1).
- warehouse
Number
Identificador de la bodega (requerido si negative_inventory = true).
- negative_inventory
Boolean
Permite inventario negativo para la variante.
- min_price
Number
Precio mínimo de la variante.
- max_price
Number
Precio máximo de la variante.
- declared_value
Number
Valor declarado de la variante.
- dropshipping_price
Number
Precio para dropshipping de la variante.
- additional_references
Array
Referencias adicionales de la variante (opcional).
Notas Importantes
Referencias únicas: Todas las referencias (editProductRef, SKUs de variantes, referencias equivalentes, referencias adicionales de variantes) deben ser únicas dentro de la empresa.
Actualización de variantes: Las variantes se identifican por su SKU. Si existe, se actualiza; si no existe, se crea una nueva.
Desactivación automática: Las variantes que no se incluyan en el JSON se desactivan automáticamente.
Validación individual: Cada variante es validada individualmente. Si una variante falla la validación, se detiene todo el proceso.
Referencias adicionales de variantes: Cada variante puede tener múltiples referencias adicionales que también deben ser únicas en toda la empresa.
Cálculo de volumen: El volumen se calcula automáticamente usando la fórmula:
(largo/100) * (ancho/100) * (alto/100) * 400
y se redondea hacia arriba.Gestión de inventario: El sistema maneja automáticamente el inventario de las variantes según su configuración.
Logs de precios: Se registran automáticamente todos los cambios de precios del producto principal.
Formato de variantes: El parámetro
variants
debe ser un string JSON válido, no un objeto JSON directo.
Ejemplo
{
"tipo": "authave",
"token": "",
"empresa": 6077,
"productId": 12345,
"editProductName": "Producto de prueba actualizado",
"editProductDesc": "Descripción actualizada del producto",
"editShortDesc": "Descripción corta actualizada",
"editWarrantyTime": 12,
"editWarranty": "Garantía actualizada del producto",
"editSendConditions": "Condiciones de envío actualizadas",
"editReturnConditions": "Condiciones de devolución actualizadas",
"editProductRef": "ASF65558-UPD",
"referenciaEquivalente": "FF65558-UPD",
"referenciaEquivalente2": "GG65558",
"referenciaEquivalente3": "",
"referenciaEquivalente4": "",
"referenciaEquivalente5": "",
"editCosto": 52000,
"editRate": 52000,
"editSugerido": 48000,
"editDeclarado": 50000,
"editProductStatus": 1,
"editCategoryName": 6,
"editBrandName": 2,
"editMarcaName": 2,
"editTax": 19,
"editMinimo": 8,
"editInventarioNegativo": 1,
"editTipoActivacion": 2,
"editPeso": 1.8,
"editAlto": 18.0,
"editAncho": 12.0,
"editLargo": 22.0,
"editUbicacion": "B2-C3",
"editUbicacionCliente": "D4-E5",
"editTallaName": 1,
"editColorName": 2,
"editPresentacionName": 1,
"editEtiquetasName": "actualizado,producto,prueba",
"editPriceMin": 42000,
"editPriceMax": 62000,
"editDropshipperPrice": 49000,
"editPrepTime": 3,
"editBodegaName": 1,
"editProductImageUrlField": "https://ejemplo.com/imagen-actualizada.jpg",
"editProductVideoUrl": "https://ejemplo.com/video-actualizado.mp4",
"variants": "[{\"sku\":\"ASF65558-R\",\"name\":\"Variante Roja Actualizada\",\"cost\":48000,\"price\":53000,\"suggested_price\":50000,\"status\":1,\"iva\":19,\"stock\":75,\"weight\":1.3,\"length\":22.0,\"width\":12.0,\"height\":18.0,\"warehouse\":1,\"negative_inventory\":false,\"min_price\":42000,\"max_price\":62000,\"declared_value\":50000,\"dropshipping_price\":49000,\"additional_references\":[\"FF65558-R-UPD\",\"GG65558-R-UPD\"]},{\"sku\":\"ASF65558-G\",\"name\":\"Variante Verde Nueva\",\"cost\":48000,\"price\":53000,\"suggested_price\":50000,\"status\":1,\"iva\":19,\"stock\":40,\"weight\":1.3,\"length\":22.0,\"width\":12.0,\"height\":18.0,\"warehouse\":1,\"negative_inventory\":false,\"min_price\":42000,\"max_price\":62000,\"declared_value\":50000,\"dropshipping_price\":49000,\"additional_references\":[\"FF65558-G\",\"GG65558-G\"]}]"
}
Response 📄
Success
- success
Bool
Respuesta del servidor indicando éxito.
- messages
String
Respuesta del servidor en modo texto.
- variants_processed
Number
Número de variantes procesadas.
- priceListData
Object
Datos de lista de precios (si aplica).
- entry
Object
Datos de entrada de inventario (si aplica).
- departure
Object
Datos de salida de inventario (si aplica).
- availableQuantityUpdated
Bool
Indica si se actualizó la cantidad disponible.
Ejemplo
{
"success": true,
"messages": "Producto actualizado correctamente.",
"variants_processed": 2,
"priceListData": {
"success": true,
"message": "Producto actualizado en lista de precios"
},
"entry": {
"success": true,
"message": "Entrada de inventario creada"
},
"availableQuantityUpdated": true
}
El método no esta permitido.
{
"success": false,
"messages": "Metodo no permitido",
"status": 405
}
Algunos parametros son requeridos.
{
"success": false,
"messages": "El campo editProductName es requerido. y (1) errores más.",
"status": 422,
"errors": [
{
"title": "El campo editProductName no es válido.",
"detail": "El campo editProductName es requerido.",
"source": {
"pointer": "/editProductName"
}
},
{
"title": "El campo editTax no es válido.",
"detail": "El campo editTax debe estar entre 0 y 100.",
"source": {
"pointer": "/editTax"
}
}
]
}
Producto no encontrado
{
"success": false,
"messages": "El producto no existe o no pertenece a la empresa.",
"status": 404
}
Error en variantes
{
"success": false,
"messages": "Error en variante #0: El campo name es requerido. y (2) errores más.",
"status": 422,
"errors": [
{
"title": "El campo name no es válido.",
"detail": "El campo name es requerido.",
"source": {
"pointer": "/name"
}
},
{
"title": "El campo sku no es válido.",
"detail": "El campo sku es requerido.",
"source": {
"pointer": "/sku"
}
},
{
"title": "El campo status no es válido.",
"detail": "El campo status debe estar entre 1 y 2.",
"source": {
"pointer": "/status"
}
}
]
}
Referencia duplicada
{
"success": false,
"messages": "La referencia ASF65558-UPD ya existe",
"status": 400
}
Referencia duplicada en variantes
{
"success": false,
"messages": "Referencia duplicada en variantes",
"status": 422,
"errors": [
{
"detail": "La referencia ASF65558-R ya existe en otra variante o en el producto principal"
}
]
}
JSON inválido en variantes
{
"success": false,
"messages": "JSON inválido en variants: Syntax error",
"status": 400
}
Inventario negativo no permitido
{
"success": false,
"messages": "No se puede marcar el producto como ilimitado porque está asociado a bodega de proveedores fulfillment",
"status": 400
}
Credenciales incorrectas
{
"status": "error",
"mensaje": "Credenciales invalidas o el cliente se encuentra inactivo"
}