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

Duplicar opciones de productos en Opencart

24 noviembre, 2014

En esta entrada vamos a duplicar las opciones que tiene un producto en múltiples productos, en este caso tenemos un viaje en el que podemos seleccionar 50 puntos de recogida diferentes, es decir, tiene 50 opciones diferentes.

En Opencart, si queremos volver a añadir las 50 opciones a cada nuevo producto tendríamos que hacerlo desde el panel de administración lo cual puede ser una tarea tediosa y nos puede llevar varias horas o días de trabajo, dependiendo del número de productos y opciones.

En este tutorial vamos a duplicarlos desde la base de datos, lo suyo es que empaquetéis el código en un procedimiento y lo llaméis pasándole los parámetros que necesitéis, pero eso ya es cosa vuestra si lo queréis hacer así, o si lo queréis lanzar desde aquí, el resultado será el mismo.

Necesitamos saber que opción vamos a querer duplicar y que producto que contiene esa opción vamos a duplicar.
Para esto iremos al adminstrador de productos, le damos con el botón derecho al checkbox y le decimos inspeccionar elemento, con esto nos dará el id que necesitamos para identificar el producto.

Cómo muestra la siguiente imagen.

opencart

Tenemos que hacer lo mismo con la opción, tenemos que ir a las opciones inspeccionar elemento y encontrar el id de esa opción, tal y como muestra la imagen anterior.

En el código vamos a poner en la “select” el id de la opción y el id del producto, que en este ejemplo sería 175 y 1405, y le vamos a decir que lo copie en el producto 241, que es dónde vamos a hacer el insert.

Lo puedes ver en este código:

insert into  product_option (product_id ,
                   	option_id, 	option_value ,	required)
 
SELECT 241,
	option_id ,	option_value, 	required
FROM `product_option`
WHERE product_id =175 and
      product_option_id = 1405

El resultado será que haremos un insert en la tabla product_option, y el número de fila máximo lo utilizaremos para el siguiente insert, que vinculará las opciones al producto.

Sería así:

insert into product_option_value (
 `product_option_id`,
 product_id , 
`option_id`,
                                   `option_value_id`, `quantity`, `subtract`, `price`,
                                   `price_prefix`, `points`, `points_prefix`, `weight`, 
                                   `weight_prefix`) 
SELECT  1406, 241, `option_id`,
                                   `option_value_id`, `quantity`, `subtract`, `price`,
                                   `price_prefix`, `points`, `points_prefix`, `weight`, 
                                   `weight_prefix`
                                    FROM `product_option_value`
                                    WHERE product_id =175
                                    AND product_option_id =1405;

Fijaros que en esta select hemos aumentado en +1 el número de opción, que antes era el 1405 y ahora es el número 1406 y listo, con esto está todo hecho.

 

 
Me gustaría que me ayudases con la web haciendo un +1 en Google + . Gracias!