如何扩展Magento创建发票流程?

时间:2016-07-18 09:18:26

标签: php magento magento-1.9

我正在使用Magento 1.9,基本上我需要做的是在创建发票后向发票中的信息(例如商品ID,价格等)发送请求到外部API。

你对此有什么想法吗?谢谢

2 个答案:

答案 0 :(得分:0)

我认为正确的方法是:

  • 创建自定义模块
  • 在成功结帐时添加观察员
  • 在处理程序内部获取所有必要的订单详细信息并进行外部调用

Magento支持Google Analytics的开箱即用工作,并且在成功结帐时,基本上跟踪订单的做法是一样的,虽然它不是调用外部API,而是只提供带有订单的特殊标签。客户端。您可以在app / core / Mage / GoogleAnalytics中查看该模块。

答案 1 :(得分:0)

您可以通过自定义模块观察器执行此操作。像这样一步一步地编写自定义模块。

/app/etc/modules/Custom_Orderinfo.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Custom_Orderinfo>
            <active>true</active>
            <codePool>local</codePool>
        </Custom_Orderinfo>
    </modules>
</config> 

应用程序/代码/本地/客户/订单信息的/ 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>

应用程序/代码/本地/客户/订单信息/型号/ 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
            */
        }

    }
}

应用程序/代码/本地/客户/订单信息/助手/ Data.php

&#13;
&#13;
<?php

class Custom_Orderinfo_Helper_Data extends Mage_Core_Helper_Abstract
{

}
&#13;
&#13;
&#13;

祝你好运!

相关问题