To nie wydaje się być poprawnie zamówione, coś robię źle? Propozycje?
$componentQuantityCollection = Mage::getModel('catalog/product')->getCollection();
$componentQuantityCollection->joinField('qty',
'cataloginventory/stock_item',
'qty',
'product_id=entity_id',
'{{table}}.stock_id=1',
'left');
$componentQuantityCollection->addAttributeToFilter('sku', array('in' => $componentSkus))->setOrder('sku','ASC');
Kolejna kolekcja, która nie wydaje się być posortowana, która jest inna niż pierwsza:
$kitCollection = Mage::getModel('kitinventory/kitinventory')->getCollection()->addFieldToFilter('kit_sku', $sku)->setOrder('related_sku', 'DESC');
collection
sorting
easymoden00b
źródło
źródło
$kitCollection->getSelect()->order('related_sku DESC');
Możesz dodać kolejność sortowania w ten sposób:
Więcej informacji: http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/using_collections_in_magento
Nadzieja może ci pomóc.
źródło
->order('related_sku', 'desc');
Aby rozwinąć inne odpowiedzi tutaj,
$kitCollection->getSelect()->order('column DESC')
działa dobrze, ale nie można dodać więcej niż jednej kolumny. Na przykład$kitCollection->getSelect()->order('column DESC, column2 ASC')
będzie błąd. Wynika to z pracy, jaką Magento wykonuje, aby uniknąć nazw kolumn. Aby obejść ten problem, możesz użyćZend_Db_Expr
podobnego:źródło
easymoden00b,
setOrder()
nie działa z powodu struktury Eav na produkcie. Jak @Sande mówi o używaniuaddAttributeToSort()
funkcji z powoduMagento is join multiple tables for product collection.
Attribute alias name at collection
setOrder() function
działa, gdy jest toorder expression
Nazwa pola, SortOrder tocorrect
.Możesz zobaczyć, jak magento tworzy alias pola i odnosi się do atrybutu tabeli eav w klasie Mage_Eav_Model_Entity_Collection_Abstract
źródło
Oto moje rozwiązanie do sortowania kolejności opcji w atrybucie konfigurowalnego produktu. Zacznij od skopiowania Collection.php,
app/code/core/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/Collection.php
doapp/code/local/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/Collection.php
.Następnie możesz znaleźć ten kod:
I zamień go na ten kod:
Umożliwi to sortowanie rozwijanej listy opcji atrybutów według alfabetu. Możesz także odwrócić kolejność za pomocą
array_reverse()
lub podobnych funkcji.Wcześniej moje opcje atrybutów były w odwrotnej kolejności alfabetycznej. Teraz są w kolejności alfabetycznej.
źródło