【问题标题】:Default Sorting not working for category products in magento默认排序不适用于magento中的类别产品
【发布时间】:2015-01-28 15:56:29
【问题描述】:

我正在进行分配工作,我需要取消分配以前产品的类别并需要动态分配畅销产品(前 20 名)。我为此使用以下代码:-

  $_productCollection = Mage::getModel("catalog/product")->getCollection()
        ->addAttributeToSelect(array('name', 'price', 'small_image'))
        ->addAttributeToSort("entity_id","DESC")
        ->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInSiteIds())
        ->setPageSize($productCount);

        // Delete Existing Mapped product from Category

        $delQuery = 'Delete from catalog_category_product where category_id ='.$catId;
        $writeConnection->query($delQuery);

        foreach($_productCollection as $product){

            $categoryIds = $product->getCategoryIds();
            if (!in_array($catId, $categoryIds)) {
                $write->query("replace into
`catalog_category_product` (category_id,product_id,position)
VALUES (?,?,0)",array($catId,$product->getEntityId()));
            }
        }

        $process = Mage::getModel('index/indexer')->getProcessByCode('catalog_category_product');
        $process->reindexAll();

        $category->save();

代码工作正常,但是一旦将动态产品分配给该类别产品的特定类别后端排序(默认产品列表排序依据),该类别产品就停止工作了。我怀疑这可能是因为我的每个替换产品的位置都是 0查询但还不确定。

如果有人有任何建议,那将非常有帮助。

【问题讨论】:

    标签: magento sorting categories


    【解决方案1】:

    您在表格中输入的位置对于所有产品都是 0。然后,Magento 将默认按照产品插入类别表的顺序而不是位置对产品进行排序。

    您需要相应地修改每个产品的位置,以便能够按照默认排序(使用位置属性完成)显示它们。

    【讨论】:

    • 还有一件事,得到产品定位,存入另一个数组。在您的 while 循环中,从那里获取它并插入位置列。如果您想将前 20 名畅销书分配到此类别中,则只需将排序增加 1,因为畅销书系列已经将产品排序为正确的顺序。
    • :-我面临的问题是,如果我按价格或名称从后端设置此类别的默认排序..它似乎不起作用..所以你的意思是排序不起作用因为每个产品的位置都设置为0?我很困惑按价格/名称排序是否也取决于位置??
    • 还有一个问题,我需要获取产品当前位置还是可以通过递增从1开始分配新位置。
    • 哦,现在我遇到了您的问题,您可以检查的是转到列表页面并将排序更改为价格,为控制器中的原始查询定价。在您的案例中,必须填写一些列才能在列表页面上对产品进行分层。此外,对于最畅销的产品集合,这些产品按他们获得的订单排序,因此您可以在循环中直接将它们加 1。
    • 好吧,增量相同...那么评价最高的产品和新产品呢...在其他两个类别中,我需要获取那些并在那里面临相同的问题。所以它也将通过增加从 1 开始的位置变量.....查询部分呢..我需要从哪里检查查询??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多