En esta entrada seguimos migrando Opencart hacia Prestashop, en este caso toca migrar los fabricantes o marcas.
En este caso solo voy a migrar la tabla manufacturer, aunque lo lógico es que si está llena de datos la tabla manufacturer_description de Opencart también migréis esos datos.
En este caso en particular no nos hacía falta así que no he cruzado datos entre las dos tablas y solo he cogido la tabla manufacturer.
Si ya has visto los otros tres tutoriales o entradas que he escrito en el blog para migrar Opencart a Prestashop habrás visto que realizo siempre la misma estructura, un cursor que recoge los datos basándonos en el id y diversos insert o insert a select para introducir los datos que nos ha devuelto el cursor, no tiene mucho misterio.
Y aquí tienes el código, solo tienes que subirlo a tu base de datos y llamar a la funcion Call MigrarFabricantes desde tu base de datos.
La primera entrada te valdría para migrar todos los productos, aunque obviamente tendrás que ver como está hecha tu base de datos Opencart y adaptarlo a tu base de datos.
La segunda entrada te valdría para crear la estructura de carpetas que tiene Prestashop para colocar las imágenes. Es un poco rara pero al final del post encontrarás un script para crear está estructura de 9999 carpetas para colocar adecuadamente las imágenes de Prestashop.
La tercera te valdrá para migrar las imágenes de un sitio a otro.
Aquí tienes la tercera
Y aquí tienes el código de esta entrada, para que puedas mover todos tus fabricantes.
Te lo dejo a cambio de una acción social, gracias!!
[sociallocker]
DROP PROCEDURE IF EXISTS MigrarFabricantes; DELIMITER $ CREATE PROCEDURE MigrarFabricantes ( ) BEGIN DECLARE v_id_manufacturer INT(10); DECLARE v_name VARCHAR(64); DECLARE v_date_add datetime; DECLARE v_date_upd datetime; DECLARE v_active tinyint(1); DECLARE findelbucle INTEGER DEFAULT 0; -- La SELECT que queremos DECLARE OpencartByeBye CURSOR FOR SELECT `manufacturer_id`, `name` FROM `manufacturer`; -- Cuando no existan mas datos findelbucle se pondra a 1 DECLARE CONTINUE HANDLER FOR NOT FOUND SET findelbucle=1; -- DECLARE CONTINUE HANDLER FOR NOT FOUND SET @hecho = TRUE; -- Limpiamos las tablas anteriores de la instalación prestashop DELETE FROM `ps_manufacturer` ; DELETE FROM ps_manufacturer_shop; DELETE FROM ps_manufacturer_lang; OPEN OpencartByeBye; bucle: LOOP FETCH OpencartByeBye INTO v_id_manufacturer , v_name ; IF findelbucle = 1 THEN LEAVE bucle; END IF; -- Hacemos los inserts en las tablas de Prestashop INSERT INTO `ps_manufacturer` (`id_manufacturer`, `name`, `date_add`, `date_upd`, `active`) VALUES (v_id_manufacturer, v_name, '2013-12-11 03:54:51', '2013-12-11 05:25:47', 1); INSERT INTO `ps_manufacturer_lang` (`id_manufacturer`, `id_lang`, `description`, `short_description`, `meta_title`, `meta_keywords`, `meta_description`) VALUES (v_id_manufacturer, 4, v_name, v_name, v_name, v_name, v_name); INSERT INTO ps_manufacturer_shop (`id_manufacturer`, `id_shop`) VALUES (v_id_manufacturer, 1) ; END LOOP bucle; CLOSE OpencartByeBye; END$ DELIMITER ; |
[/sociallocker]
Si tienes dudas dejanos un comentario y te responderemos lo antes posible.
O si tienes muchas muchas dudas y quieres ponerte en contacto con nosotros puedes hacerlo a través del formulario de contacto.
¿Me echas una mano con la web? Solo te pido un +1 en Google, gracias