Frage

Ich benutze das FastsimpleMport Modul zum Erstellen meines benutzerdefinierten Imports. Das hat a setDropdownAttributes() Funktion zum automatischen Erstellen der erforderlichen Attributwerte, entzieht jedoch nicht genutzte Werte. Diese tauchen immer noch in meiner fortgeschrittenen Suche auf.

Wie kann ich nicht verwendete Attributwerte suchen und entfernen?

Ich denke, sie sind in gespeicherten eav_attribute_option_value Ich bin mir jedoch nicht sicher, wie ich prüfen soll, ob sie von einem Produkt verwendet werden.

War es hilfreich?

Lösung

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

Probieren Sie diese Abfrage aus ..

Andere Tipps

Die Antwort von Ruffy ist technisch falsch, da sie drei Probleme hat:

  • es entfernen Werte für admin STADE-Ansicht nur einige Store-Views-verwandte Müll lassen
  • Es wird ungenutzte Werte von Attributen aller Entitätstypen beseitigt
  • es wird entfernen ALLE Werte aus Attributen mit "multiple select" -Typen, unabhängig davon, ob sie Produkten zugewiesen sind oder nicht, weil diese Optionen in gespeichert werden catalog_product_entity_varchar und nicht catalog_product_entity_int

Die folgende Abfrage befasst sich mit diesen Problemen:

    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"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top