Wie gruppiere ich numerische Attributbereiche ähnlich den Preisen in der geschichteten Navigation?

7

Ich habe ein numerisches Attribut, das eine Größe (in cm) ist. Ich möchte Produkte in Bereiche des Attributs gruppieren, die der Gruppierung von Preisen ähneln.

Wenn ich also mehrere Produkte mit den Größen 151 cm, 152 cm, 153 cm habe, sollte diese in der geschichteten Navigation zu einer Option "150 cm - 155 cm" zusammengefasst werden.

Was ist der beste Weg, dies zu tun?

cmgriffing
quelle

Antworten:

3

Ich habe gerade die mehrschichtige Navigation für Produkte mit verschiedenen empfohlenen Altersgruppen eingerichtet. Am Ende habe ich ein neues Attribut für die geschichtete Navigation mit einer Reihe vorgegebener Werte erstellt. Ich hatte auch Probleme, Freiform-Werte in der überlagerten Navigation zu gruppieren.

In Ihrem Fall würden Sie also das Feld für die tatsächliche Größe beibehalten und Ihre Produktgrößen dort einfügen, um sie auf den Produktseiten anzuzeigen. Dann haben Sie ein anderes Attribut namens Größenbereich. Im Größenbereich haben Sie alle Bereiche, die in der überlagerten Navigation angezeigt werden sollen, z. B. 145 cm bis 150 cm, 150 c bis 155 cm usw. Vielleicht mehrfach auswählbar, damit ein Produkt mit 150 cm in beiden enthalten sein kann? (oder vermeiden Sie einfach Überlappungen.) Alle diese Werte werden in der überlagerten Navigation angezeigt und funktionieren.

Der Nachteil ... Sie geben die Größe zweimal ein, einmal für die Anzeige und einmal für mehrschichtige Navigationszwecke. Ich lade neue Produkte mit einem Skript über die API. Für mich war dies ein bisschen Codierung und erfordert keine fortlaufende doppelte Dateneingabe. Wenn Sie viele Produkte über die Magento-Oberfläche laden, kann dies ärgerlich sein.

Rechtsklick
quelle
0

"Wenn Sie viele Produkte über die Magento-Oberfläche laden, ist dies möglicherweise ärgerlich."

Erstellen Sie ein neues Attribut, wie von @RightClick vorgeschlagen und

Magento bietet ein Attribut mit dem folgenden Code

$product->setAttributeCode($newValue)
$ProductObject->getResource()->saveAttribute($product, 'attribute_Code');

Beispiel:

$productIds = array(1,2,3,4,5);
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('entity_id', array('in' => $productIds));

foreach($products as $product)
{
    $product->setSpecialFromDate('2010-10-28');
    // below code use for time format 
    $product->setSpecialFromDateIsFormated(true);
    $product->getResource()->saveAttribute($product, 'special_from_date');
}

Oder verwenden Sie ein beliebiges Importmodul für Massenprodukte, um dieses Attribut für Massenprodukte zu aktualisieren. Für das Importmodul für Massenprodukte müssen Sie ein mehrdimensionales Array erstellen

$data = array(
    array(
        'sku' => 'simple1',
        'attribute_code' => 'range_value1',
    ),
    array(
        'sku' => 'simple2',
        'attribute_code' => 'range_value2',
    ),
    array(
        'sku' => 'grouped',
        'attribute_code' => 'range_value3',
    ),
);

// now update that array collection in one go

try {
    /** @var $import AvS_FastSimpleImport_Model_Import */
    $import = Mage::getModel('fastsimpleimport/import');
    $import
        ->setUseNestedArrays(true)
        ->processProductImport($data);
} catch (Exception $e) {
    print_r($import->getErrorMessages());
}

Link für AvS_FastSimpleImport

Gopal Patel
quelle
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - Von der Überprüfung
Murtuza Zabuawala
@ MurtuzaZabuawala Danke für deinen Vorschlag. Da dies meine erste Antwort auf Stackoverflow ist und ich etwas Neues von Ihnen kennenlerne.
Gopal Patel