Importación de datos

La API permite actualizar los campos almacenados usando los parámetros POST de llamada.

Para poder importar/introducir datos mediante peticiones a la API, es necesario configurar un conector de importación.

Estructura de datos

“input_data” = [
    “{nombre tabla}” *** = [
        [
            “REF” = “{referencia única del registro}”
            “{nombre campo}” = “{nuevo valor de campo}”,
            “{nombre campo}” = “{nuevo valor de campo}”,
            ...
        ],
        [ … ]
    ],
    “{nombre de otra tabla}” = [
        ...
    ]
]

Nota: la importación mediante JSON aceptará hasta 50 mil de ítems por llamada.

También es posible realizar la importación desde un CSV, como se muestra a continuación:

Ejemplo:

{“input_data”:{
    “products”:”http://externaldomain.com/download/product_items.csv”,
    …

Desde la versión 1.18 de la API, se puede especificar un acceso FTP, al subir un archivo:

{“input_data”:{
	“products”: [

		“URL”:”ftps://externaldomain.com/download/product_items.csv”,
		“user”: “FTP_user”,
		“password”: “FTP_password”,
		“port”: “FTP_port”
	],
	…

Atento: el FTP ha de tener un certificado firmado por una autoridad certificadora, como estándar de seguridad en las aplicaciones. No se aceptarán certificados autofirmados. 

 

Otros parámetros

 

Parámetro

Valor

Explicación

get_output_data

0 o 1

Si introducimos datos nuevos no se devuelve información actualizada, excepto si se desea explícitamente.

get_affected_ids

0 o 1

Devuelve en la respuesta el número total de ítems afectados por tabla: "items_affected":{"products":5}

Para visualizar el detalle de nuevos ítems, modificados y eliminados es necesario llamar a la función correspondiente utilizando SDK:

  • La llamada a la función: $SLConn->get_input_results()
  • La respuesta: Array ( [items_affected] => 7 [new_items] => 2 [updated_items] => 2 [deleted_items] => 3 ) 

Configuración básica

Los nombres de campo serán los definidos en el conector en el apartado de Nombre en Importación 

Si se define un Alias de Tabla, este debe respetarse a la hora de definir los datos a importar en una petición o llamada HTTP por POST.

La configuración del parámetro “Solo actualizar ítems existentes” hará referencia a: 

  • Sí: únicamente se actualizarán los ítems que ya existan en el PIM, descartando todas las referencias detectadas como nuevas en el archivo de importación.
  • No: permitirá la creación de nuevos ítems en el PIM, así como su actualización.

Eliminación de registros mediante POST

Para poder eliminar datos mediante una petición POST, la manera más recomendable será enviando el estado del ítem con el valor X y mapear el campo en el conector como el siguiente ejemplo:

“input_data” = [

	“products” = [

		[
			”product_reference” = “{referencia del registro en Sales Layer}”
			“status” = “X”
		],
		…
	]
]

Utilizando la versión 1.18 de la API es posible eliminar registros creando una nueva estructura llamada delete_data, y enviándola en el cuerpo de llamada POST. 

“delete_data” = [

	“{nombre tabla}” = [

		[
			“REF” = “{referencia única del registro}”
		],
		…
	],
	...
] 

Respuesta y errores

 

La respuesta a la petición de actualización de datos llegará dentro del parámetro JSON/XML “input_response”.

Su estructura será la siguiente:

“input_response” = [
    “result”= (0 = sin cambios, 1 = actualización realizada, 2 = actualización denegada)
    “errors” = [
        0 = “{descripción del error}”,
        {n} = …
    ],
    “items_affected” = [
        “{tabla}” = {número de campos modificados},
    ]
]