Thursday, November 8, 2018

Invoice Auto Generation in Magento

Sometimes the Magento order process causes more work than a client desires. Imagine you have a client who utilizes their Magento eCommerce store so their customers can make purchases online. Now they also want to process orders on their own with customers from their physical store.

If they were to place an order, they would need to also invoice and process shipping. This becomes cumbersome. Here we bypass this so that placing a successful order with payment will auto invoice the order so it is complete and nothing more is required.

Create NAMESPACE folder under app/code/community/MCorner

• Create module folder "MCornerOrdersObserver" as we will use this one as the name of our module

• app/code/community/MCorner/MCornerOrdersObserver

• Create Folders

• app/code/community/MCorner/MCornerOrdersObserver/etc

• app/code/community/MCorner/ MCornerOrdersObserver/Model

• app/code/community/MCorner/ MCornerOrdersObserver/Helper

• Create the config.xml file

• app/code/community/MCorner/MCornerOrdersObserver/etc/config.xml

• Inside the config.xml file copy and paste the code below

******************************************************************************

0.1.0MCorner_MCornerOrdersObserver_Model_ObserverMCorner_MCornerOrdersObserver_Model_ObserverafterSalesOrderSaveCommitAfterMCorner_MCornerOrdersObserver_Helper

******************************************************************************

Create the main observer file:

• app/code/community/MCorner/ MCornerOrdersObserver/Model/Observer.php

• Copy and paste the code below into app/code/community/MCorner/ MCornerOrdersObserver/Model/Observer.php

******************************************************************************

class MCorner_MCornerOrdersObserver_Model_Observer {

public $order;//the order...

function afterSalesOrderSaveCommitAfter(&$event) {

return $this->__process($event);

}

protected function __process($event) {

$this->order = $event->getEvent()->getOrder();

if (!$this->order->getId()) {

//order is not saved in the database

return $this;

}

else {

$this->createInvoice();

}

}

protected function createInvoice() {

$orderState = $this->order->getState();

if ($orderState === Mage_Sales_Model_Order::STATE_NEW) { // Check for state new.

if ($this->order->canInvoice()) {

$this->order->getPayment()->setSkipTransactionCreation(false);

$invoice = $this->order->prepareInvoice();

$invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);

$invoice->register();

Mage::getModel('core/resource_transaction')

->addObject($invoice)

->addObject($this->order)

->save();

}

else {

//we can not invoice it so the process is normal.

}

}

}

}

?>

******************************************************************************

To activate the observer module create the module file:

• app/etc/modules/MCorner_ MCornerOrdersObserver.xml

• Copy and paste the code below

******************************************************************************

truecommunity

******************************************************************************

Make sure all files are saved in their locations as in the tutorial and now go into Magento admin and CLEAR ALL CACHE.

Now, if an order is placed through your Magento store it will automatically be invoiced and the invoice amount will be charged. An invoice will be created and an email will be sent. This functionality is similar to clicking the Invoice Button in Magento order administration.












  • Learn About Inflation and How To Protect Your Savings Assuming you purchase the same things on a weekly basis that many other folks in the United States buy you have most likely taken note of the way the prices of common household items and groceries have been on the rise. This is known as price…
  • Heating and Air Conditioning Unit Information There is a lot of information available on the internet to find the right heating and air conditioning unit for your home. You will have to decide on the manufacturer that best fits the system you want to buy. Also make sure that you check out…
  • If You Learn Magic Tricks Online You Will Meet Like Minded Friends If you decide to start learning magic tricks online, you are going to quickly find others who will come in with resources you will find handy. When you want to learn about certain trick, the Internet may be the best source for it for you to…
  • Managing the Manager Your organization has decided to outsource a project to an external firm. In some cases, the organization may allow your team to manage the project, but more often than not, the organization may want full return and to manage the engagement…
  • The Winter Safety Check List For Drivers I hate the winter! OK so despite I sound a little aggressive but you know what I mean, the ever unpredictable yet always extremely cold weather, the dark nights and constantly feeling blue; if it was not for Christmas, this season would be a…