LogoDAD Dev Docs

Uso de la API

Documentación de uso de la API de carga masiva de productos

Uso de la API

La Products Upload API permite realizar la carga masiva de productos mediante el endpoint:

POST /load-products

Este endpoint permite enviar hasta 3000 productos por solicitud en formato JSON.

Los productos son validados y enviados a procesamiento asíncrono dentro del sistema.


Endpoint

POST /load-products

URL Base

https://business-irdgco-products-upload.cloudintercorpretail-qa.pe/api/business-irdgco-products-upload/v1

Autenticación

La API utiliza autenticación mediante Bearer Token (JWT).

Header requerido:

Authorization: Bearer <token>

Headers requeridos

HeaderDescripción
AuthorizationToken JWT de autenticación
Content-Typeapplication/json

Límite de la API

La API permite:

Máximo 3000 productos por request

Si se supera este límite se devuelve:

400 - El número máximo de productos por carga es 3000

Consideraciones importantes

  • El procesamiento es asíncrono
  • El response 200 NO garantiza persistencia final
  • Los errores pueden ser parciales

Estructura del Request

El cuerpo de la solicitud debe contener:

products[]

Lista de productos a procesar.


Ejemplo de referencia

{
  "products": [
    {
      "productCode": "OE-2796064",
      "skuCode": "2833000",
      "eanCode": "2800028330008",
      "description": "TT POD PMC RYANN VTT COL NEGRO XL",
      "price": 39.95,
      "length": 1,
      "width": 1,
      "height": 1,
      "weight": 1,
      "productType": "ST",
      "dispatchType": "BTA",
      "unitMeasurement": "UN",
      "unitedNationsCode": "53102902",
      "hierarchyCode": "OE-L0817",
      "taxSale": "F",
      "productPmmStatus": "5",
      "dateUpdate": "2020-01-01 00:00:01",
      "isEcommerce": "F",
      "measurable": "F",
      "conversionFactor": 1,
      "barcodes": [
        {
          "productCode": "OE-2796064",
          "eanCode": "2800028330008",
          "indicator": "T"
        }
      ],
      "hierarchies": [
        {
          "hierarchyDescription": "POLOS",
          "hierarchyCode": "OE-L0817",
          "hierarchyParent": "OE-D096",
          "hierarchyName": "LINEA",
          "hierarchyLevel": 4
        },
        {
          "hierarchyDescription": "DEPORTE HOMBRE O",
          "hierarchyCode": "OE-D096",
          "hierarchyParent": "OE-A11",
          "hierarchyName": "DEPARTAMENTO",
          "hierarchyLevel": 3
        },
        {
          "hierarchyDescription": "TEXTIL DEPORTE",
          "hierarchyCode": "OE-A11",
          "hierarchyParent": "OE-T03",
          "hierarchyName": "AREA",
          "hierarchyLevel": 2
        },
        {
          "hierarchyDescription": "DEPORTES",
          "hierarchyCode": "OE-T03",
          "hierarchyParent": "",
          "hierarchyName": "DIVISION",
          "hierarchyLevel": 1
        }
      ],
      "lstAttributes": [
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST182",
          "attributeCode": "OE-ATTR606467",
          "attributeDescription": "2025",
          "productCode": "OE-2796064",
          "keySubAttribute": "ANO",
          "attributeDescriptionDetail": "2025"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST202",
          "attributeCode": "OE-ATTR590891",
          "attributeDescription": "VTT",
          "productCode": "OE-2796064",
          "keySubAttribute": "VENTANA",
          "attributeDescriptionDetail": "SI"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST203",
          "attributeCode": "OE-ATTR591063",
          "attributeDescription": "SI",
          "productCode": "OE-2796064",
          "keySubAttribute": "WEB",
          "attributeDescriptionDetail": "WWW"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST207",
          "attributeCode": "OE-ATTR593844",
          "attributeDescription": "LONG TERM",
          "productCode": "OE-2796064",
          "keySubAttribute": "CICLO DE VIDA",
          "attributeDescriptionDetail": "LONG TERM"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST208",
          "attributeCode": "OE-ATTR593848",
          "attributeDescription": "BEST SELLER",
          "productCode": "OE-2796064",
          "keySubAttribute": "TIPO DE ROTACION",
          "attributeDescriptionDetail": "BEST SELLER"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST215",
          "attributeCode": "OE-ATTR597127",
          "attributeDescription": "XXS",
          "productCode": "OE-2796064",
          "keySubAttribute": "TAMANO",
          "attributeDescriptionDetail": "XXS"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST45",
          "attributeCode": "OE-ATTR231",
          "attributeDescription": "TODA TEMPORADA",
          "productCode": "OE-2796064",
          "keySubAttribute": "TEMPORADA",
          "attributeDescriptionDetail": "TODA TEMPORADA"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST46",
          "attributeCode": "OE-ATTR233",
          "attributeDescription": "IMPORTADO",
          "productCode": "OE-2796064",
          "keySubAttribute": "PROCEDENCIA",
          "attributeDescriptionDetail": "IMPORTADO"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST50",
          "attributeCode": "OE-ATTR246",
          "attributeDescription": "BASICO",
          "productCode": "OE-2796064",
          "keySubAttribute": "PIRAMIDE MIX",
          "attributeDescriptionDetail": "BASICO"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST51",
          "attributeCode": "OE-ATTR249",
          "attributeDescription": "PROPIA",
          "productCode": "OE-2796064",
          "keySubAttribute": "TIPO DE NEGOCIACION",
          "attributeDescriptionDetail": "PROPIA"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST52",
          "attributeCode": "OE-ATTR252",
          "attributeDescription": "PROPIA",
          "productCode": "OE-2796064",
          "keySubAttribute": "PROPIA O DE PROV",
          "attributeDescriptionDetail": "PROPIA"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST53",
          "attributeCode": "OE-ATTR3779",
          "attributeDescription": "PODIUM",
          "productCode": "OE-2796064",
          "keySubAttribute": "NOMBRE DE MARCA",
          "attributeDescriptionDetail": "PODIUM"
        },
        {
          "attributeType": "ATRIBUTO",
          "parentAttributeCode": "OE-AST83",
          "attributeCode": "OE-ATTR533",
          "attributeDescription": "S-M-L-XL",
          "productCode": "OE-2796064",
          "keySubAttribute": "TIPO DE CURVA TALLA",
          "attributeDescriptionDetail": "S-M-L-XL"
        }
      ],
      "salesTax": 15.0
    }
  ]
}

