si deve personalizzare il file core copiandolo nella directory/Mage locale.
Supponiamo che sia necessario variare le dimensioni & colore.
Aprire il file app\code\core\Mage\Catalog\Model\Layer.php
Dopo il seguente codice: -
$collection
->addAttributeToSelect(
Mage::getSingleton('catalog/config')->getProductAttributes()
)
->addMinimalPrice()
->addFinalPrice()
->addTaxPercents()
->addUrlRewrite($this->getCurrentCategory()->getId());
Bisogna personalizzarlo per l'attributo selezionato: -
Ad esempio: -
if(isset($_GET['size']))
{
$query = 'SELECT value FROM aw_layerednavigation_filter_option_eav WHERE name="title" AND option_id IN ('.$_GET['size'].')';
$results = $readConnection->fetchAll($query);
$sizeLabels = array();
foreach($results as $_r){
$size_labels[] = $_r['value'];
}
$query = 'SELECT parent_id FROM advance_filter WHERE size IN ('.implode(",",$size_labels).') AND qty > 0';
$results = $readConnection->fetchAll($query);
foreach($results as $_r){
$size_prod_Ids[] = $_r['parent_id'];
}
}
$color_prod_Ids = array();
if(isset($_GET['color']))
{
$query = 'SELECT value FROM aw_layerednavigation_filter_option_eav WHERE name="title" AND option_id IN ('.$_GET['color'].')';
$results = $readConnection->fetchAll($query);
$color_labels = array();
foreach($results as $_r){
$color_labels[] = strtoupper($_r['value']);
}
$query = 'SELECT parent_id FROM advance_filter WHERE color IN ("'.implode(",",$color_labels).'") AND qty > 0';
$results = $readConnection->fetchAll($query);
foreach($results as $_r){
$color_prod_Ids[] = $_r['parent_id'];
}
}
$productIds = array_merge($size_prod_Ids,$color_prod_Ids);
if(count($productIds) > 0){
$collection->addAttributeToFilter('entity_id', array('in' => array_unique($productIds)));
}
spero che questo possa aiutare .. !!
fonte
2015-08-21 20:05:58
Penso di avere la risposta a questo. In che modo la visibilità del prodotto è configurata per la configurazione e la semplicità? Sono entrambi visibili nel catalogo/ricerca o solo nel prodotto configurabile? – kais
solo il configurabile. – David
Non sembra che questo possa essere fatto facilmente senza modificare l'indicizzazione o danneggiare seriamente le prestazioni. In 'app/code/core/Mage/Catalog/Model/Resource/Layer/Filter/Attribute.php :: getCount' i collegamenti di navigazione a strati da recuperare utilizzano le tabelle di indice, che non includono i prodotti che non sono visibili individualmente. Dovresti quindi aggiungere alcune query aggiuntive per ottenere i prodotti semplici associati e verificare se esiste la combinazione di due (o più) attributi. Questo è dove la performance verrebbe uccisa, specialmente se si hanno molti attributi/valori. – kais