Ejemplo 2 - El parámetro Last_update
Introducción y estructura de datos
Por la
Atento: si el conector ha sido modificado o refrescado, después de la última fecha pasada, serán devueltos todos los ítems y no se tendrá en cuenta la fecha pasada con anterioridad.
En el ejemplo 2 del uso del SDK, vamos a dar un ejemplo de utilización de este parámetro.
Empezaremos por usar el conector creado en el Ejemplo 1, con la misma configuración de tablas (ver la configuración de tablas en el Ejemplo 1), y los mismos filtros y parámetros:

Para los ítems a exportar, como no hemos añadido filtros de búsqueda o de etiquetas en el conector, el único parámetro a tener en cuenta será su estado visible.
- Para categorías tenemos 14 categorías visibles:

Donde la última fecha de modificación es del día 20/08/2020 as 11:28 horas.
- Para los productos tenemos 5, también en estado visible:

En el
- Y para las variantes, tenemos 6:

Que corresponden al total de variantes de los productos que se encuentran en estado visible.
Como podemos observar la última fecha de modificación de estas variantes fue el día 21/08/2020 a las 11:19 horas.
Código
Para exportar los datos con el parámetro $last_update, el ejemplo del código sería:
<?php
define('LOC_BASE', dirname(__FILE__) . '/');
require(LOC_BASE.'SalesLayer-Conn.php');
require(LOC_BASE.'lib/nice_r-master/Nicer.php');
?>
<!DOCTYPE html>
<html dir="ltr" lang="en-US">
<head>
<link rel="stylesheet" type="text/css" href="lib/nice_r-master/nice_r.css?version=<?php echo filemtime(LOC_BASE.'lib/nice_r-master/nice_r.css'); ?>"/>
<script type="text/javascript" src="lib/nice_r-master/nice_r.js?version=<?php echo filemtime(LOC_BASE.'lib/nice_r-master/nice_r.js'); ?>"></script>
</head>
<body>
<?php
//SL connector credencials
$connector_id = 'CN12347H3308C4486';
$secret_key = '7aeb575d9bf15bfa238e8f01842417a2';
//Definition of the last_update parameter
$last_update= "1597924800";
//Create object with the credentials on the connector in SL
$SLConn = new SalesLayer_Conn ($connector_id, $secret_key);
//API Call to export the information
$SLConn->get_info($last_update);
if ($SLConn->has_response_error()) {
echo "<h4>Error:</h4>\n\n Code: ".$SLConn->get_response_error().
"<br>\nMessage: ". $SLConn->get_response_error_message();
} else {
echo "<h4>Response OK</h4>\n".
"<p>".
"API version: <b>". $SLConn->get_response_api_version() ."</b><br />\n".
"Time: <b>". $SLConn->get_response_time('unix') ."</b><br/>\n".
"Default language: <b>". $SLConn->get_response_default_language() ."</b><br/><br />\n".
"</p>";
//Print the API response
$n = new Nicer($SLConn->get_response_table_data());
$n->render();
echo "<hr/>";
}
?>
</body>
</html>
Empezamos por crear una clase SalesLayer_Conn()con las credenciales del conector como parámetros. Estas credenciales están presentes en el conector de Sales Layer y las hemos guardado en los parámetros de $connector_id y $secret_key (ver Ejemplo 1).
Posteriormente haremos una llamada a la función get_info() de la clase. Esta función extrae todos los datos configurados en el conector y los guarda localmente.
Como parámetro a la función hemos pasado el parámetro de $last_update, con la fecha de 21/08/2020 12:00 UTC, 1598007600. De este modo, le estamos pidiendo a la API que devuelva los cambios posteriores a la fecha pasada. Recordar de nuevo que el conector no puede haber sido modificado o refrescado después de la fecha de $last_update.
Despues de verificar si la API no ha devuelto errores, a través de la función has_response_error(), imprimimos con las funciones del SDK la siguiente información relevante:
- Versión de la API a través de la función get_response_api_version()
- Fecha en UNIX de la hora exacta de la llamada a la API con la función get_response_time()
- Idioma por defecto del PIM llamando la función get_response_default_language()
Posteriormente y con la ayuda de la
Ejecución y sus resultados
Ejecutando el script obtuvimos lo siguiente:

Como vemos, todas las tablas han devuelto cero ítems modificados. Pues, hemos elegido un parámetro de $last_update más grande(21/08/2020 12:00) al de última fecha de modificación de los ítems que tenemos a visible.
Una vez analizadas las tablas y sus últimas fechas de modificación elegimos como fecha de $last_update la fecha de 21/08/2020 11:00 UTC, correspondiente al valor UNIX, 1598004000.
Como vemos a continuación, no ha habido modificaciones posteriores en la tabla de categorías:

En la tabla de productos ha sido modificado el producto de referencia 42PH420305221, que contiene 3 variantes. Esto significa que, tanto el producto como sus variantes, serán exportadas, pues la API, por defecto, exporta siempre los ítems que están por debajo en la jerarquía de un ítem modificado:

En la tabla de variantes tenemos 3 variantes modificados después de la fecha $last_update pero, como hemos visto en el punto anterior, se exportarán todas las variantes de la referencia 42PH420305221, por lo tanto tenemos 5 variantes modificadas en total:
Al ejecutar el script con la nueva fecha de $last_update obtuvimos:

Esta última captura muestra los ítems modificados posteriormente a la fecha de$last_update.