A-A+

Magento – 添加订单退货模块 [转]

2012年04月21日 灵犀一指 Magento – 添加订单退货模块 [转]已关闭评论 阅读 1,233 人 次

参考水水兄的文章: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>|</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增加订单退货的整个流程结束。。

标签:

评论已关闭!