Version Notes
- Option to choose your order to send on CustomerGauge System.
- Save CustomerGauge and Magento field mapping.
- Option to filter sales order by CutomerGauge Import.
- API configuration options added.on CustomerGauge Setting.
Download this release
Release Info
| Developer | Manas Kanti Dey |
| Extension | CustomerGauge_Export_Integration |
| Version | 1.1.1 |
| Comparing to | |
| See all releases | |
Version 1.1.1
- app/code/community/Customergauge/.DS_Store +0 -0
- app/code/community/Customergauge/Import/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Block/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Block/Sales/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Block/Sales/Order/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Block/Sales/Order/Grid.php +30 -0
- app/code/community/Customergauge/Import/Block/Sync/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Block/Sync/Edit.php +99 -0
- app/code/community/Customergauge/Import/Helper/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Helper/Data.php +69 -0
- app/code/community/Customergauge/Import/Model/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Model/Cgmapping.php +19 -0
- app/code/community/Customergauge/Import/Model/Mysql4/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Model/Mysql4/Cgmapping.php +18 -0
- app/code/community/Customergauge/Import/Model/Mysql4/Cgmapping/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Model/Mysql4/Cgmapping/Collection.php +16 -0
- app/code/community/Customergauge/Import/Model/Observer.php +89 -0
- app/code/community/Customergauge/Import/Model/System/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Model/System/Config/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Model/System/Config/Orderstatus.php +27 -0
- app/code/community/Customergauge/Import/Model/System/Config/Transactional.php +26 -0
- app/code/community/Customergauge/Import/Model/System/Config/Upload.php +26 -0
- app/code/community/Customergauge/Import/Service/.DS_Store +0 -0
- app/code/community/Customergauge/Import/Service/ImportData.php +230 -0
- app/code/community/Customergauge/Import/controllers/.DS_Store +0 -0
- app/code/community/Customergauge/Import/controllers/Adminhtml/.DS_Store +0 -0
- app/code/community/Customergauge/Import/controllers/Adminhtml/SyncController.php +70 -0
- app/code/community/Customergauge/Import/controllers/IndexController.php +74 -0
- app/code/community/Customergauge/Import/etc/.DS_Store +0 -0
- app/code/community/Customergauge/Import/etc/config.xml +144 -0
- app/code/community/Customergauge/Import/etc/system.xml +91 -0
- app/code/community/Customergauge/Import/sql/.DS_Store +0 -0
- app/code/community/Customergauge/Import/sql/import_setup/.DS_Store +0 -0
- app/code/community/Customergauge/Import/sql/import_setup/mysql4-install-1.1.1.php +25 -0
- app/design/adminhtml/default/default/layout/customergauge.xml +8 -0
- app/design/adminhtml/default/default/template/customergauge/.DS_Store +0 -0
- app/design/adminhtml/default/default/template/customergauge/sync/.DS_Store +0 -0
- app/design/adminhtml/default/default/template/customergauge/sync/edit.phtml +49 -0
- app/etc/modules/Customerauge_Import.xml +8 -0
- package.xml +23 -0
app/code/community/Customergauge/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Block/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Block/Sales/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Block/Sales/Order/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Block/Sales/Order/Grid.php
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid
|
| 10 |
+
{
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
protected function _prepareColumns()
|
| 14 |
+
{
|
| 15 |
+
$options = array(
|
| 16 |
+
'Imported' => 'Imported',
|
| 17 |
+
'Not Imported' => 'Not Imported'
|
| 18 |
+
);
|
| 19 |
+
$this->addColumn('customergauge_import', array(
|
| 20 |
+
'header'=> Mage::helper('customer')->__('Customergauge Import'),
|
| 21 |
+
'width' => '80px',
|
| 22 |
+
'type' => 'options',
|
| 23 |
+
'index' => 'customergauge_import',
|
| 24 |
+
'options' => $options ));
|
| 25 |
+
$this->addColumnsOrder('customergauge_import', 'grand_total');
|
| 26 |
+
return parent::_prepareColumns();
|
| 27 |
+
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
}
|
app/code/community/Customergauge/Import/Block/Sync/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Block/Sync/Edit.php
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Block_Sync_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
|
| 10 |
+
{
|
| 11 |
+
protected $_addButtonLabel = 'Add New Example';
|
| 12 |
+
|
| 13 |
+
public function __construct()
|
| 14 |
+
{
|
| 15 |
+
parent::__construct();
|
| 16 |
+
$this->setTemplate('customergauge/sync/edit.phtml');
|
| 17 |
+
$this->setTitle('Field Mapping');
|
| 18 |
+
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
public function getSaveButtonHtml()
|
| 22 |
+
{
|
| 23 |
+
$button = $this->getLayout()->createBlock('adminhtml/widget_button')
|
| 24 |
+
->setData(array(
|
| 25 |
+
'id' => 'customergauge_mapping',
|
| 26 |
+
'label' => $this->helper('adminhtml')->__('Save'),
|
| 27 |
+
'onclick' => 'javascript:document.getElementById(\'customgergauge_sync_form\').submit();'
|
| 28 |
+
));
|
| 29 |
+
|
| 30 |
+
return $button->toHtml();
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
public function getSaveUrl()
|
| 34 |
+
{
|
| 35 |
+
return $this->getUrl('*/*/save', array('_current'=>true));
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
public function requiredDataExists(){
|
| 39 |
+
$requiredData = Mage::getStoreConfig('import/config');
|
| 40 |
+
$requiredKeys = array('cg_apikey');
|
| 41 |
+
foreach($requiredKeys as $key){
|
| 42 |
+
if(array_key_exists($key, $requiredData)){
|
| 43 |
+
if( empty( $requiredData[ $key ] ) ){
|
| 44 |
+
return false;
|
| 45 |
+
}
|
| 46 |
+
}else{
|
| 47 |
+
return false;
|
| 48 |
+
}
|
| 49 |
+
}
|
| 50 |
+
return true;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
public function getMagentoField(){
|
| 54 |
+
|
| 55 |
+
$templateLine = Mage::helper("import")->loadTemplate();
|
| 56 |
+
$MagentoFieldArray = array();
|
| 57 |
+
foreach( $templateLine as $key => $val ){
|
| 58 |
+
$MagentoFieldArray[ $key ] = $val;
|
| 59 |
+
}
|
| 60 |
+
return $MagentoFieldArray;
|
| 61 |
+
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
public function getCustomergaugeField( ){
|
| 65 |
+
|
| 66 |
+
$config_data = Mage::getStoreConfig('import/config');
|
| 67 |
+
$is_prodcution_active = $config_data[ "cg_activepro" ];
|
| 68 |
+
if( $is_prodcution_active )
|
| 69 |
+
$api_url = $config_data[ "cg_prourl" ];
|
| 70 |
+
else {
|
| 71 |
+
$api_url = $config_data[ "cg_devurl" ];
|
| 72 |
+
}
|
| 73 |
+
$api_key = $config_data[ "cg_apikey" ];
|
| 74 |
+
$api_url = $api_url . "get_cg_field.json?api_key=$api_key";
|
| 75 |
+
$json_data = Mage::helper("import")->apiCall( $api_url );
|
| 76 |
+
$json_array = json_decode( $json_data, true );
|
| 77 |
+
if( $json_array[ "IsSuccess" ] )
|
| 78 |
+
return $json_array[ "Data" ];
|
| 79 |
+
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
public function getCgMapping(){
|
| 83 |
+
|
| 84 |
+
$model = Mage::getModel( 'import/cgmapping' );
|
| 85 |
+
$data = $model->getCollection()->getData();
|
| 86 |
+
return $data;
|
| 87 |
+
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
+
public function CheckSlected( $cgmapping, $val ){
|
| 91 |
+
|
| 92 |
+
foreach( $cgmapping as $item ){
|
| 93 |
+
|
| 94 |
+
if( $item[ "magento_field" ] == $val )
|
| 95 |
+
return $item[ "cg_field" ];
|
| 96 |
+
}
|
| 97 |
+
return "";
|
| 98 |
+
}
|
| 99 |
+
}
|
app/code/community/Customergauge/Import/Helper/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Helper/Data.php
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Helper_Data extends Mage_Core_Helper_Abstract
|
| 10 |
+
{
|
| 11 |
+
/**
|
| 12 |
+
* @author Manas Kanti Dey
|
| 13 |
+
* @desc
|
| 14 |
+
* Get array of items in template line
|
| 15 |
+
*
|
| 16 |
+
* @return array
|
| 17 |
+
*/
|
| 18 |
+
public static function loadTemplate()
|
| 19 |
+
{
|
| 20 |
+
|
| 21 |
+
$config_data = Mage::getStoreConfig('import/config');
|
| 22 |
+
$is_prodcution_active = $config_data[ "cg_activepro" ];
|
| 23 |
+
if( $is_prodcution_active )
|
| 24 |
+
$api_url = $config_data[ "cg_prourl" ];
|
| 25 |
+
else {
|
| 26 |
+
$api_url = $config_data[ "cg_devurl" ];
|
| 27 |
+
}
|
| 28 |
+
$api_key = $config_data[ "cg_apikey" ];
|
| 29 |
+
$api_url = $api_url . "get_magento_field.json?api_key=$api_key";
|
| 30 |
+
$json_data = Mage::helper("import")->apiCall( $api_url );
|
| 31 |
+
$json_array = json_decode( $json_data, true );
|
| 32 |
+
if( $json_array[ "IsSuccess" ] ){
|
| 33 |
+
|
| 34 |
+
return $json_array[ "Data" ];
|
| 35 |
+
|
| 36 |
+
} else {
|
| 37 |
+
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
return $magento_field;
|
| 41 |
+
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
/**
|
| 45 |
+
* @author Manas Kanti Dey
|
| 46 |
+
* @desc
|
| 47 |
+
* It calls the customergauge api, if the uploaded data given then it post the data on API URL
|
| 48 |
+
*
|
| 49 |
+
* @return array
|
| 50 |
+
*/
|
| 51 |
+
public static function apiCall( $apiUrl, $upload_data = "" ) {
|
| 52 |
+
|
| 53 |
+
$curl_handle = curl_init( );
|
| 54 |
+
curl_setopt($curl_handle, CURLOPT_URL, $apiUrl);
|
| 55 |
+
if( isset( $upload_data ) )
|
| 56 |
+
{
|
| 57 |
+
curl_setopt( $curl_handle, CURLOPT_POST, true );
|
| 58 |
+
curl_setopt( $curl_handle, CURLOPT_POSTFIELDS, $upload_data );
|
| 59 |
+
}
|
| 60 |
+
curl_setopt( $curl_handle, CURLOPT_RETURNTRANSFER, TRUE );
|
| 61 |
+
curl_setopt( $curl_handle, CURLOPT_HTTPHEADER, array( 'Expect:' ) );
|
| 62 |
+
curl_setopt( $curl_handle, CURLOPT_TIMEOUT, 1000);
|
| 63 |
+
$curl_data = curl_exec( $curl_handle );
|
| 64 |
+
curl_close( $curl_handle );
|
| 65 |
+
return $curl_data;
|
| 66 |
+
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
}
|
app/code/community/Customergauge/Import/Model/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Model/Cgmapping.php
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Model_Cgmapping extends Mage_Core_Model_Abstract
|
| 10 |
+
{
|
| 11 |
+
public function _construct()
|
| 12 |
+
{
|
| 13 |
+
|
| 14 |
+
parent::_construct();
|
| 15 |
+
$this->_init('import/cgmapping');
|
| 16 |
+
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
}
|
app/code/community/Customergauge/Import/Model/Mysql4/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Model/Mysql4/Cgmapping.php
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Model_Mysql4_Cgmapping extends Mage_Core_Model_Mysql4_Abstract
|
| 10 |
+
{
|
| 11 |
+
|
| 12 |
+
public function _construct()
|
| 13 |
+
{
|
| 14 |
+
$this->_init('import/cgmapping', 'id');
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
}
|
app/code/community/Customergauge/Import/Model/Mysql4/Cgmapping/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Model/Mysql4/Cgmapping/Collection.php
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Model_Mysql4_Cgmapping_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
|
| 10 |
+
{
|
| 11 |
+
public function _construct()
|
| 12 |
+
{
|
| 13 |
+
parent::_construct();
|
| 14 |
+
$this->_init('import/cgmapping');
|
| 15 |
+
}
|
| 16 |
+
}
|
app/code/community/Customergauge/Import/Model/Observer.php
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Model_Observer {
|
| 10 |
+
|
| 11 |
+
/**
|
| 12 |
+
* @author Manas Kanti Dey
|
| 13 |
+
*
|
| 14 |
+
* @desc
|
| 15 |
+
* This method will include a option in Action Select List of order page
|
| 16 |
+
*/
|
| 17 |
+
public function includeOption($observer)
|
| 18 |
+
{
|
| 19 |
+
|
| 20 |
+
$idBlockObserver = $observer->getEvent()->getBlock()->getId();
|
| 21 |
+
if ( $idBlockObserver=="sales_order_grid" ) {
|
| 22 |
+
|
| 23 |
+
$block = $observer->getEvent()
|
| 24 |
+
->getBlock()
|
| 25 |
+
->getMassactionBlock();
|
| 26 |
+
|
| 27 |
+
if ($block) {
|
| 28 |
+
$block->addItem('import', array(
|
| 29 |
+
'label'=> Mage::helper('import')->__('Send to CustomerGauge'),
|
| 30 |
+
'url' => Mage::getUrl('customergauge_import', array('_secure'=>true)),
|
| 31 |
+
));
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
}
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
/**
|
| 39 |
+
* @author Manas Kanti Dey
|
| 40 |
+
*
|
| 41 |
+
* @desc
|
| 42 |
+
* This method will call by magento after each save on order
|
| 43 |
+
*
|
| 44 |
+
*/
|
| 45 |
+
public function hookToOrderSaveEvent($observer)
|
| 46 |
+
{
|
| 47 |
+
|
| 48 |
+
$config_data = Mage::getStoreConfig('import/config');
|
| 49 |
+
$is_cg_transactional = $config_data[ "cg_transactional" ];
|
| 50 |
+
|
| 51 |
+
if( $is_cg_transactional ){
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
$order = $observer->getEvent()->getOrder();
|
| 55 |
+
$order_id = $order->getId();
|
| 56 |
+
$orderIdsList[] = $order_id;
|
| 57 |
+
$order_status = $order->getStatus();
|
| 58 |
+
$customergauge_import = $order->getData( "customergauge_import" );
|
| 59 |
+
|
| 60 |
+
$cg_orderstatusmagento = $config_data[ "cg_orderstatusmagento" ];
|
| 61 |
+
if( $cg_orderstatusmagento == $order_status && $customergauge_import == "Not Imported" ){
|
| 62 |
+
|
| 63 |
+
$CustomergaugeImport = new Customergauge_Import_Service_ImportData( $orderIdsList );
|
| 64 |
+
$api_response = $CustomergaugeImport->call();
|
| 65 |
+
$api_reponse_array = json_decode( $api_response, true );
|
| 66 |
+
|
| 67 |
+
if( $api_reponse_array[ 'IsSuccess' ] == 1 ){
|
| 68 |
+
|
| 69 |
+
$response_data = $api_reponse_array[ 'Data' ][ 'log' ];
|
| 70 |
+
if( ! $response_data[0]['error'] ){
|
| 71 |
+
|
| 72 |
+
$data = array('customergauge_import'=>'Imported');
|
| 73 |
+
$orderModel = Mage::getModel('sales/order')->load($order_id)->addData($data);
|
| 74 |
+
try {
|
| 75 |
+
$orderModel->setId($order_id)->save();
|
| 76 |
+
} catch (Exception $e){}
|
| 77 |
+
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
}
|
app/code/community/Customergauge/Import/Model/System/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Model/System/Config/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Model/System/Config/Orderstatus.php
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Model_System_Config_Orderstatus
|
| 10 |
+
{
|
| 11 |
+
/**
|
| 12 |
+
* @desc
|
| 13 |
+
* Get all the Sales order status
|
| 14 |
+
*
|
| 15 |
+
* @return array
|
| 16 |
+
*/
|
| 17 |
+
public function toOptionArray()
|
| 18 |
+
{
|
| 19 |
+
|
| 20 |
+
$all_status = Mage::getModel('sales/order_status')->getResourceCollection()->getData();
|
| 21 |
+
foreach( $all_status as $status ){
|
| 22 |
+
$values[] = array( 'value' => $status[ 'status' ], 'label'=> $status[ 'label' ] );
|
| 23 |
+
}
|
| 24 |
+
return $values;
|
| 25 |
+
|
| 26 |
+
}
|
| 27 |
+
}
|
app/code/community/Customergauge/Import/Model/System/Config/Transactional.php
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Model_System_Config_Transactional
|
| 10 |
+
{
|
| 11 |
+
/**
|
| 12 |
+
* Options getter
|
| 13 |
+
*
|
| 14 |
+
* @return array
|
| 15 |
+
*/
|
| 16 |
+
public function toOptionArray()
|
| 17 |
+
{
|
| 18 |
+
|
| 19 |
+
$values = array(
|
| 20 |
+
array('value' => 0, 'label'=> "Manual" ) ,
|
| 21 |
+
array('value' => 1, 'label'=> "Automatic" )
|
| 22 |
+
);
|
| 23 |
+
return $values;
|
| 24 |
+
|
| 25 |
+
}
|
| 26 |
+
}
|
app/code/community/Customergauge/Import/Model/System/Config/Upload.php
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Model_System_Config_Upload
|
| 10 |
+
{
|
| 11 |
+
/**
|
| 12 |
+
* Options getter
|
| 13 |
+
*
|
| 14 |
+
* @return array
|
| 15 |
+
*/
|
| 16 |
+
public function toOptionArray()
|
| 17 |
+
{
|
| 18 |
+
|
| 19 |
+
$values = array(
|
| 20 |
+
array('value' => 0, 'label'=> "Development" ) ,
|
| 21 |
+
array('value' => 1, 'label'=> "LIVE Production" )
|
| 22 |
+
);
|
| 23 |
+
return $values;
|
| 24 |
+
|
| 25 |
+
}
|
| 26 |
+
}
|
app/code/community/Customergauge/Import/Service/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/Service/ImportData.php
ADDED
|
@@ -0,0 +1,230 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Service_ImportData {
|
| 10 |
+
|
| 11 |
+
private $_orderIds = array();
|
| 12 |
+
private $_collectionOrders;
|
| 13 |
+
private $_contentXML;
|
| 14 |
+
|
| 15 |
+
public function __construct($ordersId) {
|
| 16 |
+
$this->_orderIds = $ordersId;
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
private function _loadOrderObjects()
|
| 20 |
+
{
|
| 21 |
+
$this->_collectionOrders = array();
|
| 22 |
+
|
| 23 |
+
foreach($this->_orderIds as $id) {
|
| 24 |
+
$instance = Mage::getModel("sales/order")->load($id);
|
| 25 |
+
array_push($this->_collectionOrders, $instance);
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
/**
|
| 30 |
+
* @author Manas Kanti Dey
|
| 31 |
+
* @desc
|
| 32 |
+
* It generate the xml for upload with mapping array
|
| 33 |
+
*
|
| 34 |
+
* @param
|
| 35 |
+
* $mapping array
|
| 36 |
+
*
|
| 37 |
+
* @return void
|
| 38 |
+
*/
|
| 39 |
+
private function _prepareData( $mapping )
|
| 40 |
+
{
|
| 41 |
+
$this->_contentXML = "";
|
| 42 |
+
$product = array();
|
| 43 |
+
foreach( $this->_collectionOrders as $order ) {
|
| 44 |
+
|
| 45 |
+
$lineItem = "";
|
| 46 |
+
|
| 47 |
+
// iterate on the itens in template
|
| 48 |
+
$orderItems = $order->getItemsCollection();
|
| 49 |
+
$itemInc = 0;
|
| 50 |
+
foreach ( $orderItems as $item )
|
| 51 |
+
{
|
| 52 |
+
if ( ! $item->isDummy() ) {
|
| 53 |
+
$single_product = $this->getOrderItemValues( $item, $order, ++$itemInc );
|
| 54 |
+
foreach( $single_product as $key => $val ){
|
| 55 |
+
$product[ $key ][] = $val;
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
}
|
| 60 |
+
$shippingAddress = !$order->getIsVirtual() ? $order->getShippingAddress() : null;
|
| 61 |
+
$billingAddress = $order->getBillingAddress();
|
| 62 |
+
|
| 63 |
+
foreach( $mapping as $fields ) {
|
| 64 |
+
|
| 65 |
+
// order.increment_id => $order->getData("increment_id");
|
| 66 |
+
// getAttributeByCode($attribute, $order)
|
| 67 |
+
$item = "";
|
| 68 |
+
$magento_field = $fields[ "magento_field" ];
|
| 69 |
+
$cg_field = $fields[ "cg_field" ];
|
| 70 |
+
$pos = strpos( $magento_field, "_" );
|
| 71 |
+
$object = strtolower( substr( $magento_field, 0, $pos ) );
|
| 72 |
+
$attribute = substr( $magento_field, $pos+1, strlen( $magento_field ) );
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
$itemInc = 0;
|
| 77 |
+
|
| 78 |
+
switch( $object ) {
|
| 79 |
+
|
| 80 |
+
case "order":
|
| 81 |
+
$item = $order->getData( $attribute );
|
| 82 |
+
break;
|
| 83 |
+
|
| 84 |
+
case "customer":
|
| 85 |
+
if ($attribute=="name") {
|
| 86 |
+
$item = $order->getData("customer_firstname") . " " .
|
| 87 |
+
$order->getData("customer_lastname");
|
| 88 |
+
} else {
|
| 89 |
+
$item = $order->getData("customer_{$attribute}");
|
| 90 |
+
}
|
| 91 |
+
break;
|
| 92 |
+
|
| 93 |
+
case "shipping":
|
| 94 |
+
|
| 95 |
+
if (strpos($attribute, "street_")!==false) {
|
| 96 |
+
$street = explode("_", $attribute);
|
| 97 |
+
$item = $shippingAddress->getStreet( $street[1] );
|
| 98 |
+
} else {
|
| 99 |
+
$item = $shippingAddress->getData( $attribute );
|
| 100 |
+
}
|
| 101 |
+
break;
|
| 102 |
+
|
| 103 |
+
case "billing":
|
| 104 |
+
if (strpos($attribute, "street_")!==false) {
|
| 105 |
+
$street = explode("_", $attribute);
|
| 106 |
+
$item = $billingAddress->getStreet( $street[1] );
|
| 107 |
+
} else {
|
| 108 |
+
$item = $billingAddress->getData( $attribute );
|
| 109 |
+
}
|
| 110 |
+
break;
|
| 111 |
+
|
| 112 |
+
case "item":
|
| 113 |
+
if ( array_key_exists( $attribute, $product ) ) {
|
| 114 |
+
$item = implode( ";", $product[ $attribute ] );
|
| 115 |
+
} else {
|
| 116 |
+
$item = "";
|
| 117 |
+
}
|
| 118 |
+
break;
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
$lineItem .= "<{$cg_field}>{$item}</{$cg_field}>";
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
// endline
|
| 125 |
+
$this->_contentXML .= "<RECORD>{$lineItem}</RECORD>";
|
| 126 |
+
}
|
| 127 |
+
}
|
| 128 |
+
|
| 129 |
+
protected function getOrderItemValues( $item, $order, $itemInc=1 )
|
| 130 |
+
{
|
| 131 |
+
return array(
|
| 132 |
+
'increment' => $itemInc,
|
| 133 |
+
'name' => $item->getName(),
|
| 134 |
+
'status' => $item->getStatus(),
|
| 135 |
+
'sku' => $this->getItemSku($item),
|
| 136 |
+
'option' => $this->getItemOptions($item),
|
| 137 |
+
'original_price' => $this->formatPrice($item->getOriginalPrice(), $order),
|
| 138 |
+
'price' => $this->formatPrice($item->getData('price'), $order),
|
| 139 |
+
'qty_ordered' => (int)$item->getQtyOrdered(),
|
| 140 |
+
'qty_invoiced' => (int)$item->getQtyInvoiced(),
|
| 141 |
+
'qty_shipped' => (int)$item->getQtyShipped(),
|
| 142 |
+
'qty_canceled' => (int)$item->getQtyCanceled(),
|
| 143 |
+
'qty_refunded' => (int)$item->getQtyRefunded(),
|
| 144 |
+
'tax' => $this->formatPrice($item->getTaxAmount(), $order),
|
| 145 |
+
'discount' => $this->formatPrice($item->getDiscountAmount(), $order),
|
| 146 |
+
'total' => $this->formatPrice($this->getItemTotal($item), $order)
|
| 147 |
+
);
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
/**
|
| 151 |
+
* @author Manas Kanti Dey
|
| 152 |
+
* @desc
|
| 153 |
+
* It upload the on CustomerGauge using apiCall method
|
| 154 |
+
*
|
| 155 |
+
* @param
|
| 156 |
+
* $mapping array
|
| 157 |
+
*
|
| 158 |
+
* @return void
|
| 159 |
+
*/
|
| 160 |
+
public function call()
|
| 161 |
+
{
|
| 162 |
+
$this->_loadOrderObjects();
|
| 163 |
+
$model = Mage::getModel( 'import/cgmapping' );
|
| 164 |
+
$mapping = $model->getCollection()->getData();
|
| 165 |
+
$this->_prepareData( $mapping );
|
| 166 |
+
$post_xml = '<?xml version="1.0" encoding="utf-8"?><RECORDS>' . $this->_contentXML . '</RECORDS>';
|
| 167 |
+
|
| 168 |
+
$config_data = Mage::getStoreConfig('import/config');
|
| 169 |
+
$is_prodcution_active = $config_data[ "cg_activepro" ];
|
| 170 |
+
if( $is_prodcution_active )
|
| 171 |
+
$api_url = $config_data[ "cg_prourl" ];
|
| 172 |
+
else {
|
| 173 |
+
$api_url = $config_data[ "cg_devurl" ];
|
| 174 |
+
}
|
| 175 |
+
$api_key = $config_data[ "cg_apikey" ];
|
| 176 |
+
$api_url = $api_url . "upload_record.json?api_key=$api_key";
|
| 177 |
+
$json_data = Mage::helper("import")->apiCall( $api_url, $post_xml );
|
| 178 |
+
return $json_data;
|
| 179 |
+
}
|
| 180 |
+
|
| 181 |
+
protected function getItemSku($item)
|
| 182 |
+
{
|
| 183 |
+
if ($item->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
|
| 184 |
+
return $item->getProductOptionByCode('simple_sku');
|
| 185 |
+
}
|
| 186 |
+
return $item->getSku();
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
protected function getItemOptions($item)
|
| 190 |
+
{
|
| 191 |
+
$options = '';
|
| 192 |
+
if ($orderOptions = $this->getItemOrderOptions($item)) {
|
| 193 |
+
foreach ($orderOptions as $_option) {
|
| 194 |
+
if (strlen($options) > 0) {
|
| 195 |
+
$options .= ', ';
|
| 196 |
+
}
|
| 197 |
+
$options .= $_option['label'].': '.$_option['value'];
|
| 198 |
+
}
|
| 199 |
+
}
|
| 200 |
+
return $options;
|
| 201 |
+
}
|
| 202 |
+
|
| 203 |
+
protected function getItemOrderOptions($item)
|
| 204 |
+
{
|
| 205 |
+
$result = array();
|
| 206 |
+
if ($options = $item->getProductOptions()) {
|
| 207 |
+
if (isset($options['options'])) {
|
| 208 |
+
$result = array_merge($result, $options['options']);
|
| 209 |
+
}
|
| 210 |
+
if (isset($options['additional_options'])) {
|
| 211 |
+
$result = array_merge($result, $options['additional_options']);
|
| 212 |
+
}
|
| 213 |
+
if (!empty($options['attributes_info'])) {
|
| 214 |
+
$result = array_merge($options['attributes_info'], $result);
|
| 215 |
+
}
|
| 216 |
+
}
|
| 217 |
+
return $result;
|
| 218 |
+
}
|
| 219 |
+
|
| 220 |
+
protected function getItemTotal($item)
|
| 221 |
+
{
|
| 222 |
+
return $item->getRowTotal() - $item->getDiscountAmount() + $item->getTaxAmount() + $item->getWeeeTaxAppliedRowAmount();
|
| 223 |
+
}
|
| 224 |
+
|
| 225 |
+
protected function formatPrice($price, $formatter)
|
| 226 |
+
{
|
| 227 |
+
return $formatter->formatPriceTxt($price);
|
| 228 |
+
}
|
| 229 |
+
|
| 230 |
+
}
|
app/code/community/Customergauge/Import/controllers/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/controllers/Adminhtml/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/controllers/Adminhtml/SyncController.php
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @category Customergauge
|
| 4 |
+
* @package Customergauge_Import
|
| 5 |
+
* @author Manas Kanti Dey
|
| 6 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Customergauge_Import_Adminhtml_SyncController extends Mage_Adminhtml_Controller_Action
|
| 10 |
+
{
|
| 11 |
+
public function indexAction(){
|
| 12 |
+
$this->loadLayout()
|
| 13 |
+
->_setActiveMenu( 'Customergauge_Import/adminhtml_sync' )
|
| 14 |
+
->_addContent( $this->getLayout()->createBlock( 'import/sync_edit' ) )
|
| 15 |
+
->renderLayout();
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
/**
|
| 19 |
+
* @author Manas Kanti Dey
|
| 20 |
+
* @desc
|
| 21 |
+
* Save CustomerGauge Mapping inside magento database.
|
| 22 |
+
* Redirect to index page.
|
| 23 |
+
*
|
| 24 |
+
*/
|
| 25 |
+
public function saveAction()
|
| 26 |
+
{
|
| 27 |
+
|
| 28 |
+
$model = Mage::getModel( 'import/cgmapping' );
|
| 29 |
+
|
| 30 |
+
$old_data = $model->getCollection()->getData();
|
| 31 |
+
$mapping = array();
|
| 32 |
+
foreach( $old_data as $item ){
|
| 33 |
+
$mapping[ $item[ "id" ] ] = $item[ "magento_field" ];
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
$templateLine = Mage::helper("import")->loadTemplate();
|
| 37 |
+
foreach( $templateLine as $key => $val ){
|
| 38 |
+
|
| 39 |
+
$post_val = $this->getRequest()->getPost( $key );
|
| 40 |
+
$post_val = trim( $post_val );
|
| 41 |
+
if( $post_val != "" ){
|
| 42 |
+
|
| 43 |
+
$id = array_search( $key, $mapping );
|
| 44 |
+
$data = array( 'magento_field'=> trim( $key ), 'cg_field'=> trim( $post_val ) );
|
| 45 |
+
if( $id !== FALSE ){
|
| 46 |
+
$model->load($id)->addData( $data );
|
| 47 |
+
$model->setId($id)->save();
|
| 48 |
+
} else {
|
| 49 |
+
$model->setData( $data );
|
| 50 |
+
$model->save();
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
} else {
|
| 54 |
+
|
| 55 |
+
$id = array_search( $key, $mapping );
|
| 56 |
+
if( $id != "" ){
|
| 57 |
+
$model->setId($id)->delete();
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
}
|
| 63 |
+
$this->_getSession()->addSuccess( $this->__('Mapping have been saved') );
|
| 64 |
+
$this->_redirect('*/*/index');
|
| 65 |
+
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
?>
|
app/code/community/Customergauge/Import/controllers/IndexController.php
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento CustomerGauge Import Module
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 8 |
+
* of this software and associated documentation files (the "Software"), to deal
|
| 9 |
+
* in the Software without restriction, including without limitation the rights
|
| 10 |
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 11 |
+
* copies of the Software, and to permit persons to whom the Software is
|
| 12 |
+
* furnished to do so, subject to the following conditions:
|
| 13 |
+
*
|
| 14 |
+
* The above copyright notice and this permission notice shall be included in
|
| 15 |
+
* all copies or substantial portions of the Software.
|
| 16 |
+
*
|
| 17 |
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 18 |
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 19 |
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 20 |
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 21 |
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 22 |
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
| 23 |
+
* THE SOFTWARE.
|
| 24 |
+
*
|
| 25 |
+
* @category Customergauge
|
| 26 |
+
* @package Customergauge_Import
|
| 27 |
+
* @copyright Copyright (c) 2013 CustomerGauge (http://www.customergauge.com)
|
| 28 |
+
* @license http://opensource.org/licenses/mit-license.php The MIT License
|
| 29 |
+
* @author Manas Kanti Dey <manas.dey@directness.net>
|
| 30 |
+
* */
|
| 31 |
+
require_once 'Mage/Adminhtml/controllers/Sales/OrderController.php';
|
| 32 |
+
class Customergauge_Import_IndexController
|
| 33 |
+
extends Mage_Adminhtml_Sales_OrderController {
|
| 34 |
+
|
| 35 |
+
public function indexAction()
|
| 36 |
+
{
|
| 37 |
+
$post = $this->getRequest()->getPost();
|
| 38 |
+
$orderIdsList = $post['order_ids'];
|
| 39 |
+
|
| 40 |
+
$CustomergaugeImport = new Customergauge_Import_Service_ImportData( $orderIdsList );
|
| 41 |
+
$api_response = $CustomergaugeImport->call();
|
| 42 |
+
$api_reponse_array = json_decode( $api_response, true );
|
| 43 |
+
|
| 44 |
+
if( $api_reponse_array[ 'IsSuccess' ] == 1 ){
|
| 45 |
+
|
| 46 |
+
$i=0;
|
| 47 |
+
$response_data = $api_reponse_array[ 'Data' ][ 'log' ];
|
| 48 |
+
foreach( $orderIdsList as $orderId){
|
| 49 |
+
|
| 50 |
+
if( ! $response_data[$i]['error'] ){
|
| 51 |
+
|
| 52 |
+
$data = array('customergauge_import'=>'Imported');
|
| 53 |
+
$orderModel = Mage::getModel('sales/order')->load($orderId)->addData($data);
|
| 54 |
+
try {
|
| 55 |
+
$orderModel->setId($orderId)->save();
|
| 56 |
+
} catch (Exception $e){}
|
| 57 |
+
}
|
| 58 |
+
$i++;
|
| 59 |
+
|
| 60 |
+
}
|
| 61 |
+
$successCount = $api_reponse_array[ 'Data' ][ 'total_successfull_record' ];
|
| 62 |
+
$unsuccessCount = $api_reponse_array[ 'Data' ][ 'total_unsuccessfull_record' ];
|
| 63 |
+
if( !empty( $successCount ) && $successCount > 0 )
|
| 64 |
+
$this->_getSession()->addSuccess( $this->__( '%s order(s) have been imported', $successCount ) );
|
| 65 |
+
if( !empty( $unsuccessCount ) && $unsuccessCount > 0 )
|
| 66 |
+
$this->_getSession()->addError( $this->__( '%s order(s) failed on import', $unsuccessCount ) );
|
| 67 |
+
|
| 68 |
+
} else {
|
| 69 |
+
$this->_getSession()->addError( $this->__( $api_reponse_array[ "ExceptionMessage" ] ) );
|
| 70 |
+
}
|
| 71 |
+
$this->_redirect( "adminhtml/sales_order" );
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
}
|
app/code/community/Customergauge/Import/etc/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/etc/config.xml
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Customergauge_Import>
|
| 5 |
+
<version>1.1.1</version>
|
| 6 |
+
</Customergauge_Import>
|
| 7 |
+
</modules>
|
| 8 |
+
<global>
|
| 9 |
+
<models>
|
| 10 |
+
<import>
|
| 11 |
+
<class>Customergauge_Import_Model</class>
|
| 12 |
+
<resourceModel>import_mysql4</resourceModel>
|
| 13 |
+
</import>
|
| 14 |
+
<import_mysql4>
|
| 15 |
+
<class>Customergauge_Import_Model_Mysql4</class>
|
| 16 |
+
<entities>
|
| 17 |
+
<cgmapping>
|
| 18 |
+
<table>cgmapping</table>
|
| 19 |
+
</cgmapping>
|
| 20 |
+
</entities>
|
| 21 |
+
</import_mysql4>
|
| 22 |
+
</models>
|
| 23 |
+
<resources>
|
| 24 |
+
<import_setup>
|
| 25 |
+
<setup>
|
| 26 |
+
<module>Customergauge_Import</module>
|
| 27 |
+
</setup>
|
| 28 |
+
<connection>
|
| 29 |
+
<use>core_setup</use>
|
| 30 |
+
</connection>
|
| 31 |
+
</import_setup>
|
| 32 |
+
<import_write>
|
| 33 |
+
<connection>
|
| 34 |
+
<use>core_write</use>
|
| 35 |
+
</connection>
|
| 36 |
+
</import_write>
|
| 37 |
+
<import_read>
|
| 38 |
+
<connection>
|
| 39 |
+
<use>core_read</use>
|
| 40 |
+
</connection>
|
| 41 |
+
</import_read>
|
| 42 |
+
</resources>
|
| 43 |
+
<blocks>
|
| 44 |
+
<import>
|
| 45 |
+
<class>Customergauge_Import_Block</class>
|
| 46 |
+
</import>
|
| 47 |
+
<adminhtml>
|
| 48 |
+
<rewrite>
|
| 49 |
+
<sales_order_grid>Customergauge_Import_Block_Sales_Order_Grid</sales_order_grid>
|
| 50 |
+
</rewrite>
|
| 51 |
+
</adminhtml>
|
| 52 |
+
</blocks>
|
| 53 |
+
<helpers>
|
| 54 |
+
<import>
|
| 55 |
+
<class>Customergauge_Import_Helper</class>
|
| 56 |
+
</import>
|
| 57 |
+
</helpers>
|
| 58 |
+
<events>
|
| 59 |
+
<sales_order_save_commit_after>
|
| 60 |
+
<observers>
|
| 61 |
+
<customergauge_order_success>
|
| 62 |
+
<type>singleton</type>
|
| 63 |
+
<class>import/Observer</class>
|
| 64 |
+
<method>hookToOrderSaveEvent</method>
|
| 65 |
+
</customergauge_order_success>
|
| 66 |
+
</observers>
|
| 67 |
+
</sales_order_save_commit_after>
|
| 68 |
+
</events>
|
| 69 |
+
</global>
|
| 70 |
+
<admin>
|
| 71 |
+
<routers>
|
| 72 |
+
<Customergauge_Import>
|
| 73 |
+
<use>admin</use>
|
| 74 |
+
<args>
|
| 75 |
+
<module>Customergauge_Import</module>
|
| 76 |
+
<frontName>customergauge_import</frontName>
|
| 77 |
+
</args>
|
| 78 |
+
</Customergauge_Import>
|
| 79 |
+
</routers>
|
| 80 |
+
</admin>
|
| 81 |
+
<adminhtml>
|
| 82 |
+
<events>
|
| 83 |
+
<adminhtml_block_html_before>
|
| 84 |
+
<observers>
|
| 85 |
+
<option_in_import>
|
| 86 |
+
<class>import/Observer</class>
|
| 87 |
+
<method>includeOption</method>
|
| 88 |
+
</option_in_import>
|
| 89 |
+
</observers>
|
| 90 |
+
</adminhtml_block_html_before>
|
| 91 |
+
</events>
|
| 92 |
+
<menu>
|
| 93 |
+
<Customergauge_Import translate="title" module="import" >
|
| 94 |
+
<title>CustomerGauge</title>
|
| 95 |
+
<sort_order>110</sort_order>
|
| 96 |
+
<children>
|
| 97 |
+
<import translate="title" module="import">
|
| 98 |
+
<title>Field Mapping</title>
|
| 99 |
+
<action>Customergauge_Import/adminhtml_sync</action>
|
| 100 |
+
<sort_order>0</sort_order>
|
| 101 |
+
</import>
|
| 102 |
+
<settings translate="title" module="import">
|
| 103 |
+
<title>Settings</title>
|
| 104 |
+
<action>adminhtml/system_config/edit/section/import/</action>
|
| 105 |
+
<sort_order>1</sort_order>
|
| 106 |
+
</settings>
|
| 107 |
+
</children>
|
| 108 |
+
</Customergauge_Import>
|
| 109 |
+
</menu>
|
| 110 |
+
<acl>
|
| 111 |
+
<resources>
|
| 112 |
+
<all>
|
| 113 |
+
<title>Allow Everything</title>
|
| 114 |
+
</all>
|
| 115 |
+
<admin>
|
| 116 |
+
<children>
|
| 117 |
+
<system>
|
| 118 |
+
<children>
|
| 119 |
+
<config>
|
| 120 |
+
<children>
|
| 121 |
+
<import>
|
| 122 |
+
<title>CustomerGauge Import</title>
|
| 123 |
+
</import>
|
| 124 |
+
</children>
|
| 125 |
+
</config>
|
| 126 |
+
</children>
|
| 127 |
+
</system>
|
| 128 |
+
</children>
|
| 129 |
+
</admin>
|
| 130 |
+
</resources>
|
| 131 |
+
</acl>
|
| 132 |
+
</adminhtml>
|
| 133 |
+
<default>
|
| 134 |
+
<import>
|
| 135 |
+
<config>
|
| 136 |
+
<cg_transactional>0</cg_transactional>
|
| 137 |
+
<cg_orderstatusmagento>complete</cg_orderstatusmagento>
|
| 138 |
+
<cg_prourl>https://www.cg-express.com/an/api/magento/</cg_prourl>
|
| 139 |
+
<cg_devurl>http://www.development-cg-express.com/an/api/magento/</cg_devurl>
|
| 140 |
+
<cg_activepro>0</cg_activepro>
|
| 141 |
+
</config>
|
| 142 |
+
</import>
|
| 143 |
+
</default>
|
| 144 |
+
</config>
|
app/code/community/Customergauge/Import/etc/system.xml
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<tabs>
|
| 4 |
+
<Customergauge translate="label">
|
| 5 |
+
<label>CUSTOMERGAUGE IMPORT</label>
|
| 6 |
+
<sort_order>1000000</sort_order>
|
| 7 |
+
</Customergauge>
|
| 8 |
+
</tabs>
|
| 9 |
+
<sections>
|
| 10 |
+
<import translate="label">
|
| 11 |
+
<label>CustomerGauge Settings</label>
|
| 12 |
+
<tab>Customergauge</tab>
|
| 13 |
+
<frontend_type>text</frontend_type>
|
| 14 |
+
<sort_order>1010</sort_order>
|
| 15 |
+
<show_in_default>1</show_in_default>
|
| 16 |
+
<show_in_website>1</show_in_website>
|
| 17 |
+
<show_in_store>1</show_in_store>
|
| 18 |
+
<groups>
|
| 19 |
+
<config translate="label">
|
| 20 |
+
<label>General Settings</label>
|
| 21 |
+
<frontend_type>text</frontend_type>
|
| 22 |
+
<sort_order>10</sort_order>
|
| 23 |
+
<show_in_default>1</show_in_default>
|
| 24 |
+
<show_in_website>1</show_in_website>
|
| 25 |
+
<show_in_store>1</show_in_store>
|
| 26 |
+
<fields>
|
| 27 |
+
<cg_apikey translate="label">
|
| 28 |
+
<label>API KEY</label>
|
| 29 |
+
<frontend_type>text</frontend_type>
|
| 30 |
+
<comment>The API key can be found in the Admin section of CustomerGauge</comment>
|
| 31 |
+
<sort_order>10</sort_order>
|
| 32 |
+
<show_in_default>1</show_in_default>
|
| 33 |
+
<show_in_website>1</show_in_website>
|
| 34 |
+
<show_in_store>1</show_in_store>
|
| 35 |
+
</cg_apikey>
|
| 36 |
+
<cg_transactional translate="label">
|
| 37 |
+
<label>Import Type</label>
|
| 38 |
+
<frontend_type>select</frontend_type>
|
| 39 |
+
<source_model>import/system_config_transactional</source_model>
|
| 40 |
+
<comment>"Manual" select and send records as needed to CustomerGauge from Sales Report.<![CDATA[<br/>]]>"Automatic" post-order Sends records at end of each transaction to CustomerGauge.</comment>
|
| 41 |
+
<sort_order>20</sort_order>
|
| 42 |
+
<show_in_default>1</show_in_default>
|
| 43 |
+
<show_in_website>0</show_in_website>
|
| 44 |
+
<show_in_store>0</show_in_store>
|
| 45 |
+
</cg_transactional>
|
| 46 |
+
<cg_orderstatusmagento translate="label">
|
| 47 |
+
<label>Order Status</label>
|
| 48 |
+
<frontend_type>select</frontend_type>
|
| 49 |
+
<source_model>import/system_config_orderstatus</source_model>
|
| 50 |
+
<comment></comment>
|
| 51 |
+
<sort_order>25</sort_order>
|
| 52 |
+
<show_in_default>1</show_in_default>
|
| 53 |
+
<show_in_website>0</show_in_website>
|
| 54 |
+
<show_in_store>0</show_in_store>
|
| 55 |
+
</cg_orderstatusmagento>
|
| 56 |
+
<cg_prourl translate="label">
|
| 57 |
+
<label>Production API URL</label>
|
| 58 |
+
<frontend_type>text</frontend_type>
|
| 59 |
+
<sort_order>30</sort_order>
|
| 60 |
+
<show_in_default>1</show_in_default>
|
| 61 |
+
<show_in_website>1</show_in_website>
|
| 62 |
+
<show_in_store>1</show_in_store>
|
| 63 |
+
</cg_prourl>
|
| 64 |
+
<cg_devurl translate="label">
|
| 65 |
+
<label>Development API URL</label>
|
| 66 |
+
<frontend_type>text</frontend_type>
|
| 67 |
+
<sort_order>40</sort_order>
|
| 68 |
+
<show_in_default>1</show_in_default>
|
| 69 |
+
<show_in_website>1</show_in_website>
|
| 70 |
+
<show_in_store>1</show_in_store>
|
| 71 |
+
</cg_devurl>
|
| 72 |
+
<cg_activepro translate="label">
|
| 73 |
+
<label>Active CustomerGauge System</label>
|
| 74 |
+
<frontend_type>select</frontend_type>
|
| 75 |
+
<source_model>import/system_config_upload</source_model>
|
| 76 |
+
<comment>We recommend testing in the CustomerGauge development platform before you set live in Production.</comment>
|
| 77 |
+
<sort_order>50</sort_order>
|
| 78 |
+
<show_in_default>1</show_in_default>
|
| 79 |
+
<show_in_website>0</show_in_website>
|
| 80 |
+
<show_in_store>0</show_in_store>
|
| 81 |
+
</cg_activepro>
|
| 82 |
+
</fields>
|
| 83 |
+
</config>
|
| 84 |
+
</groups>
|
| 85 |
+
</import>
|
| 86 |
+
</sections>
|
| 87 |
+
</config>
|
| 88 |
+
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
|
app/code/community/Customergauge/Import/sql/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/sql/import_setup/.DS_Store
ADDED
|
Binary file
|
app/code/community/Customergauge/Import/sql/import_setup/mysql4-install-1.1.1.php
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$installer = $this;
|
| 3 |
+
$installer->startSetup();
|
| 4 |
+
$installer->run("CREATE TABLE IF NOT EXISTS {$this->getTable('cgmapping')} (
|
| 5 |
+
`id` int(10) unsigned NOT NULL auto_increment,
|
| 6 |
+
`magento_field` varchar(250) NOT NULL default '',
|
| 7 |
+
`cg_field` varchar(250) NOT NULL default '',
|
| 8 |
+
PRIMARY KEY (`id`)
|
| 9 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;");
|
| 10 |
+
$installer->run("
|
| 11 |
+
INSERT INTO {$this->getTable('cgmapping')} VALUES (null,'Order_created_at','date_order');
|
| 12 |
+
");
|
| 13 |
+
$installer->run("
|
| 14 |
+
INSERT INTO {$this->getTable('cgmapping')} VALUES (null,'Order_customer_firstname','first_name');
|
| 15 |
+
");
|
| 16 |
+
$installer->run("
|
| 17 |
+
INSERT INTO {$this->getTable('cgmapping')} VALUES (null,'Order_customer_lastname','last_name');
|
| 18 |
+
");
|
| 19 |
+
$installer->run("
|
| 20 |
+
INSERT INTO {$this->getTable('cgmapping')} VALUES (null,'Order_customer_email','email');
|
| 21 |
+
");
|
| 22 |
+
$installer->run("ALTER TABLE `{$installer->getTable('sales/order')}` ADD `customergauge_import` VARCHAR(255) DEFAULT 'Not Imported' ;");
|
| 23 |
+
$installer->run("ALTER TABLE `{$installer->getTable('sales/order_grid')}` ADD `customergauge_import` VARCHAR(255) DEFAULT 'Not Imported' ;");
|
| 24 |
+
$installer->endSetup();
|
| 25 |
+
?>
|
app/design/adminhtml/default/default/layout/customergauge.xml
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<layout>
|
| 3 |
+
<import_sync>
|
| 4 |
+
<reference name="content">
|
| 5 |
+
<block type="import/sync" name="sync"></block>
|
| 6 |
+
</reference>
|
| 7 |
+
</import_sync>
|
| 8 |
+
</layout>
|
app/design/adminhtml/default/default/template/customergauge/.DS_Store
ADDED
|
Binary file
|
app/design/adminhtml/default/default/template/customergauge/sync/.DS_Store
ADDED
|
Binary file
|
app/design/adminhtml/default/default/template/customergauge/sync/edit.phtml
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div class="content-header">
|
| 2 |
+
<table cellspacing="0">
|
| 3 |
+
<tr>
|
| 4 |
+
<td><h3><?php echo Mage::helper('import')->__($this->getTitle()) ?></h3></td>
|
| 5 |
+
<td class="form-buttons"><?php echo $this->getSaveButtonHtml() ?></td>
|
| 6 |
+
</tr>
|
| 7 |
+
</table>
|
| 8 |
+
</div>
|
| 9 |
+
<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="customgergauge_sync_form" enctype="multipart/form-data">
|
| 10 |
+
<?php echo $this->getBlockHtml('formkey')?>
|
| 11 |
+
<?php if($this->requiredDataExists()): ?>
|
| 12 |
+
<?php echo $this->getChildHtml('form') ?>
|
| 13 |
+
<div class="entry-edit">
|
| 14 |
+
<div class="entry-edit-head">
|
| 15 |
+
<h4 class="icon-head head-edit-form fieldset-legend"><?php echo $this->__('CustomerGauge Field Mapping') ?></h4>
|
| 16 |
+
</div>
|
| 17 |
+
<fieldset id="catalog">
|
| 18 |
+
<table cellspacing="0" class="form-list">
|
| 19 |
+
<tbody>
|
| 20 |
+
<?php
|
| 21 |
+
$cg_field_list = $this->getCustomergaugeField();
|
| 22 |
+
$cg_mapping = $this->getCgMapping();
|
| 23 |
+
$magento_field = $this->getMagentoField();
|
| 24 |
+
?>
|
| 25 |
+
<?php foreach ( $magento_field as $key => $val ): ?>
|
| 26 |
+
<tr>
|
| 27 |
+
<td class="label"><label><?php echo $val ?></label></td>
|
| 28 |
+
<td class="value">
|
| 29 |
+
<?php $select_cg_field = $this->CheckSlected( $cg_mapping, $key )?>
|
| 30 |
+
<select name="<?php echo $key?>">
|
| 31 |
+
<option value=""> - Select CustomerGauge Field - </option>
|
| 32 |
+
<?php foreach( $cg_field_list as $cg_field_key => $cg_field ):
|
| 33 |
+
$select = ( $select_cg_field == $cg_field )?"selected":"";?>
|
| 34 |
+
<option value="<?php echo $cg_field;?>" <?php echo $select;?> ><?php echo $cg_field;?></option>
|
| 35 |
+
<?php endforeach; ?>
|
| 36 |
+
</select>
|
| 37 |
+
</td>
|
| 38 |
+
<td><small> </small></td>
|
| 39 |
+
</tr>
|
| 40 |
+
<?php endforeach; ?>
|
| 41 |
+
</tbody>
|
| 42 |
+
</table>
|
| 43 |
+
</fieldset>
|
| 44 |
+
</div>
|
| 45 |
+
<?php else:
|
| 46 |
+
echo 'Please fill all required data under CustomerGauge->Settings.';
|
| 47 |
+
endif;
|
| 48 |
+
?>
|
| 49 |
+
</form>
|
app/etc/modules/Customerauge_Import.xml
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<config>
|
| 2 |
+
<modules>
|
| 3 |
+
<Customergauge_Import>
|
| 4 |
+
<active>true</active>
|
| 5 |
+
<codePool>community</codePool>
|
| 6 |
+
</Customergauge_Import>
|
| 7 |
+
</modules>
|
| 8 |
+
</config>
|
package.xml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>CustomerGauge_Export_Integration</name>
|
| 4 |
+
<version>1.1.1</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
+
<license uri="http://opensource.org/licenses/mit-license.php">MIT License</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>CustomerGauge Import sends order information of the Magento to CustomeGauge Platform.</summary>
|
| 10 |
+
<description>There are two ways to send records in CustomerGauge.
|
| 11 |
+
- Automatic Sending Sales Order to CustomerGauge
|
| 12 |
+
- Manually selected Sales Order to CustomerGauge</description>
|
| 13 |
+
<notes>- Option to choose your order to send on CustomerGauge System.
|
| 14 |
+
- Save CustomerGauge and Magento field mapping.
|
| 15 |
+
- Option to filter sales order by CutomerGauge Import.
|
| 16 |
+
- API configuration options added.on CustomerGauge Setting.</notes>
|
| 17 |
+
<authors><author><name>Manas Kanti Dey</name><user>manasdey</user><email>manas.dey@directness.net</email></author></authors>
|
| 18 |
+
<date>2013-09-30</date>
|
| 19 |
+
<time>14:42:45</time>
|
| 20 |
+
<contents><target name="magecommunity"><dir name="Customergauge"><dir name="Import"><dir name="Block"><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="4e5a1a585d7a768bfa0e1d78546d32c8"/><file name=".DS_Store" hash="87db6efe156de8b1eea42f5ffbd01f3b"/></dir><file name=".DS_Store" hash="70301d9923441a7b7b94ed4cb592b494"/></dir><dir name="Sync"><file name="Edit.php" hash="789cc783325888a73131cfcf4007ce6a"/><file name=".DS_Store" hash="6ae83e821e6b26d880bf2d42d95322ba"/></dir><file name=".DS_Store" hash="2ea0965836cee66e249b546d5bd66951"/></dir><dir name="Helper"><file name="Data.php" hash="46119a5f86e2adff5167c8e7e532e5f5"/><file name=".DS_Store" hash="ab8ec9291ca4885b3d88edf43f8a944e"/></dir><dir name="Model"><file name="Cgmapping.php" hash="6c4ce5d0a2973c9af4b5fd6b23583a7a"/><dir name="Mysql4"><dir name="Cgmapping"><file name="Collection.php" hash="50e1997f017e5201526646fcfd6effd2"/><file name=".DS_Store" hash="cb9b1bbc3e6cd5c1087ac49d254adece"/></dir><file name="Cgmapping.php" hash="165673aa88d329cd0d670cd6a9f42ba4"/><file name=".DS_Store" hash="7ba1aad10a0eb1cedabb68ca888bc487"/></dir><file name="Observer.php" hash="19eeffcfea1d09ba88ef391a841f26da"/><dir name="System"><dir name="Config"><file name="Orderstatus.php" hash="9cc4e949d99e189af08313c870afe3e0"/><file name="Transactional.php" hash="e5fdcdef49391ef7d900a9b0984fce83"/><file name="Upload.php" hash="6700917fda034c072ac72bcb75ed5ff2"/><file name=".DS_Store" hash="573b89d7172a6d341365e696db6ed511"/></dir><file name=".DS_Store" hash="c907efcd64a9ac3608dbc5ae1008b912"/></dir><file name=".DS_Store" hash="9b06b702f939398f9be628e58faa7669"/></dir><dir name="Service"><file name="ImportData.php" hash="2c04dd248d70e397879cb6ca61e2df96"/><file name=".DS_Store" hash="d8a424427f2383d94a95347f0e53cc2c"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="SyncController.php" hash="cc98e1b4016315b2974b77b761e9f0b5"/><file name=".DS_Store" hash="40b0f7cc5de245fbb4da03d684161e93"/></dir><file name="IndexController.php" hash="b694faa8a6df362a7c3e4368d0ee24fb"/><file name=".DS_Store" hash="0a57ea16bec19d5dab1d9760c9b410dc"/></dir><dir name="etc"><file name="config.xml" hash="3bb2ddc48ccfc7eef275db49d27aa1bb"/><file name="system.xml" hash="54a1698ece99a964ccedde2ce56f6a8c"/><file name=".DS_Store" hash="aa49a79a9cc67525aa643aa80d41968d"/></dir><dir name="sql"><dir name="import_setup"><file name="mysql4-install-1.1.1.php" hash="133088cb1457421eceff4a735732bcde"/><file name=".DS_Store" hash="2fa599641a7bb74797516ad0b510dc56"/></dir><file name=".DS_Store" hash="261362682bd38546488ad38570a85353"/></dir><file name=".DS_Store" hash="c98939c1a6ba046065333de2cb2bac49"/></dir><file name=".DS_Store" hash="d72ebececba4e083c74265c3306e774e"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="customergauge.xml" hash="422ab77fb74c5dd84693f64fda7af475"/></dir><dir name="template"><dir name="customergauge"><dir name="sync"><file name="edit.phtml" hash="21c1698742a90a55413ab0638aabef18"/><file name=".DS_Store" hash="918bcbc5d672135d2e7a4e6d3a59f40c"/></dir><file name=".DS_Store" hash="a768df4bd6466078b17ef8c9869ea4f5"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Customerauge_Import.xml" hash="5700ceea97ddf41d8cf0fcb3c0433659"/></dir></target></contents>
|
| 21 |
+
<compatible/>
|
| 22 |
+
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
| 23 |
+
</package>
|
