Isso não parece ter sido solicitado corretamente, algo que estou fazendo de errado? Sugestões?
$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');
Outra coleção que não parece ser classificada, diferente da primeira:
$kitCollection = Mage::getModel('kitinventory/kitinventory')->getCollection()->addFieldToFilter('kit_sku', $sku)->setOrder('related_sku', 'DESC');
collection
sorting
easymoden00b
fonte
fonte
$kitCollection->getSelect()->order('related_sku DESC');
Você pode adicionar uma ordem de classificação como esta:
Mais informações: http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/using_collections_in_magento
A esperança pode ajudá-lo.
fonte
->order('related_sku', 'desc');
Para expandir as outras respostas aqui,
$kitCollection->getSelect()->order('column DESC')
funciona bem, mas você não pode adicionar mais de uma coluna. Por exemplo,$kitCollection->getSelect()->order('column DESC, column2 ASC')
irá erro. Isso é devido ao trabalho que o Magento faz para escapar dos nomes das colunas. Para contornar isso, você pode usarZend_Db_Expr
o seguinte:fonte
easymoden00b,
setOrder()
não está funcionando devido à estrutura Eav no produto. Como @Sande diz usar aaddAttributeToSort()
função, por causa deMagento is join multiple tables for product collection.
Attribute alias name at collection
setOrder() function
está funcionando quandoorder expression
Fieldname, SortOrder estácorrect
.Você pode ver como o magento é criar um alias de campo e relacionar o atributo eav table na classe Mage_Eav_Model_Entity_Collection_Abstract
fonte
Aqui está minha solução para classificar a ordem das opções no atributo de um produto configurável. Comece copiando Collection.php,
app/code/core/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/Collection.php
paraapp/code/local/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/Collection.php
.Então você pode encontrar este código:
E substitua-o por este código:
Isso permitirá que você classifique a lista suspensa de opções de atributo como alfabética. Você também pode reverter a ordem usando
array_reverse()
funções semelhantes.Anteriormente, minhas opções de atributo estavam em ordem alfabética inversa. Agora, eles estão em ordem alfabética.
fonte