5 - Exportación a base de datos

Modificado el Mar, 19 May a 11:58 A. M.


Introducción y estructura de datos


Además de exportar datos a archivos o scripts personalizados, el SDK también puede enviar la información exportada directamente a una base de datos mediante la clase SalesLayer_Updater().

Esta clase amplía SalesLayer_Conn() y añade las funciones necesarias para exportar el esquema del conector, crear las tablas y campos correspondientes, y sincronizar los datos de los ítems en la base de datos seleccionada.

Este ejemplo utiliza el mismo conector genérico configurado en el Ejemplo 1.


Para la demostración, se configuran como visibles 14 categorías, 15 productos aleatorios y 13 variantes relacionadas.





Código


El script primero define las credenciales de la base de datos, después las credenciales del conector de Sales Layer y, por último, crea un objeto SalesLayer_Updater() con todas ellas.

<?php 

define('LOC_BASE', dirname(__FILE__) . '/');

require(LOC_BASE.'SalesLayer-Updater.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



    //DB credentials

    $dbname       = 'testesl';

    $dbhost       = 'localhost';

    $dbusername   = 'root';

    $dbpassword   = 'root';



    //SL credentials

    $connector_id = 'CN12347H3308C4486';

    $secret_key = '7aeb575d9bf15bfa238e8f01842417a2';



    //Create object with the credentials of the connector and database

    $SLConn = new SalesLayer_Updater ($dbname, $dbusername, $dbpassword, $dbhost, $connector_id, $secret_key);



    $SLConn->update();



    echo "Sync Initialized";



    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/>\n".

             "Database: <b>".       $SLConn->database     ."</b><br/><br />\n".

             "<br><b>SYNCHRONIZATION INTO THE DATABASE IS DONE, GOOD JOB!</b>". 

             "</p>";



            $n = new Nicer($SLConn->get_response_table_data());

            $n->render();

            echo "<hr/>";



    }       

    ?>

    </body>

</html>


!

Advertencia: el SDK puede crear las tablas y los campos dentro de una base de datos existente, pero no crea la base de datos en sí. La base de datos debe existir antes de ejecutar el script.

La exportación se ejecuta con la función update(). Cada vez que se ejecuta esta función, la fecha de sincronización actual se guarda en la base de datos para que la siguiente llamada pueda exportar solo los ítems modificados.


Ejecución y resultados


Después de ejecutar el script, los ítems visibles se exportan y se sincronizan en la base de datos.



La base de datos queda con cuatro tablas de datos, una por cada estructura exportada, además de una tabla de configuración adicional utilizada por el SDK.



La tabla adicional, slyr___api_config, almacena detalles de configuración del conector, como last_update y data_schema. Estos valores se reutilizan en futuras sincronizaciones.




Si lo necesitas, puedes personalizar los nombres de las tablas estableciendo un prefijo con el método set_table_prefix() y combinándolo con el alias de tabla definido en el conector.

¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo