在Magento,我如何在可配置产品的产品页面上加载运费?

时间:2011-08-02 11:54:36

标签: php zend-framework magento

我在我的产品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");
                }
                }
                ?>

适用于简单产品。但是在可配置产品上,它始终显示免费送货!如何绕过这个?

1 个答案:

答案 0 :(得分:0)

这只是猜测,但可配置产品只是组织一堆简单产品的容器。当您将产品添加到购物车(实际)时,除了可配置的产品外,购物车中还有一个简单的产品。我猜这第二个产品提供运输等的重量和信息。

这意味着,要获得运费估算,您需要在可配置下指定其中一个简单产品(直接或通过传递一些选项并假装“选择”产品)以便查看您的运费估算值。