2012-04-06 17 views
0

Ich versuche, eine Sammlung mit den neuesten Produkten auf der Startseite zu erreichen. Dies ist mein Code so weit:Magento erstellen "Neueste Produkte" Sammlung

$_productCollection = clone $this->getLoadedProductCollection(); 

$_productCollection->clear() 
->setPageSize(40) 
->setOrder('created_at', 'desc') 
->load(); 

Dies wird 40 Artikel Rückkehr aber nicht in der richtigen Reihenfolge.

Ich habe so viele Dinge versucht ... Kann mir jemand helfen?

+0

Was halten Sie für die "gute" Bestellung? Können Sie uns ein Beispiel für die Ausgabe geben, die die aktuelle Sammlung bereitstellt? Gibt es irgendeinen Grund, warum Sie mit "created_at" anstatt mit "updated_at" bestellen? – philwinkle

+0

Eine gute Bestellung ist das neueste Produkt. Hier ist ein Link zum Laden [link] (http://boutique.hhqc.com). Ich mache created_at, weil ich über updated_date nicht wusste. – user1318338

+0

Ich habe geändert created_at für update_at – user1318338

Antwort

0

Ich bin nicht sicher, was Ihr genaues Problem ist, aber hier ist eine handliche Debugging-Methode, um Sie auf Ihren Weg zu bekommen.

Sie können Ihre Sammlungsabfragen immer mithilfe von Methoden überprüfen, die im Objekt Zend_Db_Select verfügbar sind. In Ihrem Fall zum Beispiel, können wir laufen:

echo (string) $_productCollection->getSelect()->assemble(); 

Sie auch true als Parameter an Ihren ->load() Methodenaufruf hinzufügen könnten, ->load(true) die Abfrage aus im Browser zu drucken.

+0

Vielen Dank. Mein genaues Problem ist, dass setOrder() nicht funktioniert. Was mache ich falsch? Ich möchte nur die Reihenfolge nach Erstellungsdatum festlegen. Danke noch einmal. – user1318338

0

Oder Sie können betrügen und eine Liste der IDs über eine direkte Abfrage in der PHP-Datei erhalten:

SELECT entity_id, sku FROM catalog_product_entity ORDER BY created_at DESC LIMIT 0,40;

Wie nicht anders hoffen, die Ergebnisse sind die gleichen wie wenn Sie mit dem ENTITY_ID bestellen.

0

Verwendung in Ihrer Sammlung folgende:

 $collection->addAttributeToSort('news_from_date', 'desc'); 
    $collection->addAttributeToSort('created_at', 'desc'); 
0

Sie müssen zuerst das Objekt reinigen. Dazu:

$_productCollection = $this->getLoadedProductCollection() 
    ->clear() 
    ->addAttributeToSort('created_at', 'DESC'); 

Neben created_at Sie Namen verwenden können, updated_at, sku und so weiter.

Ich hoffe, es hilft.

Verwandte Themen