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()));
}
}
}
}
<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()));
}
}
}
}