Magento - 如何在结帐过程中向订单添加发票费用

2023-12-02

如何使用我的付款模块将发票费用添加到订单中?我想这应该在结帐过程中通过我的付款方式模型完成。也许我应该创建一个项目/产品并将其添加到购物车/报价/订单对象中?

但我不知道如何做这些事情。请帮忙


尽管有可能,但这并不适合胆怯的人。以下是向总计区域添加一行的粗略步骤,然后将您的费用添加到总计中。

在配置节点中<global><sales><quote><total>添加一个新条目(参见app/code/core/Mage/Sales/etc/config.xml欲了解更多示例)

<paymentFee>
    <class>yourmodule/quote_address_total_paymentFee</class> <!-- A model -->
    <after>subtotal</after>
</paymentFee>

也在config.xml将以下内容添加到<global>...

<fieldsets>
    <sales_convert_quote>
        <payment_fee><to_order>*</to_order></payment_fee>
    </sales_convert_quote>
</fieldsets>

创建模型来计算费用。

class Your_Module_Model_Quote_Address_Total_Warranty extends Mage_Sales_Model_Quote_Address_Total_Abstract
{
    public function __construct()
    {
        $this->setCode('paymentFee');
    }

    public function collect(Mage_Sales_Model_Quote_Address $address)
    {
        // Check the payment method in use, if it is yours do...
        $address->setPaymentFee($fee);
        return $this;
    }

    public function fetch(Mage_Sales_Model_Quote_Address $address)
    {
        if ($address->getPaymentFee()) {
            $address->addTotal(array(
                'code'  => $this->getCode(),
                'title' => 'Your module payment message',
                'value' => $address->getPaymentFee()
            ));
        }
        return $this;
    }
}

在模块的设置中,修改sales_flat_quote and sales_flat_order表到添加 payment_fee 列.

The <after>配置中的 value 负责确定计算顺序,它可以是逗号分隔的总计代码列表,包括“tax”、“discount”等。您还可以指定<before>相同目的的价值。这$address->addTotal in fetch()方法将完成更新总计的工作,这是向客户收取的费用。有必要更改报价和订单表,以便记录您收取的费用并向管理员显示。

