我需要计算结账时有多少特定类型的产品。但仅限(!)特定类型的产品。该类型在下拉属性中定义。
这是一个计算重量的代码,效果很好。 \template\checkout\cart.phtml
<?php $items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
$weight = 0;
foreach($items as $item) {
$weight += ($item->getWeight() * $item->getQty()) ;
}
echo $weight;
?>
但是如何只统计具有特定属性值的产品呢?
喜欢 =>“仅计算属性颜色=绿色的产品”
我发现了很多关于收集和过滤器的信息,但它似乎不适用于购物车项目。
希望你能帮助我。
最佳答案
您必须在循环时加载产品模型(昂贵),然后您才能像这样调用它的属性:
foreach( $oItems as $oItem )
{
$oProduct = $oItem->getProduct();
$oProductModel = Mage::getModel( 'catalog/product' )->load( $oProduct->getId() );
// For code...
$sColor = $oProductModel->getData( 'color' );
var_dump( $sColor );
// For text...
$sFormat = $oProductModel->getAttributeText( 'color' );
var_dump( $sFormat );
}
关于Magento Checkout 计算与属性匹配的产品的重量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29060847/