2012-07-14 6 views
5

Magentoでプログラムでチェックアウトにユーザーを送信しようとしています。私はそれらを$this->_redirect('checkout/onepage');に送ることができますが、サードパーティ製のチェックアウトの拡張機能がある場合は、適切なものを使用しません。サイトのデフォルトのチェックアウトURLを取得してリダイレクトする方法はありますか?MagentoストアのデフォルトのチェックアウトURLを取得するにはどうすればよいですか?

+0

cart.phtmlには、<?php foreach($ this-> getMethods( 'メソッド ')を$ method):?> 'と呼びます。これは、サイトで使用可能なすべてのチェックアウトメソッドをリストすることです。 'getMethods()'が1つのメソッドしか返さない場合、デフォルトのチェックアウトURLがあります。複数のメソッドを返す場合はどうなりますか? – kiatng

答えて

4

デフォルトでは、getCheckoutUrl()の機能によってMage_Checkout_Block_Onepage_Linkクラスが返されます。非常に簡単である場合:

public function getCheckoutUrl() 
{ 
    return $this->getUrl('checkout/onepage', array('_secure'=>true)); 
} 

サードパーティの拡張機能は、最も可能性の高いこのクラスを上書きします(私はOneStepCheckout 1.4をチェックし、それがこのように動作します)。

+1

それはまさに私が必要としているようです。しかし、新しいMage_Checkout_Block_Onepage_Linkオブジェクトを作成すると、関数が定義されていないことがわかります。 – smokingoyster

+3

フロントコントローラー 'Mage :: helper( 'checkout/url') - > getCheckoutUrl()' – smokingoyster

+0

でこれを使い終えました。サイトが複数チェックアウトのみを使用している場合はうまくいきません。 – kiatng

19

などOnePagecheckoutやOneStepcheckout

  • として任意の拡張子を使用している間、それは単に基本を返す使用された拡張子の場合は、すべての条件

    • でこの戻りチェックアウトリンク

      $checkout_link = Mage::helper('checkout/url')->getCheckoutUrl(); 
      

      で試すことができますチェックアウトURL

  • +0

    これはより正しいアプローチです。 Nice – bla0009

    +1

    'Mage :: helper( 'checkout/url') - > getCheckoutUrl();は、すべての条件でチェックアウトリンクを返します。 '$ this-> getUrl( 'checkout/onepage'、array( '_ secure' => true));'サイトが複数チェックアウトのみを使用しているとうまく動作しません。 – kiatng

    +0

    私はそれが常に動作しないことに同意します。 Magento 1.9では、http:// /onestepcheckout /が返され、そのURLにリダイレクトしようとするとMagentoは「1ページのチェックアウトは無効になっています。 –

    関連する問題