В magento мне нужно загрузить только 20 лучших товаров из коллекций товаров с панелью разбиения на страницы (панель нумерации должна иметь только 4 страницы, потому что в ней всего 20 позиций - но в моем в случае, если он имеет общую коллекцию продуктов, поскольку панель разбиения на страницы magento принимает весь объект коллекции для создания панели инструментов без свойства limit).
У меня есть следующий код
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addOrderedQty()
->setPageSize($limit)
->setPage($p, $limit)
->setOrder('ordered_qty', 'desc');
И это вернуло 20 предметов правильно. Когда я устанавливаю это на панель нумерации следующим способом.
$magento_block = Mage::getSingleton('core/layout');
$productsHtml = $magento_block->createBlock('catalog/product_list');
$productsHtml ->setTemplate('catalog/product/list.phtml')->setCollection($_productCollection);
$pager = $magento_block->createBlock('page/html_pager', 'catalog/product_list')->setCollection($_productCollection);
$productsHtml->setChild('pager', $pager);
Он берет всю коллекцию товаров вместо 20 предметов для создания панели инструментов. Поэтому я добавил условие where в саму коллекцию product следующим образом.
$_productCollection->getSelect()->where("order_items.qty_ordered >= 50");
Эта коллекция возвращает товары, которые проданы более чем в 50 количествах. Но то, что я хочу, это ровно 20 пунктов с правильной полосой пагинации.
Как я могу установить Лимит в панели нумерации.
у меня тоже не работает
$magento_block->createBlock('page/html_pager', 'catalog/product_list')->setCollection($_productCollection)->setLimit(20);
Примечание:
Загружаю эту коллекцию продукта за пределами версии Magento Enterprise 1.9, а не в шаблоне magento. Может кто-нибудь найти в чем здесь ошибка?