Pregunta

¿Cómo puedo hacer un atributo de texto a disposición de la navegación por capas?

En el administrador no es posible establecer un atributo para filtrar si no es una lista desplegable o precio tipo.

Me puede preocuparse de las consecuencias de este frontend, pero le gustaría saber la mejor manera de abrir esto a los campos de texto y hacer posible que el atributo de texto se va a cargar con la lista de filtros.

¿Fue útil?

Solución

Mage_Catalog_Model_Resource_Eav_Attribute::isIndexable() de referencia, que es utilizado por el indexador EAV para comprobar si un atributo dado puede estar incluido en el índice de navegación en capas.

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

Para realizar otros tipos de entrada indexable, es necesario volver a escribir este modelo de recursos atributo (o especificar un modelo personalizado que se refiere a un modelo de recurso personalizado en la propiedad eav_attribute.attribute_model para su atributo.

La razón por la cual el indexador EAV tiene esta limitación, se debe a que sólo sabe cómo procesar valores enteros. Lo mismo es cierto para el modelo de filtro de atributos de navegación por capas.
Si sus valores son moldeables a números enteros, usted será capaz de salirse con la utilización de un valor varchar o texto.
De lo contrario, tendrá que volver a escribir el modelo de filtro de atributos para procesar correctamente sus valores, o implementar su propio modelo de filtro personalizado.

Otros consejos

Debería ser posible añadir un observador en el producto en Guardar y luego extender selección múltiple para añadir campo de texto con posible valor nuevo atributo para que el usuario puede entonces elegir entre valor de atributo existente o agregar uno nuevo. Y en guardar se añade a los valores de atributo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top