私はマジェントで働いています。
特定の種類の注文に対してワンステップ チェックアウトを実装したいと考えています。それ以外は、magento のデフォルトの 1 ページのチェックアウト フローをそのまま維持したいと考えています。
それは可能ですか?Google を試してみましたが、残念ながら成功しませんでした。
ありがとう、ミラン
私はマジェントで働いています。
特定の種類の注文に対してワンステップ チェックアウトを実装したいと考えています。それ以外は、magento のデフォルトの 1 ページのチェックアウト フローをそのまま維持したいと考えています。
それは可能ですか?Google を試してみましたが、残念ながら成功しませんでした。
ありがとう、ミラン
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 にリダイレクトされます。