我正在使用Magento 1.9,基本上我需要做的是在创建发票后向外部API发送请求,其中包含发票中的信息(例如项目ID,价格等)。
你对此有什么想法吗?谢谢
我认为正确的方法是:
- 创建自定义模块
- 在成功结账时添加观察者
- 在处理程序内部获取所有必要的订单详细信息并进行外部调用
Magento支持与Google Analytics的开箱即用工作,并且在成功结帐时,它基本上正在做同样的事情来跟踪订单,尽管它不是调用外部API,而是呈现在客户端处理的带有订单的特殊标签。你可以在app/core/Mage/GoogleAnalytics中查看该模块。
您可以通过自定义模块观察器执行此操作。像这样逐步编写自定义模块。
/app/etc/modules/Custom_Orderinfo.xml
<?xml version="1.0"?>
<config>
<modules>
<Custom_Orderinfo>
<active>true</active>
<codePool>local</codePool>
</Custom_Orderinfo>
</modules>
</config>
app/code/local/Custom/Orderinfo/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Custom_Orderinfo>
<version>0.1.0</version>
</Custom_Orderinfo>
</modules>
<frontend>
<events>
<checkout_onepage_controller_success_action>
<observers>
<your_sales_order_observer>
<type>singleton</type>
<class>orderinfo/observer</class>
<method>sendOrderInfo</method>
</your_sales_order_observer>
</observers>
</checkout_onepage_controller_success_action>
</events>
</frontend>
<global>
<models>
<orderinfo>
<class>Custom_Orderinfo_Model</class>
</orderinfo>
</models>
<resources>
<orderinfo_setup>
<setup>
<module>Custom_Orderinfo</module>
</setup>
</orderinfo_setup>
</resources>
<helpers>
<orderinfo>
<class>Custom_Orderinfo_Helper</class>
</orderinfo>
</helpers>
</global>
</config>
app/code/local/Custom/Orderinfo/Model/Observer.php
<?php
class Custom_Orderinfo_Model_Observer
{
public function sendOrderInfo($observer)
{
$event = $observer->getEvent();
$orderIds = $event->getOrderIds();
foreach($orderIds as $orderId)
{
$order = Mage::getModel('sales/order')->load($orderId);
$items=$order->getAllItems();
Mage::log($orderId,null,"order_success.log");
/**
* do whatever you want to do here
*/
}
}
}
app/code/local/Custom/Orderinfo/Helper/Data.php
<?php
class Custom_Orderinfo_Helper_Data extends Mage_Core_Helper_Abstract
{
}
祝你好运!