【问题标题】:Adding Custom Field to Review Order Step in Magento Checkout在 Magento Checkout 中添加自定义字段以查看订单步骤
【发布时间】:2012-10-24 04:57:10
【问题描述】:

我在此处关注演练:http://www.excellencemagentoblog.com/magento-add-custom-fields-checkout-page

我最初要求打开一个关于自定义字段未保存到表中的问题,当该字段被移动到审查订单步骤而不是文章引用的计费步骤时。所以我重新表述了我的问题,因为我尽可能地缩小了这个范围。这是我的观察者课

class Excellence_Custom_Model_Observer{
public function saveQuoteBefore($evt){
    $quote = $evt->getQuote();
    $post = Mage::app()->getFrontController()->getRequest()->getPost();
    if(isset($post['custom']['sales_person'])){
        $var = $post['custom']['sales_person'];
        $quote->setSalesPerson($var); 
    }
}
public function saveQuoteAfter($evt){
    $quote = $evt->getQuote();
    if($quote->getSalesPerson()){
        $var = $quote->getSalesPerson();
        if(!empty($var)){
            $model = Mage::getModel('custom/custom_quote');
            $model->deteleByQuote($quote->getId(),'sales_person');
            $model->setQuoteId($quote->getId());
            $model->setKey('sales_person');
            $model->setValue($var);
            $model->save();
        }
    }
}
public function loadQuoteAfter($evt){
    $quote = $evt->getQuote();
    $model = Mage::getModel('custom/custom_quote');
    $data = $model->getByQuote($quote->getId());
    foreach($data as $key => $value){
        $quote->setData($key,$value);
    }
}
public function saveOrderAfter($evt){
    $order = $evt->getOrder();
    $quote = $evt->getQuote();
    if($quote->getSalesPerson()){
        $var = $quote->getSalesPerson();
        if(!empty($var)){
            $model = Mage::getModel('custom/custom_order');
            $model->deleteByOrder($order->getId(),'sales_person');
            $model->setOrderId($order->getId());
            $model->setKey('sales_person');
            $model->setValue($var);
            $order->setSalesPerson($var);
            $model->save();
        }
    }
}
public function loadOrderAfter($evt){
    $order = $evt->getOrder();
    $model = Mage::getModel('custom/custom_order');
    $data = $model->getByOrder($order->getId());
    foreach($data as $key => $value){
        $order->setData($key,$value);
    }
}

}

通过 Mage::log() 我可以看到 saveQuoteBefore() 仅在计费步骤中被调用。这就是为什么当我移动场地时,它从未记录过。

我需要在审核订单步骤中保存另一个挂钩吗?

【问题讨论】:

    标签: magento checkout custom-fields


    【解决方案1】:

    在这篇文章中找到了我的答案。很抱歉浪费了一个问题,但希望有人能从中受益。

    How to get Post Data from Magento's Onepage Checkout?

    基本上一个 js 文件正在序列化输入字段。我不得不将它与字段名称的协议数组一起插入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 2011-05-09
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多