Magento для одношаговой проверки в качестве отдельного процесса оформления заказа и сохранения процесса по умолчанию, как он есть.

Я работаю в мадженто.

Я хочу реализовать одношаговую проверку для определенного типа заказа. Кроме этого, я хочу сохранить процесс оформления заказа на одну страницу по умолчанию в magento как есть.

Это возможно ? Я пытался использовать Google, но, к сожалению, безуспешно.

Спасибо, Милан


person Milan Pattani - Magento Leader    schedule 26.06.2013    source источник


Ответы (1)


Посмотрите config.xml в расширении onestepcheckout, вы увидите следующее событие:

<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>

Итак, вам нужно изменить функцию initController() в app/code/local/Magenthemes/Onestepcheckout/Model/Observer.php. Вот:

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

В результате по умолчанию процесс перейдет к оформлению/одной странице и при необходимости перенаправит на одношаговую проверку.

person ToxaBes    schedule 26.06.2013
comment
Большое спасибо за вашу помощь, но я уже выполнил эту задачу и по совпадению я сделал что-то так, как вы предложили. Это был лучший способ добиться этого. Огромное спасибо, Мэтт. - person Milan Pattani - Magento Leader; 12.05.2014