*/ class Mage_Sales_Model_Resource_Setup extends Mage_Eav_Model_Entity_Setup { /** * List of entities converted from EAV to flat data structure * * @var $_flatEntityTables array */ protected $_flatEntityTables = array( 'quote' => 'sales/quote', 'quote_item' => 'sales/quote_item', 'quote_address' => 'sales/quote_address', 'quote_address_item'=> 'sales/quote_address_item', 'quote_address_rate'=> 'sales/quote_shipping_rate', 'quote_payment' => 'sales/quote_payment', 'order' => 'sales/order', 'order_payment' => 'sales/order_payment', 'order_item' => 'sales/order_item', 'order_address' => 'sales/order_address', 'order_status_history' => 'sales/order_status_history', 'invoice' => 'sales/invoice', 'invoice_item' => 'sales/invoice_item', 'invoice_comment' => 'sales/invoice_comment', 'creditmemo' => 'sales/creditmemo', 'creditmemo_item' => 'sales/creditmemo_item', 'creditmemo_comment'=> 'sales/creditmemo_comment', 'shipment' => 'sales/shipment', 'shipment_item' => 'sales/shipment_item', 'shipment_track' => 'sales/shipment_track', 'shipment_comment' => 'sales/shipment_comment', ); /** * List of entities used with separate grid table * * @var $_flatEntitiesGrid array */ protected $_flatEntitiesGrid = array( 'order', 'invoice', 'shipment', 'creditmemo' ); /** * Check if table exist for flat entity * * @param string $table * @return bool */ protected function _flatTableExist($table) { $tablesList = $this->getConnection()->listTables(); return in_array(strtoupper($this->getTable($table)), array_map('strtoupper', $tablesList)); } /** * Add entity attribute. Overwrited for flat entities support * * @param int|string $entityTypeId * @param string $code * @param array $attr * @return Mage_Sales_Model_Resource_Setup */ public function addAttribute($entityTypeId, $code, array $attr) { if (isset($this->_flatEntityTables[$entityTypeId]) && $this->_flatTableExist($this->_flatEntityTables[$entityTypeId])) { $this->_addFlatAttribute($this->_flatEntityTables[$entityTypeId], $code, $attr); $this->_addGridAttribute($this->_flatEntityTables[$entityTypeId], $code, $attr, $entityTypeId); } else { parent::addAttribute($entityTypeId, $code, $attr); } return $this; } /** * Add attribute as separate column in the table * * @param string $table * @param string $attribute * @param array $attr * @return Mage_Sales_Model_Resource_Setup */ protected function _addFlatAttribute($table, $attribute, $attr) { $tableInfo = $this->getConnection()->describeTable($this->getTable($table)); if (isset($tableInfo[$attribute])) { return $this; } $columnDefinition = $this->_getAttributeColumnDefinition($attribute, $attr); $this->getConnection()->addColumn($this->getTable($table), $attribute, $columnDefinition); return $this; } /** * Add attribute to grid table if necessary * * @param string $table * @param string $attribute * @param array $attr * @param string $entityTypeId * @return Mage_Sales_Model_Resource_Setup */ protected function _addGridAttribute($table, $attribute, $attr, $entityTypeId) { if (in_array($entityTypeId, $this->_flatEntitiesGrid) && !empty($attr['grid'])) { $columnDefinition = $this->_getAttributeColumnDefinition($attribute, $attr); $this->getConnection()->addColumn($this->getTable($table . '_grid'), $attribute, $columnDefinition); } return $this; } /** * Retrieve definition of column for create in flat table * * @param string $code * @param array $data * @return array */ protected function _getAttributeColumnDefinition($code, $data) { // Convert attribute type to column info $data['type'] = isset($data['type']) ? $data['type'] : 'varchar'; $type = null; $length = null; switch ($data['type']) { case 'timestamp': $type = Varien_Db_Ddl_Table::TYPE_TIMESTAMP; break; case 'datetime': $type = Varien_Db_Ddl_Table::TYPE_DATETIME; break; case 'decimal': $type = Varien_Db_Ddl_Table::TYPE_DECIMAL; $length = '12,4'; break; case 'int': $type = Varien_Db_Ddl_Table::TYPE_INTEGER; break; case 'text': $type = Varien_Db_Ddl_Table::TYPE_TEXT; $length = 65536; break; case 'char': case 'varchar': $type = Varien_Db_Ddl_Table::TYPE_TEXT; $length = 255; break; } if ($type !== null) { $data['type'] = $type; $data['length'] = $length; } $data['nullable'] = isset($data['required']) ? !$data['required'] : true; $data['comment'] = isset($data['comment']) ? $data['comment'] : ucwords(str_replace('_', ' ', $code)); return $data; } /** * Retrieve default entities * * @return array */ public function getDefaultEntities() { return array( 'quote'=>array( 'entity_model' => 'sales/quote', 'table' => 'sales/quote', 'attributes' => array( 'entity_id' => array('type'=>'static'), 'is_active' => array('type'=>'static'), 'store_id' => array('type'=>'static'), 'remote_ip' => array('type'=>'static'), 'checkout_method' => array('type'=>'static'), 'password_hash' => array('type'=>'static'), 'orig_order_id' => array('type'=>'static'), 'converted_at' => array('type'=>'static'), 'reserved_order_id' => array('type'=>'static'), 'coupon_code' => array('type'=>'static'), 'global_currency_code' => array('type'=>'static'), 'base_currency_code' => array('type'=>'static'), 'store_currency_code' => array('type'=>'static'), 'quote_currency_code' => array('type'=>'static'), 'store_to_base_rate' => array('type'=>'static'), 'store_to_quote_rate' => array('type'=>'static'), 'base_to_global_rate' => array('type'=>'static'), 'base_to_quote_rate' => array('type'=>'static'), 'items_count' => array('type'=>'static'), 'items_qty' => array('type'=>'static'), 'grand_total' => array('type'=>'static'), 'base_grand_total' => array('type'=>'static'), 'applied_rule_ids' => array('type'=>'static'), 'is_virtual' => array('type'=>'static'), 'is_multi_shipping' => array('type'=>'static'), 'customer_id' => array('type'=>'static'), 'customer_tax_class_id' => array('type'=>'static'), 'customer_group_id' => array('type'=>'static'), 'customer_email' => array('type'=>'static'), 'customer_prefix' => array('type'=>'static'), 'customer_firstname' => array('type'=>'static'), 'customer_middlename' => array('type'=>'static'), 'customer_lastname' => array('type'=>'static'), 'customer_suffix' => array('type'=>'static'), 'customer_note' => array('type'=>'static'), 'customer_note_notify' => array('type'=>'static'), 'customer_is_guest' => array('type'=>'static'), 'customer_taxvat' => array('type'=>'static'), 'customer_dob' => array('type'=>'static'), 'customer_gender' => array('type'=>'static'), ), ), 'quote_item' => array( 'entity_model' => 'sales/quote_item', 'table' => 'sales/quote_item', 'attributes' => array( 'product_id' => array('type'=>'static'), 'super_product_id' => array('type'=>'static'), 'parent_product_id' => array('type'=>'static'), 'sku' => array('type'=>'static'), 'name' => array('type'=>'static'), 'description' => array('type'=>'static'), 'weight' => array('type'=>'static'), 'free_shipping' => array('type'=>'static'), 'qty' => array('type'=>'static'), 'is_qty_decimal' => array('type'=>'static'), 'price' => array('type'=>'static'), 'custom_price' => array('type'=>'static'), 'discount_percent' => array('type'=>'static'), 'discount_amount' => array('type'=>'static'), 'no_discount' => array('type'=>'static'), 'tax_percent' => array('type'=>'static'), 'tax_amount' => array('type'=>'static'), 'row_total' => array('type'=>'static'), 'row_total_with_discount' => array('type'=>'static'), 'base_price' => array('type'=>'static'), 'base_discount_amount' => array('type'=>'static'), 'base_tax_amount' => array('type'=>'static'), 'base_row_total' => array('type'=>'static'), 'row_weight' => array('type'=>'static'), 'applied_rule_ids' => array('type'=>'static'), 'additional_data' => array('type'=>'static'), ), ), 'quote_address' => array( 'entity_model' => 'sales/quote_address', 'table' => 'sales/quote_address', 'attributes' => array( 'address_type' => array('type'=>'static'), 'customer_id' => array('type'=>'static'), 'customer_address_id' => array('type'=>'static'), 'save_in_address_book' => array('type'=>'static'), 'email' => array('type'=>'static'), 'prefix' => array('type'=>'static'), 'firstname' => array('type'=>'static'), 'middlename' => array('type'=>'static'), 'lastname' => array('type'=>'static'), 'suffix' => array('type'=>'static'), 'company' => array('type'=>'static'), 'street' => array('type'=>'static'), 'city' => array('type'=>'static'), 'region' => array('type'=>'static'), 'region_id' => array('type'=>'static'), 'postcode' => array('type'=>'static'), 'country_id' => array('type'=>'static'), 'telephone' => array('type'=>'static'), 'fax' => array('type'=>'static'), 'same_as_billing' => array('type'=>'static'), 'free_shipping' => array('type'=>'static'), 'weight' => array('type'=>'static'), 'collect_shipping_rates' => array('type'=>'static'), 'shipping_method' => array('type'=>'static'), 'shipping_description' => array('type'=>'static'), 'subtotal' => array('type'=>'static'), 'subtotal_with_discount' => array('type'=>'static'), 'tax_amount' => array('type'=>'static'), 'shipping_amount' => array('type'=>'static'), 'shipping_tax_amount' => array('type'=>'static'), 'discount_amount' => array('type'=>'static'), 'grand_total' => array('type'=>'static'), 'base_subtotal' => array('type'=>'static'), 'base_subtotal_with_discount' => array('type'=>'static'), 'base_tax_amount' => array('type'=>'static'), 'base_shipping_amount' => array('type'=>'static'), 'base_shipping_tax_amount' => array('type'=>'static'), 'base_discount_amount' => array('type'=>'static'), 'base_grand_total' => array('type'=>'static'), 'customer_notes' => array('type'=>'static'), 'applied_taxes' => array('type'=>'text'), ), ), 'quote_address_item' => array( 'entity_model' => 'sales/quote_address_item', 'table' =>'sales/quote_entity', 'attributes' => array( 'quote_item_id' => array('type'=>'int'), 'product_id' => array('type'=>'int'), 'super_product_id' => array('type'=>'int'), 'parent_product_id' => array('type'=>'int'), 'sku' => array(), 'image' => array(), 'name' => array(), 'description' => array('type'=>'text'), 'weight' => array('type'=>'decimal'), 'free_shipping' => array('type'=>'int'), 'qty' => array('type'=>'decimal'), 'is_qty_decimal' => array('type'=>'int'), 'price' => array('type'=>'decimal'), 'discount_percent' => array('type'=>'decimal'), 'discount_amount' => array('type'=>'decimal'), 'no_discount' => array('type'=>'int'), 'tax_percent' => array('type'=>'decimal'), 'tax_amount' => array('type'=>'decimal'), 'row_total' => array('type'=>'decimal'), 'row_total_with_discount' => array('type'=>'decimal'), 'base_price' => array('type'=>'decimal'), 'base_discount_amount' => array('type'=>'decimal'), 'base_tax_amount' => array('type'=>'decimal'), 'base_row_total' => array('type'=>'decimal'), 'row_weight' => array('type'=>'decimal'), 'applied_rule_ids' => array(), 'additional_data' => array('type'=>'text'), ), ), 'quote_address_rate' => array( 'entity_model' => 'sales/quote_address_rate', 'table' => 'sales/quote_entity', 'attributes' => array( 'code' => array(), 'carrier' => array(), 'carrier_title' => array(), 'method' => array(), 'method_description' => array('type'=>'text'), 'price' => array('type'=>'decimal'), 'error_message' => array('type'=>'text'), ), ), 'quote_payment' => array( 'entity_model' => 'sales/quote_payment', 'table' =>'sales/quote_entity', 'attributes' => array( 'method' => array(), 'additional_data' => array('type'=>'text'), 'po_number' => array(), 'cc_type' => array(), 'cc_number_enc' => array(), 'cc_last4' => array(), 'cc_owner' => array(), 'cc_exp_month' => array('type'=>'int'), 'cc_exp_year' => array('type'=>'int'), 'cc_cid_enc' => array(), 'cc_ss_issue' => array(), 'cc_ss_start_month' => array('type'=>'int'), 'cc_ss_start_year' => array('type'=>'int'), ), ), 'order' => array( 'entity_model' => 'sales/order', 'table' => 'sales/order', 'increment_model' => 'eav/entity_increment_numeric', 'increment_per_store' =>true, 'backend_prefix' =>'sales_entity/order_attribute_backend', 'attributes' => array( 'entity_id' => array( 'type' =>'static', 'backend' =>'sales_entity/order_attribute_backend_parent' ), 'store_id' => array('type'=>'static'), 'store_name' => array('type'=>'varchar'), 'remote_ip' => array(), 'status' => array('type'=>'varchar'), 'state' => array('type'=>'varchar'), 'hold_before_status' => array('type'=>'varchar'), 'hold_before_state' => array('type'=>'varchar'), 'relation_parent_id' => array('type'=>'varchar'), 'relation_parent_real_id' => array('type'=>'varchar'), 'relation_child_id' => array('type'=>'varchar'), 'relation_child_real_id' => array('type'=>'varchar'), 'original_increment_id' => array('type'=>'varchar'), 'edit_increment' => array('type'=>'int'), 'ext_order_id' => array('type'=>'varchar'), 'ext_customer_id' => array('type'=>'varchar'), 'quote_id' => array('type'=>'int'), 'quote_address_id' => array('type'=>'int'), 'billing_address_id' => array('type'=>'int', 'backend'=>'_billing'), 'shipping_address_id' => array('type'=>'int', 'backend'=>'_shipping'), 'coupon_code' => array(), 'applied_rule_ids' => array(), 'global_currency_code' => array(), 'base_currency_code' => array(), 'store_currency_code' => array(), 'order_currency_code' => array(), 'store_to_base_rate' => array('type'=>'decimal'), 'store_to_order_rate' => array('type'=>'decimal'), 'base_to_global_rate' => array('type'=>'decimal'), 'base_to_order_rate' => array('type'=>'decimal'), 'is_virtual' => array('type'=>'int'), 'shipping_method' => array(), 'shipping_description' => array(), 'weight' => array('type'=>'decimal'), 'tax_amount' => array('type'=>'static'), 'shipping_amount' => array('type'=>'static'), 'shipping_tax_amount' => array('type'=>'static'), 'discount_amount' => array('type'=>'static'), 'subtotal' => array('type'=>'static'), 'grand_total' => array('type'=>'static'), 'total_paid' => array('type'=>'static'), 'total_due' => array('type'=>'decimal'), 'total_refunded' => array('type'=>'static'), 'total_qty_ordered' => array('type'=>'static'), 'total_canceled' => array('type'=>'static'), 'total_invoiced' => array('type'=>'static'), 'total_online_refunded' => array('type'=>'static'), 'total_offline_refunded' => array('type'=>'static'), 'adjustment_positive' => array('type'=>'decimal'), 'adjustment_negative' => array('type'=>'decimal'), 'base_tax_amount' => array('type'=>'static'), 'base_shipping_amount' => array('type'=>'static'), 'base_shipping_tax_amount' => array('type'=>'static'), 'base_discount_amount' => array('type'=>'static'), 'base_subtotal' => array('type'=>'static'), 'base_grand_total' => array('type'=>'static'), 'base_total_paid' => array('type'=>'static'), 'base_total_due' => array('type'=>'decimal'), 'base_total_refunded' => array('type'=>'static'), 'base_total_qty_ordered' => array('type'=>'static'), 'base_total_canceled' => array('type'=>'static'), 'base_total_invoiced' => array('type'=>'static'), 'base_total_online_refunded' => array('type'=>'static'), 'base_total_offline_refunded'=> array('type'=>'static'), 'base_adjustment_positive' => array('type'=>'decimal'), 'base_adjustment_negative' => array('type'=>'decimal'), 'subtotal_refunded' => array('type'=>'static'), 'subtotal_canceled' => array('type'=>'static'), 'discount_refunded' => array('type'=>'static'), 'discount_canceled' => array('type'=>'static'), 'discount_invoiced' => array('type'=>'static'), 'subtotal_invoiced' => array('type'=>'static'), 'tax_refunded' => array('type'=>'static'), 'tax_canceled' => array('type'=>'static'), 'tax_invoiced' => array('type'=>'static'), 'shipping_refunded' => array('type'=>'static'), 'shipping_canceled' => array('type'=>'static'), 'shipping_invoiced' => array('type'=>'static'), 'base_subtotal_refunded' => array('type'=>'static'), 'base_subtotal_canceled' => array('type'=>'static'), 'base_discount_refunded' => array('type'=>'static'), 'base_discount_canceled' => array('type'=>'static'), 'base_discount_invoiced' => array('type'=>'static'), 'base_subtotal_invoiced' => array('type'=>'static'), 'base_tax_refunded' => array('type'=>'static'), 'base_tax_canceled' => array('type'=>'static'), 'base_tax_invoiced' => array('type'=>'static'), 'base_shipping_refunded' => array('type'=>'static'), 'base_shipping_canceled' => array('type'=>'static'), 'base_shipping_invoiced' => array('type'=>'static'), 'protect_code' => array('type' => 'static'), 'customer_id' => array('type'=>'static', 'visible'=>false), 'customer_group_id' => array('type'=>'int', 'visible'=>false), 'customer_email' => array('type'=>'varchar', 'visible'=>false), 'customer_prefix' => array('type'=>'varchar', 'visible'=>false), 'customer_firstname' => array('type'=>'varchar', 'visible'=>false), 'customer_middlename' => array('type'=>'varchar', 'visible'=>false), 'customer_lastname' => array('type'=>'varchar', 'visible'=>false), 'customer_suffix' => array('type'=>'varchar', 'visible'=>false), 'customer_note' => array('type'=>'text', 'visible'=>false), 'customer_note_notify' => array('type'=>'int', 'visible'=>false), 'customer_is_guest' => array('type'=>'int', 'visible'=>false), 'email_sent' => array('type'=>'int', 'visible'=>false), 'customer_taxvat' => array('type'=>'varchar', 'visible'=>false), 'customer_dob' => array('type'=>'datetime', 'backend' => 'eav/entity_attribute_backend_datetime'), 'customer_gender' => array('type'=>'int', 'visible'=>false), ), ), 'order_address' => array( 'entity_model' => 'sales/order_address', 'table' =>'sales/order_entity', 'attributes' => array( 'parent_id' => array('type'=>'static', 'backend'=>'sales_entity/order_attribute_backend_child'), 'quote_address_id' => array('type'=>'int'), 'address_type' => array(), 'customer_id' => array('type'=>'int'), 'customer_address_id' => array('type'=>'int'), 'email' => array(), 'prefix' => array(), 'firstname' => array(), 'middlename' => array(), 'lastname' => array(), 'suffix' => array(), 'company' => array(), 'street' => array(), 'city' => array(), 'region' => array(), 'region_id' => array('type'=>'int'), 'postcode' => array(), 'country_id' => array('type'=>'varchar'), 'telephone' => array(), 'fax' => array(), ), ), 'order_item' => array( 'entity_model' => 'sales/order_item', 'table' =>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type' =>'static', 'backend' =>'sales_entity/order_attribute_backend_child' ), 'quote_item_id' => array('type'=>'int'), 'product_id' => array('type'=>'int'), 'super_product_id' => array('type'=>'int'), 'parent_product_id' => array('type'=>'int'), 'is_virtual' => array('type'=>'int'), 'sku' => array(), 'name' => array(), 'description' => array('type'=>'text'), 'weight' => array('type'=>'decimal'), 'is_qty_decimal' => array('type'=>'int'), 'qty_ordered' => array('type'=>'decimal'), 'qty_backordered' => array('type'=>'decimal'), 'qty_invoiced' => array('type'=>'decimal'), 'qty_canceled' => array('type'=>'decimal'), 'qty_shipped' => array('type'=>'decimal'), 'qty_refunded' => array('type'=>'decimal'), 'original_price' => array('type'=>'decimal'), 'price' => array('type'=>'decimal'), 'cost' => array('type'=>'decimal'), 'discount_percent' => array('type'=>'decimal'), 'discount_amount' => array('type'=>'decimal'), 'discount_invoiced' => array('type'=>'decimal'), 'tax_percent' => array('type'=>'decimal'), 'tax_amount' => array('type'=>'decimal'), 'tax_invoiced' => array('type'=>'decimal'), 'row_total' => array('type'=>'decimal'), 'row_weight' => array('type'=>'decimal'), 'row_invoiced' => array('type'=>'decimal'), 'invoiced_total' => array('type'=>'decimal'), 'amount_refunded' => array('type'=>'decimal'), 'base_price' => array('type'=>'decimal'), 'base_original_price' => array('type'=>'decimal'), 'base_discount_amount' => array('type'=>'decimal'), 'base_discount_invoiced' => array('type'=>'decimal'), 'base_tax_amount' => array('type'=>'decimal'), 'base_tax_invoiced' => array('type'=>'decimal'), 'base_row_total' => array('type'=>'decimal'), 'base_row_invoiced' => array('type'=>'decimal'), 'base_invoiced_total' => array('type'=>'decimal'), 'base_amount_refunded' => array('type'=>'decimal'), 'applied_rule_ids' => array(), 'additional_data' => array('type'=>'text'), ), ), 'order_payment' => array( 'entity_model' => 'sales/order_payment', 'table'=>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_attribute_backend_child' ), 'quote_payment_id' => array('type'=>'int'), 'method' => array(), 'additional_data' => array('type'=>'text'), 'last_trans_id' => array(), 'po_number' => array(), 'cc_type' => array(), 'cc_number_enc' => array(), 'cc_last4' => array(), 'cc_owner' => array(), 'cc_exp_month' => array(), 'cc_exp_year' => array(), 'cc_ss_issue' => array(), 'cc_ss_start_month' => array(), 'cc_ss_start_year' => array(), 'cc_status' => array(), 'cc_status_description' => array(), 'cc_trans_id' => array(), 'cc_approval' => array(), 'cc_avs_status' => array(), 'cc_cid_status' => array(), 'cc_debug_request_body' => array(), 'cc_debug_response_body'=> array(), 'cc_debug_response_serialized' => array(), 'anet_trans_method' => array(), 'echeck_routing_number' => array(), 'echeck_bank_name' => array(), 'echeck_account_type' => array(), 'echeck_account_name' => array(), 'echeck_type' => array(), 'amount_ordered' => array('type'=>'decimal'), 'amount_authorized' => array('type'=>'decimal'), 'amount_paid' => array('type'=>'decimal'), 'amount_canceled' => array('type'=>'decimal'), 'amount_refunded' => array('type'=>'decimal'), 'shipping_amount' => array('type'=>'decimal'), 'shipping_captured' => array('type'=>'decimal'), 'shipping_refunded' => array('type'=>'decimal'), 'base_amount_ordered' => array('type'=>'decimal'), 'base_amount_authorized' => array('type'=>'decimal'), 'base_amount_paid' => array('type'=>'decimal'), 'base_amount_paid_online' => array('type'=>'decimal'), 'base_amount_canceled' => array('type'=>'decimal'), 'base_amount_refunded' => array('type'=>'decimal'), 'base_amount_refunded_online' => array('type'=>'decimal'), 'base_shipping_amount' => array('type'=>'decimal'), 'base_shipping_captured' => array('type'=>'decimal'), 'base_shipping_refunded' => array('type'=>'decimal'), ), ), 'order_status_history' => array( 'entity_model' => 'sales/order_status_history', 'table'=>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_attribute_backend_child' ), 'status' => array('type'=>'varchar'), 'comment' => array('type'=>'text'), 'is_customer_notified' => array('type'=>'int'), ), ), 'invoice' => array( 'entity_model' => 'sales/order_invoice', 'table' =>'sales/order_entity', 'increment_model' =>'eav/entity_increment_numeric', 'increment_per_store'=>true, 'backend_prefix' =>'sales_entity/order_attribute_backend', 'attributes' => array( 'entity_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_invoice_attribute_backend_parent' ), 'state' => array('type'=>'int'), 'is_used_for_refund' => array('type'=>'int'), 'transaction_id' => array(), 'order_id' => array( 'type'=>'int', 'backend'=>'sales_entity/order_invoice_attribute_backend_order' ), 'billing_address_id' => array('type'=>'int'), 'shipping_address_id' => array('type'=>'int'), 'global_currency_code' => array(), 'base_currency_code' => array(), 'store_currency_code' => array(), 'order_currency_code' => array(), 'store_to_base_rate' => array('type'=>'decimal'), 'store_to_order_rate' => array('type'=>'decimal'), 'base_to_global_rate' => array('type'=>'decimal'), 'base_to_order_rate' => array('type'=>'decimal'), 'subtotal' => array('type'=>'decimal'), 'discount_amount' => array('type'=>'decimal'), 'tax_amount' => array('type'=>'decimal'), 'shipping_amount' => array('type'=>'decimal'), 'grand_total' => array('type'=>'decimal'), 'total_qty' => array('type'=>'decimal'), 'can_void_flag' => array('type'=>'int'), 'base_subtotal' => array('type'=>'decimal'), 'base_discount_amount' => array('type'=>'decimal'), 'base_tax_amount' => array('type'=>'decimal'), 'base_shipping_amount' => array('type'=>'decimal'), 'base_grand_total' => array('type'=>'decimal'), 'email_sent' => array('type'=>'int'), 'store_id' => array('type'=>'static'), ), ), 'invoice_item' => array( 'entity_model' => 'sales/order_invoice_item', //'table'=>'sales/invoice', 'table'=>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_invoice_attribute_backend_child' ), 'order_item_id' => array('type'=>'int'), 'product_id' => array('type'=>'int'), 'name' => array(), 'description' => array('type'=>'text'), 'sku' => array(), 'qty' => array('type'=>'decimal'), 'cost' => array('type'=>'decimal'), 'price' => array('type'=>'decimal'), 'discount_amount' => array('type'=>'decimal'), 'tax_amount' => array('type'=>'decimal'), 'row_total' => array('type'=>'decimal'), 'base_price' => array('type'=>'decimal'), 'base_discount_amount' => array('type'=>'decimal'), 'base_tax_amount' => array('type'=>'decimal'), 'base_row_total' => array('type'=>'decimal'), 'additional_data' => array('type'=>'text'), ), ), 'invoice_comment' => array( 'entity_model' => 'sales/order_invoice_comment', 'table'=>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_invoice_attribute_backend_child' ), 'comment' => array('type'=>'text'), 'is_customer_notified' => array('type'=>'int'), ), ), 'shipment' => array( 'entity_model' => 'sales/order_shipment', //'table'=>'sales/shipment', 'table'=>'sales/order_entity', 'increment_model'=>'eav/entity_increment_numeric', 'increment_per_store'=>true, 'backend_prefix'=>'sales_entity/order_attribute_backend', 'attributes' => array( 'entity_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_shipment_attribute_backend_parent' ), 'customer_id' => array('type'=>'int'), 'order_id' => array('type'=>'int'), 'shipment_status' => array('type'=>'int'), 'billing_address_id' => array('type'=>'int'), 'shipping_address_id' => array('type'=>'int'), 'total_qty' => array('type'=>'decimal'), 'total_weight' => array('type'=>'decimal'), 'email_sent' => array('type'=>'int'), 'store_id' => array('type' => 'static'), ), ), 'shipment_item' => array( 'entity_model' => 'sales/order_shipment_item', //'table'=>'sales/shipment', 'table'=>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_shipment_attribute_backend_child' ), 'order_item_id' => array('type'=>'int'), 'product_id' => array('type'=>'int'), 'name' => array(), 'description' => array('type'=>'text'), 'sku' => array(), 'qty' => array('type'=>'decimal'), 'price' => array('type'=>'decimal'), 'weight' => array('type'=>'decimal'), 'row_total' => array('type'=>'decimal'), 'additional_data' => array('type'=>'text'), ), ), 'shipment_comment' => array( 'entity_model' => 'sales/order_shipment_comment', 'table'=>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_shipment_attribute_backend_child' ), 'comment' => array('type'=>'text'), 'is_customer_notified' => array('type'=>'int'), ), ), 'shipment_track' => array( 'entity_model' => 'sales/order_shipment_track', 'table'=>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_shipment_attribute_backend_child' ), 'order_id' => array('type'=>'int'), 'number' => array('type'=>'text'), 'carrier_code' => array('type'=>'varchar'), 'title' => array('type'=>'varchar'), 'description' => array('type'=>'text'), 'qty' => array('type'=>'decimal'), 'weight' => array('type'=>'decimal'), ), ), 'creditmemo' => array( 'entity_model' => 'sales/order_creditmemo', //'table'=>'sales/creditmemo', 'table'=>'sales/order_entity', 'increment_model'=>'eav/entity_increment_numeric', 'increment_per_store'=>true, 'backend_prefix'=>'sales_entity/order_attribute_backend', 'attributes' => array( 'entity_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_creditmemo_attribute_backend_parent' ), 'state' => array('type'=>'int'), 'invoice_id' => array('type'=>'int'), 'transaction_id'=> array(), 'order_id' => array('type'=>'int'), 'creditmemo_status' => array('type'=>'int'), 'billing_address_id' => array('type'=>'int'), 'shipping_address_id' => array('type'=>'int'), 'global_currency_code' => array(), 'base_currency_code' => array(), 'store_currency_code' => array(), 'order_currency_code' => array(), 'store_to_base_rate' => array('type'=>'decimal'), 'store_to_order_rate' => array('type'=>'decimal'), 'base_to_global_rate' => array('type'=>'decimal'), 'base_to_order_rate' => array('type'=>'decimal'), 'subtotal' => array('type'=>'decimal'), 'discount_amount' => array('type'=>'decimal'), 'tax_amount' => array('type'=>'decimal'), 'shipping_amount' => array('type'=>'decimal'), 'adjustment' => array('type'=>'decimal'), 'adjustment_positive' => array('type'=>'decimal'), 'adjustment_negative' => array('type'=>'decimal'), 'grand_total' => array('type'=>'decimal'), 'base_subtotal' => array('type'=>'decimal'), 'base_discount_amount' => array('type'=>'decimal'), 'base_tax_amount' => array('type'=>'decimal'), 'base_shipping_amount' => array('type'=>'decimal'), 'base_adjustment' => array('type'=>'decimal'), 'base_adjustment_positive' => array('type'=>'decimal'), 'base_adjustment_negative' => array('type'=>'decimal'), 'base_grand_total' => array('type'=>'decimal'), 'email_sent' => array('type' => 'int'), 'store_id' => array('type' => 'static'), ), ), 'creditmemo_item' => array( 'entity_model' => 'sales/order_creditmemo_item', //'table'=>'sales/creditmemo', 'table'=>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_creditmemo_attribute_backend_child' ), 'order_item_id' => array('type'=>'int'), 'product_id' => array('type'=>'int'), 'name' => array(), 'description' => array('type'=>'text'), 'sku' => array(), 'qty' => array('type'=>'decimal'), 'cost' => array('type'=>'decimal'), 'price' => array('type'=>'decimal'), 'discount_amount' => array('type'=>'decimal'), 'tax_amount' => array('type'=>'decimal'), 'row_total' => array('type'=>'decimal'), 'base_price' => array('type'=>'decimal'), 'base_discount_amount' => array('type'=>'decimal'), 'base_tax_amount' => array('type'=>'decimal'), 'base_row_total' => array('type'=>'decimal'), 'additional_data' => array('type'=>'text'), ), ), 'creditmemo_comment' => array( 'entity_model' => 'sales/order_creditmemo_comment', 'table'=>'sales/order_entity', 'attributes' => array( 'parent_id' => array( 'type'=>'static', 'backend'=>'sales_entity/order_creditmemo_attribute_backend_child' ), 'comment' => array('type'=>'text'), 'is_customer_notified' => array('type'=>'int'), ), ), ); } }