2011-04-12 73 views
2

我想在Magento的實際產品頁面上添加運輸成本,以便客戶可以看到它將花費多少錢。我可以從購物籃頁面中添加運費估算器。但我真正想要的是一行文本下的產品價格說,從英鎊XX.XX發貨在Magento中,我如何將物品運輸成本放在產品頁面上?

我看過本教程:http://aneeshsreedharan.wordpress.com/2010/04/28/estimating-shipping-rate-on-product-details-page-in-magento/#comment-10,但它不適合我在Magento 1.4.2 - 我認爲這是一個更舊版本在本教程中使用。

我現在只使用一種基於重量的表費率運輸方法,只有一個選項。

編輯:我最終解決了這個問題:相當尷尬,我沒有意識到博客是剝離格式。它改變了「到」

我現在可以確認下面的代碼沒有顯示發貨:

<?php 
if($_product->isSaleable()) 
{ 
$quote = Mage::getModel('sales/quote'); 
$quote->getShippingAddress()->setCountryId('*'); 
$quote->addProduct($_product); 
$quote->getShippingAddress()->collectTotals(); 
$quote->getShippingAddress()->setCollectShippingRates(true); 
$quote->getShippingAddress()->collectShippingRates(); 
$rates = $quote->getShippingAddress()->getShippingRatesCollection(); 

foreach ($rates as $rate) 
{ 
echo $rate->getPrice(); 
} 
} 
?> 

回答

2

我最終摸索出了問題:與其embarrasingly我沒有意識到的博客被剝離格式化。它改變了'到「

我現在可以確認下面的代碼確實顯示航運:

<?php 
if($_product->isSaleable()) 
{ 
$quote = Mage::getModel('sales/quote'); 
$quote->getShippingAddress()->setCountryId('*'); 
$quote->addProduct($_product); 
$quote->getShippingAddress()->collectTotals(); 
$quote->getShippingAddress()->setCollectShippingRates(true); 
$quote->getShippingAddress()->collectShippingRates(); 
$rates = $quote->getShippingAddress()->getShippingRatesCollection(); 

foreach ($rates as $rate) 
{ 
echo $rate->getPrice(); 
} 
} 
?> 

我已經編輯我原來的職位 - 但要確認上述工程的代碼。

+0

在哪裏我需要添加此代碼?我嘗試了view.phtml文件,但它沒有爲我工作。我得到了這個錯誤:致命錯誤:在424行的app/code/core/Mage/Shipping/Model/Shipping.php中調用一個非對象的成員函數setStore – fresher 2016-03-21 07:48:31

2

改進了一點:

  <!-- SHOW SHIPPING RATES--> 
     <?php $quote = Mage::getModel('sales/quote'); 
     $quote->getShippingAddress()->setCountryId('ES'); // Set your default shipping country here 
     $_product->getStockItem()->setUseConfigManageStock(false); 
     $_product->getStockItem()->setManageStock(false); 
     $quote->addProduct($_product); 
     $quote->getShippingAddress()->setCollectShippingRates(true); 
     $quote->getShippingAddress()->collectTotals(); 
     $rates = $quote->getShippingAddress()->getShippingRatesCollection(); 
     // Find cheapest rate 
     $cheapestrate = null; 
     foreach ($rates as $rate) { 
      if (is_null($cheapestrate) || $rate->getPrice() < $cheapestrate) { 
       $cheapestrate = $rate->getPrice(); 
      } 
     } 
     $corehelper = Mage::helper('core'); 
     if ($cheapestrate) { 
      echo '<p><strong>Shipping costs:</strong> ' . $corehelper->currency($cheapestrate);?></p> 
      <?php 
      }else { 
      echo "<strong>Free shipping</strong> for this product." ; 
     }?> 
     <!-- END SHOW SHIPPING RATES--> 

順便說一句:這只是簡單的產品的工作原理。還沒有時間去調用相應的簡單產品。

相關問題