Magento - 添加订单退货模块

参考水水兄的文章:http://blog.csdn.net/shuishui8310/archive/2010/04/27/5532992.aspx

ps, 水水兄高人风范,,很多地方都一语带过, 下午应朋友需求增加订单退货模块,跟着做了一下.. 略微详细记录过程。

无图,图片党边参照水水兄的文章。

1./app/code/core/Mage/Sales/etc/config.xml
搜索statuses,加入<refunding translate="label"><label>On Refunding
</label></refunding> 
再在下面的states加入
    <refunding>
        <statuses>
            <refunding/>
        </statuses>
    </refunding>

2./app/locale/en_US/Mage_Sales.csv 打开这个语言文件 >> 其他语言包的自己翻译相应加入
搜索Payment Review,换个行加入"On Refunding","On Refunding",到这步骤在后台就能看到On Refunding这个退货的订单状态了(清下缓存)

3.在前台http://domain.com/customer/account/index/,新增可供客户点击的“退货”链接
app/design/frontend/base/default/template/sales/order/recent.phtml搜索View Order在大概65行加入
<?php if ($_order->getStatus()=='complete') : ?>
    <span class="separator">|</span> <a href="#" class="link-reorder"><?php echo $this->__('On Refunding') ?></a>
<?php endif ?>
自己下个订单测试,改成完成状态后便可以有退货的链接。

4.在app/code/core/Mage/Sales/controllers/OrderController.php里加个函数
    /*将客户完成的订单的订单状态改退货中*/
    public function refundingAction(){
        $orderId = (int) $this->getRequest()->getParam('order_id');
        if (!$orderId) {
            $this->_forward('noRoute');
            return false;
        }
        $order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
        if ($this->_canViewOrder($order)&&$order->getStatus()=='complete') {    // 验证符合
            $order->setData('status','refunding');
            $order->save();
        }
    $this->_redirect('*/*/history');    // 这里提示的 相应再自己修改
    }
这时候通过访问:http://www.chaussay.com/sales/order/refunding/order_id/100000002
就可以把该客户的完成的订单改变成退货中。

至此Magento增加订单退货的整个流程结束。。