Frage

Wie kann ich ein Textattribut für die geschichtete Navigation zur Verfügung stellen?

Im Administrator ist es nicht möglich, ein Attribut filterbar festzulegen, wenn es sich nicht um einen Dropdown- oder Preis -Typ handelt.

Ich kann mir um die Auswirkungen des Frontends sorgen, möchte aber den besten Ansatz zur Öffnung für Textfelder und ermöglichen, dass das Textattribut mit der Liste der Filter geladen wird.

War es hilfreich?

Lösung

Bezug Mage_Catalog_Model_Resource_Eav_Attribute::isIndexable(), der vom EAV -Indexer verwendet wird, um zu prüfen, ob ein bestimmtes Attribut im Schicht -Navigationsindex enthalten sein kann.

public function isIndexable()
{
    // exclude price attribute
    if ($this->getAttributeCode() == 'price') {
        return false;
    }

    if (!$this->getIsFilterableInSearch() && !$this->getIsVisibleInAdvancedSearch() && !$this->getIsFilterable()) {
        return false;
    }

    $backendType    = $this->getBackendType();
    $frontendInput  = $this->getFrontendInput();

    if ($backendType == 'int' && $frontendInput == 'select') {
        return true;
    } else if ($backendType == 'varchar' && $frontendInput == 'multiselect') {
        return true;
    } else if ($backendType == 'decimal') {
        return true;
    }

    return false;
}

Um andere Eingangstypen indexierbar zu machen, müssen Sie dieses Attribut -Ressourcenmodell neu schreiben (oder ein benutzerdefiniertes Modell angeben, das sich auf ein benutzerdefiniertes Ressourcenmodell in der Ressourcen bezieht eav_attribute.attribute_model Eigenschaft für Ihr Attribut.

Der Grund, warum der EAV -Indexer diese Einschränkung hat, ist, dass er nur weiß, wie man ganzzahlige Werte verarbeitet. Gleiches gilt für das Schicht -Navigationsattributfiltermodell.
Wenn Ihre Werte an Ganzzahlen übertragen werden, können Sie mit einem VARCHAR- oder Textwert davonkommen.
Andernfalls müssen Sie das Attributfiltermodell neu schreiben, um Ihre Werte korrekt zu verarbeiten oder Ihr eigenes benutzerdefiniertes Filtermodell zu implementieren.

Andere Tipps

Es sollte möglich sein, einen Beobachter für das Produkt Speichern hinzuzufügen und dann mehrere Auswahl zu erweitern, um das Textfeld mit einem möglichen neuen Attributwert hinzuzufügen, damit der Benutzer entweder vorhandenen Attributwert auswählen oder neue hinzufügen kann. Und beim Speichern wird es zu Attributwerten hinzugefügt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top