Samuel-Mai Posted September 4, 2012 Share Posted September 4, 2012 (edited) 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 September 4, 2012 by Samuel-Mai (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts