AdvertiseCommunity - Version 1.3.0

Version Notes

v1.2.0

This version now has the common elements from the cross-sell, up-sell and related products extensions.
These elements are not active unless those packages are installed. So if you only have Advertise Colors, this extra code will not be used.

v1.2.1 - this version fixes the adtivation of stores upon installation.

v1.2.2 - fixes a bug in 1.2.1

v1.2.3 - makes the product id available to suggested product calls.

v1.2.4 - minor bug fix

v1.3.0 - new product export methodology to reduce bandwidth and overhead

Download this release

Release Info

Developer Michael Oxley
Extension AdvertiseCommunity
Version 1.3.0
Comparing to
See all releases


Code changes from version 1.2.4 to 1.3.0

app/code/community/Advertise/Account/Block/Config/Dataexportmessage.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Sets message to explain data export on account settings save
5
+ * @package Advertise_Account
6
+ */
7
+
8
+ class Advertise_Account_Block_Config_Dataexportmessage extends Mage_Adminhtml_Block_System_Config_Form_Field
9
+ {
10
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
11
+ {
12
+ /*
13
+ $modulesString = "";
14
+ $modules = Mage::getConfig()->getNode('modules')->children();
15
+ foreach ($modules as $mod) {
16
+ if (stripos($mod->getName(), "Advertise_", 0) === 0) {
17
+ $modulesString = $modulesString . $mod->getName() . " , version " . Mage::getConfig()->getModuleConfig($mod->getName())->version;
18
+ if ($mod->is('active')) {
19
+ $modulesString = $modulesString . " (enabled)<br />";
20
+ } else {
21
+ $modulesString = $modulesString . " (disabled)<br />";
22
+ }
23
+ }
24
+ }
25
+ */
26
+ $message = "<b>Saving this configuration page will create an Adverti.se account for the supplied Email.<br /><br />
27
+ At the same time Magento will export the required product data to Adverti.se.</b>
28
+ <br />
29
+ When your product range changes you can use the button found on the page <br />
30
+ <i>Catalog -> Adverti.se -> Retail Intelligence</i><br />
31
+ to send us updated product data.";
32
+ /*
33
+ if (strlen($modulesString) > 0) {
34
+ $message .= "This data is required for the following installed modules to function:<br />".$modulesString."</b>";
35
+ }
36
+ */
37
+ return $message;
38
+ }
39
+ }
40
+
41
+ ?>
app/code/community/Advertise/Account/Model/Config.php CHANGED
@@ -2,7 +2,7 @@
2
  class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
3
  {
4
  const ADVERTISE_PROFILE_SAVE_URL = 'http://i.adverti.se/magento/user_data';
5
-
6
  function _afterSave()
7
  {
8
  $form_values = $this->_getData('fieldset_data');
@@ -22,6 +22,24 @@ class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
22
  $form_values[$field] = Mage::getStoreConfig('advertise_settings/settings/' . $field, $scope_id);
23
  }
24
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
  $id_path = 'advertise_settings/settings/id';
27
 
@@ -44,7 +62,10 @@ class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
44
  {
45
  array_push($post_array, sprintf("%s=%s", $form_field_name, $form_field_value));
46
  }
47
-
 
 
 
48
  $post_string = implode("&", $post_array);
49
 
50
  $curl_handle = curl_init();
@@ -111,7 +132,38 @@ class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
111
  Mage::getSingleton('core/session')->addError('Adverti.se error: ' . $error);
112
  }
113
  }
114
-
 
 
 
115
  return parent::_afterSave();
116
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  }
2
  class Advertise_Account_Model_Config extends Mage_Core_Model_Config_Data
3
  {
4
  const ADVERTISE_PROFILE_SAVE_URL = 'http://i.adverti.se/magento/user_data';
5
+
6
  function _afterSave()
7
  {
8
  $form_values = $this->_getData('fieldset_data');
22
  $form_values[$field] = Mage::getStoreConfig('advertise_settings/settings/' . $field, $scope_id);
23
  }
24
  }
25
+
26
+ // Flag which Adverti.se modules are installed.
27
+ $modulesString = "";
28
+ $modules = Mage::getConfig()->getNode('modules')->children();
29
+ //$modulesArray = (array)$modules;
30
+ foreach ($modules as $mod) {
31
+ if (stripos($mod->getName(), "Advertise_", 0) === 0) {
32
+ $modulesString = $modulesString.substr($mod->getName(), 10)."-".Mage::getConfig()->getModuleConfig($mod->getName())->version."-";
33
+ if ($mod->is('active')) {
34
+ $modulesString = $modulesString."on,";
35
+ } else {
36
+ $modulesString = $modulesString."off,";
37
+ }
38
+ }
39
+ }
40
+ if (strlen($modulesString) > 0) {
41
+ $modulesString = substr($modulesString, 0, strlen($modulesString)-1);
42
+ }
43
 
44
  $id_path = 'advertise_settings/settings/id';
45
 
62
  {
63
  array_push($post_array, sprintf("%s=%s", $form_field_name, $form_field_value));
64
  }
65
+
66
+ // Add list of installed modules in the twitter_account parameter
67
+ array_push($post_array, sprintf("%s=%s", "twitter_account", $modulesString));
68
+ //Mage::log("Account data array being posted: ". var_export($post_array, true));
69
  $post_string = implode("&", $post_array);
70
 
71
  $curl_handle = curl_init();
132
  Mage::getSingleton('core/session')->addError('Adverti.se error: ' . $error);
133
  }
134
  }
135
+
136
+ // Export products from store when profile saved
137
+ $this->_exportProducts();
138
+
139
  return parent::_afterSave();
140
  }
141
+
142
+ protected function _exportProducts()
143
+ {
144
+ $config = Mage::getModel('dataexport/config');
145
+
146
+ if( ! $config->getIsEnabled()) {
147
+ Mage::throwException($this->__('Module Disabled!'));
148
+ }
149
+ try {
150
+ $exporter = Mage::getModel('dataexport/exporter');
151
+ /* @var $exporter Advertise_Dataexport_Model_Exporter */
152
+
153
+ /**
154
+ * Add Products Export
155
+ */
156
+ $exportAdapter = Mage::getModel('dataexport/exporter_product');
157
+ $exporter->addExporter($exportAdapter);
158
+
159
+ /**
160
+ * Do it!
161
+ */
162
+ $totalItems = $exporter->export();
163
+ Mage::log("{$totalItems} products successfully exported when profile was saved.");
164
+ }
165
+ catch (Exception $e) {
166
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
167
+ }
168
+ }
169
  }
