0

現在、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('customer@example.com');

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

1 に答える 1

1

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

とにかく、PHPヘッダー関数を使用できます。header("Location: http://somepayment.com/complexUrl"); die;

于 2012-04-22T00:27:40.040 に答える