Jump to content

Importación de datos transparente con Php y Csv


Samuel-Mai

Recommended Posts

Hola estoy tratando de realizar un script en php para automatizar las importaciones de modo transparente mediante un pequeño programa ajeno a PrestaShop. Es decir, estoy intentado simular el proceso de importar que tiene PrestaShop mediante el formulario que tiene en el BackOffice. En el que se le indica el nombre del archivo a importar, el tipo de datos que se importan etc.

 

Por lo que he podido observar la importación de los datos se realiza pasandole mediante la variable $_POST los datos del archivo, los separadores de campos, linea etc. ademas de un array con las columnas que se importan.

 

Mi codigo seria algo así

 

<?php

 

define('PS_ADMIN_DIR', getcwd());

include(PS_ADMIN_DIR.'/../config/config.inc.php');

include(PS_ADMIN_DIR.'/functions.php');

include_once './tabs/AdminImport.php';

 

if (!isset($_GET['entity'])) die();

$import = New AdminImport();

 

 

loadManufacturersPost();

$import->manufacturerImport();

 

function loadManufacturersPost() {

$_POST['tab'] = 'AdminImport';

$_POST['skip'] = '0';

$_POST['csv'] = 'archivo.csv';

$_POST['entity'] = '5';

$_POST['separator'] = ';';

$_POST['multiple_value_separator'] = ',';

$_POST['type_value'] = array ("id", "active", "name", "description", "short_description", "meta_title", "meta_keywords", "meta_description");

}

?>

 

en mi codigo php, realizo una importacion de 'AdminImport.php' que posee PrestaShop para una vez leído los datos arriba mencionados poder llamar a 'manufacturerImport()' en este caso.

 

Este código, o similar, cambiando 'entity' y los 'type_value' me "funcionaba" con los productos y las categorías, siendo llamadas las funciones correspondientes 'productImport()' y 'categoryImport()' del 'AdminImport.php.

 

Estos procesos me lanzaban los siguientes errores:

 

- Productos

 

Warning: key_exists() [function.key-exists]: The second argument should be either an array or an object in C:\AppServ\www\prestashop148\classes\AdminTab.php on line 224

 

Notice: Trying to get property of non-object in C:\AppServ\www\prestashop148\classes\AdminTab.php on line 195

 

Warning: mkdir() [function.mkdir]: File exists in C:\AppServ\www\prestashop148\gestion\importacion.php on line 89

 

 

- Categorias

 

Warning: key_exists() [function.key-exists]: The second argument should be either an array or an object in C:\AppServ\www\prestashop148\classes\AdminTab.php on line 224

 

Notice: Trying to get property of non-object in C:\AppServ\www\prestashop148\classes\AdminTab.php on line 195

 

 

Aun con estos errores, se realizaban las importaciones de datos.

 

Mi problema ha sido al importar los fabricantes, me lanza los siguientes errores

 

Warning: key_exists() [function.key-exists]: The second argument should be either an array or an object in C:\AppServ\www\prestashop148\classes\AdminTab.php on line 224

 

Notice: Trying to get property of non-object in C:\AppServ\www\prestashop148\classes\AdminTab.php on line 195

 

Warning: preg_match() expects parameter 2 to be string, array given in C:\AppServ\www\prestashop148\classes\Validate.php on line 365

 

Notice: Undefined variable: lang_field_error in C:\AppServ\www\prestashop148\gestion\tabs\AdminImport.php on line 1185

 

Notice: Undefined variable: lang_field_error in C:\AppServ\www\prestashop148\gestion\tabs\AdminImport.php on line 1185

 

Ahora si que no realiza la importación.

 

Si el código interno de PrestaShop para las importaciones es el mismo tanto categorías, productos...... ¿como me dan diferentes errores simulando lo mismo?

 

Mis cuestiones son, ¿estoy simulando bien el proceso del backOffice? ¿he de enviar algún dato más? ¿lo he de hacer de diferente manera? ¿he de llamar a otras funciones previamente del AdminImport?

 

Espero me seáis de ayuda y agradecérosla de antemano

Edited by Samuel-Mai (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...