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*
StringEnrutador de la API, "authave" - empresa*
NumberIdentificador de la empresa dentro de AVEONLINE, se obtiene en la [Autenticación](./autenticacion) - productId*
NumberIdentificador del producto. - editProductName*
StringNombre único del producto. - editProductDesc
StringDescripción del producto. - editShortDesc
StringDescripción corta del producto. - editWarrantyTime
NumberTiempo de garantía del producto en meses. - editWarranty
StringGarantía del producto. - editSendConditions
StringCondiciones de envío del producto. - editReturnConditions
StringCondiciones de devolución del producto. - editProductRef
StringReferencia única del producto. - referenciaEquivalente
StringReferencia equivalente del producto. - referenciaEquivalente2
StringReferencia equivalente del producto 2. - referenciaEquivalente3
StringReferencia equivalente del producto 3. - referenciaEquivalente4
StringReferencia equivalente del producto 4. - referenciaEquivalente5
StringReferencia equivalente del producto 5. - editCosto
NumberValor del producto. - editRate
NumberPrecio de venta del producto. - editSugerido
NumberPrecio sugerido del producto. - editDeclarado
NumberValor declarado del producto. - editProductStatus*
NumberIdentificador del estado del producto. 1 - Activo 2 - Inactivo. - editCategoryName
NumberIdentificador de la categoría a la cual pertenece el producto. - editBrandName
NumberIdentificador de la marca del producto. - editMarcaName
NumberIdentificador de la marca del producto. - editTax
NumberPorcentaje de impuesto aplicado al producto. - editMinimo
NumberStock mínimo del producto. - editInventarioNegativo
NumberPermite el stock menor a 0 en el producto. 1 - Sí 2 - No. - editTipoActivacion
Number1 - Publicar en Marketplace 2 - Sólo por activación 3 - Desactivado. - editPeso
NumberPeso del producto en kilogramos. - editAlto
NumberAlto del producto en centímetros. - editAncho
NumberAncho del producto en centímetros. - editLargo
NumberLargo del producto en centímetros. - editUbicacion
StringUbicación del producto en la bodega (máximo 10 caracteres). - editUbicacionCliente
StringUbicación del cliente (máximo 10 caracteres). - editTallaName
NumberIdentificador de la talla del producto. - editColorName
NumberIdentificador del color del producto. - editPresentacionName
NumberIdentificador de la presentación del producto. - editEtiquetasName
StringEtiquetas del producto. - editPriceMin
NumberPrecio mínimo del producto. - editPriceMax
NumberPrecio máximo del producto. - editDropshipperPrice
NumberPrecio para dropshipping del producto. - editPrepTime
NumberTiempo de alistamiento del producto (por defecto 3). - editBodegaName
NumberIdentificador de la bodega (requerido si editInventarioNegativo = 1). - editProductImageFile
FileArchivo de imagen del producto o en formato base64. - editProductImageUrlField
StringURL de la imagen del producto. - editProductVideoUrl
StringURL del video del producto. - variants
ArrayArray con las variantes del producto (opcional). - attribute_names
ObjectNombres 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
NumberID de la variante (para actualizar variante existente, omitir para crear nueva). - name*
StringNombre de la variante (máximo 255 caracteres). - sku*
StringSKU único de la variante (máximo 40 caracteres). - cost
NumberCosto de la variante. - price
NumberPrecio de venta de la variante. - suggested_price
NumberPrecio sugerido de la variante. - status*
NumberEstado de la variante. 1 - Activo, 2 - Inactivo. - iva
NumberPorcentaje de IVA de la variante (0-100). - stock
NumberStock de la variante (mínimo 0). - min_stock
NumberStock mínimo de la variante (mínimo 0). - weight
NumberPeso de la variante en kilogramos (mínimo 0.01). - length
NumberLargo de la variante en centímetros (mínimo 0.1). - width
NumberAncho de la variante en centímetros (mínimo 0.1). - height
NumberAlto de la variante en centímetros (mínimo 0.1). - warehouse
NumberIdentificador de la bodega (requerido si negative_inventory = true). - negative_inventory
BooleanPermite inventario negativo para la variante. - min_price
NumberPrecio mínimo de la variante. - max_price
NumberPrecio máximo de la variante. - declared_value
NumberValor declarado de la variante. - dropshipping_price
NumberPrecio para dropshipping de la variante. - additional_references
ArrayReferencias adicionales de la variante (opcional). - image_base64
StringImagen de la variante en formato base64 (opcional). - description
StringDescripción de la variante (máximo 1000 caracteres). - short_description
StringDescripción corta de la variante (máximo 255 caracteres). - attributes
ObjectObjeto 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) * 400y 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
variantsdebe ser un array, no un string JSON.Nombres de atributos: El parámetro
attribute_namespermite definir nombres personalizados para los atributos de las variantes como un objeto con las clavesvariant1,variant2yvariant3.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
attributeses 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
BoolRespuesta del servidor indicando éxito. - messages
StringRespuesta del servidor en modo texto. - variants_processed
NumberNúmero de variantes procesadas. - variants_created
NumberNúmero de variantes creadas. - variants_updated
NumberNúmero de variantes actualizadas. - variants_deactivated
NumberNúmero de variantes desactivadas. - priceListData
ObjectDatos de lista de precios (si aplica). - entry
ObjectDatos de entrada de inventario (si aplica). - departure
ObjectDatos de salida de inventario (si aplica). - availableQuantityUpdated
BoolIndica 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"
}