Jump to content

Edición masiva Productos SQL (Resuleto)


Eutanasio

Recommended Posts

Buenas,

Necesito ejectutar una consulta en el server desde MySQL para cambiar un parámetro a todos los productos de una categoría en concreto. Todos los productos de la categoría con ID = 52 tengan marcada la opción de permitir pasar pedido aunque no haya stock disponible. Sería algo así? que alguien me lo corrija please:
 

UPDATE `ps_product` SET `form_step3_out_of_stock_1` = 1 WHERE `id_category_default` = 52;

Uso PS 1.7.x

Gracias

Edited by omar2886
specify PS version (see edit history)
Link to comment
Share on other sites

Hola, en caso quieras actualizar solo a los productos que tiene la categoría por defecto 52, recuerda que también puede haber productos que están en la categoría 52 pero no la tienen por defecto, en caso fuera así debería ser otra query.
 

UPDATE `ps_product_shop` SET `available_for_order` = 1 WHERE `id_category_default` = 52;

 

Link to comment
Share on other sites

Según he podido ver en la BD, el parámetro available_for_order no está siquiera en la tabla ps_product ni en ps_product_shop

No sé en la BD, pero desde el admin esta el la línea que debería estar marcada como "checked":
 

<input type="radio" id="form_step3_out_of_stock_1" name="form[step3][out_of_stock]" value="1">

sin embargo está es la que está por defecto para todos los productos de la web:

<input type="radio" id="form_step3_out_of_stock_2" name="form[step3][out_of_stock]" value="2" checked="checked">

 

Edited by omar2886
more details (see edit history)
Link to comment
Share on other sites

Tras investigar un poco más a fondo he encontrado que la tabla en concreto donde se almacena este parámetro para cada productos es en realidad ps_stock_available y la columna correspondiente out_of_stock (posibles valores 0, 1 y 2).

No quisiera meter la pata por si me cargo la BD y no hay marcha atrás, así que preferiría esperar a que alguien me redactara la consulta correcta a ejecutar ya que en esta tabla no hay ninguna columna para discriminar por categoría de productos para que solo se aplique el cambio a los productos de la categoría 52

Gracias!

Link to comment
Share on other sites

Como hay q tener en cuenta 2 tablas distintas y hay que vincular los contenidos, esto es un ejemplo chapucero para que me entendáis:

SELECT    p.ProducId,
          s.ProductId
FROM      ps_produc p
JOIN      ps_stock_available s
ON        p.product_id = s.product_id
UPDATE    ps_stock_available
SET       available_for_order = 1
WHERE     id_category_default = 52;

 

Link to comment
Share on other sites

1 hour ago, Daniel Santana said:

Hola y no has pensado hacerlo subiendo un archivo CSV que reemplace los datos de esos productos?

Interesante... parece una opción más limpia y segura, cómo propones que lo haga? desde MySQL o el backoffice de PS?, no estoy familiarizado con el procedimiento, sé q se pueden importar y exportar desde el backoffice, veo varias opciones pero no sé las diferencias ni las implicaciones.

Gracias!

Link to comment
Share on other sites

18 minutes ago, omar2886 said:

Interesante... parece una opción más limpia y segura, cómo propones que lo haga? desde MySQL o el backoffice de PS?, no estoy familiarizado con el procedimiento, sé q se pueden importar y exportar desde el backoffice, veo varias opciones pero no sé las diferencias ni las implicaciones.

Gracias!

La importación de productos de Prestashop te sirve para:

1)Crear Productos

2)Actualizar Productos ya existentes

El procedimiento es el mismo, solo cambia que si actualizas productos debes tener el ID del producto (ya existente) a actualizar y los campos de datos que quieres modificar, nada más. En este tutorial explico crear productos masivamente a partir de un archivo excel.

 

  • Like 1
Link to comment
Share on other sites

10 hours ago, Daniel Santana said:

La importación de productos de Prestashop te sirve para:

1)Crear Productos

2)Actualizar Productos ya existentes

El procedimiento es el mismo, solo cambia que si actualizas productos debes tener el ID del producto (ya existente) a actualizar y los campos de datos que quieres modificar, nada más. En este tutorial explico crear productos masivamente a partir de un archivo excel.

 

Muchas gracias! creo que es la mejor solución. Pero no me queda claro en mi caso qué peculiaridades hay respecto a la creación de productos, ya que lo que yo quiero hacer el ACTUALIZAR producto. Me refiero a Parametros Avanzados -> Importar, qué opciones se marcan para que los productos que voy a importar actualicen aquellos que ya están en la web con el mismo ID?

Gracias!

Link to comment
Share on other sites

En el caso de la exportación del CSV no hay problema creo, básicamente aplico el filtro en Backoffice -> Productos para solo ver los de la categoría 52, luego exporto el resultado y del cvs borro todas las columnas salvo la del ID de producto. Luego añado una única columna correspondiente a "Acciones en caso de ruptura de stock) y les asigno a todos el valor 1 (permitir pedidos cuando no hay stock). Luego exporto la tabla en CSV UTF-8 y ..... ya no sé cómo importar de manera que se actualicen las fichas de dichos products para ese parámetro en concreto.

Link to comment
Share on other sites

He probado a hacerlo con 5 productos. He descargado el CSV básicamente para tener los ID's, luego he borrado el resto de columnas y he añadido manualmente la única que me interesa (la que cambia el parámetro que autoriza pasar pedidos en caso de ruptura de stock), pero me da error y cancelo el proceso. El error parece como si estuviera intentando actualizar la columna de taxes en vez de la de out_of_stock, adjunto imágenes de todo

Captura de pantalla 2020-01-03 a las 13.03.27.png

Captura de pantalla 2020-01-03 a las 13.03.44.png

Captura de pantalla 2020-01-03 a las 13.03.49.png

Captura de pantalla 2020-01-03 a las 13.03.jpeg

Captura de pantalla 2020-01-03 a las 13.04.jpeg

Link to comment
Share on other sites

1 hour ago, omar2886 said:

He probado a hacerlo con 5 productos. He descargado el CSV básicamente para tener los ID's, luego he borrado el resto de columnas y he añadido manualmente la única que me interesa (la que cambia el parámetro que autoriza pasar pedidos en caso de ruptura de stock), pero me da error y cancelo el proceso. El error parece como si estuviera intentando actualizar la columna de taxes en vez de la de out_of_stock, adjunto imágenes de todo

Captura de pantalla 2020-01-03 a las 13.03.27.png

Captura de pantalla 2020-01-03 a las 13.03.44.png

Captura de pantalla 2020-01-03 a las 13.03.49.png

Captura de pantalla 2020-01-03 a las 13.03.jpeg

Captura de pantalla 2020-01-03 a las 13.04.jpeg

Tienes que FORZAR el Identificador de ID para que la importación sea exitosa, es bueno hacer test con pocos productos una vez ok la importación de 5 productos haces la importación real.

  • Like 1
Link to comment
Share on other sites

  • Eutanasio changed the title to Edición masiva Productos SQL (Resuleto)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...