[英]Magento: Remove JavaScript from checkout page
我目前正在 Magento 中基于“单页结帐”创建一个结帐页面 - 或者好吧,我清空了 onepage.phtml 并从头开始。
下了订单什么的,但是用户永远不会来到第三方支付页面; 一些支付方式返回空白页,而其他支付方式返回错误代码“Error in Klarna::setConfig: Missing config field(s): secret” 。
我怀疑涉及一些丢失的 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();
?>
先感谢您!
是的,您可以在没有任何 JS 的情况下下订单。 为了在 savePayment 方法之后支持一些重定向 url 的付款方式,您必须添加以下行:
$redirectUrl = $checkout->getQuote()
->getPayment()
->getCheckoutRedirectUrl();
if ($redirectUrl) {
return $this->getResponse()->setRedirect($redirectUrl);
}
在 saveOrder 之后添加:
$redirectUrl = $checkout->getRedirectUrl();
if ($redirectUrl) {
$this->_redirect($redirectUrl);
}
您还必须使用 try {...} catch () {...} 块进行错误处理:
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'));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.