Thursday, November 8, 2018

Invoice Auto Generation in Magento

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.


  • How To Ipod Your CarHow To Ipod Your Car If you like to ipod your car - pump music on your ipod through your car stereo system - apart from changing to a brand new car that has ipod integration such as BMW, Mercedes-Benz, Nissan and Volvo - there are other options…
  • How to Transfer Auto WarrantiesHow to Transfer Auto Warranties When it comes time to purchase a new car or sell an old one, check into the car warranty. It may be possible to transfer an existing warranty to your new car or to the owner of your old car. Along with this, you must…
  • Should You Invest In Cellular Phone Repair Or A New Phone?Should You Invest In Cellular Phone Repair Or A New Phone? Just like any piece of technology, cell phones can occasionally break or malfunction. This leaves many consumers wondering what their options are for cellular phone repair. These…
  • Touchscreen Digitizer - Symptoms and Cheap ReplacementsTouchscreen Digitizer - Symptoms and Cheap Replacements If you have a touch screen cell phone, whether it's an iPhone, iPad or any other brand name smartphone or pad, tablet, PDA or even a monitor that has a touch activated screen and it is…
  • Computer Software and Hardware Basic KnowledgeComputer Software and Hardware Basic Knowledge Computer software is what allows people to do what they need to accomplish in their everyday activities. A more complex definition of a computer software is; Software is a program that enables a…