Magento--修改已存在的订单的运费

遇到一种情况,需要在下单后再由管理员添加订单运费,然后顾客再付款。那么问题来了,如何给订单添加运费呢?下面是一段代码,可以实现该功能:

$orderId = 'your order id';
$order
= Mage::getModel('sales/order')->load($orderId); $baseCurrencyCode = Mage::app()->getStore()->getBaseCurrencyCode(); $currentCurrencyCode = $order->getOrderCurrencyCode(); $shippingAmount = Mage::helper('directory')->currencyConvert($params['shipping']['amount'], $currentCurrencyCode, $baseCurrencyCode); $notify = isset($params['shipping']['is_customer_notified']) ? true : false;
$order->setBaseGrandTotal($order->getBaseGrandTotal() + $shippingAmount);
$order->settBaseSubtotal($order->getBaseSubtotal() + $shippingAmount); //$order->setBaseSubtotalInvoiced($order->getBaseSubtotalInvoiced() + $shippingAmount); //$order->setBaseTotalInvoiced($order->getBaseTotalInvoiced() + $shippingAmount); //$order->setBaseTotalPaid($order->getBaseTotalPaid() + $shippingAmount); $order->setGrandTotal($order->getGrandTotal() + $shippingAmount); $order->setSubtotal($order->getSubtotal()); //$order->setSubtotalInvoiced($order->getSubtotalInvoiced() + $shippingAmount); //$order->setTotalInvoiced($order->getTotalInvoiced() + $shippingAmount); //$order->setTotalPaid($order->getTotalPaid() + $shippingAmount); $order->setBaseSubtotalInclTax($order->getBaseSubtotalInclTax() + $shippingAmount); $order->setSubtotalInclTax($order->getSubtotalInclTax() + $shippingAmount); $order->setTotalDue($order->getTotalDue() - $order->getShippingAmount() + $shippingAmount);
$order->setShippingAmount($shippingAmount); $order->setBaseShippingAmount($shippingAmount); 
Mage
::getModel('wholesale/core')->sendOrderEmail($order, 'wholesale_savers_order_update', $attch = '');
$order->setCarriageConfirmed(1);
$order->save();

 

上述的代码中,关于Invoice的都是注释掉的,下面分两个情况说一下:

当订单还是pending的时候,如果上面的Invoice代码没有注释掉,那么当你在后台点击生成Invoice的时候,生成的invoice将不会包含你添加的运费的金额。例如订单的金额是1000,后台添加了20块运费,那么在生成invoice的时候,invoice的金额就是1000,不会是1020。只有在添加运费时不设置SubtotalInvoiced等才会是1020.

 

权当备忘。

 

转载于:https://www.cnblogs.com/mityaya/p/4630777.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459170.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql5.7.17 win7_win7下mysql5.7.17安装配置方法图文教程

win7下安装mysql5.7.17图文教程,分享给大家。1.下载安装包请在以下有zip包和msi两种类型包,建议新手选择zip包下载,有助于熟习mysql2.解压mysql压缩包下载完成后解压,将其放在要安装的目录下面,如:e:\mysql…

华为软件研发面试题1

from:http://blog.csdn.net/eddy_0825/article/details/1875574 1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这…

停一下

15年过去已半载有余,回头看年初定下的目标,有种管中窥豹的感觉。之前和肉山讨论的时候,他对我想要发展的方向并没有表示赞同。 现在认为他是对的,发展的方向太靠前了,ui,canvas,svg,…

which 命令

我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索: which 查看可执行文件的位置。 whereis 查看文件的位置。 locate 配合数据库查看文件位置。 find 实际搜寻硬盘查询文件名…

18ch

18.2 线程和进程 18.2.1 什么是进程? 18.2.1 什么是进程? 计算机程序只不过是磁盘中可执行的,二进制的数据。它们只有在被读取到内存中,被操作系统调用的时候才开始它们的生命周期。进程(重量级进程)是程序…

java sql分页_mysql、sqlserver、oracle分页,java分页统一接口实现

定义&#xff1a;pageStart 起始页&#xff0c;pageEnd 终止页,pageSize页面容量oracle分页&#xff1a;select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<pageEnd) where num>pageStartsqlServer分页&#xff1a;select * from ( select …

安卓四大组件总览

在安卓中四大组件 &#xff08;Component&#xff09;指的是&#xff1a;Activity&#xff0c;Service&#xff0c;BroadcastReceiver&#xff0c;ContentProvider。此博客仅仅对安卓中四大组件从整体上进行简单的分析&#xff0c;了解他们在安卓系统框架中处的位置与作用&…

