我在我的产品view.phtml文件中有这个代码:我收到运费估算并将最低成本基于英国地址并在产品页面上呈现。而不是在页面上有一个完整的运输估算器。
<?php
if($_product->isSaleable())
{
$quote = Mage::getModel('sales/quote');
$quote->getShippingAddress()->setCountryId('GB');
$quote->addProduct($_product);
$quote->getShippingAddress()->collectTotals();
$quote->getShippingAddress()->setCollectShippingRates(true);
$quote->getShippingAddress()->collectShippingRates();
$rates = $quote->getShippingAddress()->getShippingRatesCollection();
$minPrice = PHP_INT_MAX;
foreach ($rates as $rate) {
$minPrice = min($minPrice, $rate->getPrice());
}
if ($minPrice == 0) {
echo ('This item qualifies for FREE shipping');
}
elseif ($minPrice < PHP_INT_MAX) {
echo ('Shipping to UK from £' . money_format('%i', $rate->getPrice()) . "\n");
}
}
?>
适用于简单产品。但是在可配置产品上,它始终显示免费送货!如何绕过这个?
答案 0 :(得分:0)
这只是猜测,但可配置产品只是组织一堆简单产品的容器。当您将产品添加到购物车(实际)时,除了可配置的产品外,购物车中还有一个简单的产品。我猜这第二个产品提供运输等的重量和信息。
这意味着,要获得运费估算,您需要在可配置下指定其中一个简单产品(直接或通过传递一些选项并假装“选择”产品)以便查看您的运费估算值。