gpt4 book ai didi

php - 如何触发在 magento 中收到付款的事件?

转载 作者:可可西里 更新时间:2023-11-01 13:02:59 25 4
gpt4 key购买 nike

您好,我想在 Magento 中触发一个事件,一旦订单被设置为处理(通过网关确认或手动),例如:如果普通客户(id 1)花费超过 100 美元并且付款已经完成确认后,将他的group id设置为4(silver VIP,按promotion rule全局2%折扣)我会为此悬赏,但我想在 2 天前得到答案 O_o

编辑:到目前为止我收到的答案只是部分答案,而且我发现链接非常困惑,我不清楚什么是最小设置,我必须配置什么创建等...我也在尝试了解如何获取付费客户 ID/模型。

最佳答案

您应该首先在 app/code/local 中创建自己的模块。例如,创建目录 Moak/Vip。它将成为您模块的根。

为了让 Magento 知道它存在,在 etc/modules 中创建一个名为 Moak_Vip.xml 的文件,内容如下:

<?xml version="1.0"?>
<config>
<modules>
<Moak_Vip>
<active>true</active>
<codePool>local</codePool>
<self_name>Moak VIP module</self_name>
</Moak_Vip >
</modules>
</config>

然后,在您的模块目录中,您需要以下结构和文件:

  • etc/config.xml
  • 模型/Observer.php

config.xml 定义您的模块并为给定事件声明事件监听器(checkout_onepage_controller_success_action 在单页结帐过程完成时发送,sales_order_payment_pay 在付款时发送已确认)。

您不需要任何数据库设置,因为您不会保存任何新实体。所以你的配置文件应该看起来像下面这样:

<?xml version="1.0"?>
<config>
<modules>
<Moak_Vip>
<version>0.1.0</version>
</Moak_Vip>
</modules>
<global>
<models>
<moak>
<class>Moak_Vip_Model</class>
</moak>
</models>
<events>
<sales_order_payment_pay>
<observers>
<moak_observer>
<type>singleton</type>
<class>moak/observer</class>
<method>checkVipCustomer</method>
</moak_observer>
</observers>
</sales_order_payment_pay >
</events>
</global>
</config>

现在,您的 Observer 方法 checkVipCustomer 应该接收一个事件对象,您可以从中检索有关订单、客户的所有信息……并执行您喜欢的修改。看看 app/code/core/Mage/.../Model/... 中的 Magento 模型类查看如何浏览这些对象。

示例:

<?php

class Moak_Vip_Model_Observer
{
public function checkVipCustomer($event)
{
$order = $event->getInvoice()->getOrder(); // Mage_Sales_Model_Order
/*
- Check order amount
- Get customer object
- Set Group id
- $customer->save();
*/
return $this;
}

}

注意我没有测试我在这里写的任何代码,所以小心处理!希望它有所帮助,Magento 有一个艰难的学习曲线......祝你好运!

关于php - 如何触发在 magento 中收到付款的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1365930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com