gpt4 book ai didi

magento - 在 Magento 中按分组产品中的自定义属性对关联产品进行排序

转载 作者:行者123 更新时间:2023-12-02 14:15:25 25 4
gpt4 key购买 nike

如何在 Magento 中按分组产品中的自定义属性对关联产品进行排序,

我已将文件 Grouped.php 复制到:app/code/local/Mage/Catalog/Model/Product/Type/Grouped.php

并尝试将其添加到我的 getAssociatedProducts 函数中:

->addAttributeToSort('my_attribute', 'DESC');

但是不起作用,有人可以帮忙吗?

[编辑]

我已经覆盖了文件“app/code/core/Mage/Catalog/Model/Product/Type/Grouped.php”,并且我尝试通过修改集合来按自定义属性对关联产品进行排序,如下所示:

$collection = $this->getAssociatedProductCollection($product)
->addAttributeToSelect('*')
->addFilterByRequiredOptions()
->setPositionOrder()
->addStoreFilter($this->getStoreFilter($product))
->addAttributeToFilter('status', array('in' => $this->getStatusFilters($product)))
->addAttributeToSort('my_attribute', 'DESC');

但这没有改变! :(

非常感谢您的帮助。

最佳答案

您需要确保您的属性包含在选择中才能按其排序。我也做了完全相同的事情来按实体 ID 订购产品。

public function getAssociatedProducts($product = null)
{
if (!$this->getProduct($product)->hasData($this->_keyAssociatedProducts)) {
$associatedProducts = array();

if (!Mage::app()->getStore()->isAdmin()) {
$this->setSaleableStatus($product);
}

$collection = $this->getAssociatedProductCollection($product)
->addAttributeToSelect('*')
->addFilterByRequiredOptions()
->setPositionOrder()
//MRD added to order by product id also.
->addAttributeToSort('entity_id', 'ASC')
//END MRD
->addStoreFilter($this->getStoreFilter($product))
->addAttributeToFilter('status', array('in' => $this->getStatusFilters($product)));

foreach ($collection as $item) {
$associatedProducts[] = $item;
}

$this->getProduct($product)->setData($this->_keyAssociatedProducts, $associatedProducts);
}
return $this->getProduct($product)->getData($this->_keyAssociatedProducts);
}

这在 Magento 1.4.1.1 中对我有用。请注意,您仍然按位置排序。因此您的查询会考虑到这一点。

关于magento - 在 Magento 中按分组产品中的自定义属性对关联产品进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7076099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com