我对Magento是全新的,我们目前正在使用1.4版本。在OnePage结账的步骤是:Magento OnePage修改,需要跳过步骤
- 验算方法(客户或登录)
- 帐单信息
- 航运信息
- 配送信息
- 付款信息
- 订单检查
我想跳过发货信息。为此,我做了两件事: 1.更改(实际扩展)的核心Checkout类不包含#4 Delivery Information('shipping_information'
), 2.在Controller中,调用saveShippingAction()内的Checkout类方法saveShippingMethodAction ()(因为用户永远不会提交装运方法),并且手动传递数据值。
一切正常,和步骤被跳过,但是里面结帐:: saveShippingMethodAction()有以下两行:
Mage::dispatchEvent('checkout_controller_onepage_save_shipping_method', array('request'=>$this->getRequest(), 'quote'=>$this->getOnepage()->getQuote()));
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
的问题是在使用。实际请求不是shipping_method
而是shipping
,因此输出(即应传递给步骤#5的支付信息的HTML表单字符串)未加载,因此步骤#5为空。
我的第一个instict是如何模拟请求,但可能有一个“Magento方式”来做到这一点。任何人都可以告诉我可能是什么,或者我可以如何准备getRequest()
或者getResponse()
,就好像我已经提交了具体的表单一样?谢谢!