Saltar al contenido
Codifíca.me | Desarrollo web | Programación

Migrar fabricantes o marcas Opencart a Prestashop

23 febrero, 2015

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.

opencart to prestashop

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.

Si vas a migrar Opencart a Prestashop, te recomiendo que le eches un ojo a estas tres entradas del blog.

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.

Aquí la tienes

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.

Aquí tienes la segunda

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