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 con stock mínimo.
- Manejo de archivos: Soporte para actualizar imágenes y videos del producto, incluyendo formato base64.
- Imágenes de variantes: Soporte para imágenes individuales por variante en formato base64.
- 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 o en formato base64.
- editProductImageUrlField
String
URL de la imagen del producto.
- editProductVideoUrl
String
URL del video del producto.
- variants
Array
Array con las variantes del producto (opcional).
- attribute_names
Object
Nombres personalizados para los atributos de las variantes (opcional).
Estructura de Nombres de Atributos
El parámetro attribute_names
permite definir nombres personalizados para los atributos de las variantes:
{
"attribute_names": {
"variant1": "Color",
"variant2": "Talla",
"variant3": "Material"
}
}
Este parámetro es opcional y debe ser un objeto con las claves variant1
, variant2
y variant3
. Estos nombres se utilizarán para personalizar la presentación de los atributos de las variantes en la interfaz.
Estructura de Variantes
El parámetro variants
debe ser un array 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,
"min_stock": 5,
"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"],
"image_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...",
"description": "Descripción completa de la variante",
"short_description": "Descripción corta de la variante",
"attributes": {
"Color": "Rojo",
"Talla": "M",
"Material": "Algodón"
}
}
]
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).
- min_stock
Number
Stock mínimo 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).
- image_base64
String
Imagen de la variante en formato base64 (opcional).
- description
String
Descripción de la variante (máximo 1000 caracteres).
- short_description
String
Descripción corta de la variante (máximo 255 caracteres).
- attributes
Object
Objeto con los atributos específicos de la variante como pares clave-valor.
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 array, no un string JSON.Nombres de atributos: El parámetro
attribute_names
permite definir nombres personalizados para los atributos de las variantes como un objeto con las clavesvariant1
,variant2
yvariant3
.Imágenes en base64: Tanto el producto principal como las variantes soportan imágenes en formato base64.
Stock mínimo de variantes: Cada variante puede tener su propio stock mínimo configurado individualmente.
Descripciones de variantes: Cada variante puede tener su propia descripción completa (
description
) y descripción corta (short_description
).Estadísticas de procesamiento: La respuesta incluye contadores detallados de variantes procesadas, creadas, actualizadas y desactivadas.
Transacciones con rollback: Todo el proceso se ejecuta en una transacción que se revierte completamente si ocurre cualquier error.
Asignación automática de bodegas: Si una variante requiere bodega pero no se especifica, se asigna automáticamente la bodega principal de la empresa.
Atributos de variantes: El campo
attributes
es un objeto que permite definir los atributos específicos de cada variante como pares clave-valor, donde las claves corresponden a los nombres definidos enattribute_names
.
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",
"attribute_names": {
"variant1": "Color",
"variant2": "Talla",
"variant3": "Material"
},
"variants": [
{
"sku": "ASF65558-R",
"name": "Variante Roja Actualizada",
"cost": 48000,
"price": 53000,
"suggested_price": 50000,
"status": 1,
"iva": 19,
"stock": 75,
"min_stock": 5,
"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"],
"image_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQ...",
"description": "Descripción completa de la variante roja actualizada",
"short_description": "Variante roja actualizada",
"attributes": {
"Color": "Rojo",
"Talla": "L",
"Material": "Algodón"
}
},
{
"sku": "ASF65558-G",
"name": "Variante Verde Nueva",
"cost": 48000,
"price": 53000,
"suggested_price": 50000,
"status": 1,
"iva": 19,
"stock": 40,
"min_stock": 3,
"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"],
"description": "Descripción completa de la variante verde nueva",
"short_description": "Variante verde nueva",
"attributes": {
"Color": "Verde",
"Talla": "M",
"Material": "Poliéster"
}
}
]
}
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.
- variants_created
Number
Número de variantes creadas.
- variants_updated
Number
Número de variantes actualizadas.
- variants_deactivated
Number
Número de variantes desactivadas.
- 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,
"variants_created": 1,
"variants_updated": 1,
"variants_deactivated": 0,
"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": "Las variantes deben ser un array",
"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"
}