Subida de productos

Documentación del Endpoint: upload-product

URL del Endpoint

https://site.com/api/upload-product

Autenticación

Este endpoint requiere un API Key para la autenticación. Debes incluir el API Key en el cuerpo de la solicitud JSON.

Parámetros de la Solicitud

La solicitud debe incluir los siguientes parámetros en formato JSON:

  • apikey (string, requerido): Tu clave API para autenticar la solicitud.

  • sku (string, requerido): SKU único del producto. Si ya existe un producto con este SKU, se actualizará ese producto.

  • category_id (int, requerido): ID de la categoría a la que pertenece el producto.

  • price (float, requerido): Precio del producto. Este valor debe ser el precio final y se convertirá a centavos en el servidor.

  • currency (string, opcional): Moneda del producto (por ejemplo, USD, EUR).

  • stock (int, requerido): Cantidad de stock disponible para el producto.

  • product_type (string, opcional): Tipo de producto (por ejemplo, physical, digital).

  • title (string, requerido): Título del producto.

  • description (string, opcional): Descripción completa del producto.

  • short_description (string, opcional): Descripción corta del producto.

  • seo_title (string, opcional): Título SEO para el producto.

  • seo_description (string, opcional): Descripción SEO para el producto.

  • seo_keywords (string, opcional): Palabras clave SEO para el producto.

  • brand_id (int, opcional): ID de la marca del producto.

  • visibility (int, opcional): Visibilidad del producto (1 = visible, 0 = oculto).

  • status (int, opcional): Estado del producto (1 = activo, 0 = inactivo).

  • image_urls (array, opcional): Lista de URLs de imágenes del producto. Solo se usa cuando se crea un producto nuevo.

Datos de Variantes (Opcional)

Si el producto tiene variantes, se pueden incluir utilizando la clave variants. Cada variante puede tener las siguientes propiedades:

  • label (string, requerido): Nombre de la variante (por ejemplo, "Color").

  • type (string, requerido): Tipo de la variante (por ejemplo, "dropdown", "checkbox").

  • is_visible (int, opcional): Determina si la variante es visible (1 = visible, 0 = no visible). Valor por defecto: 1.

  • use_different_price (int, opcional): Indica si las opciones de la variante tienen precios diferentes (1 = sí, 0 = no). Valor por defecto: 0.

  • options (array, requerido): Lista de opciones para esta variante. Cada opción puede incluir:

    • name (string, requerido): Nombre de la opción (por ejemplo, "Rojo", "Azul").

    • price (float, opcional): Precio específico para esta opción.

    • stock (int, opcional): Stock específico para esta opción.

    • color (string, opcional): Código de color hexadecimal para esta opción (por ejemplo, #FF0000).

Ejemplo de Solicitud

{
  "apikey":      "your_api_key",
  "sku":         "PS4-ORIGINAL-BLUE",
  "category_id": 10,
  "price":       "59",
  "currency":    "USD",
  "stock":       100,
  "product_type":"physical",
  "title":       "Joystick Sony PS4 Original rojo",
  "description": "Joystick original de Sony para PS4 en color azul.",
  "seo_title":   "Joystick Sony PS4 Original Azul",
  "seo_description":"Compra el Joystick Sony PS4 Original en color azul.",
  "seo_keywords":"Joystick, Sony, PS4, Original, Azul",
  "proveedor":   "Sony",
  "variants": [
    {
      "label":               "Color",
      "type":                "color",
      "is_visible":          1,
      "use_different_price": 1,
      "options": [
        { "name": "Rojo", "price": "59", "stock": 50, "color": "#FF0000" },
        { "name": "Azul", "price": "59", "stock": 30, "color": "#0000FF" }
      ]
    },
    {
      "label":               "Talles",
      "type":                "dropdown",
      "is_visible":          1,
      "use_different_price": 1,
      "options": [
        { "name": "L",  "price": "59", "stock": 50, "color": "" },
        { "name": "XL", "price": "59", "stock": 30, "color": "" }
      ]
    }
  ],
  "combinations": [
    {
      "options":    ["Rojo","L"],
      "sku":        "PS4-RED-L",
      "price":      "61.00",
      "stock":      25,
      "is_visible": 1,
      "images": [
        "https://dominio.com/images/comb-abc123-l-red-1.jpg",
        "https://dominio.com/images/comb-abc123-l-red-2.jpg",
        "https://dominio.com/images/comb-abc123-l-red-3.jpg"
      ]
    },
    {
      "options":    ["Azul","XL"],
      "price":      "62.50",
      "stock":      10,
      "images": [
        "https://dominio.com/images/comb-abc123-xl-blue-1.jpg"
      ]
    }
  ],
  "image_urls": [
    "https://example.com/image1.png",
    "https://example.com/image2.png"
  ]
}

Respuesta Exitosa

En caso de éxito, se devolverá un JSON con los detalles del producto creado o actualizado.

Ejemplo de Respuesta

{
    "success": true,
    "product_id": 7719,
    "action": "insert",
    "sku": "PS4-ORIGINAL-BLUEsss"
}

Respuesta de Error

En caso de error, se devolverá un JSON con un mensaje de error y un código de estado HTTP correspondiente.

Ejemplo de Respuesta de Error

{
    "error": "Invalid API Key"
}

Notas Adicionales

  • Imagenes: Si se está actualizando un producto existente, las imágenes no se resubirán.

  • Validación del SKU: Si el SKU ya existe, se actualizará el producto correspondiente en lugar de crear uno nuevo.

  • Visibilidad y Estado: Puedes controlar si un producto es visible o activo utilizando los campos visibility y status.

  • Variantes: Si el producto incluye variantes, estas se crearán pero se borraran las anteriores, cada vez que actualizes debes enviar todas las variantes y sus datos

Last updated