4

Magento の実際の商品ページに送料を表示して、顧客がどれくらいの費用がかかるかを確認したいと考えています。カートページから送料見積もりを追加できます. しかし、私が実際に欲しいのは、製品価格の下に、£XX.XX から発送されるというテキスト行だけです。

このチュートリアルを見ました: http://aneeshsreedharan.wordpress.com/2010/04/28/estimating-shipping-rate-on-product-details-page-in-magento/#comment-10しかし、それは機能していませんMagento 1.4.2 の私 - このチュートリアルでは古いバージョンが使用されていると思います。

私は現在、重量ベースのテーブルレートの配送方法を使用しています。オプションは 1 つだけです。

編集:私は最終的に問題を解決しました:かなり恥ずかしいことに、ブログがフォーマットを取り除いていることに気づきませんでした。' を ' に変更していました</p>

以下のコードが配送を表示することを確認できました。

<?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();
}
}
?>
4

2 に答える 2

4

私は最終的に問題を解決しました。かなり恥ずかしいことに、ブログが書式設定を削除していることに気づきませんでした。' を ' に変更していました</p>

以下のコードで送料が表示されることを確認できました。

<?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();
}
}
?>

元の投稿を編集しましたが、上記のコードが機能することを確認するためです。

于 2011-04-14T11:28:05.203 に答える
3

少し改善しました:

            <!-- 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-->

ところで: これは単純な製品でのみ機能します。対応する単純な製品を呼び出す時間はまだありません。

于 2012-01-29T10:38:32.593 に答える