2012-04-05 6 views
0

현재 "One Page Checkout"을 기반으로 Magento에 체크 아웃 페이지를 만들고 있습니다. 또는 글쎄, 나는 onepage.phtml을 비우고 처음부터 시작했습니다.Magento : 체크 아웃 페이지에서 자바 스크립트를 삭제합니다.

주문이 접수되고 모든 것이 이루어 지지만 사용자가 제 3 자 결제 페이지로 연결되지 않습니다. 일부 지불 방법이 빈 페이지를 반환하는 반면 다른 페이지는 오류 코드 "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 체크 아웃은 거의 완전히 프로토 타입을 기반으로합니다. 자바 스크립트에서 수행하는 단계를 바꾸기 위해 자체 메서드를 작성해야합니다. –

+0

오케이. 하지만 정확하게 결제 과정에서 JavaScript로 수행되는 작업은 무엇입니까? – Ivar

답변

0

예, JS없이 주문할 수 있습니다.

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

및 saveOrder 후 추가이 : savePayment 방법 후 일부 리디렉션 URL과 지불 방법을 지원하는이 라인을 추가해야합니다

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

당신이 시도를 사용해야합니다 {...} 캐치() {...} 오류 처리 블록 :

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')); 
} 
관련 문제