Adding Customer Comments on Invoice PDFs in Magento (using OneStepCheckout)
I’ve recently installed OneStepCheckout (http://www.onestepcheckout.com/) on a couple of Magento installations. The extension is very nice, really simple to integrate and I expect to see better conversion rates on the checkout process.
One cool thing is that it comes with the option of activating Customer Order Comments – it adds a textarea field on the checkout page, and a box with the customer comments in the admin, when viewing the order.
However, one of my clients requested I added these comments in the invoice PDF’s. So, here’s how to do it:
Step 1
Copy app/code/core/Mage/Sales/Model/Order/Pdf/Invoice.php to app/code/local/Mage/Sales/Model/Order/Pdf/Invoice.php
Step 2
Open the new file and create a new method:
function insertOscComments(&$page, $order) {
if( !$order->getOnestepcheckoutCustomercomment() ) { return; }
$this->y -= 20;
$page->setFillColor(new Zend_Pdf_Color_Rgb(0.93, 0.92, 0.92));
$page->setLineColor(new Zend_Pdf_Color_GrayScale(0.5));
$page->setLineWidth(0.5);
$page->drawRectangle(25, $this->y, 570, $this->y - 20);
$page->setFillColor(new Zend_Pdf_Color_Rgb(1, 1, 1));
$page->drawRectangle(25, $this->y - 20, 570, $this->y - 40);
$page->setFillColor(new Zend_Pdf_Color_RGB(0.1, 0.1, 0.1));
$page->drawText(Mage::helper('onestepcheckout')->__('Customer Comments'), 35, $this->y - 13, 'UTF-8');
$page->drawText($order->getOnestepcheckoutCustomercomment(), 33, $this->y - 33, 'UTF-8');
$this->y -= 50;
}
Step 3
At the end of method getPdf add a call to the new method you created:
/* Add totals */ $this->insertTotals($page, $invoice); /* Add OneStepCheckout Customer Comments */ $this->insertOscComments($page, $order); }
And that’s all you need.