Eliminar valores de atributos no utilizados
-
16-10-2019 - |
Pregunta
Estoy usando el fastsimpleimport Módulo para crear mi importación personalizada. Esto tiene un setDropdownAttributes()
Función para crear automáticamente los valores de atributo necesarios, pero no elimina los valores no utilizados. Los que todavía aparecen en mi búsqueda avanzada.
¿Cómo puedo buscar y eliminar los valores de atributos no utilizados?
Creo que están almacenados en eav_attribute_option_value
Pero no estoy seguro de cómo verificar si son utilizados por un producto.
Solución
delete c,b
from eav_attribute a
inner join eav_attribute_option b on a.attribute_id = b.attribute_id
inner join eav_attribute_option_value c on c.`option_id` = b.option_id
LEFT join catalog_product_entity_int pi on b.option_id=pi.value and pi.store_id=0 and b.attribute_id=pi.attribute_id
where entity_id is null
Prueba esta consulta ..
Otros consejos
La respuesta de Luffy es técnicamente incorrecta, ya que tiene 3 problemas:
- eliminará valores para
admin
Vista de la tienda solo dejando algunas vistas de la tienda relacionada con la basura - eliminará los valores no utilizados de los atributos de todos los tipos de entidad
- eliminará TODOS Valores de atributos con tipo "múltiple selección" independientemente de si se asignan a algún producto o no porque sus opciones se almacenan en
catalog_product_entity_varchar
y nocatalog_product_entity_int
La consulta a continuación aborda estos problemas:
DELETE o, v
FROM `eav_attribute` a
INNER JOIN `eav_attribute_option` o ON a.`attribute_id` = o.`attribute_id`
INNER JOIN `eav_attribute_option_value` v ON v.`option_id` = o.`option_id`
INNER JOIN `eav_entity_type` t ON t.`entity_type_id` = a.`entity_type_id`
LEFT JOIN `catalog_product_entity_int` pi ON o.`option_id` = pi.`value` AND o.`attribute_id` = pi.`attribute_id`
LEFT JOIN `catalog_product_entity_varchar` pv ON o.`option_id` = pv.`value` AND o.`attribute_id` = pv.`attribute_id`
WHERE pi.`entity_id` IS NULL
AND pv.`entity_id` IS NULL
AND t.`entity_type_code` = "catalog_product"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange