Frage

Ich habe ein sehr seltsames Problem. Ich habe ein benutzerdefiniertes Attribut namens "Taille_ecran" erstellt, das in englischer "Bildschirmgröße" bedeutet. Die Beschriftungen dieses Attributs sind Zahlen wie 1,2, 1,6, 2, 5, 6 usw.

Wenn ich versuche, einen benutzerdefinierten Filter wie diesen hinzuzufügen:

$_productCollection->addAttributeToSelect('taille_ecran');
$_productCollection->addFieldToFilter(array(
    array('attribute'=>'taille_ecran','lteq'=>$_GET['max_size']),
));

Der Filter filtert nach der Option_ID von Those -Etiketten in "Taille_ecran" anstelle von Etikettenwerten. Tatsächlich ist hier die ID meiner Etiketten:

31 => 1,2 41 => 5 usw. ...

Als ich versuchte, die Etiketten "LTEQ" unter 7 zu erhalten, gibt es kein Ergebnis, und wenn ich 35 versuche, bekomme ich 1 Ergebnis, was 1,2 ist.

Ich versuche auch, diesen Wert in meiner Produktliste zu drucken:

echo $_product->getTailleEcran();

// print 31 when it's for 1.2...

Es fällt mir sehr schwer zu erklären, was passiert. Ich habe dieses Problem nicht mit einem anderen Attribut.

Vielen Dank im Voraus für Ihre Hilfe !

War es hilfreich?

Lösung 3

Vielen Dank an Fabian und Kiatng hier, was ich getan habe, um dieses Problem zu lösen. Ich habe ein neues benutzerdefiniertes Attribut erstellt und neben Dropdown verwendet ich den Preis.

Das ermöglicht mir, meinen Quellcode nicht zu ändern, und jetzt funktioniert er.

Hoffe es wird helfen!

Andere Tipps

Versuche dies:

$attribute = Mage::getSingleton('catalog/config')->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'taille_ecran');
$source = $attribute->getSource();
$optionId = $source->getOptionId($_GET['max_size']);
$_productCollection->addAttributeToFilter('taille_ecran', array('lteq'=>$optionId));

Was Sie erreichen möchten, wird von Magento nicht unterstützt. Optionsfilter basieren auf dem option id, Das bedeutet, dass Sie es sind nicht in der Lage nach dem Wert filtern.

Wenn Sie dies möchten, müssen Sie Ihr eigenes Attribut erstellen, fügen Sie es als hinzu decimal und haben Sie Ihr eigenes Quellmodell mit value = key, also hast du noch eine select Im Backend, aber Sie können nach dem Wert filtern.

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