【发布时间】:2013-06-23 04:20:03
【问题描述】:
我在 magento 工作。
我想为特定类型的订单实施一步结账。除此之外,我想保持 magento 的默认一页结帐流程不变。
这可能吗?我试过谷歌,但不幸的是没有成功。
谢谢, 米兰
【问题讨论】:
标签: php magento magento-1.7 checkout
我在 magento 工作。
我想为特定类型的订单实施一步结账。除此之外,我想保持 magento 的默认一页结帐流程不变。
这可能吗?我试过谷歌,但不幸的是没有成功。
谢谢, 米兰
【问题讨论】:
标签: php magento magento-1.7 checkout
查看 onestepcheckout 扩展中的 config.xml,你会看到下一个事件:
<controller_action_predispatch_checkout_onepage_index>
<observers>
<magenthemes_onestepcheckout_observer>
<type>singleton</type>
<class>onestepcheckout/observer</class>
<method>initController</method>
</magenthemes_onestepcheckout_observer>
</observers>
</controller_action_predispatch_checkout_onepage_index>
因此,您需要更改 app/code/local/Magenthemes/Onestepcheckout/Model/Observer.php 中的函数 initController() 。就是这样:
public function initController($observer) {
if (Mage::helper('onestepcheckout')->isActive()) {
$observer->getControllerAction()->_redirect('onestepcheckout');
}
}
此功能只是检查是否启用了扩展并从 checkout/onepage 重定向到 onestepcheckot。你可以使用这样的东西:
public function initController($observer) {
$event = $observer->getEvent();
$order = $event->getOrder();
$use_onestep = true;// do some checks here using $order and set result (true|false)
if (Mage::helper('onestepcheckout')->isActive() && $use_onestep) {
$observer->getControllerAction()->_redirect('onestepcheckout');
}
}
结果,默认情况下,流程将转到结帐/单页并在需要时重定向到单步结帐。
【讨论】: