【问题标题】:Magento: How to limit a collection (sales/order) by a certain category?Magento:如何按某个类别限制集合(销售/订单)?
【发布时间】:2014-03-27 12:43:47
【问题描述】:

我正在尝试按类别限制管理员用户的订单,我可以按类别找到产品 id 的集合并收集销售额/订单,但我如何将其与事件观察者一起使用?

$category_id = 44;
$category = Mage::getModel("catalog/category")->load($category_id);
$products = Mage::getModel("catalog/product")->getCollection()
  ->addCategoryFilter($category);

接下来我只收集产品ids,以便我可以使用它们:

$product_ids = array();
foreach ($products as $product)
  $product_ids[] = $product->getId();

$items = Mage::getModel("sales/order_item")->getCollection()
  ->addFieldToFilter("product_id", array("in" => $product_ids));

【问题讨论】:

    标签: magento events ecommerce-sales


    【解决方案1】:

    您可以为此使用 SetPageSize 和 SetCurPage

    $col = Mage::getModel('你的模型') ->getCollection() ->setPageSize(17) ->setCurPage(1);

    HTH

    【讨论】:

    • @RatneshKumar:对我来说,它也适用于 sales/order_item 模型:$salesItems = Mage::getModel('sales/order_item')->getCollection() ->setPageSize(17);
    • 是的,这是我的错,实际上当我迭代集合时,它会遍历其中的所有项目。你能告诉我为什么吗?
    • 错误一定在你身边,我遍历它,我只得到 17 项...你能告诉我一些代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    相关资源
    最近更新 更多