【问题标题】:Magento to one step checkout as a separate checkout flow and keep the default flow as it isMagento 将一步结帐作为单独的结帐流程并保持默认流程不变
【发布时间】:2013-06-23 04:20:03
【问题描述】:

我在 magento 工作。

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

这可能吗?我试过谷歌,但不幸的是没有成功。

谢谢, 米兰

【问题讨论】:

    标签: php magento magento-1.7 checkout


    【解决方案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');
        }
    }
    

    结果,默认情况下,流程将转到结帐/单页并在需要时重定向到单步结帐。

    【讨论】:

    • 非常感谢您的帮助,但我已经完成了这项任务,巧合的是我按照您建议的方式做了一些事情。这是实现这一目标的最佳方式。非常感谢马特。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2014-01-16
    • 1970-01-01
    相关资源
    最近更新 更多