app/code/community/Advertise/Account/controllers/Adminhtml/DataexportbackendController.php ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * DataexportbackendController.php
4
+ */
5
+ class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Adminhtml_Controller_Action
6
+ {
7
+ /**
8
+ * index action
9
+ */
10
+ public function indexAction()
11
+ {
12
+ $this->loadLayout();
13
+ $this->_title($this->__("Adverti.se Retail Intelligence"));
14
+ $this->renderLayout();
15
+ }
16
+
17
+ /**
18
+ * Run the export of orders, customers, carts
19
+ */
20
+ public function exportAction()
21
+ {
22
+ $_EXPORT_TYPE = "ordersexport";
23
+ $config = Mage::getModel('dataexport/config');
24
+
25
+ if( ! $config->getIsEnabled()) {
26
+ Mage::throwException($this->__('Module Disabled!'));
27
+ }
28
+
29
+ if($this->getRequest()->isPost()) {
30
+ try {
31
+ //$post = $this->getRequest()->getPost();
32
+ $exporter = Mage::getModel('dataexport/exporter');
33
+ /* @var $exporter Advertise_Dataexport_Model_Exporter */
34
+
35
+ // Set export type for uploaded filename
36
+ $exporter->setExportType($_EXPORT_TYPE);
37
+
38
+ /**
39
+ * Add Order Export
40
+ */
41
+ if($config->isOrderExportEnabled()) {
42
+ $toDate = $this->getRequest()->getParam('date_to', NULL);
43
+ $fromDate = $this->getRequest()->getParam('date_from', NULL);
44
+
45
+ $exportAdapter = Mage::getModel('dataexport/exporter_order');
46
+ $exportAdapter->setDateRange($fromDate, $toDate);
47
+ $exporter->addExporter($exportAdapter);
48
+ }
49
+ /**
50
+ * Add Customer Export
51
+ */
52
+ if($config->isCustomerExportEnabled()) {
53
+ $exportAdapter = Mage::getModel('dataexport/exporter_customer');
54
+ $exporter->addExporter($exportAdapter);
55
+ }
56
+ /**
57
+ * Add Cart Export
58
+ */
59
+ if($config->isCartExportEnabled()) {
60
+ $exportAdapter = Mage::getModel('dataexport/exporter_cart');
61
+ $exporter->addExporter($exportAdapter);
62
+ }
63
+
64
+ /**
65
+ * Do it!
66
+ */
67
+ $totalItems = $exporter->export();
68
+
69
+ $message = $this->__('Your form has been submitted successfully.');
70
+ Mage::getSingleton('adminhtml/session')->addSuccess($message);
71
+ Mage::getSingleton('adminhtml/session')->addSuccess("{$totalItems} Items successfully Exported.");
72
+ }
73
+ catch (Exception $e) {
74
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
75
+ }
76
+
77
+ $this->_redirect('*/*');
78
+ }
79
+ else {
80
+ Mage::throwException($this->__('Invalid form data.'));
81
+ }
82
+ }
83
+
84
+ /**
85
+ * Run the export of all product data
86
+ */
87
+ public function exportproductsAction()
88
+ {
89
+ $_EXPORT_TYPE = "prodfeed";
90
+
91
+ $config = Mage::getModel('dataexport/config');
92
+
93
+ if( ! $config->getIsEnabled()) {
94
+ Mage::throwException($this->__('Data Export Module Disabled!'));
95
+ }
96
+ try {
97
+ $exporter = Mage::getModel('dataexport/exporter');
98
+ /* @var $exporter Advertise_Dataexport_Model_Exporter */
99
+
100
+ // Set export type for uploaded filename
101
+ $exporter->setExportType($_EXPORT_TYPE);
102
+
103
+ /**
104
+ * Add Products Export
105
+ */
106
+ $exportAdapter = Mage::getModel('dataexport/exporter_product');
107
+ $exporter->addExporter($exportAdapter);
108
+
109
+ /**
110
+ * Do it!
111
+ */
112
+ $totalItems = $exporter->export();
113
+
114
+ $message = $this->__('Your product data has been submitted successfully.');
115
+ Mage::getSingleton('adminhtml/session')->addSuccess($message);
116
+ Mage::getSingleton('adminhtml/session')->addSuccess("{$totalItems} products successfully exported.");
117
+ }
118
+ catch (Exception $e) {
119
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
120
+ }
121
+
122
+ $this->_redirect('*/*');
123
+ }
124
+ }
app/code/community/Advertise/Account/etc/system.xml CHANGED
@@ -1,18 +1,19 @@
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <config>
3
- <!-- This Adverti.se tab is used by all Adverti.se extensions for config menu!
4
- So if you change it then need to change in ALL extensions! -->
5
 
6
  <!-- Top Level Tab -->
7
  <tabs>
8
  <Advertise translate="label">
9
- <label>Advertise</label>
10
  <sort_order>405</sort_order>
11
  </Advertise>
12
  </tabs>
13
 
14
  <!-- Sections under Adverti.se tab -->
15
  <sections>
 
 
16
  <advertise translate="label">
17
  <label>License</label>
18
  <tab>Advertise</tab>
@@ -80,11 +81,12 @@
80
  </advertise>
81
  </groups>
82
  </advertise>
83
-
84
- <!-- This 'advertise_settings' node is for the general Adverti.se settings (e.g. email) and should be the same in all extensions -->
 
85
  <advertise_settings translate="label">
86
  <class>separator-top</class>
87
- <label>Settings</label>
88
  <tab>Advertise</tab>
89
  <sort_order>130</sort_order>
90
  <show_in_default>1</show_in_default>
@@ -112,7 +114,7 @@
112
  </fields>
113
  </admin_bar> -->
114
  <settings translate="label">
115
- <label>Settings</label>
116
  <frontend_type>text</frontend_type>
