I need to save data to a custom table.
config.xml
<?xml version="1.0"?>
<config>
<modules>
<Npm_Commission>
<version>0.1.0</version>
</Npm_Commission>
</modules>
<global>
<events>
<sales_order_place_after>
<observers>
<npm_commission_model_observer>
<type>singleton</type>
<class>Npm_Commission_Model_Observer</class>
<method>calculateCommission</method>
</npm_commission_model_observer>
</observers>
</sales_order_place_after>
</events>
<models>
<npm_commission>
<class>Npm_Commission_Model</class>
<resourceModel>commission_mysql4</resourceModel>
</npm_commission>
<commission_mysql4>
<class>Npm_Commission_Model_Mysql4</class>
<entities>
<commission>
<table>commission</table>
</commission>
</entities>
</commission_mysql4>
</models>
<resources>
<commission_setup>
<setup>
<module>Npm_Commission</module>
<!-- <class>Npm_Commission_Model_Mysql4_Commission</class> -->
</setup>
<connection>
<use>core_setup</use>
</connection>
</commission_setup>
<commission_write>
<connection>
<use>core_write</use>
</connection>
</commission_write>
<commission_read>
<connection>
<use>core_read</use>
</connection>
</commission_read>
</resources>
</global>
</config>
DATA
$insertData = array(
'order_id' => $orderId,
'transaction_id' => $transaction_id,
'foundation_id' => $foundation_id,
'mano_admin_fees' => $manoAdminFees,
'mano_promotion_fees' => $manoPromoFees,
'paypal_fees' => $payPalFees,
'foundation_fees' => $foundationFees,
'created_at' => $created_at
);
Insert code
$collectionSet = Mage::getModel('commission/commission');
$collectionSet->setData($insertData)->save();
custom table install script
<?php
$installer = $this;
$installer->startSetup();
$installer->run("DROP TABLE IF EXISTS {$installer->getTable('commission')};
CREATE TABLE {$installer->getTable('commission')} (
`id` int(11) unsigned NOT NULL auto_increment,
`order_id` int(11) NOT NULL,
`transaction_id` int(11) NOT NULL,
`foundation_id` int(11) NOT NULL,
`mano_admin_fees` decimal(10,2) NOT NULL,
`mano_promotion_fees` decimal(10,2) NOT NULL,
`paypal_fees` decimal(10,2) NOT NULL,
`foundation_fees` decimal(10,2),
`created_at` datetime,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
");
$installer->endSetup();
I am getting error
Fatal error: Call to a member function setData() on a non-object in
Best Answer
It should be
EDIT:
There should be npm too. The problem for me is that Magento don't have proper model config.
Some links: http://www.pixafy.com/blog/2013/04/creating-a-magento-custom-model/ http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-5-magento-models-and-orm-basics