magento api销售\订单\发票中未触发事件。创建

magento api销售\订单\发票中未触发事件。创建,api,magento,Api,Magento,我正在使用soapv1api $parameters = array('orderIncrementId' => $postdata['order_id'], $items); $createInvoice = $proxy->call($sessionId,'sales_order_invoice.create', $parameters); 有人能帮助我吗,当从api创建发票时,如何触发发票事件(销售\订单\发票\付款)。从api创建发票后创建自定义事件 $baseUrl =

我正在使用soapv1api

$parameters = array('orderIncrementId' => $postdata['order_id'], $items);

$createInvoice = $proxy->call($sessionId,'sales_order_invoice.create', $parameters);

有人能帮助我吗,当从api创建发票时,如何触发发票事件(销售\订单\发票\付款)。

从api创建发票后创建自定义事件

$baseUrl = 'http://example.com/index.php/';

$proxy = new SoapClient($baseUrl.'api/soap/?wsdl');

$createInvoice = $proxy->call($sessionId,'sales_order_invoice.create', $parameters);

$orderinvoice = Mage::getModel('sales/order_invoice')->loadByIncrementId($createInvoice);

Mage::dispatchEvent('sales_order_invoice_pay_api', array('invoice'=>$orderinvoice));
在module config.xml文件中添加事件触发器

<config>
    <global>
     ..........
     ..........
      <events>
           <sales_order_invoice_pay_api>
                <observers>
                    <namespace_modulename_model_observer>
                        <type>singleton</type>
                        <class>Namespace_Modulename_Model_Observer</class>
                        <method>setinvoicestatetaxapi</method>
                    </namespace_modulename_model_observer>
                </observers>
            </sales_order_invoice_pay_api>
      </events>
     ..........
     ..........
   <global>
<config>

..........
..........
独生子女
名称空间\u模块名称\u模型\u观察者
setinvoicestatetaxapi
..........
..........
创建/修改Observer.php

<?php

class Namespace_Modulename_Model_Observer extends Varien_Object
{
...............
...............

public function setinvoicestatetaxapi(Varien_Event_Observer $observer)
{
  $invoice = $observer->getEvent()->getInvoice();
}

...............
...............
}

从API创建发票后创建自定义事件

$baseUrl = 'http://example.com/index.php/';

$proxy = new SoapClient($baseUrl.'api/soap/?wsdl');

$createInvoice = $proxy->call($sessionId,'sales_order_invoice.create', $parameters);

$orderinvoice = Mage::getModel('sales/order_invoice')->loadByIncrementId($createInvoice);

Mage::dispatchEvent('sales_order_invoice_pay_api', array('invoice'=>$orderinvoice));
在module config.xml文件中添加事件触发器

<config>
    <global>
     ..........
     ..........
      <events>
           <sales_order_invoice_pay_api>
                <observers>
                    <namespace_modulename_model_observer>
                        <type>singleton</type>
                        <class>Namespace_Modulename_Model_Observer</class>
                        <method>setinvoicestatetaxapi</method>
                    </namespace_modulename_model_observer>
                </observers>
            </sales_order_invoice_pay_api>
      </events>
     ..........
     ..........
   <global>
<config>

..........
..........
独生子女
名称空间\u模块名称\u模型\u观察者
setinvoicestatetaxapi
..........
..........
创建/修改Observer.php

<?php

class Namespace_Modulename_Model_Observer extends Varien_Object
{
...............
...............

public function setinvoicestatetaxapi(Varien_Event_Observer $observer)
{
  $invoice = $observer->getEvent()->getInvoice();
}

...............
...............
}