eurosystem Posted February 24, 2016 Share Posted February 24, 2016 Buenas tardes Estoy intentando importar ficheros CSV a través de un script en PHP. Los productos y categorías me los importa sin problemas pero con las combinaciones sólo me las importa la primera vez.Si intento hacer alguna modificación no tiene ningún efecto si lo importo a través de PHP. Si la importación de las combinaciones la hago a través del importador de los parametros avanzados del Prestashop me las actualiza correctamente (marcando siempre las opciones de "Eliminar todo combinaciones antes de importar" y "Usar la referencia de los productos como clave"). Os dejo el código con el que importo los atributos. define('_PS_ADMIN_DIR_', getcwd()); include(_PS_ADMIN_DIR_.'/../config/config.inc.php'); include(_PS_ADMIN_DIR_.'/functions.php'); include_once '../controllers/admin/AdminImportController.php'; function loadCombinationsPost() { $_POST = array ( 'tab' => 'AdminImport', 'skip' => '1', 'csv' => 'combinaciones.csv', 'forceIDs' => '0', 'convert' => '', 'entity' => '2', 'match_ref' => '1', 'separator' => ';', 'multiple_value_separator' => ',', 'iso_lang' => 'es', 'import' => 'Importar datos CSV', 'truncate' => '1', 'regenerate' => '1', 'type_value' => array ( 0 => 'id_product', 1 => 'product_reference', 2 => 'group', 3 => 'attribute', 4 => 'supplier_reference', 5 => 'reference', 6 => 'ean13', 7 => 'upc', 8 => 'wholesale_price', 9 => 'price', 10 => 'ecotax', 11 => 'quantity', 12 => 'minimal_quantity', 13 => 'weight', 14 => 'default_on', 15 => 'available_date', 16 => 'image_position', 17 => 'image_url', 18 => 'delete_existing_images', 19 => 'shop', 20 => 'advanced_stock_management', 21 => 'depends_on_stock', 22 => 'warehouse' ), ); } if(file_exists("./import/combinaciones.csv")){ $import = New AdminImportController(); loadCombinationsPost(); $import->attributeImport(); echo "importando combinaciones<br>"; } ¿Qué puedo estar haciendo mal? Gracias de antemano! Link to comment Share on other sites More sharing options...
Enrique Gómez Posted February 25, 2016 Share Posted February 25, 2016 Desde luego el sistema es ingenioso. no se si iria mejor que se usase el $import->postProcess() ya que es donde empieza a trabajar el importador. Se entiende que con el entity ya llamará al importador que toca.. por otra parte en $import->errors[] e $import->warnings[] se te deberían quedar los errores y warnings. Si los muestras quizas te de alguna pista de problemas del proceso Link to comment Share on other sites More sharing options...
Enrique Gómez Posted February 25, 2016 Share Posted February 25, 2016 Si te surge algún problema es posible también que sea necesario indicar al contexto de prestashop un empelado $context = Context::getContext(); $employee = new Employee(UN_EMPLEADO_ID); $context->employee = $employee; Link to comment Share on other sites More sharing options...
eurosystem Posted February 25, 2016 Author Share Posted February 25, 2016 (edited) Edito: MUCHAS GRACIAS! Me ha funcionado al utilizar $import->postProcess() Muchas gracias!Ahora mismo lo pruebo y te comento los resultados porque me tiene desesperado jejeje Edited February 25, 2016 by eurosystem (see edit history) Link to comment Share on other sites More sharing options...
eurosystem Posted March 2, 2016 Author Share Posted March 2, 2016 (edited) Buenas tardes Necesito nuevamente vuestra ayuda. Cuando utilizo el truncate me elimina todas las combinaciones de los artículos y mi intención era que sólo eliminara las combinaciones de los productos que estoy importando. ¿Hay alguna forma de hacer que se eliminen las combinaciones de los productos que estoy importando pero que no afecte a los demás? O cómo actualizar el stock de un determinado artículo con combinaciones. Muchas gracias Edited March 2, 2016 by eurosystem (see edit history) Link to comment Share on other sites More sharing options...
Enrique Gómez Posted March 3, 2016 Share Posted March 3, 2016 si no usas el truncate y existe el registro (usando la opción de referencia como clave) lo modifica Link to comment Share on other sites More sharing options...
eurosystem Posted March 8, 2016 Author Share Posted March 8, 2016 Muchas gracias por la respuesta. Me modifica bien la cantidad de los atributos excepto cuando pongo la cantidad a 0. Al ponerla a 0 en el CSV me ignora la línea por completo aunque el resto, si tienen cantidades mayores de 0, me los modifica correctamente. ¿Alguna idea? Estoy desesperado con esto... Muchas gracias de nuevo! Link to comment Share on other sites More sharing options...
Recommended Posts