Jump to content

Borrar primera imagen de cada producto


Recommended Posts

Hola, quería saber si es posible mediante alguna consulta sql borrar la primera imagen de cada producto que tengo en prestashop pues tengo un módulo que baja imágenes y productos del proveedor directamente y no sé por que le di a actualizar imágenes de productos y se añadieron detrás de otra imagen que no coincide con el nombre del producto y querría eliminar esta primera imagen de cada producto para que termine de coincidir producto con imagen, no sé si mediante un lanzamiento de una sentencia sql se podría hacer que elimine la primera imagen de cada producto y si tiene solo una imagen no borre nada, solo en caso de tener 2 o más imágenes borre la primera solo.

Link to comment
Share on other sites

En la tabla imagen de la BD hay un campo position, si quieres eliminar la primera imagen solo tendrías que eliminar las que tengan position = 1. Ahora, eso no eliminara el archivo físico asociado a la imagen, y el otro punto importante es que probablemente muchos productos se quedan sin cover (la imagen por defecto de cada uno) y luego tendrás que asociar un cover a cada producto y corregir el position de las imágenes restantes.

Te recomiendo por tanto, probar antes con un solo producto y si te sirve entonces aplicar el proceso a todos los demás.

Suerte

Link to comment
Share on other sites

  • 3 weeks later...
On 12/15/2023 at 2:22 PM, seron said:

Hola, quería saber si es posible mediante alguna consulta sql borrar la primera imagen de cada producto que tengo en prestashop pues tengo un módulo que baja imágenes y productos del proveedor directamente y no sé por que le di a actualizar imágenes de productos y se añadieron detrás de otra imagen que no coincide con el nombre del producto y querría eliminar esta primera imagen de cada producto para que termine de coincidir producto con imagen, no sé si mediante un lanzamiento de una sentencia sql se podría hacer que elimine la primera imagen de cada producto y si tiene solo una imagen no borre nada, solo en caso de tener 2 o más imágenes borre la primera solo.

Hola,

Copia de seguridad primero: cree una copia de seguridad completa de su base de datos antes de ejecutar cualquier consulta SQL. Esto garantiza que pueda revertir los cambios si es necesario.
Pruebe minuciosamente: primero pruebe la consulta en una versión de prueba o de desarrollo de su tienda para evitar consecuencias no deseadas en su entorno en vivo.

Aquí hay una consulta SQL que se alinea con sus requisitos:

DELETE FROM `ps_image`
WHERE `id_product` IN (
    SELECT `id_product`
    FROM (
        SELECT `id_product`, COUNT(`id_image`) AS `image_count`
        FROM `ps_image`
        GROUP BY `id_product`
    ) AS `product_images`
    WHERE `image_count` > 1
)
AND `cover` = 1;  -- Delete only if it's the cover image
 

Ejecute la consulta en las tablas "ps_image" y "ps_image_shop".

Priorice siempre la integridad de los datos y proceda con precaución al ejecutar consultas SQL directamente en su base de datos.

Buen día

Link to comment
Share on other sites

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...