Domanda

Come posso fare un attributo di testo a disposizione della navigazione a strati?

Nel amministratore non è possibile impostare un attributo filtrabile se non è un tipo discesa o prezzo.

posso preoccupare delle implicazioni frontend di questo, ma vorrei sapere l'approccio migliore per aprire questo fino a campi di testo e rendere possibile per l'attributo di testo da caricare con l'elenco dei filtri.

È stato utile?

Soluzione

Riferimento Mage_Catalog_Model_Resource_Eav_Attribute::isIndexable(), che viene utilizzato per l'indicizzatore EAV per controllare se un dato attributo può essere incluso nell'indice navigazione stratificato.

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;
}

Per fare altri tipi di ingresso indicizzabili, è necessario riscrivere questo modello risorsa attributo (o specificare un modello personalizzato che fa riferimento a un modello di risorse personalizzato nella proprietà eav_attribute.attribute_model per il vostro attributo.

Il motivo per cui l'indicizzatore EAV ha questa limitazione, è perché sa come elaborare valori interi. Lo stesso vale per il modello di filtro attributo di navigazione a strati.
Se i valori sono calcinabile a numeri interi, si sarà in grado di farla franca con l'utilizzo di un valore varchar o testo.
In caso contrario, si dovrà riscrivere il modello di filtro attributo per elaborare correttamente i valori, o implementare il proprio modello di filtro personalizzato.

Altri suggerimenti

Dovrebbe essere possibile aggiungere un osservatore dei prodotti di risparmio e quindi estendere selezione multipla per aggiungere campo di testo con possibile nuovo valore di attributo in modo utente quindi possibile scegliere il valore attributo esistente o aggiungerne uno nuovo. E su Save si aggiunge ai valori degli attributi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top