Validaciones por campo

Campos obligatorios

Los siguientes campos son requeridos por producto:

  • productCode
  • skuCode
  • eanCode
  • description
  • price
  • length
  • width
  • height
  • weight
  • productType
  • unitMeasurement
  • unitedNationsCode
  • hierarchyCode
  • taxSale
  • productPmmStatus
  • dateUpdate
  • isEcommerce
  • measurable
  • conversionFactor
  • barcodes
  • hierarchies
  • lstAttributes

Descripción de los atributos del request

Definición de campos importantes

Identificadores

CampoDescripción
productCodeCódigo único del producto a nivel empresa
skuCodeCódigo SKU del producto
eanCodeCódigo de barras principal del producto

Descripción

CampoDescripción
descriptionDescripción del producto
  • Tamaño máximo recomendado: 255 caracteres

Dimensiones del producto

CampoDescripciónUnidad
lengthLargo del productocm
widthAncho del productocm
heightAlto del productocm
weightPeso del productokg

Catálogos de negocio

productType

Tipo de producto definido por el sistema maestro.

Ejemplo:

ST

unitMeasurement

Unidad de medida del producto.

Ejemplos:

UN -> Unidad
KG -> Kilogramo
LT -> Litro
ML -> Mililitro

dispatchType

Tipo de despacho del producto.

Valores posibles:

NORMAL
EXPRESS
INTERNATIONAL

Impuestos

taxSale

T -> Afecto a impuesto
F -> No afecto

Estado del producto

productPmmStatus

Ejemplo:

5 -> Producto activo

Conversión de unidades

conversionFactor

Ejemplo:

1 caja = 12 unidades
conversionFactor = 12

Flags del producto

isEcommerce

