Jump to content

Script importar Productos


ditolas

Recommended Posts

Hola a Todos,

estoy intentando importar productos a través de un script en prestashop 1.6.0.6 .He encontrado este otro script de la 1.5 .

<!-- COMPATIBLE CON PRESTASHOP VERSION 1.5.4.1
Script version 2013-6-19_2021 para importar productos y categorias en Prestashop
FUENTE: http://programadorphp.es/script-para-importar-productos-y-categorias-en-prestashop
Mas Datos:
http://www.prestashop.com/forums/topic/74735-importar-productos-desde-cvs-con-script-no-sube-imagenes/page__p__429097__hl__loadproductspost__fromsearch__1?do=findComment&comment=429097
http://www.prestashop.com/forums/topic/117001-adminimport-y-script-de-importacion/page__hl__loadproductspost__fromsearch__1

Aqui dejo el codigo del script que, situado en la parte de la tienda, lanza una importacion de un fichero CSV productos (pro.csv) o
categorias (cat.csv), segun se le indique por GET['entity']

Los ficheros CSV a importar deben encontrarse en el directorio /adminxxx/import/pro.csv mientras que nuestro script debe de estar situado
en el directorio /adminxxx/script_import.php del Prestashop.

Llamar al script: http://www.midominio.com/admin123/script_import.php?entity=1

SOLUCIONES:
* Sino importa las imagenes, añadir estas lineas en AdminImportController.php,
    dentro de la funcion “public function productImport()”,
Antes de:
    if (isset($product->image) && is_array($product->image) && count($product->image))
Añadid esto:
    if(!is_array($product->image))
    $product->image = explode(“,”,$product->image);

* Si “Fatal error: Cannot redeclare class…” comentar la linea //include_once '../controllers/admin/AdminImportController.php';
-->

<?php
echo "loading.gif";
ob_flush();
flush();
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';

if (!isset($_GET['entity'])) die();
set_time_limit(0);
//$import = New AdminImportControllerCore(); //para version 1.5.4.1
$import = New AdminImportController();
switch ($_GET['entity']) {
case 0:
loadCategoriesPost();
$import->categoryImport();
break;
case 1:
loadProductsPost();
$import->productImport();
break;
case 2:
loadCombinacionesPost();
$import->attributeImport();
break;
case 5:
loadManufacturersPost();
$import->manufacturerImport();
break;
case 6:
loadSuppliersPost();
$import->supplierImport();
break;
default:
die();
break;
}

exit();

//window.location="http:script.javascript.";

function loadCategoriesPost() {
$_POST = array (
'tab' => 'AdminImport',
'skip' => '0',
'csv' => 'categories_import.csv',
'convert' => '1',
'entity' => '0',
'separator' => ';',
'multiple_value_separator' => ',',
'forceIDs' => '1',
'import' => 'Importar datos CSV',
'type_value' =>
array (
0 => 'id',
1 => 'active',
2 => 'name',
3 => 'parent',
//4 => 'root_category',
4 => 'is_root_category',
5 => 'description',
6 => 'meta_title',
7 => 'meta_keywords',
8 => 'meta_description',
//9 => 'url_rewrite',
9 => 'link_rewrite',
10 => 'image',
11 => 'shop',
),
);
}

function loadProductsPost() {
$_POST = array (
'tab' => 'AdminImport',
'skip' => '0',
'csv' => 'products_import.csv',
'convert' => '1',
'entity' => '1',
'separator' => ';',
'multiple_value_separator' => ',',
'forceIDs' => '1',
'import' => 'Importar datos CSV',
'type_value' =>
array (
0 => 'id',
1 => 'active',
2 => 'name',
3 => 'category',
4 => 'price_tin',
5 => 'tax_rate',
6 => 'wholesale_price',
7 => 'on_sale',
8 => 'reduction_price',
9 => 'reduction_percent',
10 => 'reduction_from',
11 => 'reduction_to',
12 => 'reference',
13 => 'supplier_reference',
14 => 'supplier',
15 => 'manufacturer',
16 => 'ean13',
17 => 'upc',
18 => 'ecotax',
19 => 'weight',
20 => 'quantity',
21 => 'description_short',
22 => 'description',
23 => 'tags',
24 => 'meta_title',
25 => 'meta_keywords',
26 => 'meta_description',
27 => 'link_rewrite',
28 => 'available_now',
29 => 'available_later',
30 => 'available_for_order',
31 => 'date_add',
32 => 'show_price',
33 => 'image',
34 => 'delete_existing_images',
35 => 'features',
36 => 'enabled_internet',
37 => 'state',
38 => 'shop',
),
);
}

function loadManufacturersPost() {
$_POST = array (
'tab' => 'AdminImport',
'skip' => '0',
'csv' => 'manufacturers_import.csv',
'convert' => '1',
'entity' => '5',
'separator' => ';',
'multiple_value_separator' => ',',
'forceIDs' => '1',
'import' => 'Importar datos CSV',
'type_value' =>
array (
0 => 'id',
1 => 'active',
2 => 'name',
3 => 'description',
4 => 'short_description',
5 => 'meta_title',
6 => 'meta_keywords',
7 => 'meta_description',
8 => 'shop',
),
);
}

function loadSuppliersPost() {
$_POST = array (
'tab' => 'AdminImport',
'skip' => '0',
'csv' => 'suppliers_import.csv',
'convert' => '1',
'entity' => '6',
'separator' => ';',
'multiple_value_separator' => ',',
'forceIDs' => '1',
'import' => 'Importar datos CSV',
'type_value' =>
array (
0 => 'id',
1 => 'active',
2 => 'name',
3 => 'description',
4 => 'short_description',
5 => 'meta_title',
6 => 'meta_keywords',
7 => 'meta_description',
8 => 'shop',
),
);
}

function loadCombinacionesPost() {
$numero = count($_POST);
$_POST = array (
'tab' => 'AdminImport',
'skip' => '1',
'csv' => 'combinaciones.csv',
'convert' => '',
'entity' => '2',
'separator' => ';',
'multiple_value_separator' => ',',
'import' => 'Importar datos CSV',
'u' => '',
'type_value' =>
array (
0 => 'id_product',
1 => 'group',
2 => 'attribute',
),
);
}
?>

A ver si alguien me echa una mano para adaptarlo a la 1.6

un Saludo

Link to comment
Share on other sites

Hola Enrique,

no quiero tener que entrar en el backoffice cada vez que tenga que importar productos ,ademas hago cambios continuos y muevo gran cantidad de datos .

Ademas tb estoy intentando usar ese script para diversas tareas de inserción de artículos.

Si alguien me hecha una mano mejor ,sino cuando lo resuelva lo compartiré 

Link to comment
Share on other sites

Hola Ditolas!!

               Me apunto al carro, pues me ha gustado mucho la idea de hacer un trabajo y sin esperar nada a cambio lo cuelgues para el disfrute de otros. Ese es un espiritu que ya no queda. Me apunto a echar una mano. Tienes github?

Link to comment
Share on other sites

  • 3 months later...

Hola dr.yodarga 

gracias por apuntarte.Nos tenemos que ayudar unos a otros ;)

No tengo github ,lo iré colgando por este post o si tienes tu.

Hola ditolas,

que problema sucede al tratar de utilizar el script?

Sabes si sube imagenes también, o como maneja ese punto?

Yo también necesito un script como este, sería genial para mi marketplace.

Quisiera conocer que problemas estas teniendo pues segun el post de referencia es basicamente utilizar un archivo ya hecho de prestashop.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...