I created an observer. When it fires it picks out all the information, but it doesn't insert the data into the database.
config.xml
<config>
<global>
<models>
<connector_mysql4>
<class>Custom_Connector_Model_Mysql4</class>
<entities>
<taxordermap>
<table>tax_order_map</table>
</taxordermap>
</entities>
</connector_mysql4>
</models>
<events>
<sales_order_place_after>
<observers>
<orderGetShopVatSettings>
<class>Connector_Model_Observers_Order</class>
<method>setSetting</method>
</orderGetShopVatSettings>
</observers>
</sales_order_place_after>
</events>
</global>
</config>
Model/Taxordermap.php
<?php
class Connector_Model_Taxordermap extends Mage_Core_Model_Abstract{
/**
* consturctor
* Initializing the opject
*/
public function _construct(){
parent::_construct();
$this->_init('connector/taxordermap');
}
}
Model/Mysql4/Taxordermap.php
<?php
class Connector_Model_Mysql4_Taxordermap extends Mage_Core_Model_Mysql4_Abstract{
/**
* Constructor
*/
protected function _construct(){
$this->_init('connector/actaxordermap','orderid');
}
}
and finaly
Model/Mysql4/AcTaxordermap/Collection.php
<?php
class Connector_Model_Mysql4_Taxordermap_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract{
/**
* Constructor
*/
public function _construct(){
$this->_init('connector/actaxordermap');
}
}
And last but not least:
Model/Observers/Order.php
<?php
class Connector_Model_Observers_Order{
public function setSetting(Varien_Event_Observer $observer){
$order = $observer->getEvent()->getOrder();
$orderid = $order->getId();
Mage::log("orderid: $orderid");
$shippingTax = (int)Connector_Model_System_Service::ShippingIncludesTax();
$tax = (int)Connector_Model_System_Service::priceIncludesTax();
Mage::log("tax: $tax");
Mage::log("shipping: $shippingTax");
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$model = Mage::getModel('connector/taxordermap');
$model->setOrderid($orderid);
$model->setTax($tax);
$model->setShipping($shippingTax);
Mage::log($model);
try{
$model->save();
}catch(Exception $e){
Mage::log("error: $e->getMessage();");
}
Mage::log($model);
}
}
These are the Informations I get into the Log
2014-03-12T14:53:29+00:00 DEBUG (7): orderid: 59
2014-03-12T14:53:29+00:00 DEBUG (7): tax: 0
2014-03-12T14:53:29+00:00 DEBUG (7): shipping: 1
2014-03-12T14:53:29+00:00 DEBUG (7): Connector_Model_Taxordermap Object
(
[_eventPrefix:protected] => core_abstract
[_eventObject:protected] => object
[_resourceName:protected] => connector/taxordermap
[_resource:protected] =>
[_resourceCollectionName:protected] => connector/taxordermap_collection
[_cacheTag:protected] =>
[_dataSaveAllowed:protected] => 1
[_isObjectNew:protected] =>
[_data:protected] => Array
(
[orderid] => 59
[tax] => 0
[shipping] => 1
)
[_hasDataChanges:protected] => 1
[_origData:protected] =>
[_idFieldName:protected] =>
[_isDeleted:protected] =>
[_oldFieldsMap:protected] => Array
(
)
[_syncFieldsMap:protected] => Array
(
)
)
2014-03-12T14:53:29+00:00 DEBUG (7): Connector_Model_Taxordermap Object
(
[_eventPrefix:protected] => core_abstract
[_eventObject:protected] => object
[_resourceName:protected] => connector/taxordermap
[_resource:protected] =>
[_resourceCollectionName:protected] => connector/taxordermap_collection
[_cacheTag:protected] =>
[_dataSaveAllowed:protected] => 1
[_isObjectNew:protected] =>
[_data:protected] => Array
(
[orderid] => 59
[tax] => 0
[shipping] => 1
)
[_hasDataChanges:protected] =>
[_origData:protected] =>
[_idFieldName:protected] => orderid
[_isDeleted:protected] =>
[_oldFieldsMap:protected] => Array
(
)
[_syncFieldsMap:protected] => Array
(
)
)
As far as I can see it, the Data is saved, but is does not appear in the database. It does simple not store, although it tails it stored it.
If this is your complete config.xml, you may forgot to add a model node and resourceModel for your model:
<models>
<connector>
<class>Connector_Model</class>
<resourceModel>connector_mysql4</resourceModel>
</connector>
<connector_mysql4>
<class>Connector_Model_Mysql4</class>
<entities>
<taxordermap>
<table>tax_order_map</table>
</taxordermap>
</entities>
</connector_mysql4>
</models>
Also, for the first view, I think your _init() calls are not fine. I guess it should be connector/taxordermap instead of connector/actaxordermap. If you have any questions, please go!