php 价格范围,php – 如何在magento中获得可配置的产品价格范围?

This answer到Magento StackExchange上的类似问题是一个很好的工作基础.使用它,这是一个解决这个问题的方法,它考虑了具有多个价格变化属性的可配置产品的潜力.

我把它写成了一个带有可配置产品ID的函数,并返回一个min到max的字符串.应该非常清楚如何将其应用到您需要的上下文中.

function getPriceRange($productId) {

$max = '';

$min = '';

$pricesByAttributeValues = array();

$product = Mage::getModel('catalog/product')->load($productId);

$attributes = $product->getTypeInstance(true)->getConfigurableAttributes($product);

$basePrice = $product->getFinalPrice();

foreach ($attributes as $attribute){

$prices = $attribute->getPrices();

foreach ($prices as $price){

if ($price['is_percent']){ //if the price is specified in percents

$pricesByAttributeValues[$price['value_index']] = (float)$price['pricing_value'] * $basePrice / 100;

}

else { //if the price is absolute value

$pricesByAttributeValues[$price['value_index']] = (float)$price['pricing_value'];

}

}

}

$simple = $product->getTypeInstance()->getUsedProducts();

foreach ($simple as $sProduct){

$totalPrice = $basePrice;

foreach ($attributes as $attribute){

$value = $sProduct->getData($attribute->getProductAttribute()->getAttributeCode());

if (isset($pricesByAttributeValues[$value])){

$totalPrice += $pricesByAttributeValues[$value];

}

}

if(!$max || $totalPrice > $max)

$max = $totalPrice;

if(!$min || $totalPrice < $min)

$min = $totalPrice;

}

return "$min - $max";

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值