Cela ne semble pas être commandé correctement, qu'est-ce que je fais mal? Suggestions?
$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');
Une autre collection qui ne semble pas être triée et différente de la première:
$kitCollection = Mage::getModel('kitinventory/kitinventory')->getCollection()->addFieldToFilter('kit_sku', $sku)->setOrder('related_sku', 'DESC');
collection
sorting
easymoden00b
la source
la source
$kitCollection->getSelect()->order('related_sku DESC');
Vous pouvez ajouter un ordre de tri comme celui-ci:
Plus d'informations: http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/using_collections_in_magento
L'espoir peut vous aider.
la source
->order('related_sku', 'desc');
Pour développer les autres réponses ici, cela
$kitCollection->getSelect()->order('column DESC')
fonctionne bien, mais vous ne pouvez pas ajouter plus d'une colonne. Par exemple,$kitCollection->getSelect()->order('column DESC, column2 ASC')
va l'erreur. Cela est dû au travail que Magento fait pour échapper aux noms de colonne. Pour contourner cela, vous pouvez utiliser uneZend_Db_Expr
méthode similaire:la source
easymoden00b,
setOrder()
ne fonctionne pas en raison de la structure Eav sur le produit. Comme @Sande dit d'utiliser laaddAttributeToSort()
fonction, en raison deMagento is join multiple tables for product collection.
Attribute alias name at collection
setOrder() function
fonctionne quand ilorder expression
Fieldname, SortOrder estcorrect
.Vous pouvez voir comment magento crée un alias de champ et associe l'attribut de table eav à la classe Mage_Eav_Model_Entity_Collection_Abstract
la source
Voici ma solution pour trier l'ordre des options dans l'attribut d'un produit configurable. Commencez par copier Collection.php,
app/code/core/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/Collection.php
àapp/code/local/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/Collection.php
.Ensuite, vous pouvez trouver ce code:
Et remplacez-le par ce code:
Cela vous permettra de trier la liste déroulante des options d'attribut par ordre alphabétique. Vous pouvez également inverser l'ordre en utilisant
array_reverse()
ou des fonctions similaires.Auparavant, mes options d'attribut étaient dans l'ordre alphabétique inverse. Maintenant, ils sont classés par ordre alphabétique.
la source