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!