0

2 つのモジュールがインストールされています。

onepage チェックアウト用に開発された 1 つのモジュール (module1) は正常に動作しています。available.phtml をいくつかの新しい配送方法などに置き換えます。

onepage チェックアウトに基づいていない新しいキャッシャー (module2) で利用できるこれを含めたいと思います。だから私はこれをやってみました:

<?php echo $this->getLayout()->createBlock('core/template')->setTemplate('unifaun/checkout/onepage/shipping_method/available.phtml')->toHtml(); ?>

available.phtml が正常に含まれています。ただし、available.phtml は本来の動作をしません。

available.phtml の最初の行は次のとおりです。

<?php if (!($_shippingRateGroups = $this->getShippingRates())): ?>
    <p><?php echo Mage::helper('unifaun')->__('No shipping methods that suit your order were found. Please contact customer service.') ?></p>
<?php else: ?>
etc... 

問題は、1ページのチェックアウトのように配送料などを取得できないことです. また、次を手動で入力しました。

<?php       
    $country = Mage::getStoreConfig('shipping/origin/country_id');
    $postcode = Mage::getStoreConfig('shipping/origin/postcode');
    $city = Mage::getStoreConfig('shipping/origin/city');

    $quote = Mage::getSingleton('checkout/session')->getQuote();
    $quote->getShippingAddress()
        ->setCountryId($country)
        ->setCity($city)
        ->setPostcode($postcode)
        ->setCollectShippingRates(true);        
?>

だから私の質問は、コードが実際に利用可能な配送方法などを取得できるように、次の行を正しく機能させるために何をする必要があるかということです.1ページのチェックアウトにモジュールが含まれている場合と同様です。

$_shippingRateGroups = $this->getShippingRates()

これがこの問題を解決するのに十分な情報であるかどうかはわかりませんが、試してみて投稿し、誰かが私が間違っていることを知っているかどうかを確認すると思いました. :)

乾杯!

4

1 に答える 1

2

You are including a basic block of type core/template, all blocks are based of that.

So in your context there is no method getShippingRates for it to find.

So change the following to something like:

<?php echo $this->getLayout()->createBlock('unifaun_onepage/the_block_name')->setTemplate('unifaun/checkout/onepage/shipping_method/available.phtml')->toHtml(); ?>

Where the_block_name is the folder in the modules block, eg /Block/The/Block/Name.php

于 2013-10-01T15:55:33.550 に答える