Entradas

Restablecer un atributo de producto borrado en Magento e-commerce

, , ,

Magento cuenta con un sistema de atributos personalizable para cualquiera de las entidades del sistema. Estas entidades del sistema son las categorías, los clientes, los productos, etc.

Dentro de la administración, Magento nos permite añadir atributos para nuestros productos. Si queremos hacerlo para las demás entidades podemos instalar algún módulo para ello. Seguro que encontramos varios en Magento Connect. La configuración de estos atributos y sus valores se guardan en diferentes tablas de la base de datos. Igualmente esta herramienta nos da un gran poder en caso de eliminar por error un atributo que podemos causar un gran desastre.

Al eliminar un atributo en Magento, se borrarán todos los datos asociados a ese atributo, y además, los valores de cada producto para ese atributo. Si queremos restaurar esta información debemos saber en que tablas buscar.

Tablas de la base de datos de Magento

La tablas implicadas son:

eav_attribute
eav_attribute_label
eav_attribute_option
eav_attribute_option_value
catalog_eav_attribute
eav_entity_attribute

catalog_product_entity_datetime
catalog_product_entity_int
catalog_product_entity_varchar
catalog_product_entity_...

Para restaurar nuestro atributo, deberemos tener una copia de la base de datos. La cargaremos en una base de datos de prueba y consultaremos en ellas donde aparece nuestro atributo.

Para obtener que atributo hemos borrado, podemos comparar las tablas «eav_attribute» de las dos bases de datos, y el registro de la copia de seguridad de Magento. Que esté en la base de datos actual es nuestro objetivo.

Una vez identificado el «attribute_id» del atributo borrado, compararemos cada una de las tablas filtrando por el atributo «attribute_id». Exportaremos estos resultados y los meteremos en la base de datos actual de Magento.

Por ejemplo, si nuestro atributo borrado fuera el «118», para la primera tabla ejecutaríamos la siguiente consulta.

select * from eav_attribute where attribute_id = 118

Las tablas «catalog_product_entity_datetime», «catalog_product_entity_int» y similares tienen los valores para cada producto. Puede ser que al volcarlas den fallos, debido a que hay productos que ya se han borrado. Además, para un atributo, sólo una de estas tablas tiene valores asociados a él, dependiendo del tipo de datos que sea. Por ejemplo, si se trata de un atributo de tipo entero, solo la tabla «catalog_product_entity_int» tendrá valores.

Una vez terminado, deberemos actualizar los indices desde el panel de administración de Magento.

Actualizar indices magento