如果默认渲染器不起作用,也可以指定您自己的渲染器,我也这样做了,但更加复杂。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Magento - 如何在结帐过程中向订单添加发票费用 的相关文章

  • 如何正确转义 CSV 中的双引号?

    我的 CSV 中有这样一行 Samsung U600 24 10000003409 1 10000003427 旁边引用24用于表示英寸 而该引号旁边的引号则关闭该字段 我正在读这行fgetcsv但解析器犯了一个错误 并将该值读取为 Sam
  • 通过 XMLHttpRequest 将数据从 JavaScript 发送到 PHP

    再会 我正在尝试将一段简单的数据从一个 php 文件 manage php 发送到另一个 view php 我无法通过表单发送数据 我想通过 JS 脚本发送数据 这是我的尝试 var read function id xmlhttp new
  • 用于分页的php示例脚本[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以建议一个好的分页 php 脚本 其中人们想要分页显示数据库中的大量项目 以下链接可以帮助您
  • PHP 有效读取 csv 文件

    有几种使用 PHP 读取 CSV 文件的方法 我以前用过explode函数将每一行放入一个数组中 然后explode逗号并使用trim删除数据周围的任何引号 本来就很乱 PHP 5 现在有fgetcsv和 str getcsv 我猜这是这些
  • 将 jQuery 数组字符串转换为 PHP 数组

    首先 我得说我对 PHP 还很陌生 我正在尝试获取一个可以使用 foreach 的 PHP 对象 以下字符串通过 ajax 传递 我正在尝试转动以下字符串 menu title TEST1 href title TEST2 href QWE
  • 如何通过键查找最大和最小日期

    我有一个数组 a array 2010 05 03 gt 100 2010 05 04 gt 400 2008 05 01 gt 800 2011 01 01 gt 800 我如何找到最大值和最小值key date 例如 max gt 20
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • 如何在 Laravel 5.5 中编辑“页面因不活动而已过期”的视图

    在 Laravel 5 5 中 当您使用 CSRF 保护 默认情况下 并且在长时间不活动后发送发布请求时 您将收到此错误页面 屏幕截图 我对此错误表示同意 但是 我需要更改此错误的视图 文本以确保与我的应用程序风格和语言相匹配 关于如何编辑
  • php 在内容前插入十六进制字符数

    我正在将网站移动到新服务器 旧服务器有 php 5 3 2 新服务器有 php 5 5 9 Centos httpd Apache 2 2 26 我已经复制了文件 它工作正常 除了唯一奇怪的事情 一些奇怪的十六进制数字被插入到页面内容之前
  • 配置 .htaccess 以在 PHP 框架 (Silex) 上工作

    我的 Apache2 本地主机 linux 上有一个工作路径 http localhost lab silex web index php hello name 我想成为 http localhost lab silex hello nam
  • 如何从字符串中只获取数字? [复制]

    这个问题在这里已经有答案了 我有这样的字符串 第 001 课 完成 在这种情况下 我只想获取数字部分001 我试过这个 str the title preg match all d str matches number implode ma
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • 将秒转换为天、小时、分钟和秒

    我想转换一个变量 uptime这是秒 分为天 小时 分钟和秒 Example uptime 1640467 结果应该是 18 days 23 hours 41 minutes 这可以通过以下方式实现DateTime http php net
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • 解析 PHP 响应:未捕获的语法错误:意外的标记 <

    我正在使用 AJAX 来调用 PHP 脚本 我唯一需要从响应中解析的是脚本生成的随机 ID 问题是 PHP 脚本会引发许多错误 这些错误实际上很好 不会妨碍程序功能 唯一的问题是当我跑步时 parseJSON response I get
  • php,in_array,0值

    我试图理解in array下一个场景的行为 arr array 2 gt Bye 52 77 3 gt Hey var dump in array 0 arr 返回值in array 是布尔值true 正如你所看到的no值等于0 所以有人可
  • php向多个收件人发送邮件

    我可以通过在邮件程序中定义 id 来将电子邮件发送到一个电子邮件 id 但是当用户在表单中键入 消息和电子邮件 id 时 我无法理解如何发送到多个收件人 例如 我正在显示一个带有两个文本区域的表单 一个用于电子邮件 ID 一个用于自定义消息
  • 转换MAC地址格式

    我刚刚编写了一个小脚本 从交换机中提取数百个 MAC 地址进行比较 但它们的格式为 0025 9073 3014 而不是标准的 00 25 90 73 30 14 我对如何转换它感到困惑 我能想到的最好的办法就是在 处将它们分解成碎片 然后
  • sqlsrv_num_rows 不返回任何值

    我正在尝试获取查询中返回的行数 while 循环遍历结果有效 但由于某种原因 sqlsrv num rows 不返回任何值 result SELECT from dtable WHERE id2 apple query sqlsrv que

随机推荐

  • 倒计时器 - 即使在刷新或重新加载后也能保持不变

    我有一个 html 页面 其中有计数器在页面加载时启动 但问题是 如果有人刷新或重新加载页面 计数器就会重新启动 我不知道如何使用本地存储或 cookie 来确保我的计数器在重新加载时不会重置 我知道这里有类似的问题 但我的问题是我希望本地
  • ES6 中的默认参数抛出错误

    如果我们有一个函数 function add first second second return first second 称其为 add 1 2 returns 3 上面的代码工作正常 但如果我们将其称为 add undefined 2
  • 如何按索引对 Pandas DataFrame 进行排序?

    当有一个像下面这样的DataFrame时 import pandas as pd df pd DataFrame 1 index 100 29 234 1 150 columns A 如何在索引和列值的每种组合完好无损的情况下按索引对该数据
  • 使用nodejs更改系统/操作系统时间

    有没有一种方法 库可以更改系统时间 就我而言 我需要更新 Linux 机器 Debian 的时间 我知道有一种方法可以使用 shell 命令设置时间 我要问的是是否有抽象库或其他方法 如果你使用你的机器的话 这很简单date命令 但是 为此
  • java中的分页?

    我希望数字以这种格式显示 1 2 3 4 5 如果我按 5 那么它应该显示从 5 到 10 5 6 7 8 9 10 直到最大记录可用 我只是想知道如何执行此操作来显示数字 通常 您希望数据库承担分页和排序的繁重工作 例如 使用 MySQL
  • Cosmos 数据库吞吐量

    是否有任何选项可以以编程方式检索 Cosmos DB SQL API 吞吐量 我使用下面的代码来获取数据库列表 DocumentClient client new DocumentClient ClientURL ClientKey var
  • 无效的回发或回调参数

    我有一个 ASP net 应用程序 在开发环境中运行良好 但在生产环境中单击执行回发的链接时会引发以下异常 有任何想法吗 回发或回调参数无效 使用启用事件验证 在配置或 在 页 出于安全目的 这 功能验证参数 回发或回调事件发起 从服务器控
  • Docusign - 用于重新激活已关闭用户的 API

    我已经能够从管理控制台重新激活已关闭的 Docusign 用户 但是是否有 REST API 可以实现此目的 用户文档似乎没有提到这一点 我知道有一个关于这个主题的类似问题 但尚未找到解决方案 我再次发布这个问题 希望它能引起 Docusi
  • 续集不包括所有子项(如果有任何一个匹配)

    我有三个背靠背的关联表 这意味着 item level 1 有许多 item level 2 而 item level 2 有许多 item level 3 我使用搜索查询来查找名称包含搜索文本的任何父母或孩子 这意味着如果我输入abc 那
  • 为什么 FtpWebRequest 返回此现有目录的空流?

    我不确定为什么会得到这个结果 我在 Linux 服务器上运行它 这是我的小型网站的共享网络托管帐户 文件分组如下 and the Another Dir里面有一个文件 所以我试图检索的内容badname里面的目录1somelongdir12
  • javascript 如何将变量添加到字符串

    我正在使用 javascript 和 jquery 我有一个像这样的字符串 var apiUrlAnswer https api stackexchange com 2 0 answers ids order desc sort activ
  • PhantomJS 没有一致地持久保存 localStorage

    我正在尝试制作一个孤立的测试用例来试验 PhantomJSlocalStorage行为 但在我的测试用例中 localStorage 似乎不是持久的 这是 PhantomJS 脚本 var page require webpage crea
  • Ember : addObject/pushObject 不是一个函数

    我最近从 ember 1 x 迁移到 2 6 我无法像以前那样使用 addObject pushObject Ember 2 6 2 jQuery 2 2 4 import Ember from ember export default E
  • 开发服务器返回响应错误代码:404 React Native

    我正在尝试在 cmd 中运行这样的反应本机应用程序 cd C Users User Desktop js react native run android 如果您仍然遇到同样的问题 只需终止端口 8081 上的所有现有进程并再次运行代码即可
  • Symfony2 功能测试 $crawler 不工作

    我发现 Symfony2 中的功能测试总是尝试将页面请求为 http localhost 我的环境是使用虚拟主机设置的 因此我的应用程序位于 http symfony dev 经过一些测试我发现如果我运行 var dump client g
  • Javascript 重定向并将参数传递给重定向页面

    我有一个包含两个按钮的主页 每个按钮都应该重定向到同一页面 但是 您重定向到的页面应该根据您按下的按钮执行不同的操作 如何将用户重定向到该新页面并根据您单击的按钮传递参数 使用 JQuery 等工具包 跨浏览器事件处理要简单得多 HTML
  • 将日期分解为数字

    我很抱歉打扰这个问题 但找不到解决方案 我有一个带有列名称日期的 data frame str df date Factor w 360 levels 1982 11 30 1982 12 31 1 4 7 10 13 16 19 22 2
  • 在 PHP 中使用heredoc语法时遇到问题[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心
  • NativeScript 在 Mac 操作系统上找不到 Android SDK

    我已经安装了 NativeScript 并且尝试这样做tns platform add android但它不起作用 ANDROID HOME 路径是正确的 我已经安装了 SDK API 22 和最新的 和工具 25 0 2 当我跑步时tns
  • Magento - 如何在结帐过程中向订单添加发票费用

    如何使用我的付款模块将发票费用添加到订单中 我想这应该在结帐过程中通过我的付款方式模型完成 也许我应该创建一个项目 产品并将其添加到购物车 报价 订单对象中 但我不知道如何做这些事情 请帮忙 尽管有可能 但这并不适合胆怯的人 以下是向总计区