2012-04-21 12 views
0

私は現在、Magentoで初めてのカスタムチェックアウトページを作成しています。未払いの注文が作成されるので、選択した支払い方法に基づいて顧客を第三者の支払いサイトにリダイレクトすることです。Magento:顧客を第三者支払いサイトにリダイレクト

いくつかの調査の後に、redirectUrlと呼ばれるパラメータがあるようですが、何とか得ることができるはずですが、実際にはどのように把握できません。

もし私がすべて間違っていたら、私をトラックに戻してください!前もって感謝します。

<?php 
    require_once 'app/Mage.php'; 

    Mage::app(); 

    $quote = Mage::getModel('sales/quote')->setStoreId(Mage::app()->getStore('default')->getId()); 

    // guest order 
    $quote->setCustomerEmail('[email protected]'); 

    // add sample product 
    $product = Mage::getModel('catalog/product')->load(8); 
    $buyInfo = array(
      'qty' => 1, 
    ); 
    $quote->addProduct($product, new Varien_Object($buyInfo)); 

    $addressData = array(
      'firstname' => 'Test', 
      'lastname' => 'Test', 
      'street' => 'Sample Street 10', 
      'city' => 'Somewhere', 
      'postcode' => '123456', 
      'telephone' => '123456', 
      'country_id' => 'SE' 
    ); 

    $billingAddress = $quote->getBillingAddress()->addData($addressData); 
    $shippingAddress = $quote->getShippingAddress()->addData($addressData); 

    $shippingAddress->setCollectShippingRates(true)->collectShippingRates()->setShippingMethod('flatrate_flatrate')->setPaymentMethod('checkmo'); 

    $quote->getPayment()->importData(array('method' => 'checkmo')); 

    $quote->collectTotals()->save(); 

    $service = Mage::getModel('sales/service_quote', $quote); 
    $service->submitAll(); 
    $order = $service->getOrder(); 

    echo 'Created order #' . $order->getIncrementId(); 
?> 

答えて

1

サンプルコードでは、MagentoクラスをスタンドアロンのPHPファイルに使用しています。この方法では、Magentoのリダイレクトは、Mage_Core_Controller_Front_Actionのメソッドであるため動作しません。このリダイレクト方法を試すには、Magentoコントローラを使用する必要があります。

とにかく、あなたはPHP header機能を使用することができますheader("Location: http://somepayment.com/complexUrl"); die;

+0

をしかし、どのように、私は支払方法のためのURLを取得することができますか? – Ivar

+0

アドミニストレーションの[支払い方法設定]セクションからURLを取得することを指していますか? –

+0

いいえ、選択したお支払い方法のURL(サンプルの "checkmo")。 – Ivar

関連する問題