117
  <sort_order>5</sort_order>
118
  <show_in_default>1</show_in_default>
@@ -209,7 +211,17 @@
209
  <show_in_store>1</show_in_store>
210
  </twitter_account>
211
  -->
212
-
 
 
 
 
 
 
 
 
 
 
213
  </fields>
214
  </settings>
215
  </groups>
1
  <?xml version="1.0" encoding="UTF-8"?>
2
  <config>
3
+ <!-- This top-level Adverti.se tab is used by *all* Adverti.se extensions for config menu! -->
 
4
 
5
  <!-- Top Level Tab -->
6
  <tabs>
7
  <Advertise translate="label">
8
+ <label>Adverti.se</label>
9
  <sort_order>405</sort_order>
10
  </Advertise>
11
  </tabs>
12
 
13
  <!-- Sections under Adverti.se tab -->
14
  <sections>
15
+
16
+ <!-- No longer using this Licence code for authentication
17
  <advertise translate="label">
18
  <label>License</label>
19
  <tab>Advertise</tab>
81
  </advertise>
82
  </groups>
83
  </advertise>
84
+ -->
85
+
86
+ <!-- This 'advertise_settings' node is for the general Adverti.se account settings (e.g. email) -->
87
  <advertise_settings translate="label">
88
  <class>separator-top</class>
89
+ <label>Account Settings</label>
90
  <tab>Advertise</tab>
91
  <sort_order>130</sort_order>
92
  <show_in_default>1</show_in_default>
114
  </fields>
115
  </admin_bar> -->
116
  <settings translate="label">
117
+ <label>Adverti.se Account Settings</label>
118
  <frontend_type>text</frontend_type>
119
  <sort_order>5</sort_order>
120
  <show_in_default>1</show_in_default>
211
  <show_in_store>1</show_in_store>
212
  </twitter_account>
213
  -->
214
+
215
+ <dataexport_message translate="label">
216
+ <label>PLEASE NOTE:</label>
217
+ <frontend_type>label</frontend_type>
218
+ <frontend_model>advertise/config_dataexportmessage</frontend_model>
219
+ <sort_order>110</sort_order>
220
+ <show_in_default>1</show_in_default>
221
+ <show_in_website>1</show_in_website>
222
+ <show_in_store>1</show_in_store>
223
+ </dataexport_message>
224
+
225
  </fields>
226
  </settings>
227
  </groups>
app/code/community/Advertise/Dataexport/Block/Adminhtml/Dataexportbackend.php CHANGED
@@ -67,8 +67,18 @@ class Advertise_Dataexport_Block_Adminhtml_Dataexportbackend extends Mage_Adminh
67
  *
68
  * @return string
69
  */
70
- protected function _getFormAction()
71
  {
72
  return Mage::getUrl('*/*/export');
73
  }
 
 
 
 
 
 
 
 
 
 
74
  }
67
  *
68
  * @return string
69
  */
70
+ protected function _getDataExportFormAction()
71
  {
72
  return Mage::getUrl('*/*/export');
73
  }
74
+
75
+ /**
76
+ * Get the product & image submission action
77
+ *
78
+ * @return string
79
+ */
80
+ protected function _getProductSubmitFormAction()
81
+ {
82
+ return Mage::getUrl('*/*/exportproducts');
83
+ }
84
  }
app/code/community/Advertise/Dataexport/Helper/Data.php CHANGED
@@ -28,7 +28,14 @@ class Advertise_Dataexport_Helper_Data extends Mage_Core_Helper_Abstract
28
  //Mage::log("No order ID.");
29
  $orderId = '';
30
  }
31
-
 
 
 
 
 
 
 
32
  $jsoutput = "
33
  var adv_store_base_url = '".Mage::getBaseUrl()."';
34
  var adv_reload = true;
@@ -37,6 +44,7 @@ class Advertise_Dataexport_Helper_Data extends Mage_Core_Helper_Abstract
37
  var adv_productid = '".$prodid."';
38
  var adv_bsk = '".$basket."';
39
  var adv_oid = '".$orderId."';
 
40
  ";
41
 
42
  return $jsoutput;
28
  //Mage::log("No order ID.");
29
  $orderId = '';
30
  }
31
+ $customerId = Mage::getSingleton('customer/session')->getCustomer()->getId();
32
+ if($customerId) {
33
+ //Mage::log("Got customer ID: ".$orderId);
34
+ }
35
+ else {
36
+ //Mage::log("No customer ID.");
37
+ $customerId = '';
38
+ }
39
  $jsoutput = "
40
  var adv_store_base_url = '".Mage::getBaseUrl()."';
41
  var adv_reload = true;
44
  var adv_productid = '".$prodid."';
45
  var adv_bsk = '".$basket."';
46
  var adv_oid = '".$orderId."';
47
+ var adv_cst = '".$customerId."';
48
  ";
49
 
50
  return $jsoutput;
app/code/community/Advertise/Dataexport/Model/Exporter.php CHANGED
@@ -26,7 +26,7 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
26
  /**
27
  * @var string
28
  */
29
- protected $_filname;
30
  /**
31
  * Remove temp data files after import?
32
  *
@@ -44,8 +44,8 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
44
  /**
45
  * @todo change this!!
46
  */
47
- $this->_filename = Mage::getModel('dataexport/config')->getTempFolder() . DS . 'generate_' . time() . '.xml';
48
-
49
  $this->_writer = new Advertise_Dataexport_Model_Xmlwriter($this->_filename);
50
  $this->_config = Mage::getModel('dataexport/config');
51
  }
@@ -57,6 +57,7 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
57
  */
58
  public function export()
