Magento 2: ordem de classificação e limite de coleta de produtos


16

Preciso classificar a coleção de produtos por ordem de ID DESC e adicionar limite à coleção de produtos. Aqui está o meu código:

$objectManager     = \Magento\Framework\App\ObjectManager::getInstance();
$productCollection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\CollectionFactory');
$collection        = $productCollection->create()
    ->addAttributeToSelect('*')
    ->load();

Respostas:


31

Basta adicionar esse código addAttributeToSort('entity_id', 'desc')à sua coleção.

Como o produto segue a estrutura do EAV, você pode usar addAttributeToSort('attribute_code', 'sort_order')

Para limitar um uso setPageSize()e setCurPage()métodos de coleção :

$collection = $productCollection->create()
    ->addAttributeToSelect('*');

$collection 
    ->setPageSize(10) // only get 10 products 
    ->setCurPage(1)  // first page (means limit 0,10)
    ->load(); 

1
Você não respondeu à parte limite.
Hashid

@Hashid atualizou a resposta.
Roman Snitko

Ótimo! Isso também corrigiu um problema ao ter 2 blocos de coleção em uma página, um deles de paginação, que quebrou a outra coleção que não era para ser paginação. O 'setCurPage' neste último corrigiu esse 🥳
00-BBB

setPageSize não está funcionando para mim
Sagar Parikh SGR
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.