Showing posts with label customer comment. Show all posts
Showing posts with label customer comment. Show all posts

Monday, 27 May 2013

Code for creating order comment in magento and display in backend

Add code in config.xml in module in etc folder(Path : app/local/namespace/modulename/etc)

<events>
            <checkout_type_onepage_save_order>
                <observers>
                    <onestepcheckout_save_order_comment>
                        <type>helper</type>
                        <class>DCKAP_Onestepcheckout_Helper_Data</class>
                        <method>setOrderCommentCompatible1</method>
                    </onestepcheckout_save_order_comment>
                </observers>
            </checkout_type_onepage_save_order>     
            <checkout_type_onepage_save_order_after>
                <observers>
                    <onestepcheckout_save_order_comment>
                        <type>helper</type>
                        <class>DCKAP_Onestepcheckout_Helper_Data</class>
                        <method>setOrderCommentCompatible2</method>
                    </onestepcheckout_save_order_comment>
                </observers>
            </checkout_type_onepage_save_order_after>     
            <sales_model_service_quote_submit_after>
                <observers>
                    <onestepcheckout_service_quote_submit_order_comment>
                        <type>helper</type>
                        <class>DCKAP_Onestepcheckout_Helper_Data</class>
                        <method>setOrderCommentCompatible2</method>
                    </onestepcheckout_service_quote_submit_order_comment>
                </observers>
            </sales_model_service_quote_submit_after>    
        </events>


Add code in helper (path : app/code/local/namespace/modulename/helper)



public function isOrderComment() {
       
        return Mage::getStoreConfig('onestepcheckout/general/comment');
    }

public function setOrderCommentCompatible1($observer) {

        if ($this->getCompatibility() != self::COMPATIBILITY_TYPE1) {
           return;
        }
        if ($this->isOrderComment()) {
            $orderComment = trim($this->_getRequest()->getPost('order_comment'));
            if ($orderComment != "") {
                $observer->getEvent()->getOrder()->addStatusHistoryComment($orderComment,true);
            } else {
                $observer->getEvent()->getOrder()->setOrderComment(Mage::getSingleton('checkout/session')->getOpcheckoutOrderComment());
                Mage::getSingleton('checkout/session')->unsOpcheckoutOrderComment();
            }
        }
    }


    public function setOrderCommentCompatible2($observer) {

        if ($this->getCompatibility() != self::COMPATIBILITY_TYPE2) {
         return;
        }
        if ($this->isOrderComment()) {

            $orderComment = trim($this->_getRequest()->getPost('order_comment'));
            if ($orderComment == "") {
                $orderComment = Mage::getSingleton('checkout/session')->getOpcheckoutOrderComment();
                Mage::getSingleton('checkout/session')->unsOpcheckoutOrderComment();
            }
            $order = $observer->getEvent()->getOrder();
            if ($order && ($orderComment != "")) {
                if ($order->getId()) {
                    $resource = Mage::getSingleton('core/resource');
                    $sales_order = $resource->getTableName('sales_order');
                    $resource->getConnection('core_write')->update($sales_order, array('order_comment' => $orderComment), array('entity_id = ?' => $order->getId()));
                }
            }
        }
    }