59
  {
 
60
  $totalItems = 0;
61
  /**
62
  * 1) Generate the XML feed as a file
@@ -86,26 +87,59 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
86
  Mage::throwException($this->__('Feed Not Found! ' . $filename));
87
  }
88
 
89
- $target = $this->_getConfig()->getExportUrl();
90
- //$filename = $this->_getConfig()->getTempFolder() . DS . 'test.xml';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  $putFileSize = filesize($filename);
92
- $putFileHandle = fopen($filename, "r");
93
 
94
- $adapter = new Zend_Http_Client_Adapter_Curl();
95
- $client = new Zend_Http_Client($target);
96
- $client->setAdapter($adapter);
97
- //$client->setHeaders('Content-Type','text/xml');
98
-
99
- $adapter->setConfig(array(
100
- 'curloptions' => array(
101
- CURLOPT_INFILE => $putFileHandle,
102
- CURLOPT_INFILESIZE => (string) $putFileSize,
103
- //CURLOPT_SSL_VERIFYHOST => 0,
104
- //CURLOPT_SSL_VERIFYPEER => 0,
105
- )
106
- ));
 
 
 
 
 
 
 
 
 
 
 
107
 
108
- $response = $client->request(Zend_Http_Client::PUT);
109
  }
110
 
111
  /**
@@ -120,6 +154,18 @@ class Advertise_Dataexport_Model_Exporter extends Varien_Object
120
  return $this;
121
  }
122
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  /**
124
  * Get our exporters
125
  *
26
  /**
27
  * @var string
28
  */
29
+ protected $_filename;
30
  /**
31
  * Remove temp data files after import?
32
  *
44
  /**
45
  * @todo change this!!
46
  */
47
+ // Set a basic filename just in case...
48
+ $this->_filename = Mage::getModel('dataexport/config')->getTempFolder() . DS . 'generate_' . $_SERVER['HTTP_HOST'] . '_' . date('Y-m-d_His') . '.xml';
49
  $this->_writer = new Advertise_Dataexport_Model_Xmlwriter($this->_filename);
50
  $this->_config = Mage::getModel('dataexport/config');
51
  }
57
  */
58
  public function export()
