0

我在magento工作。

我想为特定类型的订单实施一步结帐。除此之外,我想保持 magento 默认的一页结帐流程不变。

那可能吗 ?我曾尝试谷歌,但不幸的是没有取得任何成功。

谢谢,米兰

4

1 回答 1

1

查看 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');
    }
}

结果,默认情况下,流程将转到 checkout/onepage 并在需要时重定向到 onestep checkout。

于 2013-06-26T08:12:23.917 回答