Saltar al contenido

Importar Exportar productos con Prestashop



Importando o duplicando productos de una base de datos a otra base de datos para tiendas Prestashop, este el export para una tienda 1.5 que quiera migrar sus productos a una tienda 1.6.

Este es el c贸digo, solo tienes que cambiar el prefijo de tus tablas y el nombre de tus bases de datos.

OJO!, yo he querido dejar los 20 productos que venian por defecto en el template o theme, y por ello no limpio todos los productos solo los superiores a el id 20.
Esto tambi茅n lo hice cuando monte la otra tienda, as铆 que no hay problema. Pero en tu caso es posible que no quieres dejar ninguno o que tengas que borrarlos por que los id de la tienda que quieres exportar est谩n por debajo de 20.

La versi贸n 1.6 de prestashop tiene un campo que no tiene la versi贸n 1.5 es por ello que el t铆pico INSERT a SELECT no te funcionar谩.

presta

INSERT INTO bd1.ps_product
(`id_product`, `id_supplier`, `id_manufacturer`, `id_category_default`, `id_shop_default`, `id_tax_rules_group`, `on_sale`, `online_only`, `ean13`, `upc`, `ecotax`, `quantity`, `minimal_quantity`, `price`, `wholesale_price`, `unity`, `unit_price_ratio`, `additional_shipping_cost`, `reference`, `supplier_reference`, `location`, `width`, `height`, `depth`, `weight`, `out_of_stock`, `quantity_discount`, `customizable`, `uploadable_files`, `text_fields`, `active`, `redirect_type`, `id_product_redirected`, `available_for_order`, `available_date`, `condition`, `show_price`, `indexed`, `visibility`, `cache_is_pack`, `cache_has_attachments`, `is_virtual`, `cache_default_attribute`, `date_add`, `date_upd`, `advanced_stock_management`)
SELECT 
`id_product`, `id_supplier`, `id_manufacturer`, `id_category_default`, `id_shop_default`, `id_tax_rules_group`, `on_sale`, `online_only`, `ean13`, `upc`, `ecotax`, `quantity`, `minimal_quantity`, `price`, `wholesale_price`, `unity`, `unit_price_ratio`, `additional_shipping_cost`, `reference`, `supplier_reference`, `location`, `width`, `height`, `depth`, `weight`, `out_of_stock`, `quantity_discount`, `customizable`, `uploadable_files`, `text_fields`, `active`, `redirect_type`, `id_product_redirected`, `available_for_order`, `available_date`, `condition`, `show_price`, `indexed`, `visibility`, `cache_is_pack`, `cache_has_attachments`, `is_virtual`, `cache_default_attribute`, `date_add`, `date_upd`, `advanced_stock_management`
FROM bd2.ps_product WHERE id_product>20

Ahora importamos los textos que tengan los productos en todos los idiomas.

INSERT INTO bd1.ps_product_lang
SELECT 
*
FROM bd2.ps_product_lang WHERE id_product>20

Ahora importamos los precios, impuestos , cantidades minimas, fecha de alta del producto etc etc.
Igualmente como las tablas no son exactamente iguales preparamos la query para que no nos de problemas.

INSERT INTO bd1.ps_product_shop
(`id_product`, `id_shop`, `id_category_default`, `id_tax_rules_group`, `on_sale`, `online_only`, `ecotax`, `minimal_quantity`, `price`, `wholesale_price`, `unity`, `unit_price_ratio`, `additional_shipping_cost`, `customizable`, `uploadable_files`, `text_fields`, `active`, `redirect_type`, `id_product_redirected`, `available_for_order`, `available_date`, `condition`, `show_price`, `indexed`, `visibility`, `cache_default_attribute`, `advanced_stock_management`, `date_add`, `date_upd`) 
SELECT 
`id_product`, `id_shop`, `id_category_default`, `id_tax_rules_group`, `on_sale`, `online_only`, `ecotax`, `minimal_quantity`, `price`, `wholesale_price`, `unity`, `unit_price_ratio`, `additional_shipping_cost`, `customizable`, `uploadable_files`, `text_fields`, `active`, `redirect_type`, `id_product_redirected`, `available_for_order`, `available_date`, `condition`, `show_price`, `indexed`, `visibility`, `cache_default_attribute`, `advanced_stock_management`, `date_add`, `date_upd` 
FROM bd2.ps_product_shop WHERE id_product>20

Para las im谩genes ten茅is que hacer lo siguiente

INSERT INTO bd1.ps_image
SELECT 
*
FROM bd2.ps_image WHERE id_product>20

Para vincular las im谩genes con las tienda realizamos lo siguiente.

INSERT INTO bd1.ps_image_shop
SELECT 
*
FROM bd2.ps_image_shop WHERE id_image>20;

Para asociar las imagenes de tu tienda al idioma de tu tienda, tendr谩s que realizar la siguiente Query

INSERT INTO bd1.ps_image_lang
SELECT 
*
FROM bd2.ps_image_lang

Este es el resumen para la parte de las im谩genes, y recuerda copiar la carpeta entera de las im谩genes antiguas a las im谩genes nuevas.

La ruta para las im谩genes de los productos es tuCarpetaRaiz/img/p . Despu茅s de que est茅 copiada deber铆as regenerar las im谩genes, para ver que todo funciona perfectamente.

DELETE FROM ps_image WHERE id_product>20;
DELETE FROM ps_image_shop WHERE id_image>20;
DELETE FROM ps_image_lang;
 
INSERT INTO bd1.ps_image
SELECT 
*
FROM bd2.ps_image WHERE id_product>20;
 
INSERT INTO bd1.ps_image_shop
SELECT 
*
FROM bd2.ps_image_shop WHERE id_image>20;
 
 
INSERT INTO bd1.ps_image_lang
SELECT 
*
FROM bd2.ps_image_lang ;

Y listo, productos migrados 馃檪