2012-04-05 15 views
0

私は現在、「One Page Checkout」に基づいてMagentoにチェックアウトページを作成しています。または、私はonepage.phtmlを空にして、最初から開始しました。Magento:チェックアウトページからJavaScriptを削除する

注文は完了しますが、すべてのユーザーが決して第三者の支払いページにアクセスすることはありません。いくつかの支払い方法は空白のページを返す一方、他のものはエラーコード「Klarna :: setConfigのエラー:設定フィールドがありません:秘密」を返します。

一部のJavaScriptが不足していると思われますので、最後の質問はです.JavaScriptなしでチェックアウトを行うことは可能ですか?

該当する場合は、私が注文を作成するために使用するPHPコード(onepage.phtmlの上部に配置)があります。

<?php 
    $checkout = Mage::getSingleton('checkout/type_onepage'); 

    //STEP(1) 
    $checkout->saveCheckoutMethod('guest'); 

    //STEP(2) 
    $checkout->saveBilling($_POST['billing'], false); 

    //STEP(3) 
    $checkout->saveShipping($_POST, false); 

    //STEP(4) 
    $checkout->saveShippingMethod('flatrate_flatrate'); 

    //STEP(5) 
    $checkout->savePayment($_POST['payment']); 

    //STEP(6) 
    $checkout->saveOrder(); 
?> 

ありがとうございます!

+1

簡単にはできません。 Magentoのチェックアウトはほぼ完全にプロトタイプに基づいていますので、JavaScriptで行う手順を置き換える独自のメソッドを記述する必要があります。 –

+0

しかし、正確に何がチェックアウトプロセス中にJavaScriptで行われますか? – Ivar

答えて

0

はい、JSなしで注文できます。

$redirectUrl = $checkout->getQuote() 
    ->getPayment() 
    ->getCheckoutRedirectUrl(); 
if ($redirectUrl) { 
    return $this->getResponse()->setRedirect($redirectUrl); 
} 

とsaveOrderは、この追加した後:

$redirectUrl = $checkout->getRedirectUrl(); 
if ($redirectUrl) { 
    $this->_redirect($redirectUrl); 
} 

また、あなたがしようと{...}キャッチを(使用する必要があります)をsavePaymentメソッドの後、いくつかのリダイレクトURLでのお支払い方法をサポートするために、あなたは、この行を追加する必要があります{...}エラー処理のブロック:

try { 
    $checkout = Mage::getSingleton('checkout/type_onepage'); 

    //STEP(1) 
    $checkout->saveCheckoutMethod('guest'); 

    //STEP(2) 
    $checkout->saveBilling($_POST['billing'], false); 

    //STEP(3) 
    $checkout->saveShipping($_POST, false); 

    //STEP(4) 
    $checkout->saveShippingMethod('flatrate_flatrate'); 

    //STEP(5) 
    $checkout->savePayment($_POST['payment']); 

    //STEP(6) 
    $checkout->saveOrder(); 
} catch (Mage_Core_Exception $e) { 
    Mage::getSingleton('checkout/session')->addError($e->getMessage()); 
} catch (Exception $e) { 
    Mage::logException($e); 
    Mage::getSingleton('checkout/session')->addError(Mage::helper('checkout')->__('Unable to process your order. Please try again later')); 
} 
関連する問題