Create module config file : app\etc\modules\Nik_Autoinvoice.xml
<config>
<modules>
<Nik_Autoinvoice>
<active>true</active>
<codePool>local</codePool>
</Nik_Autoinvoice>
</modules>
</config>
I'd go the creating an event observer for sales_order_shipment_save_after:
File path: app/code/local/Nik/Autoinvoice/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<Nik_Autoinvoice>
<version>0.1.0</version>
</Nik_Autoinvoice>
</modules>
<global>
<events>
<sales_order_shipment_save_after>
<observers>
<nik_autoinvoice>
<type>singleton</type>
<class>Nik_Autoinvoice_Model_Observer</class>
<method>autoInvoice</method>
</nik_autoinvoice>
</observers>
</sales_order_shipment_save_after>
</events>
</global>
</config>
Now, we create one observer file :
app\code\local\Nik\Autoinvoice\Model\Observer.php
<?php
class Nik_Autoinvoice_Model_Observer
{
public function autoInvoice($observer) {
$shipment = $observer->getEvent()->getShipment();
$order = $shipment->getOrder();
if($order->canInvoice())
{
$invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
$invoice->register();
$transactionSave = Mage::getModel('core/resource_transaction')
->addObject($invoice)
->addObject($invoice->getOrder());
$transactionSave->save();
}
}
}
No comments:
Post a Comment