华为软件研发面试题2

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** from&#xff1a;http://blog.csdn.net/eddy_0825/article/details/1875582 C语言面试…

Spring学习(24)--- AOP之 Aspect instantiation models(aspect实例模式)特别说明

重要&#xff1a; schema-defined aspects只支持singleton model&#xff0c;即 基于配置文件的aspects只支持单例模式 转载于:https://www.cnblogs.com/JsonShare/p/4638475.html

unix网络编程 str_cli epoll 非阻塞版本

unix网络编程 str_cli epoll 非阻塞版本 unix网络编程str_cli使用epoll实现讲了使用epoll配合阻塞io来实现str_cli,这个版本是配合非阻塞io. 可以看到采用非阻塞io以后复杂度大大提升了. 这个版本是在原书select版本基础之上修改而来,可以看出epoll又比select版本复杂了很多,每…

java ee 指南 pdf_Java EE 7权威指南:卷1(原书第5版) 中文pdf

资源名称&#xff1a;Java EE 7权威指南&#xff1a;卷1(原书第5版) 中文pdf第一部分 引言第1章 概述 2第2章 使用教程示例 27第二部分 平台基础知识第3章 资源创建 38第4章 注入 41第5章 打包 44第三部分 Web层第6章 Web应用入门 50第7章 JSF技术 66第8章 Facelets…

中兴面试题2

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** from&#xff1a;http://blog.csdn.net/eddy_0825/article/details/1875566 现在的公司…

java 路径获取文件名称_java 根据文件获取文件名及路径的方法

filelistnew HashMap();/*** 递归方法* param path 文件路径*/public static void find(String path){File filenew File(path);File[] files file.listFiles();//如果文件数组为null则返回if (files null)return;for (int i 0; i < files.length; i) {if (files[i].isDi…

PYTHON招聘需求与技能体系

为什么80%的码农都做不了架构师&#xff1f;>>> 目前国内的招聘Python&#xff0c;基本都是偏向web后台开发&#xff0c;偶有高大上的数据挖掘&机器学习 这是之前(2012年)找工作整理的一些JD&#xff0c;在梳理几年来的笔记&#xff0c;顺带理一理 可以以此建…

C#学习笔记(十一):动态类型

C#是一门静态类型的语言&#xff0c;但是在C#4.0时微软引入了动态类型的概念。 dynamic 关键字dynamic用来定义动态对象&#xff0c;我们来看一下动态类型的一些特性。 调用不同类的相同方法 我们有两个或多个不相关的类&#xff0c;然后运行时需要可以调用到相同名称的方法&am…

c++面试试题

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** from&#xff1a;http://blog.csdn.net/eddy_0825/article/details/1875597 1 …

《FPGA全程进阶---实战演练》第二十一章 电源常用类型:LDO和 DCDC

高速电路中的电源设计 高速电路中的电源设计大概分为两种&#xff0c;一种是集总式架构&#xff0c;一种是分布式架构。集总式架构就是由一个电源输入&#xff0c;然后生成多种所需要的电压。如图1所示。这种架构会增加多个DC/DC模块&#xff0c;这样成本不可控&#xff0c;PCB…

自定义View控件(2—手写实例代码)

1、 步骤: 1.自定义一个类继承于UIView 2.在initWithFrame方法中添加子控件 3.在layoutSubviews中设置子控件的位置 4.提供一个属性保存外界传入的数据(模型对象), 重写setter方法设置子控件的数据 - 类工厂方法(便利构造器) 按照苹果的风格和规范, 一般情况一个用于创建对…

pojo java_Java——POJO总结

一&#xff1a;什么是POJO“Plain Old Java Object”“简单java对象”。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口&#xff0c;更没有被其它框架侵入的java对象。二&#xff1a;为什么会有POJO&#xff1f;主要是Java的开发者被EJB的繁杂搞怕了&#xff0c;…

MATLAB调用C/C++函数的方法

http://item.taobao.com/item.htm?spma1z10.5-c.w4002-9510581626.24.ZO6sko&id43401674106 精通MATLAB混合编程视频讲解 MATLAB各类函数视频讲解 基于MATLAB的高等数学问题求解 MATLAB函数速查视频讲解 面向对象C视频教程 精通MATLAB混编编程demo及PDF QQ&#xff1a…