T -> Habilitado en ecommerce
F -> No disponible en ecommerce

measurable

T -> Producto medible
F -> Producto unitario

Objetos relacionados

barcodes

Lista de códigos de barras asociados al producto. Permite registrar los diferentes códigos de identificación comercial que puede tener un producto.

CampoDescripción
productCodeCódigo único del producto al que pertenece el código de barras.
eanCodeCódigo de barras asociado al producto.
indicatorIndicador que identifica el tipo o condición del código de barras.

Ejemplo:

"barcodes": [
  {
    "productCode": "OE-2796064",
    "eanCode": "2800028330008",
    "indicator": "T"
  }
]

hierarchies

Lista de jerarquías a las que pertenece el producto. Permite representar la clasificación jerárquica del producto, desde niveles superiores como división y área hasta niveles más específicos como departamento y línea.

CampoDescripción
hierarchyDescriptionDescripción de la jerarquía.
hierarchyCodeCódigo que identifica la jerarquía.
hierarchyParentCódigo de la jerarquía padre. Puede estar vacío cuando corresponde al nivel superior.
hierarchyNameNombre del nivel jerárquico.
hierarchyLevelNivel que ocupa la jerarquía dentro de la estructura.

Ejemplo:

"hierarchies": [
  {
    "hierarchyDescription": "POLOS",
    "hierarchyCode": "OE-L0817",
    "hierarchyParent": "OE-D096",
    "hierarchyName": "LINEA",
    "hierarchyLevel": 4
  },
  {
    "hierarchyDescription": "DEPORTE HOMBRE O",
    "hierarchyCode": "OE-D096",
    "hierarchyParent": "OE-A11",
    "hierarchyName": "DEPARTAMENTO",
    "hierarchyLevel": 3
  },
  {
    "hierarchyDescription": "TEXTIL DEPORTE",
    "hierarchyCode": "OE-A11",
    "hierarchyParent": "OE-T03",
    "hierarchyName": "AREA",
    "hierarchyLevel": 2
  },
  {
    "hierarchyDescription": "DEPORTES",
    "hierarchyCode": "OE-T03",
    "hierarchyParent": "",
    "hierarchyName": "DIVISION",
    "hierarchyLevel": 1
  }
]

lstAttributes

Lista de atributos adicionales asociados al producto. Cada elemento representa un atributo y su correspondiente valor o detalle.

CampoDescripción
attributeTypeTipo de atributo asociado al producto.
parentAttributeCodeCódigo del atributo padre o tipo de atributo al que pertenece.
attributeCodeCódigo que identifica el atributo específico.
attributeDescriptionDescripción o valor principal del atributo.
productCodeCódigo del producto al que pertenece el atributo.
keySubAttributeNombre o clave del subatributo.
attributeDescriptionDetailValor o descripción detallada del atributo.

Ejemplo:

"lstAttributes": [
  {
    "attributeType": "ATRIBUTO",
    "parentAttributeCode": "OE-AST182",
    "attributeCode": "OE-ATTR606467",
    "attributeDescription": "2025",
    "productCode": "OE-2796064",
    "keySubAttribute": "ANO",
    "attributeDescriptionDetail": "2025"
  },
  {
    "attributeType": "ATRIBUTO",
    "parentAttributeCode": "OE-AST202",
    "attributeCode": "OE-ATTR590891",
    "attributeDescription": "VTT",
    "productCode": "OE-2796064",
    "keySubAttribute": "VENTANA",
    "attributeDescriptionDetail": "SI"
  }
]

Códigos de respuesta

CódigoDescripción
200Procesamiento correcto
400Error en la solicitud
401No autorizado
403Prohibido
500Error interno

Flujo interno de procesamiento

  1. Recepción del request
  2. Validación de estructura JSON
  3. Validación de reglas de negocio
  4. Publicación en sistema de mensajería (PubSub)
  5. Procesamiento asíncrono
  6. Persistencia en sistemas downstream
  7. Generación de resultados

Ejemplo de flujo

El siguiente diagrama describe el flujo interno de procesamiento de la API:

Swagger

El archivo swagger de la API se puede consultar en el siguiente enlace: Swagger

On this page