Eliminar un producto en Prestashop 1.7 con PHP

Eliminar un producto en Prestashop 1.7 con PHP

PHP, Prestashop

Eliminar un producto en Prestashop 1.7 con PHP es algo que puedes necesitar si estás desarrollando un módulo o una integración de datos entre distintas plataformas, incluso a la hora de importar/exportar datos utilizando un fichero de datos.

Cómo eliminar un producto en Prestashop 1.7 utiliando PHP

Para eliminar un producto en nuestra tienda online Prestashop de forma programática simplemente necesitaremos conocer en id interno del producto que vamos a eliminar.

A continuación instanciaremos la clase Product, utilizando el id del producto a eliminar.

Tanto para la clase Product como para otras en Prestashop existe el método delete, que realizará un borrado en la base de datos y de las dependencias de este objeto. Por ejemplo, si aplicamos el delete a un producto, eliminaremos el producto, sus relaciones en la base de datos y las imágenes asociadas a este producto.

Si queremos eliminar el producto con id 35 de nuestro ecommerce Prestashop 1.7, lo haremos de la siguiente forma:

$product = new Product(35);
$product->delete();

Como podemos ver, es muy sencillo el procedimiento para eliminar un producto con PHP en Prestashop.

Alternativas a eliminar un producto en Prestashop 1.7

No siempre necesitaremos eliminar un producto, a veces es suficiente con desactivarlo.

Para desactivar un producto en Prestashop sólo vamos a instanciarlo, modificar su atributo active y a guardar. Lo vemos con un ejemplo práctico:

$product = new Product(35);
$product->active = false;
$product->update();

Lo que nunca debes hacer para eliminar un producto en Presasthop 1.7

Prestashop es una plataforma de ecommerce que con el paso de los años ha ido evolucionando y añadiendo más funcionalidades. Esto implica que el número de tablas en la base de datos ha aumentado, tanto con las funcionalidades básicas, como con funcionalidades añadidas mediante módulos.

Por todo esto es importante tener claro que la información de un producto no se almacena sólo en una tabla en la base de datos. ¿Qué implica esto? Que si sólo eliminamos información en la tabla principal product, dejaremos en nuestra base de datos datos relacionados huérfanos.

Podríamos jugárnosla e intentar saber en qué tablas de la base de datos hay información relacionada con el producto, pero nunca va a ser algo estándar, ya que un módulo pudo crear otras tablas en las que también se necesite eliminar información.

Además, eliminar un producto por base de datos mediante una sentencia SQL no eliminaría los ficheros físicos asociados, como las imágenes de producto.

Por todo esto es importante remarcar que la forma correcta es utilizar los métodos propios de este ecommerce para eliminar productos.

Escribe una respuesta