Magento 2: orden de clasificación y límite de recolección de productos

16

Necesito ordenar la colección de productos por orden de ID DESC y agregar límite a la colección de productos. Aquí está mi código:

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

Respuestas:

31

Simplemente agregue este código addAttributeToSort('entity_id', 'desc')a su colección.

Como el producto sigue la estructura EAV, puede usar addAttributeToSort('attribute_code', 'sort_order')

Para limitar el uso setPageSize()y los setCurPage()métodos de una colección :

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

$collection 
    ->setPageSize(10) // only get 10 products 
    ->setCurPage(1)  // first page (means limit 0,10)
    ->load(); 
Amit Bera
fuente
1
No has respondido la parte límite.
Hashid
@Hashid actualizó la respuesta.
Roman Snitko
¡Excelente! Esto también solucionó un problema al tener 2 bloques de colección en una página, uno de ellos paginación, que rompió la otra colección que no estaba destinada a ser paginación. El 'setCurPage' en este último solucionó este 🥳
00-BBB
setPageSize no funciona para mí
Sagar Parikh SGR