Skip to main content
Version: Latest

Editar un producto

Proceso que permite editar un producto.

Request 🚀

url

https://app.aveonline.co/avestock/api/editProduct.php

Method

POST

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

  1. Referencias únicas: Todas las referencias (editProductRef, SKUs de variantes, referencias equivalentes, referencias adicionales de variantes) deben ser únicas dentro de la empresa.

  2. Actualización de variantes: Las variantes se identifican por su SKU. Si existe, se actualiza; si no existe, se crea una nueva.

  3. Desactivación automática: Las variantes que no se incluyan en el JSON se desactivan automáticamente.

  4. Validación individual: Cada variante es validada individualmente. Si una variante falla la validación, se detiene todo el proceso.

  5. Referencias adicionales de variantes: Cada variante puede tener múltiples referencias adicionales que también deben ser únicas en toda la empresa.

  6. 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.

  7. Gestión de inventario: El sistema maneja automáticamente el inventario de las variantes según su configuración.

  8. Logs de precios: Se registran automáticamente todos los cambios de precios del producto principal.

  9. 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"
}