2012-04-05 5 views
0

В настоящее время я создаю страницу проверки в Magento на основе «One Page Checkout» - или я опустел 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. Для поддержки способов оплаты с некоторым URL перенаправления после метода savePayment вы должны добавить эти строки:

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

и после saveOrder добавить следующее:

$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')); 
} 
Смежные вопросы