59
  {
60
+ Mage::log("export()ing file: ".$this->_filename);
61
  $totalItems = 0;
62
  /**
63
  * 1) Generate the XML feed as a file
87
  Mage::throwException($this->__('Feed Not Found! ' . $filename));
88
  }
89
 
90
+ try {
91
+ // Zip file before transfer
92
+ $zip = new ZipArchive(); // Load zip library
93
+ $zip_name = $filename.".zip"; // Zip name
94
+ if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE)
95
+ {
96
+ // Failed to open zip file to load
97
+ Mage::log("Could not create zip file of Adverti.se feed export.");
98
+ } else {
99
+ $filenamenopath = basename($filename);
100
+ $zip->addFile($filename, $filenamenopath); // Adding file into zip
101
+ $zip->close();
102
+ if(file_exists($zip_name))
103
+ {
104
+ $filename = $zip_name;
105
+ }
106
+ }
107
+ } catch (Exception $ex) {
108
+ Mage::log("Error creating zip file: ".$ex);
109
+ }
110
+
111
+
112
+ $urlSuffix = '?filename='.substr($filename, strrpos($filename, DS) + 1);
113
+ $target = $this->_getConfig()->getExportUrl() . $urlSuffix;
114
  $putFileSize = filesize($filename);
115
+ $putFileHandle = fopen($filename, 'rb');
116
 
117
+ fseek($putFileHandle, 0); // Unnecessary???
118
+ $referrer = Mage::getBaseUrl();
119
+ //Connecting to website.
120
+ $ch = curl_init();
121
+ curl_setopt($ch, CURLOPT_URL, $target);
122
+ curl_setopt($ch, CURLOPT_PUT, true);
123
+ curl_setopt($ch, CURLOPT_REFERER, $referrer);
124
+ curl_setopt($ch, CURLOPT_UPLOAD, 1);
125
+ curl_setopt($ch, CURLOPT_TIMEOUT, 86400); // 1 Day Timeout
126
+ curl_setopt($ch, CURLOPT_INFILE, $putFileHandle);
127
+ curl_setopt($ch, CURLOPT_INFILESIZE, $putFileSize);
128
+ curl_setopt($ch, CURLOPT_NOPROGRESS, false);
129
+ curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
130
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
131
+ curl_setopt($ch, CURLOPT_BUFFERSIZE, 128);
132
+
133
+ $response = curl_exec ($ch);
134
+ if (curl_errno($ch))
135
+ $msg = curl_error($ch);
136
+ else
137
+ $msg = 'File uploaded successfully.';
138
+ $info = curl_getinfo($ch);
139
+ fclose($putFileHandle);
140
+ curl_close ($ch);
141
 
142
+ // TODO: Add error handling here, check response, etc.
143
  }
144
 
145
  /**
154
  return $this;
155
  }
156
 
157
+ /**
158
+ * Set export type; used for filename prefix
159
+ *
160
+ * @param String
161
+ */
162
+ public function setExportType($exporttype)
163
+ {
164
+ $this->_filename = Mage::getModel('dataexport/config')->getTempFolder() . DS . $exporttype . '_' . $_SERVER['HTTP_HOST'] . '_' . date('Y-m-d_His') . '.xml';
165
+ $this->_writer->setFilename($this->_filename);
166
+ return $this;
167
+ }
168
+
169
  /**
170
  * Get our exporters
171
  *
app/code/community/Advertise/Dataexport/Model/Exporter/Product.php ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Image.php
4
+ *
5
+ * @package Dataexport
6
+ */
7
+ class Advertise_Dataexport_Model_Exporter_Product extends Varien_Object implements Advertise_Dataexport_Model_Exporter_Interface
8
+ {
9
+ /**
10
+ * Get the collection
11
+ *
12
+ * @return
13
+ */
14
+ public function getCollection()
15
+ {
16
+ $collection = Mage::getModel('catalog/product')
17
+ ->getCollection()
18
+ ->addAttributeToSelect('*')
19
+ ;
20
+ return $collection;
21
+ }
22
+
23
+ /**
24
+ * Write any items to the given writer
25
+ *
26
+ * @param XMLWriter
27
+ * @return int
28
+ */
29
+ public function write(XMLWriter $writer)
30
+ {
31
+ $writer->startElement('feedItems');
32
+ $ourversion = Mage::getConfig()->getModuleConfig("Advertise_Dataexport")->version;
33
+ $date = date('Y-m-d');
34
+ $writer->startAttribute('date');
35
+ $writer->text($date);
36
+ $writer->endAttribute();
37
+ $writer->startAttribute('version');
38
+ $writer->text($ourversion);
39
+ $writer->endAttribute();
40
+ $count = 0;
41
+ foreach($this->getCollection() as $product) {
42
+ /* @var $product Mage_Catalog_Model_Product */
43
+
44
+ // Get the data we need for product feed
45
+ //$data = $product->toArray();
46
+ $data = array();
47
+ $prodName = $product->getName();
48
+ $pid = $product->getId();
49
+ $produrl = $product->getProductUrl();
50
+ $prodsku = $product->getSku();
51
+ $prodcatstr = "";
52
+ $prodcats = $product->getCategoryCollection();
53
+ $categs = $prodcats->exportToArray();
54
+ $categsToLinks = array();
55
+ # Get categories names
56
+ foreach($categs as $cat){
57
+ $categsToLinks [] = Mage::getModel('catalog/category')->load($cat['entity_id'])->getName();
58
+ }
59
+ foreach($categsToLinks as $ind=>$cat){
60
+ $prodcatstr .= $cat.'|';
61
+ }
62
+ if (strrpos($prodcatstr, '|') > 0) {
63
+ $prodcatstr = substr($prodcatstr, 0, strrpos($prodcatstr, '|'));
64
+ }
65
+ $baseprice = $product->getPrice();
66
+ $currencycode = Mage::app()->getStore()->getCurrentCurrencyCode();
67
+ $currencysymbol = Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol();
68
+ $prodprice = Mage::helper('core')->currency($baseprice, true, false);
69
+ $description = $product->getDescription();
70
+ $prodvis = $product->getVisibility();
71
+ switch ($prodvis) {
72
+ case Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE :
73
+ $prodvis = "NOT_VISIBLE";
74
+ break;
75
+ case Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG :
76
+ $prodvis = "CATALOG";
77
+ break;
78
+ case Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH :
79
+ $prodvis = "SEARCH";
80
+ break;
81
+ case Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH :
82
+ $prodvis = "CATALOG,SEARCH";
83
+ break;
84
+ }
85
+ $prodtype = $product->getTypeID();
86
+ $prodcolor = $product->getResource()->getAttribute('color')->getFrontend()->getValue($product);
87
+ if ($prodcolor == "No") {
88
+ $prodcolor == "";
89
+ }
90
+ $prodadvcolor = $product->getResource()->getAttribute('advertise_colors')->getFrontend()->getValue($product);
91
+ if ($prodadvcolor == "No") {
92
+ $prodadvcolor == "";
93
+ }
94
+ $stocklevel = (int)Mage::getModel('cataloginventory/stock_item')->loadByProduct($product)->getQty();
95
+ $specialprice = $product->getSpecialPrice();
96
+ $prodweight = $product->getWeight();
97
+ $prodman = $product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($product);
98
+ $prodgender = $product->getResource()->getAttribute('gender')->getFrontend()->getValue($product);
99
+ $metatitle = $product->getMetaTitle();
100
+ $metadesc = $product->getMetaDescription();
101
+ $metakw = $product->getMetaKeyword();
102
+
103
+ $size1 = $product->getResource()->getAttribute('shoe_size')->getFrontend()->getValue($product);
104
+ $size2 = $product->getResource()->getAttribute('shirt_size')->getFrontend()->getValue($product);
105
+
106
+ // Set the data to be written
107
+ $data['prodname'] = $prodName;
108
+ $data['productid'] = $pid;
109
+ $data['url'] = $produrl;
110
+ $data['sku'] = $prodsku;
111
+ $data['category'] = $prodcatstr;
112
+ if ($prodcolor != "No") {
113
+ $data['color'] = $prodcolor;
114
+ }
115
+ if ($prodadvcolor != "No") {
116
+ $data['advertisecolor'] = $prodadvcolor;
117
+ }
118
+ $data['price'] = $baseprice;
119
+ if($specialprice){
120
+ $data['priceSale'] = $specialprice;
121
+ }
122
+ $data['currencycode'] = $currencycode;
123
+ $data['currencysymbol'] = $currencysymbol;
124
+ $data['formattedprice'] = $prodprice;
125
+ $data['description'] = $description;
126
+ if($size1 != "No") {
127
+ $data['size'] = $size1;
128
+ } else if ($size2 != "No") {
129
+ $data['size'] = $size2;
130
+ }
131
+ $data['magentoVisibility'] = $prodvis;
132
+ $data['type'] = $prodtype;
133
+ $data['quantity'] = $stocklevel;
134
+ $data['shippingWeight'] = $prodweight;
135
+ if($prodman != "No") {
136
+ $data['manufacturer'] = $prodman;
137
+ }
138
+ if($prodgender != "No") {
139
+ $data['gender'] = $prodgender;
140
+ }
141
+ $data['metaTitle'] = $metatitle;
142
+ $data['metaDescription'] = $metadesc;
143
+ $data['metaKeywords'] = $metakw;
144
+
145
+ $prod = Mage::helper('catalog/product')->getProduct($product->getId(), null, null);
146
+ $galleryData = $prod->getData('media_gallery');
147
+ $i=0;
148
+ foreach ($galleryData['images'] as $image) {
149
+ $i++;
150
+ if ($i > 10) break;
151
+ $url = (string)(Mage::helper('catalog/image')->init($prod, NULL , $image['file']));
152
+ $data['image_'.$i] = $url;
153
+ }
154
+
155
+ $writer->writeArray($data, 'feeditem');
156
+ $count++;
157
+ }
158
+ $writer->endElement(); // Products
159
+ return $count;
160
+ }
161
+ }
162
+
app/code/community/Advertise/Dataexport/controllers/Adminhtml/DataexportbackendController.php CHANGED
@@ -4,6 +4,8 @@
4
  */
5
  class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Adminhtml_Controller_Action
6
  {
 
 
7
  /**
8
  * index action
9
  */
@@ -15,7 +17,7 @@ class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Ad
15
  }
16
 
17
  /**
18
- * Run the export
19
  */
20
  public function exportAction()
21
  {
@@ -30,6 +32,10 @@ class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Ad
30
  //$post = $this->getRequest()->getPost();
31
  $exporter = Mage::getModel('dataexport/exporter');
32
  /* @var $exporter Advertise_Dataexport_Model_Exporter */
 
 
 
 
33
  /**
34
  * Add Order Export
35
  */
4
  */
5
  class Advertise_Dataexport_Adminhtml_DataexportbackendController extends Mage_Adminhtml_Controller_Action
6
  {
7
+ protected $_EXPORT_TYPE = "ordersexport";
8
+
9
  /**
10
  * index action
11
  */
17
  }
18
 
19
  /**
20
+ * Run the export of orders, customers, carts
21
  */
22
  public function exportAction()
23
  {
32
  //$post = $this->getRequest()->getPost();
33
  $exporter = Mage::getModel('dataexport/exporter');
34
  /* @var $exporter Advertise_Dataexport_Model_Exporter */
35
+
36
+ // Set export type for uploaded filename
37
+ $exporter->setExportType($this->_EXPORT_TYPE);
38
+
39
  /**
40
  * Add Order Export
41
  */
app/code/community/Advertise/Dataexport/etc/system.xml CHANGED
@@ -1,15 +1,10 @@
1
  <?xml version="1.0"?>
2
  <config>
3
- <!-- This Adverti.se tab is used by all Adverti.se extensions for config menu!
4
- So if you change it then need to change in ALL extensions! -->
5
 
6
- <!-- Top Level Tab -->
7
- <tabs>
8
- <Advertise translate="label">
9
- <label>Advertise</label>
10
- <sort_order>405</sort_order>
11
- </Advertise>
12
- </tabs>
13
 
14
  <!-- Sections under Adverti.se tab -->
15
  <sections>
1
  <?xml version="1.0"?>
2
  <config>
 
 
3
 
4
+ <!--
5
+ The top-level "Adverti.se" tab is defined in our Advertise_Account module,
6
+ a pre-requisite for all other Adverti.se modules
7
+ -->
 
 
 
8
 
9
  <!-- Sections under Adverti.se tab -->
10
  <sections>
app/design/adminhtml/default/default/template/dataexport/dataexportbackend.phtml CHANGED
@@ -4,6 +4,36 @@
4
  *
5
  */
6
  ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  <div class="content-header">
8
  <table cellspacing="0">
9
  <tbody>
@@ -65,10 +95,10 @@
65
  </table>
66
 
67
  <div class="content-header">
68
- <h3>Export Options</h3>
69
  </div>
70
 
71
- <form id="dataexportForm" action="<?php echo $this->_getFormAction() ?>" method="post">
72
  <input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
73
  <table class="form-list">
74
  <tr>
@@ -99,8 +129,8 @@
99
  <td colspan="2">
100
  <?php $disabled = $this->_getConfig()->getIsEnabled() ? '' : ' disabled="disabled"' ?>
101
  <?php $classDisabled = $this->_getConfig()->getIsEnabled() ? '' : ' disabled' ?>
102
- <button<?php echo $disabled ?> onclick="" class="scalable<?php echo $classDisabled ?>" type="submit" title="Run Export" id="exportBtn">
103
- <span><span><span>Run Export</span></span></span>
104
  </button>
105
  </td>
106
  </tr>
4
  *
5
  */
6
  ?>
7
+ <div class="content-header">
8
+ <table cellspacing="0">
9
+ <tbody>
10
+ <tr>
11
+ <td style="width:50%;">
12
+ <h3 class="icon-head head-cms-page">Export Product Data to Adverti.se</h3>
13
+ </td>
14
+ <td class="form-buttons">
15
+
16
+ </td>
17
+ </tr>
18
+ </tbody>
19
+ </table>
20
+ </div>
21
+ <p>Use this button to re-send product data to Adverti.se whenever your product range has changed:</p>
22
+ <br />
23
+
24
+ <form id="productexportForm" action="<?php echo $this->_getProductSubmitFormAction() ?>" method="post">
25
+ <input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
26
+ <table class="form-list">
27
+ <tr>
28
+ <td colspan="2">
29
+ <button class="scalable save" onclick="" type="submit" title="Export Product Data" id="productexportBtn">
30
+ <span>Export Product Data</span>
31
+ </button>
32
+ </td>
33
+ </tr>
34
+ </table>
35
+ </form>
36
+ <br /><br />
37
  <div class="content-header">
38
  <table cellspacing="0">
39
  <tbody>
95
  </table>
96
 
97
  <div class="content-header">
98
+ <h3>Retail Intelligence Export Options</h3>
99
  </div>
100
 
101
+ <form id="dataexportForm" action="<?php echo $this->_getDataExportFormAction() ?>" method="post">
102
  <input name="form_key" type="hidden" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />
103
  <table class="form-list">
104
  <tr>
129
  <td colspan="2">
130
  <?php $disabled = $this->_getConfig()->getIsEnabled() ? '' : ' disabled="disabled"' ?>
131
  <?php $classDisabled = $this->_getConfig()->getIsEnabled() ? '' : ' disabled' ?>
132
+ <button<?php echo $disabled ?> onclick="" class="scalable save<?php echo $classDisabled ?>" type="submit" title="Run Retail Intelligence Export" id="exportBtn">
133
+ <span><span><span>Run Retail Intelligence Export</span></span></span>
134
  </button>
135
  </td>
136
  </tr>
app/design/frontend/base/default/layout/dataexport.xml CHANGED
@@ -9,4 +9,18 @@
9
  <block type="dataexport/index" name="dataexport_index" template="dataexport/index.phtml"/>
10
  </reference>
11
  </dataexport_index_index>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  </layout>
9
  <block type="dataexport/index" name="dataexport_index" template="dataexport/index.phtml"/>
10
  </reference>
11
  </dataexport_index_index>
12
+
13
+ <catalog_product_view>
14
+ <reference name="head">
15
+ <!-- Insert jQuery from Google into product pages;
16
+ Not required for dataexport but include in Community
17
+ as required by Colors and all Suggested Products extensions -->
18
+ <block type="core/text" name="google.cdn.jquery">
19
+ <action method="setText">
20
+ <text><![CDATA[<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script><script type="text/javascript">jQuery.noConflict();</script>]]>
21
+ </text>
22
+ </action>
23
+ </block>
24
+ </reference>
25
+ </catalog_product_view>
26
  </layout>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>AdvertiseCommunity</name>
4
- <version>1.2.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
7
  <channel>community</channel>
@@ -28,11 +28,13 @@ v1.2.2 - fixes a bug in 1.2.1&#xD;
28
  &#xD;
29
  v1.2.3 - makes the product id available to suggested product calls.&#xD;
30
  &#xD;
31
- v1.2.4 - minor bug fix</notes>
 
 
32
  <authors><author><name>Michael Oxley</name><user>advertise</user><email>mike@adverti.se</email></author></authors>
33
- <date>2012-12-07</date>
34
- <time>12:07:04</time>
35
- <contents><target name="mage"><dir name="lib"><dir name="Varien"><dir name="Data"><dir name="Form"><dir name="Element"><file name="Advertisetemplate.php" hash="93d8c1f2ace06bd46e68857b9b98ec52"/><file name="Advertiselicense.php" hash="26d50ff2d280db94e4d0eb7187376880"/></dir></dir></dir></dir></dir><dir name="app"><dir name="etc"><dir name="modules"><file name="Advertise_Account.xml" hash="2bd58af0a4999bc2fe80a1d6e8a07d57"/><file name="Advertise_Dataexport.xml" hash="85b7c6199506488967c6951b513da65e"/></dir></dir><dir name="code"><dir name="community"><dir name="Advertise"><dir name="Account"><dir name="Helper"><file name="Data.php" hash="9b22d8f7156cd9f694774d7e29e2b5a8"/></dir><dir name="Model"><file name="Account.php" hash="605e33ef9c956852cd9f0357cb10776c"/><dir name="Config"><dir name="Source"><file name="Onoff.php" hash="684e42d40da3b47053bf345f201df140"/></dir></dir><file name="Config.php" hash="ee470d4c5a46a0221456b31b85c7473c"/><file name="MyAccountModel.php" hash="d7abbf976d96028ece0331db2ba40559"/><file name="Settings.php" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><dir name="controllers"><file name="IndexController.php" hash="50eea849547a732c20462da19029e432"/><file name="LicenseController.php" hash="b83f323609fecefa4ff6dbab911468ce"/><file name="WebserviceController.php" hash="675d33aa04d1c01c34fdea086d73ce85"/></dir><dir name="etc"><file name="config.xml" hash="c23c07b9a4bb2e5239248dc76e9e8612"/><file name="system.xml" hash="9f8480290a07f87bb568e4b0db33a330"/></dir><dir name="sql"><dir name="advertise_setup"><file name="mysql4-install-4.0.0.php" hash="b4535b5068d6b72999c94e91d487bc62"/><file name="mysql4-install-5.0.0.php" hash="b4535b5068d6b72999c94e91d487bc62"/></dir><dir name="setup"><file name="mysql4-install-0.1.0.php" hash="452925d5182994846dbe3b9518db84d8"/></dir></dir></dir><dir name="Dataexport"><dir name="Block"><dir name="Adminhtml"><file name="Dataexportbackend.php" hash="89c075c9a224a327e1e0816ab9efeddf"/></dir><file name="Index.php" hash="e504da66a574a5df674b5d8385ce4108"/></dir><dir name="Helper"><file name="Data.php" hash="85ce07bf86d4cc3115236f674648989f"/></dir><dir name="Model"><file name="Config.php" hash="abb4f8739e9fa07dbe041a0129211eb7"/><dir name="Exporter"><file name="Cart.php" hash="6164c971932885d2cafc86275a4c0649"/><file name="Customer.php" hash="e8ffc864fb2ec2757d3517d3e179c12a"/><file name="Interface.php" hash="1b311d997c503d5e6ec567f703491306"/><file name="Order.php" hash="48aef9cea01c358b81e4d8469e237169"/></dir><file name="Exporter.php" hash="3fe694e544ee2a2f4d51f07f22b57596"/><file name="Modelname.php" hash="c5d3ff7a7c9443ec43c84a8d8c07cfc1"/><dir name="Mysql4"><dir name="Modelname"><file name="Collection.php" hash="7829fb805cf36d108d97e22175419c97"/></dir><file name="Modelname.php" hash="4ffa0d7fa31b0e6544d66e41d0239410"/></dir><file name="Orderstatus.php" hash="d3f17637413ea2417a3080435215ac26"/><file name="Scheduler.php" hash="be3d416160a7b4973907ef58a42306e3"/><file name="Xmlwriter.php" hash="a86b81bcb8964935410738643de32e8f"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="DataexportbackendController.php" hash="914467bd702962ee5a082a6d1d756469"/></dir><file name="IndexController.php" hash="8be7143d4a93cd96fa37c7ae7cb735e2"/><file name="TestController.php" hash="74d89fd194029ae654a3cec3b39c9778"/></dir><dir name="etc"><file name="adminhtml.xml" hash="e3ccc4047ca0ece4295e156e986f3019"/><file name="config.xml" hash="e3776aee6bb28d50e4baf14e5b38dc64"/><file name="system.xml" hash="61e86cd66dca0851ae203867b36e0a33"/></dir><dir name="sql"><dir name="dataexport_setup"><file name="mysql4-install-0.1.0.php" hash="b01d2c1aefe3ec69dc1799d3b682cc3b"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="dataexport.xml" hash="2da004f9cbaeee331a62b9592692e2c1"/></dir><dir name="template"><dir name="dataexport"><file name="dataexportbackend.phtml" hash="6c21dd0709ac1a09bb77f4a4ae3ff867"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="dataexport.xml" hash="5b8bdfdb430b0d0e9be0c4deb2a355a0"/></dir><dir name="template"><dir name="dataexport"><file name="index.phtml" hash="4b88ef0e0ac3d19787f9fc7b4da2e91b"/></dir></dir></dir></dir></dir></dir></dir><dir name="var"><dir name="advertisedata"><file name="empty.file" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="generate_1353339590.xml" hash="d7b79189c377d84276684d7b1136816b"/></dir></dir></target></contents>
36
  <compatible/>
37
  <dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
38
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>AdvertiseCommunity</name>
4
+ <version>1.3.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL</license>
7
  <channel>community</channel>
28
  &#xD;
29
  v1.2.3 - makes the product id available to suggested product calls.&#xD;
30
  &#xD;
31
+ v1.2.4 - minor bug fix&#xD;
32
+ &#xD;
33
+ v1.3.0 - new product export methodology to reduce bandwidth and overhead</notes>
34
  <authors><author><name>Michael Oxley</name><user>advertise</user><email>mike@adverti.se</email></author></authors>
35
+ <date>2013-02-25</date>
36
+ <time>14:27:12</time>
37
+ <contents><target name="mage"><dir name="lib"><dir name="Varien"><dir name="Data"><dir name="Form"><dir name="Element"><file name="Advertisetemplate.php" hash="93d8c1f2ace06bd46e68857b9b98ec52"/><file name="Advertiselicense.php" hash="26d50ff2d280db94e4d0eb7187376880"/></dir></dir></dir></dir></dir><dir name="app"><dir name="etc"><dir name="modules"><file name="Advertise_Account.xml" hash="2bd58af0a4999bc2fe80a1d6e8a07d57"/><file name="Advertise_Dataexport.xml" hash="85b7c6199506488967c6951b513da65e"/></dir></dir><dir name="code"><dir name="community"><dir name="Advertise"><dir name="Account"><dir name="Block"><dir name="Config"><file name="Dataexportmessage.php" hash="7ea4ff776d545de800aef711ac4d926c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="9b22d8f7156cd9f694774d7e29e2b5a8"/></dir><dir name="Model"><file name="Account.php" hash="605e33ef9c956852cd9f0357cb10776c"/><dir name="Config"><dir name="Source"><file name="Onoff.php" hash="684e42d40da3b47053bf345f201df140"/></dir></dir><file name="Config.php" hash="7b9048bfb049cd46accd84a6ba370e7a"/><file name="MyAccountModel.php" hash="d7abbf976d96028ece0331db2ba40559"/><file name="Settings.php" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="DataexportbackendController.php" hash="88ba5d92dd890f066b32a672a5bfd067"/></dir><file name="IndexController.php" hash="50eea849547a732c20462da19029e432"/><file name="LicenseController.php" hash="b83f323609fecefa4ff6dbab911468ce"/><file name="WebserviceController.php" hash="675d33aa04d1c01c34fdea086d73ce85"/></dir><dir name="etc"><file name="config.xml" hash="c23c07b9a4bb2e5239248dc76e9e8612"/><file name="system.xml" hash="cceb004770871dc1d6f886e2760651ed"/></dir><dir name="sql"><dir name="advertise_setup"><file name="mysql4-install-4.0.0.php" hash="b4535b5068d6b72999c94e91d487bc62"/><file name="mysql4-install-5.0.0.php" hash="b4535b5068d6b72999c94e91d487bc62"/></dir><dir name="setup"><file name="mysql4-install-0.1.0.php" hash="452925d5182994846dbe3b9518db84d8"/></dir></dir></dir><dir name="Dataexport"><dir name="Block"><dir name="Adminhtml"><file name="Dataexportbackend.php" hash="8388ca40072b9f6848eff265b1edea98"/></dir><file name="Index.php" hash="e504da66a574a5df674b5d8385ce4108"/></dir><dir name="Helper"><file name="Data.php" hash="052f97f5b208a7ec04b6b5d5dfce582b"/></dir><dir name="Model"><file name="Config.php" hash="abb4f8739e9fa07dbe041a0129211eb7"/><dir name="Exporter"><file name="Cart.php" hash="6164c971932885d2cafc86275a4c0649"/><file name="Customer.php" hash="e8ffc864fb2ec2757d3517d3e179c12a"/><file name="Interface.php" hash="1b311d997c503d5e6ec567f703491306"/><file name="Order.php" hash="48aef9cea01c358b81e4d8469e237169"/><file name="Product.php" hash="77564a4ef98e2d0ad43ee2b0d97fa9c3"/></dir><file name="Exporter.php" hash="cae300f7e94457b7209334acb2b4330d"/><file name="Modelname.php" hash="c5d3ff7a7c9443ec43c84a8d8c07cfc1"/><dir name="Mysql4"><dir name="Modelname"><file name="Collection.php" hash="7829fb805cf36d108d97e22175419c97"/></dir><file name="Modelname.php" hash="4ffa0d7fa31b0e6544d66e41d0239410"/></dir><file name="Orderstatus.php" hash="d3f17637413ea2417a3080435215ac26"/><file name="Scheduler.php" hash="be3d416160a7b4973907ef58a42306e3"/><file name="Xmlwriter.php" hash="a86b81bcb8964935410738643de32e8f"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="DataexportbackendController.php" hash="35aceaddbe6b7a6b92b1b58a46647e1a"/></dir><file name="IndexController.php" hash="8be7143d4a93cd96fa37c7ae7cb735e2"/><file name="TestController.php" hash="74d89fd194029ae654a3cec3b39c9778"/></dir><dir name="etc"><file name="adminhtml.xml" hash="e3ccc4047ca0ece4295e156e986f3019"/><file name="config.xml" hash="e3776aee6bb28d50e4baf14e5b38dc64"/><file name="system.xml" hash="ae66089d90d97caf115bde9d10572b6a"/></dir><dir name="sql"><dir name="dataexport_setup"><file name="mysql4-install-0.1.0.php" hash="b01d2c1aefe3ec69dc1799d3b682cc3b"/></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="dataexport.xml" hash="2da004f9cbaeee331a62b9592692e2c1"/></dir><dir name="template"><dir name="dataexport"><file name="dataexportbackend.phtml" hash="6582b9668254d7350b743183d8d0d3ac"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="dataexport.xml" hash="7467ffa59e10a2a7b792977e40290236"/></dir><dir name="template"><dir name="dataexport"><file name="index.phtml" hash="4b88ef0e0ac3d19787f9fc7b4da2e91b"/></dir></dir></dir></dir></dir></dir></dir><dir name="var"><dir name="advertisedata"><file name="empty.file" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="generate_1353339590.xml" hash="d7b79189c377d84276684d7b1136816b"/></dir></dir></target></contents>
38
  <compatible/>
39
  <dependencies><required><php><min>5.0.0</min><max>6.0.0</max></php></required></dependencies>
40
  </package>