EmailDirect_Integration - Version 1.5.5

Version Notes

Bug fixes for multiple store configuration.
Configure which order state(s) will be sent to EmailDirect.
Override option for Sources on existing records
Debug/Troubleshooting improvements
Misc fixes

Download this release

Release Info

Developer Magento Core Team
Extension EmailDirect_Integration
Version 1.5.5
Comparing to
See all releases


Code changes from version 1.5.3 to 1.5.5

Files changed (30) hide show
  1. app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Export/Range.php +3 -2
  2. app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Note.php +20 -0
  3. app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Troubleshooting.php +55 -34
  4. app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Convert/Profile/Export/Orders.php +2 -1
  5. app/code/local/EmailDirect/Integration/Helper/Data.php +66 -19
  6. app/code/local/EmailDirect/Integration/Model/Observer.php +86 -25
  7. app/code/local/EmailDirect/Integration/Model/System/Config/Source/Abandoned.php +1 -1
  8. app/code/local/EmailDirect/Integration/Model/System/Config/Source/Export/Batch.php +1 -1
  9. app/code/local/EmailDirect/Integration/Model/System/Config/Source/Export/Orders/From.php +0 -0
  10. app/code/local/EmailDirect/Integration/Model/System/Config/Source/Maxtimes.php +0 -15
  11. app/code/local/EmailDirect/Integration/Model/System/Config/Source/Source.php +1 -1
  12. app/code/local/EmailDirect/Integration/Model/System/Config/Source/States.php +20 -0
  13. app/code/local/EmailDirect/Integration/Model/Wrapper/Abandoned.php +1 -1
  14. app/code/local/EmailDirect/Integration/Model/Wrapper/Abstract.php +5 -1
  15. app/code/local/EmailDirect/Integration/Model/Wrapper/Execute.php +1 -1
  16. app/code/local/EmailDirect/Integration/Model/Wrapper/Subscribers.php +13 -3
  17. app/code/local/EmailDirect/Integration/controllers/AbandonedController.php +2 -2
  18. app/code/local/EmailDirect/Integration/controllers/Admin/ExportController.php +3 -2
  19. app/code/local/EmailDirect/Integration/etc/config.xml +5 -2
  20. app/code/local/EmailDirect/Integration/etc/system.xml +70 -1
  21. app/code/local/EmailDirect/Integration/sql/emaildirect_setup/mysql4-upgrade-1.5.4-1.5.5.php +19 -0
  22. app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/array.phtml +7 -7
  23. app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/export/date_range.phtml +14 -2
  24. app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/export/orders.phtml +3 -1
  25. app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/export/products.phtml +1 -0
  26. app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/note.phtml +4 -0
  27. app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/trouble.phtml +1 -1
  28. app/design/adminhtml/default/default/template/emaildirect/troubleshooting/view/tab/info.phtml +0 -2
  29. package.xml +9 -5
  30. skin/adminhtml/default/default/emaildirect/emaildirect.css +9 -6
app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Export/Range.php CHANGED
@@ -20,12 +20,13 @@ class EmailDirect_Integration_Block_Adminhtml_System_Config_Form_Field_Export_Ra
20
 
21
  public function getToDate()
22
  {
23
- return date("Y-m-d", Mage::getModel('core/date')->timestamp(time()));
 
24
  }
25
 
26
  public function getOrdersCount()
27
  {
28
- $orders = Mage::helper('emaildirect')->getOrderExportCollection($this->getFromDate(),$this->getToDate());
29
 
30
  return $orders->getSize();
31
  }
20
 
21
  public function getToDate()
22
  {
23
+ $time = strtotime("+1 day", Mage::getModel('core/date')->timestamp(time()));
24
+ return date("Y-m-d", $time);
25
  }
26
 
27
  public function getOrdersCount()
28
  {
29
+ $orders = Mage::helper('emaildirect')->getOrderExportCollection($this->getFromDate(),$this->getToDate(), Mage::helper('emaildirect')->config('send_already_sent'));
30
 
31
  return $orders->getSize();
32
  }
app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Note.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class EmailDirect_Integration_Block_Adminhtml_System_Config_Form_Field_Note extends Mage_Adminhtml_Block_System_Config_Form_Field
4
+ {
5
+ private $_helper = null;
6
+
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+ $this->setTemplate('emaildirect/system/config/form/field/note.phtml');
11
+ $this->_helper = Mage::helper('emaildirect');
12
+ }
13
+
14
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
15
+ {
16
+ $this->setElement($element);
17
+ $html = $this->_toHtml();
18
+ return $html;
19
+ }
20
+ }
app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Troubleshooting.php CHANGED
@@ -3,10 +3,13 @@
3
  class EmailDirect_Integration_Block_Adminhtml_System_Config_Form_Field_Troubleshooting extends Mage_Adminhtml_Block_System_Config_Form_Field
4
  {
5
 
 
 
6
  public function __construct()
7
  {
8
  parent::__construct();
9
  $this->setTemplate('emaildirect/system/config/form/field/trouble.phtml');
 
10
  }
11
 
12
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
@@ -18,21 +21,30 @@ class EmailDirect_Integration_Block_Adminhtml_System_Config_Form_Field_Troublesh
18
 
19
  public function getStartDate()
20
  {
21
- $date = Mage::helper('emaildirect')->troubleConfig('start_date');
22
-
23
- $minutes = round(abs(time() - strtotime($date)) / 60,0);
 
 
24
 
25
- $date = Mage::helper('core')->formatTime($date, 'long', true);
26
 
27
- $minutes = "<br />(" . Mage::helper('emaildirect')->timeElapsed2string(strtotime($date)) . " ago)";
28
 
29
- return "{$date} {$minutes}";
 
 
 
 
 
 
 
30
  }
31
 
32
  public function getEDirectInfo()
33
  {
34
- $active = Mage::helper('emaildirect')->config('active');
35
- $setup = Mage::helper('emaildirect')->config('setup');
36
 
37
  $class= 'ab_ok';
38
  $msg = "Enabled";
@@ -53,10 +65,10 @@ class EmailDirect_Integration_Block_Adminhtml_System_Config_Form_Field_Troublesh
53
 
54
  public function getAbandonedInfo()
55
  {
56
- $active = Mage::helper('emaildirect')->config('active');
57
- $setup = Mage::helper('emaildirect')->config('setup');
58
- $sendit = Mage::helper('emaildirect')->config('sendabandoned');
59
- $abandoned_setup = Mage::helper('emaildirect')->config('abandonedsetup');
60
 
61
  $class= 'ab_ok';
62
  $msg = "Enabled";
@@ -72,27 +84,36 @@ class EmailDirect_Integration_Block_Adminhtml_System_Config_Form_Field_Troublesh
72
 
73
  public function getLogInfo()
74
  {
75
- $helper = Mage::helper('emaildirect');
76
- $file_size = $helper->getLogFileSize();
77
- $formatted_size = $helper->formatSize($file_size);
78
-
79
- $max_size = $helper->getMaxLogFileSize();
80
-
81
- if ($file_size > $max_size || $file_size == 0)
82
- $formatted_size = "<span class='log_size_warning'>{$formatted_size}</span>";
83
-
84
- $file_date = $helper->getLogFilelastUpdate();
85
-
86
- if ($file_date == "")
87
- $last_update = "";
88
- else
89
- $last_update = "<br />" . Mage::helper('core')->formatTime(date("Y-m-d H:i:s",$file_date), 'long', true);
90
-
91
- $ago = $helper->timeElapsed2string($file_date);
92
-
93
- if ($ago != "")
94
- $ago = "<br />({$ago} ago.)";
95
-
96
- return "emaildirect.log ({$formatted_size}){$last_update}{$ago}";
 
 
 
 
 
 
 
 
 
97
  }
98
  }
3
  class EmailDirect_Integration_Block_Adminhtml_System_Config_Form_Field_Troubleshooting extends Mage_Adminhtml_Block_System_Config_Form_Field
4
  {
5
 
6
+ private $_helper = null;
7
+
8
  public function __construct()
9
  {
10
  parent::__construct();
11
  $this->setTemplate('emaildirect/system/config/form/field/trouble.phtml');
12
+ $this->_helper = Mage::helper('emaildirect');
13
  }
14
 
15
  protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
21
 
22
  public function getStartDate()
23
  {
24
+ try
25
+ {
26
+ $date = $this->_helper->troubleConfig('start_date');
27
+
28
+ $minutes = round(abs(time() - strtotime($date)) / 60,0);
29
 
30
+ $date = Mage::helper('core')->formatTime($date, 'long', true);
31
 
32
+ $minutes = "<br />(" . $this->_helper->timeElapsed2string(strtotime($date)) . " ago)";
33
 
34
+ return "{$date} {$minutes}";
35
+ }
36
+ catch (Exception $e)
37
+ {
38
+ $this->_helper->logException($e);
39
+ Mage::logException($e);
40
+ return "Unknown/Error";
41
+ }
42
  }
43
 
44
  public function getEDirectInfo()
45
  {
46
+ $active = $this->_helper->config('active');
47
+ $setup = $this->_helper->config('setup');
48
 
49
  $class= 'ab_ok';
50
  $msg = "Enabled";
65
 
66
  public function getAbandonedInfo()
67
  {
68
+ $active = $this->_helper->config('active');
69
+ $setup = $this->_helper->config('setup');
70
+ $sendit = $this->_helper->config('sendabandoned');
71
+ $abandoned_setup = $this->_helper->config('abandonedsetup');
72
 
73
  $class= 'ab_ok';
74
  $msg = "Enabled";
84
 
85
  public function getLogInfo()
86
  {
87
+ try
88
+ {
89
+ $helper = $this->_helper;
90
+ $file_size = $helper->getLogFileSize();
91
+ $formatted_size = $helper->formatSize($file_size);
92
+
93
+ $max_size = $helper->getMaxLogFileSize();
94
+
95
+ if ($file_size > $max_size || $file_size == 0)
96
+ $formatted_size = "<span class='log_size_warning'>{$formatted_size}</span>";
97
+
98
+ $file_date = $helper->getLogFilelastUpdate();
99
+
100
+ if ($file_date == "")
101
+ $last_update = "";
102
+ else
103
+ $last_update = "<br />" . Mage::helper('core')->formatTime(date("Y-m-d H:i:s",$file_date), 'long', true);
104
+
105
+ $ago = $helper->timeElapsed2string($file_date);
106
+
107
+ if ($ago != "")
108
+ $ago = "<br />({$ago} ago.)";
109
+
110
+ return $helper->getLogFileName() . " ({$formatted_size}){$last_update}{$ago}";
111
+ }
112
+ catch (Exception $e)
113
+ {
114
+ $this->_helper->logException($e);
115
+ Mage::logException($e);
116
+ return "Unknown/Error";
117
+ }
118
  }
119
  }
app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Convert/Profile/Export/Orders.php CHANGED
@@ -17,8 +17,9 @@ class EmailDirect_Integration_Block_Adminhtml_System_Convert_Profile_Export_Orde
17
  {
18
  $from = Mage::app()->getRequest()->getParam('export_from');
19
  $to = Mage::app()->getRequest()->getParam('export_to');
 
20
 
21
- $orders = Mage::helper('emaildirect')->getOrderExportCollection($from, $to);
22
 
23
  return $orders;
24
  }
17
  {
18
  $from = Mage::app()->getRequest()->getParam('export_from');
19
  $to = Mage::app()->getRequest()->getParam('export_to');
20
+ $include = Mage::app()->getRequest()->getParam('include_already_sent');
21
 
22
+ $orders = Mage::helper('emaildirect')->getOrderExportCollection($from, $to, $include);
23
 
24
  return $orders;
25
  }
app/code/local/EmailDirect/Integration/Helper/Data.php CHANGED
@@ -14,8 +14,14 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
14
  const DISABLED_REASON_PREFIX = "Skipping";
15
 
16
  private $_log_area = "";
 
17
 
18
- public function getOrderExportCollection($from, $to)
 
 
 
 
 
19
  {
20
  $from_date = Mage::getModel('core/date')->gmtDate(null,strtotime($from)); // 2010-05-11 15:00:00
21
 
@@ -24,12 +30,13 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
24
  $orders = Mage::getModel('sales/order')->getCollection()
25
  ->addAttributeToFilter('created_at', array('from' => $from_date, 'to' => $to_date))
26
  ->addAttributeToFilter('status', array('eq' => Mage_Sales_Model_Order::STATE_COMPLETE));
 
 
 
27
 
28
  return $orders;
29
  }
30
 
31
-
32
-
33
  public function formatSize($size)
34
  {
35
  try
@@ -89,25 +96,36 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
89
  return $this->config('apikey',$store);
90
  }
91
 
92
- public function updateConfig($path,$value,$store, $base_path = 'general')
93
  {
 
 
 
 
 
94
  $config = new Mage_Core_Model_Config();
95
- $config->saveConfig("emaildirect/{$base_path}/{$path}",$value,"default",$store);
96
  Mage::getConfig()->cleanCache();
97
  }
98
 
99
- private function _config($value,$section, $store = null)
100
  {
101
- if (is_null($store))
102
- {
103
- $store = Mage::app()->getStore();
104
 
105
- $configscope = Mage::app()->getRequest()->getParam('store');
106
-
107
- if ($configscope)
108
- $store = $configscope;
109
-
110
- }
 
 
 
 
 
 
 
 
111
 
112
  $realvalue = Mage::getStoreConfig("emaildirect/{$section}/{$value}", $store);
113
 
@@ -567,6 +585,8 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
567
 
568
  $data = array( );
569
 
 
 
570
  foreach ($e_config as $key => $value)
571
  {
572
  if (is_array($value))
@@ -584,6 +604,8 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
584
  }
585
  }
586
 
 
 
587
  $store_data[$store->getName()] = $data;
588
  }
589
 
@@ -643,11 +665,11 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
643
  public function turnOnTroubleshooting($store = null)
644
  {
645
  // Enabled
646
- $date = date(Mage::getModel('core/date')->gmtTimestamp());
647
  $date = date("Y-m-d H:i:s", $date);
648
 
649
  $this->updateConfig("debug",1,$store);
650
- $this->updateConfig("start_date",$date,$store,"troubleshooting");
651
  }
652
 
653
  public function turnOffTroubleshooting($store)
@@ -779,25 +801,50 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
779
  return $data;
780
  }
781
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
782
  // LOGGING
783
  public function log($data, $prefix = "", $area = "")
784
  {
785
  if ($this->config('debug'))
786
  {
 
787
  if ($area == "")
788
  $area = $this->_log_area;
789
 
790
  if ($area == self::IGNORE)
791
  return;
792
 
 
 
793
  if (is_array($data) || is_object($data))
794
- $data = print_r($data, true);
 
 
 
 
 
795
 
796
  if ($prefix != "")
797
  $prefix .= ": ";
798
 
799
  if ($area != "")
800
- $data = "[{$area}] {$prefix}{$data}";
801
 
802
  Mage::log($data,null,self::LOG_FILE_NAME . self::LOG_FILE_EXT);
803
  }
14
  const DISABLED_REASON_PREFIX = "Skipping";
15
 
16
  private $_log_area = "";
17
+ private $_current_store = null;
18
 
19
+ public function setCurrentStore($store)
20
+ {
21
+ $this->_current_store = $store;
22
+ }
23
+
24
+ public function getOrderExportCollection($from, $to, $include)
25
  {
26
  $from_date = Mage::getModel('core/date')->gmtDate(null,strtotime($from)); // 2010-05-11 15:00:00
27
 
30
  $orders = Mage::getModel('sales/order')->getCollection()
31
  ->addAttributeToFilter('created_at', array('from' => $from_date, 'to' => $to_date))
32
  ->addAttributeToFilter('status', array('eq' => Mage_Sales_Model_Order::STATE_COMPLETE));
33
+
34
+ if (!$include)
35
+ $orders->addAttributeToFilter('sent_to_emaildirect', array('eq' => 0));
36
 
37
  return $orders;
38
  }
39
 
 
 
40
  public function formatSize($size)
41
  {
42
  try
96
  return $this->config('apikey',$store);
97
  }
98
 
99
+ public function updateConfig($path, $value, $store = 0, $base_path = 'general')
100
  {
101
+ $scope = "stores";
102
+
103
+ if ($store == 0)
104
+ $scope = "default";
105
+
106
  $config = new Mage_Core_Model_Config();
107
+ $config->saveConfig("emaildirect/{$base_path}/{$path}",$value,$scope,$store);
108
  Mage::getConfig()->cleanCache();
109
  }
110
 
111
+ public function getCurrentStore()
112
  {
113
+ $store = Mage::app()->getStore()->getId();
 
 
114
 
115
+ $configscope = Mage::app()->getRequest()->getParam('store');
116
+
117
+ if ($configscope)
118
+ $store = $configscope;
119
+ else if (!is_null($this->_current_store))
120
+ $store = $this->_current_store;
121
+
122
+ return $store;
123
+ }
124
+
125
+ private function _config($value, $section, $store = null)
126
+ {
127
+ if (is_null($store))
128
+ $store = $this->getCurrentStore();
129
 
130
  $realvalue = Mage::getStoreConfig("emaildirect/{$section}/{$value}", $store);
131
 
585
 
586
  $data = array( );
587
 
588
+ $data['store id'] = $store->getId();
589
+
590
  foreach ($e_config as $key => $value)
591
  {
592
  if (is_array($value))
604
  }
605
  }
606
 
607
+
608
+
609
  $store_data[$store->getName()] = $data;
610
  }
611
 
665
  public function turnOnTroubleshooting($store = null)
666
  {
667
  // Enabled
668
+ $date = date(Mage::getModel('core/date')->gmtTimestamp());
669
  $date = date("Y-m-d H:i:s", $date);
670
 
671
  $this->updateConfig("debug",1,$store);
672
+ $this->updateConfig("start_date",$date,$store,"troubleshooting");
673
  }
674
 
675
  public function turnOffTroubleshooting($store)
801
  return $data;
802
  }
803
 
804
+ public function formatXml($xml_string)
805
+ {
806
+ try
807
+ {
808
+ $dom = new DOMDocument('1.0');
809
+ $dom->preserveWhiteSpace = false;
810
+ $dom->formatOutput = true;
811
+ $dom->loadXML($xml_string);
812
+ return $dom->saveXML();
813
+ }
814
+ catch (Exception $e)
815
+ {
816
+ $this->logException($e);
817
+ return $xml_string;
818
+ }
819
+ }
820
+
821
  // LOGGING
822
  public function log($data, $prefix = "", $area = "")
823
  {
824
  if ($this->config('debug'))
825
  {
826
+ $store = $this->getCurrentStore();
827
  if ($area == "")
828
  $area = $this->_log_area;
829
 
830
  if ($area == self::IGNORE)
831
  return;
832
 
833
+
834
+
835
  if (is_array($data) || is_object($data))
836
+ {
837
+ if (is_object($data) && get_class($data) == "SimpleXMLElement")
838
+ $data = $this->formatXml($data->asXml());
839
+ else
840
+ $data = print_r($data, true);
841
+ }
842
 
843
  if ($prefix != "")
844
  $prefix .= ": ";
845
 
846
  if ($area != "")
847
+ $data = "[{$area}] [{$store}] {$prefix}{$data}";
848
 
849
  Mage::log($data,null,self::LOG_FILE_NAME . self::LOG_FILE_EXT);
850
  }
app/code/local/EmailDirect/Integration/Model/Observer.php CHANGED
@@ -3,7 +3,6 @@
3
  class EmailDirect_Integration_Model_Observer
4
  {
5
  const ABANDONED_LAST_RUN = 'emaildirect/general/abandoned_last_run';
6
- const STATE_COMPLETE = Mage_Sales_Model_Order::STATE_COMPLETE;
7
 
8
  private $_helper = null;
9
 
@@ -180,6 +179,7 @@ class EmailDirect_Integration_Model_Observer
180
  {
181
  if ($source == '')
182
  {
 
183
  $source = "Magento";
184
  $this->_helper->updateConfig('source', $source, $store);
185
  }
@@ -194,28 +194,22 @@ class EmailDirect_Integration_Model_Observer
194
  break;
195
  }
196
  }
197
-
198
  if ($source_id == '')
199
  {
200
  $rc = Mage::getSingleton('emaildirect/wrapper_sources')->addSource($source);
201
  if(!isset($rc->SourceID))
202
- {
203
  Mage::throwException("Error adding source");
204
- }
205
  else
206
- {
207
  $this->_helper->updateConfig('sourceid', $rc->SourceID, $store);
208
- }
209
  }
210
  else
211
- {
212
  $this->_helper->updateConfig('sourceid', $source_id, $store);
213
- }
214
  }
215
 
216
  private function saveTroubleshooting($store)
217
  {
218
- $post = Mage::app()->getRequest()->getPost();
219
 
220
  $status = $post['groups']['troubleshooting']['fields']['enabled']['value'];
221
 
@@ -225,19 +219,36 @@ class EmailDirect_Integration_Model_Observer
225
  $this->_helper->turnOffTroubleshooting($store);
226
  }
227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  public function saveConfig(Varien_Event_Observer $observer)
229
  {
230
  $this->_helper->setLogArea(EmailDirect_Integration_Helper_Data::IGNORE);
231
- $store = is_null($observer->getEvent()->getStore()) ? 'default': $observer->getEvent()->getStore();
232
  $post = Mage::app()->getRequest()->getPost();
233
 
234
  $fields = $post['groups']['general']['fields'];
235
 
236
- $apiKey = isset($fields['apikey']['value']) ? $fields['apikey']['value'] : '';
237
 
238
  if ($apiKey == '')
239
  {
240
- $this->_helper->updateConfig('setup', false, $store);
 
241
  $this->_helper->updateConfig('active', false, $store);
242
  return $observer;
243
  }
@@ -246,13 +257,15 @@ class EmailDirect_Integration_Model_Observer
246
 
247
  if (is_string($sources))
248
  {
249
- $this->_helper->updateConfig('setup', false, $store);
 
250
  Mage::throwException($sources);
251
  }
252
 
253
  $this->_helper->updateConfig('setup', true, $store);
 
254
 
255
- $source = isset($fields['source']['value']) ? $fields['source']['value'] : '';
256
 
257
  $this->validateSource($source, $sources, $store);
258
 
@@ -441,7 +454,7 @@ class EmailDirect_Integration_Model_Observer
441
  return $observer;
442
  }
443
 
444
- $store = Mage::app()->getStore()->getId();
445
  $customer = $observer->getEvent()->getCustomer();
446
 
447
  $merge_vars = $this->_mergeVars($customer, TRUE);
@@ -612,12 +625,36 @@ class EmailDirect_Integration_Model_Observer
612
  $this->_helper->logException($e);
613
  }
614
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
 
616
  public function orderSaveAfter(Varien_Event_Observer $observer)
617
  {
618
  try
619
  {
620
- $this->_helper->setLogArea(EmailDirect_Integration_Helper_Data::ABANDONED_CART);
621
  $this->_helper->log("Order Save After Start");
622
 
623
  if (!$this->_helper->getOrdersEnabled())
@@ -629,16 +666,17 @@ class EmailDirect_Integration_Model_Observer
629
  $order = $observer->getEvent()->getOrder();
630
 
631
  $this->_helper->log("Order Save After: " . $order->getIncrementId());
632
- if($order->getState() !== self::STATE_COMPLETE)
633
- {
634
- $this->_helper->logReason("Order is not complete.");
635
- return $observer;
636
- }
 
637
 
638
  //$this->_helper->log("Order is complete. Processing...");
639
 
640
  $email = $order->getCustomerEmail();
641
-
642
  if ($order->getData('customer_is_guest'))
643
  {
644
  $this->_helper->log("Guest Customer");
@@ -677,7 +715,9 @@ class EmailDirect_Integration_Model_Observer
677
 
678
  Mage::helper('emaildirect/fields')->checkFields();
679
 
680
- $rc = Mage::getSingleton('emaildirect/wrapper_orders')->addSubscriberOrder($email,$order, $merge_vars);
 
 
681
 
682
  $this->_helper->log("Order Save After End");
683
 
@@ -726,6 +766,27 @@ class EmailDirect_Integration_Model_Observer
726
  return $order;
727
  }
728
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
729
  private function setSentToEmailDirectDate($quote,$date)
730
  {
731
  $table_name = Mage::getSingleton('core/resource')->getTableName("sales_flat_quote");
@@ -768,7 +829,7 @@ class EmailDirect_Integration_Model_Observer
768
  {
769
  $this->_helper->log("Processing Last Order");
770
  $merge_vars = $this->_helper->getOrderMergeVars($merge_vars,$order);
771
-
772
  $this->_helper->log("Check Save Lastest");
773
  if ($this->_helper->config('save_latest_order'))
774
  {
@@ -797,7 +858,7 @@ class EmailDirect_Integration_Model_Observer
797
  private function _abandonedCartsProcessor($collection, $mark_time = true)
798
  {
799
  // Store the time we last run
800
- $date = date(Mage::getModel('core/date')->gmtTimestamp());
801
  $date = date("Y-m-d H:i:s", $date);
802
 
803
  $this->_helper->log("Saving Last Run Date: {$date}");
3
  class EmailDirect_Integration_Model_Observer
4
  {
5
  const ABANDONED_LAST_RUN = 'emaildirect/general/abandoned_last_run';
 
6
 
7
  private $_helper = null;
8
 
179
  {
180
  if ($source == '')
181
  {
182
+ $this->_helper->log("validateSource blank");
183
  $source = "Magento";
184
  $this->_helper->updateConfig('source', $source, $store);
185
  }
194
  break;
195
  }
196
  }
197
+
198
  if ($source_id == '')
199
  {
200
  $rc = Mage::getSingleton('emaildirect/wrapper_sources')->addSource($source);
201
  if(!isset($rc->SourceID))
 
202
  Mage::throwException("Error adding source");
 
203
  else
 
204
  $this->_helper->updateConfig('sourceid', $rc->SourceID, $store);
 
205
  }
206
  else
 
207
  $this->_helper->updateConfig('sourceid', $source_id, $store);
 
208
  }
209
 
210
  private function saveTroubleshooting($store)
211
  {
212
+ $post = Mage::app()->getRequest()->getPost();
213
 
214
  $status = $post['groups']['troubleshooting']['fields']['enabled']['value'];
215
 
219
  $this->_helper->turnOffTroubleshooting($store);
220
  }
221
 
222
+ private function getStoreId($code)
223
+ {
224
+ if ($code == null)
225
+ return 0;
226
+
227
+ try
228
+ {
229
+ $store = Mage::getModel("core/store")->load($code);
230
+ return $store->getId();
231
+ }
232
+ catch (Exception $e)
233
+ {
234
+ return 0;
235
+ }
236
+ }
237
+
238
  public function saveConfig(Varien_Event_Observer $observer)
239
  {
240
  $this->_helper->setLogArea(EmailDirect_Integration_Helper_Data::IGNORE);
241
+ $store = $this->getStoreId($observer->getEvent()->getStore());
242
  $post = Mage::app()->getRequest()->getPost();
243
 
244
  $fields = $post['groups']['general']['fields'];
245
 
246
+ $apiKey = isset($fields['apikey']['value']) ? $fields['apikey']['value'] : $this->_helper->config('apikey');
247
 
248
  if ($apiKey == '')
249
  {
250
+ $this->_helper->updateConfig('setup', 0, $store);
251
+ //$this->_helper->updateConfig('setup', 0, $store, 'export');
252
  $this->_helper->updateConfig('active', false, $store);
253
  return $observer;
254
  }
257
 
258
  if (is_string($sources))
259
  {
260
+ $this->_helper->updateConfig('setup', 0, $store);
261
+ //$this->_helper->updateConfig('setup', false, $store, 'export');
262
  Mage::throwException($sources);
263
  }
264
 
265
  $this->_helper->updateConfig('setup', true, $store);
266
+ //$this->_helper->updateConfig('setup', true, $store, 'export');
267
 
268
+ $source = isset($fields['source']['value']) ? $fields['source']['value'] : $this->_helper->config('source');
269
 
270
  $this->validateSource($source, $sources, $store);
271
 
454
  return $observer;
455
  }
456
 
457
+ //$store = Mage::app()->getStore()->getId();
458
  $customer = $observer->getEvent()->getCustomer();
459
 
460
  $merge_vars = $this->_mergeVars($customer, TRUE);
625
  $this->_helper->logException($e);
626
  }
627
  }
628
+
629
+ private function canSendOrder($order)
630
+ {
631
+ if ($order->getData('sent_to_emaildirect') != false)
632
+ {
633
+ $this->_helper->logReason("Order has already been sent.");
634
+ return false;
635
+ }
636
+
637
+ $this->_helper->log("Order State: " . $order->getState());
638
+
639
+ $states = Mage::helper('emaildirect')->config('send_states');
640
+ $state_list = explode(",",$states);
641
+
642
+ $this->_helper->log("Check States: " . $states);
643
+ $this->_helper->log($state_list, "State array");
644
+
645
+ if (array_search($order->getState(),$state_list) === FALSE)
646
+ {
647
+ $this->_helper->logReason("State not setup to send (" . $order->getState() . ")");
648
+ return false;
649
+ }
650
+ return true;
651
+ }
652
 
653
  public function orderSaveAfter(Varien_Event_Observer $observer)
654
  {
655
  try
656
  {
657
+ $this->_helper->setLogArea(EmailDirect_Integration_Helper_Data::ORDERS);
658
  $this->_helper->log("Order Save After Start");
659
 
660
  if (!$this->_helper->getOrdersEnabled())
666
  $order = $observer->getEvent()->getOrder();
667
 
668
  $this->_helper->log("Order Save After: " . $order->getIncrementId());
669
+
670
+ $this->_helper->log("Order Store: " . $order->getStoreId());
671
+ $this->_helper->setCurrentStore($order->getStoreId());
672
+
673
+ if (!$this->canSendOrder($order))
674
+ return $observer;
675
 
676
  //$this->_helper->log("Order is complete. Processing...");
677
 
678
  $email = $order->getCustomerEmail();
679
+
680
  if ($order->getData('customer_is_guest'))
681
  {
682
  $this->_helper->log("Guest Customer");
715
 
716
  Mage::helper('emaildirect/fields')->checkFields();
717
 
718
+ $rc = Mage::getSingleton('emaildirect/wrapper_orders')->addSubscriberOrder($email, $order, $merge_vars);
719
+
720
+ $this->setOrderSentToEmailDirect($order);
721
 
722
  $this->_helper->log("Order Save After End");
723
 
766
  return $order;
767
  }
768
 
769
+ private function setOrderSentToEmailDirect($order)
770
+ {
771
+ $table_name = Mage::getSingleton('core/resource')->getTableName("sales_flat_order");
772
+
773
+ $sql = "UPDATE {$table_name} SET sent_to_emaildirect = 1 WHERE entity_id = {$order->getId()}";
774
+
775
+ $this->_helper->log($sql);
776
+
777
+ try
778
+ {
779
+ Mage::getSingleton('core/resource')
780
+ ->getConnection('core_write')
781
+ ->query($sql);
782
+ }
783
+ catch (Exception $e)
784
+ {
785
+ Mage::logException($e);
786
+ $this->_helper->logException($e);
787
+ }
788
+ }
789
+
790
  private function setSentToEmailDirectDate($quote,$date)
791
  {
792
  $table_name = Mage::getSingleton('core/resource')->getTableName("sales_flat_quote");
829
  {
830
  $this->_helper->log("Processing Last Order");
831
  $merge_vars = $this->_helper->getOrderMergeVars($merge_vars,$order);
832
+
833
  $this->_helper->log("Check Save Lastest");
834
  if ($this->_helper->config('save_latest_order'))
835
  {
858
  private function _abandonedCartsProcessor($collection, $mark_time = true)
859
  {
860
  // Store the time we last run
861
+ $date = date(Mage::getModel('core/date')->gmtTimestamp());
862
  $date = date("Y-m-d H:i:s", $date);
863
 
864
  $this->_helper->log("Saving Last Run Date: {$date}");
app/code/local/EmailDirect/Integration/Model/System/Config/Source/Abandoned.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- class EmailDirect_Integration_Model_System_Config_Source_Abandoned
4
  {
5
  /**
6
  * Options getter
1
  <?php
2
 
3
+ class EmailDirect_Integration_Model_System_Config_Source_Abandoned extends Varien_Data_Form_Abstract
4
  {
5
  /**
6
  * Options getter
app/code/local/EmailDirect/Integration/Model/System/Config/Source/Export/Batch.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- class EmailDirect_Integration_Model_System_Config_Source_Export_Batch
4
  {
5
  public function toOptionArray()
6
  {
1
  <?php
2
 
3
+ class EmailDirect_Integration_Model_System_Config_Source_Export_Batch extends Varien_Data_Form_Abstract
4
  {
5
  public function toOptionArray()
6
  {
app/code/local/EmailDirect/Integration/Model/System/Config/Source/Export/Orders/From.php DELETED
File without changes
app/code/local/EmailDirect/Integration/Model/System/Config/Source/Maxtimes.php DELETED
@@ -1,15 +0,0 @@
1
- <?php
2
-
3
- class EmailDirect_Integration_Model_System_Config_Source_Maxtimes
4
- {
5
- public function toOptionArray()
6
- {
7
- return array(
8
- array('value' => 1, 'label' => Mage::helper('emaildirect')->__('1 Times')),
9
- array('value' => 2, 'label' => Mage::helper('emaildirect')->__('2 Times')),
10
- array('value' => 3, 'label' => Mage::helper('emaildirect')->__('3 Times')),
11
- array('value' => 4, 'label' => Mage::helper('emaildirect')->__('4 Times')),
12
- array('value' => 5, 'label' => Mage::helper('emaildirect')->__('5 Times')),
13
- );
14
- }
15
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/EmailDirect/Integration/Model/System/Config/Source/Source.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
 
3
- class EmailDirect_Integration_Model_System_Config_Source_Source
4
  {
5
  public function toOptionArray()
6
  {
1
  <?php
2
 
3
+ class EmailDirect_Integration_Model_System_Config_Source_Source
4
  {
5
  public function toOptionArray()
6
  {
app/code/local/EmailDirect/Integration/Model/System/Config/Source/States.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class EmailDirect_Integration_Model_System_Config_Source_States
4
+ {
5
+ public function toOptionArray()
6
+ {
7
+ $states = Mage::getSingleton('sales/order_config')->getStates();
8
+
9
+ $options = array();
10
+
11
+ foreach($states as $value => $label)
12
+ {
13
+ $options[] = array(
14
+ 'value' => $value,
15
+ 'label' => $label);
16
+ }
17
+ return $options;
18
+ }
19
+ }
20
+
app/code/local/EmailDirect/Integration/Model/Wrapper/Abandoned.php CHANGED
@@ -9,7 +9,7 @@ class EmailDirect_Integration_Model_Wrapper_Abandoned extends EmailDirect_Integr
9
 
10
  public function getOneSubscriber($email,$merge_vars)
11
  {
12
- $source_data = $this->getSource();
13
  $publication_data = $this->getPublications("abandonedpublication");
14
  $custom_fields = $this->getCustomFields($merge_vars);
15
  $list_data = $this->getLists("abandonedlist");
9
 
10
  public function getOneSubscriber($email,$merge_vars)
11
  {
12
+ $source_data = $this->getSource($email);
13
  $publication_data = $this->getPublications("abandonedpublication");
14
  $custom_fields = $this->getCustomFields($merge_vars);
15
  $list_data = $this->getLists("abandonedlist");
app/code/local/EmailDirect/Integration/Model/Wrapper/Abstract.php CHANGED
@@ -44,10 +44,14 @@ class EmailDirect_Integration_Model_Wrapper_Abstract
44
  return "<Publications><int>{$publication_id}</int></Publications>";
45
  }
46
 
47
- protected function getSource()
48
  {
 
49
  $source_id = Mage::helper('emaildirect')->config('sourceid');
50
 
 
 
 
51
  return "<SourceID>{$source_id}</SourceID>";
52
  }
53
  }
44
  return "<Publications><int>{$publication_id}</int></Publications>";
45
  }
46
 
47
+ protected function getSource($email)
48
  {
49
+ $override_source = Mage::helper('emaildirect')->config('override_source');
50
  $source_id = Mage::helper('emaildirect')->config('sourceid');
51
 
52
+ if (!$override_source && Mage::getSingleton('emaildirect/wrapper_subscribers')->subscriberExists($email))
53
+ return "";
54
+
55
  return "<SourceID>{$source_id}</SourceID>";
56
  }
57
  }
app/code/local/EmailDirect/Integration/Model/Wrapper/Execute.php CHANGED
@@ -40,7 +40,7 @@ class EmailDirect_Integration_Model_Wrapper_Execute
40
  }
41
 
42
  if ($xmldata != null)
43
- $helper->log($xmldata,"Xml Data ({$command})");
44
 
45
  $URL = $helper->config('urls/accesspoint');
46
  $urlsuffix = $helper->config("urls/{$command}");
40
  }
41
 
42
  if ($xmldata != null)
43
+ $helper->log($helper->formatXml($xmldata),"Xml Data ({$command})");
44
 
45
  $URL = $helper->config('urls/accesspoint');
46
  $urlsuffix = $helper->config("urls/{$command}");
app/code/local/EmailDirect/Integration/Model/Wrapper/Subscribers.php CHANGED
@@ -4,7 +4,7 @@ class EmailDirect_Integration_Model_Wrapper_subscribers extends EmailDirect_Inte
4
  {
5
  public function subscriberModify($email,$merge_vars)
6
  {
7
- $source_data = $this->getSource();
8
  $custom_fields = $this->getCustomFields($merge_vars);
9
  $list_data = $this->getLists();
10
  $publication_data = $this->getPublications();
@@ -20,7 +20,7 @@ class EmailDirect_Integration_Model_Wrapper_subscribers extends EmailDirect_Inte
20
 
21
  public function subscriberAdd($email,$merge_vars, $extra_data = "", $use_lists = true)
22
  {
23
- $source_data = $this->getSource();
24
  $publication_data = $this->getPublications();
25
  $list_data = "";
26
 
@@ -70,7 +70,7 @@ class EmailDirect_Integration_Model_Wrapper_subscribers extends EmailDirect_Inte
70
  $xml = "<Subscriber><EmailAddress>{$new_mail}</EmailAddress></Subscriber>";
71
  $rc = Mage::getSingleton('emaildirect/wrapper_execute')->sendCommand("subscribers","ChangeEmail",$old_mail,$xml);
72
 
73
- if(isset($rc->ErrorCode))
74
  {
75
  if ($rc->ErrorCode == 202)
76
  {
@@ -88,5 +88,15 @@ class EmailDirect_Integration_Model_Wrapper_subscribers extends EmailDirect_Inte
88
  {
89
  $rc = Mage::getSingleton('emaildirect/wrapper_execute')->sendCommand("subscribers","Properties",$email);
90
  return $rc;
 
 
 
 
 
 
 
 
 
 
91
  }
92
  }
4
  {
5
  public function subscriberModify($email,$merge_vars)
6
  {
7
+ $source_data = $this->getSource($email);
8
  $custom_fields = $this->getCustomFields($merge_vars);
9
  $list_data = $this->getLists();
10
  $publication_data = $this->getPublications();
20
 
21
  public function subscriberAdd($email,$merge_vars, $extra_data = "", $use_lists = true)
22
  {
23
+ $source_data = $this->getSource($email);
24
  $publication_data = $this->getPublications();
25
  $list_data = "";
26
 
70
  $xml = "<Subscriber><EmailAddress>{$new_mail}</EmailAddress></Subscriber>";
71
  $rc = Mage::getSingleton('emaildirect/wrapper_execute')->sendCommand("subscribers","ChangeEmail",$old_mail,$xml);
72
 
73
+ if (isset($rc->ErrorCode))
74
  {
75
  if ($rc->ErrorCode == 202)
76
  {
88
  {
89
  $rc = Mage::getSingleton('emaildirect/wrapper_execute')->sendCommand("subscribers","Properties",$email);
90
  return $rc;
91
+ }
92
+
93
+ public function subscriberExists($email)
94
+ {
95
+ $rc = Mage::getSingleton('emaildirect/wrapper_execute')->sendCommand("subscribers","",$email);
96
+
97
+ if (isset($rc->ErrorCode))
98
+ return false;
99
+
100
+ return true;
101
  }
102
  }
app/code/local/EmailDirect/Integration/controllers/AbandonedController.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  class EmailDirect_Integration_AbandonedController extends Mage_Core_Controller_Front_Action
3
- {
4
  public function restoreAction()
5
  {
6
  $coded_cart = Mage::app()->getRequest()->getParam('cart');
@@ -31,7 +31,7 @@ class EmailDirect_Integration_AbandonedController extends Mage_Core_Controller_F
31
  $quote->getBillingAddress();
32
  $quote->collectTotals();
33
  $quote->save();
34
-
35
  $this->getCheckout()->setQuoteId($quote->getId());
36
  }
37
 
1
  <?php
2
  class EmailDirect_Integration_AbandonedController extends Mage_Core_Controller_Front_Action
3
+ {
4
  public function restoreAction()
5
  {
6
  $coded_cart = Mage::app()->getRequest()->getParam('cart');
31
  $quote->getBillingAddress();
32
  $quote->collectTotals();
33
  $quote->save();
34
+
35
  $this->getCheckout()->setQuoteId($quote->getId());
36
  }
37
 
app/code/local/EmailDirect/Integration/controllers/Admin/ExportController.php CHANGED
@@ -10,8 +10,9 @@ class EmailDirect_Integration_Admin_ExportController extends Mage_Adminhtml_Cont
10
  {
11
  $from = $this->getRequest()->getParam('from');
12
  $to = $this->getRequest()->getParam('to');
 
13
 
14
- $orders = Mage::helper('emaildirect')->getOrderExportCollection($from,$to);
15
 
16
  echo $orders->getSize();
17
  }
@@ -33,7 +34,7 @@ class EmailDirect_Integration_Admin_ExportController extends Mage_Adminhtml_Cont
33
 
34
  private function setConfiguration()
35
  {
36
- $config_options = array('include_disabled');
37
 
38
  $changed = false;
39
 
10
  {
11
  $from = $this->getRequest()->getParam('from');
12
  $to = $this->getRequest()->getParam('to');
13
+ $include = $this->getRequest()->getParam('include');
14
 
15
+ $orders = Mage::helper('emaildirect')->getOrderExportCollection($from, $to, $include);
16
 
17
  echo $orders->getSize();
18
  }
34
 
35
  private function setConfiguration()
36
  {
37
+ $config_options = array('include_disabled','include_already_sent');
38
 
39
  $changed = false;
40
 
app/code/local/EmailDirect/Integration/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <EmailDirect_Integration>
5
- <version>1.5.3</version>
6
  </EmailDirect_Integration>
7
  </modules>
8
  <global>
@@ -249,7 +249,7 @@
249
  <active>0</active>
250
  <sourceid>0</sourceid>
251
  <source>Magento</source>
252
- <max_times>1</max_times>
253
  <address_fields><![CDATA[a:5:{s:2:"a1";a:2:{s:7:"magento";s:6:"street";s:11:"emaildirect";s:7:"Address";}s:2:"a2";a:2:{s:7:"magento";s:4:"city";s:11:"emaildirect";s:4:"City";}s:2:"a3";a:2:{s:7:"magento";s:10:"state_code";s:11:"emaildirect";s:5:"State";}s:2:"a4";a:2:{s:7:"magento";s:8:"postcode";s:11:"emaildirect";s:3:"Zip";}s:2:"a5";a:2:{s:7:"magento";s:9:"telephone";s:11:"emaildirect";s:5:"Phone";}}]]></address_fields>
254
  <map_fields><![CDATA[a:2:{i:0;a:2:{s:7:"magento";s:9:"firstname";s:11:"emaildirect";s:9:"FirstName";}i:1;a:2:{s:7:"magento";s:8:"lastname";s:11:"emaildirect";s:8:"LastName";}}]]></map_fields>
255
  <abandonedtime>30</abandonedtime>
@@ -260,10 +260,13 @@
260
  <save_latest_order>0</save_latest_order>
261
  <product_fields>3</product_fields>
262
  <related_fields>2</related_fields>
 
263
  </general>
264
  <export>
265
  <include_disabled>1</include_disabled>
 
266
  <batch>100</batch>
 
267
  </export>
268
  <troubleshooting>
269
  <enabled>0</enabled>
2
  <config>
3
  <modules>
4
  <EmailDirect_Integration>
5
+ <version>1.5.5</version>
6
  </EmailDirect_Integration>
7
  </modules>
8
  <global>
249
  <active>0</active>
250
  <sourceid>0</sourceid>
251
  <source>Magento</source>
252
+ <override_source>1</override_source>
253
  <address_fields><![CDATA[a:5:{s:2:"a1";a:2:{s:7:"magento";s:6:"street";s:11:"emaildirect";s:7:"Address";}s:2:"a2";a:2:{s:7:"magento";s:4:"city";s:11:"emaildirect";s:4:"City";}s:2:"a3";a:2:{s:7:"magento";s:10:"state_code";s:11:"emaildirect";s:5:"State";}s:2:"a4";a:2:{s:7:"magento";s:8:"postcode";s:11:"emaildirect";s:3:"Zip";}s:2:"a5";a:2:{s:7:"magento";s:9:"telephone";s:11:"emaildirect";s:5:"Phone";}}]]></address_fields>
254
  <map_fields><![CDATA[a:2:{i:0;a:2:{s:7:"magento";s:9:"firstname";s:11:"emaildirect";s:9:"FirstName";}i:1;a:2:{s:7:"magento";s:8:"lastname";s:11:"emaildirect";s:8:"LastName";}}]]></map_fields>
255
  <abandonedtime>30</abandonedtime>
260
  <save_latest_order>0</save_latest_order>
261
  <product_fields>3</product_fields>
262
  <related_fields>2</related_fields>
263
+ <send_states>complete</send_states>
264
  </general>
265
  <export>
266
  <include_disabled>1</include_disabled>
267
+ <include_already_sent>0</include_already_sent>
268
  <batch>100</batch>
269
+ <setup>0</setup>
270
  </export>
271
  <troubleshooting>
272
  <enabled>0</enabled>
app/code/local/EmailDirect/Integration/etc/system.xml CHANGED
@@ -25,6 +25,7 @@
25
  <show_in_default>1</show_in_default>
26
  <show_in_website>1</show_in_website>
27
  <show_in_store>1</show_in_store>
 
28
  <fields>
29
  <active translate="label">
30
  <label>Enabled</label>
@@ -34,6 +35,7 @@
34
  <show_in_default>1</show_in_default>
35
  <show_in_website>1</show_in_website>
36
  <show_in_store>1</show_in_store>
 
37
  </active>
38
  <apikey translate="label comment">
39
  <label>API Key</label>
@@ -44,6 +46,16 @@
44
  <show_in_store>1</show_in_store>
45
  <comment>Enter your EmailDirect API Key here</comment>
46
  </apikey>
 
 
 
 
 
 
 
 
 
 
47
  <publication translate="label comment">
48
  <label>Publication</label>
49
  <frontend_type>select</frontend_type>
@@ -54,6 +66,7 @@
54
  <show_in_store>1</show_in_store>
55
  <can_be_empty>1</can_be_empty>
56
  <comment>This is the Publication that emails will be subscribed to and is required</comment>
 
57
  </publication>
58
  <additional_lists translate="label comment">
59
  <label>Additional Lists</label>
@@ -65,6 +78,7 @@
65
  <show_in_store>1</show_in_store>
66
  <can_be_empty>1</can_be_empty>
67
  <comment>Choose one or more Lists to allow your subscribers more options when subscribing. Not required</comment>
 
68
  </additional_lists>
69
  <source translate="label comment">
70
  <label>Source</label>
@@ -75,7 +89,20 @@
75
  <show_in_store>1</show_in_store>
76
  <can_be_empty>0</can_be_empty>
77
  <comment><![CDATA[This is the main source used with the Magento General Subscription.<br/> If you leave this field blank <b>Magento</b> is used]]></comment>
 
78
  </source>
 
 
 
 
 
 
 
 
 
 
 
 
79
  <address_fields translate="label comment">
80
  <label>Address Fields Mapping</label>
81
  <frontend_model>emaildirect/adminhtml_system_config_form_field_addressmapfields</frontend_model>
@@ -84,6 +111,7 @@
84
  <show_in_default>1</show_in_default>
85
  <show_in_website>0</show_in_website>
86
  <show_in_store>1</show_in_store>
 
87
  </address_fields>
88
  <map_fields translate="label comment">
89
  <label>Customer Fields Mapping</label>
@@ -93,6 +121,7 @@
93
  <show_in_default>1</show_in_default>
94
  <show_in_website>0</show_in_website>
95
  <show_in_store>1</show_in_store>
 
96
  </map_fields>
97
  <shipping_fields translate="label comment">
98
  <label>Shipping Fields Mapping</label>
@@ -102,6 +131,7 @@
102
  <show_in_default>1</show_in_default>
103
  <show_in_website>0</show_in_website>
104
  <show_in_store>1</show_in_store>
 
105
  </shipping_fields>
106
  <checkout_subscribe translate="label comment">
107
  <label>Subscribe On Checkout</label>
@@ -112,6 +142,7 @@
112
  <show_in_website>0</show_in_website>
113
  <show_in_store>1</show_in_store>
114
  <comment>Show Newsletter Subscribe checkbox in the last Checkout Step (Order Review)</comment>
 
115
  </checkout_subscribe>
116
  <sendorder translate="label">
117
  <label>Send orders to EmailDirect</label>
@@ -122,16 +153,30 @@
122
  <show_in_website>1</show_in_website>
123
  <show_in_store>1</show_in_store>
124
  <comment>Sends all completed orders to EmailDirect Purchase Behavior for detailed reporting, filtering and targeting</comment>
 
125
  </sendorder>
 
 
 
 
 
 
 
 
 
 
 
 
126
  <save_latest_order translate="label">
127
  <label>Save Latest Order Information</label>
128
  <frontend_type>select</frontend_type>
129
  <source_model>adminhtml/system_config_source_yesno</source_model>
130
- <sort_order>86</sort_order>
131
  <show_in_default>1</show_in_default>
132
  <show_in_website>1</show_in_website>
133
  <show_in_store>1</show_in_store>
134
  <comment>Save information from the latest order along with the first 3 products from that order</comment>
 
135
  </save_latest_order>
136
  <sendabandoned translate="label">
137
  <label>Add Abandoned Carts To EmailDirect</label>
@@ -142,6 +187,7 @@
142
  <show_in_website>1</show_in_website>
143
  <show_in_store>1</show_in_store>
144
  <comment>This will add any abandoned shopping carts to the EmailDirect database with AbandonedDate and AbandonedURL database fields. These fields can be used with Workflows to time your own Abandoned Shopping Cart emails or send a series of emails. This allows for complete customization of the email.</comment>
 
145
  </sendabandoned>
146
  <abandonedtime translate="label comment">
147
  <label>Abandoned Time</label>
@@ -152,6 +198,7 @@
152
  <show_in_website>1</show_in_website>
153
  <show_in_store>1</show_in_store>
154
  <comment>How long before a cart is considered abandoned?</comment>
 
155
  </abandonedtime>
156
  <abandonedpublication translate="label comment">
157
  <label>Abandoned Publication</label>
@@ -163,6 +210,7 @@
163
  <show_in_store>1</show_in_store>
164
  <can_be_empty>1</can_be_empty>
165
  <comment>This is the Publication that you will put abandoned shoppers into</comment>
 
166
  </abandonedpublication>
167
  <abandonedlist translate="label comment">
168
  <label>Abandoned List</label>
@@ -174,6 +222,7 @@
174
  <show_in_store>1</show_in_store>
175
  <can_be_empty>1</can_be_empty>
176
  <comment>This is the List that you will put abandoned shoppers into. Not Required.</comment>
 
177
  </abandonedlist>
178
  </fields>
179
  </general>
@@ -194,6 +243,16 @@
194
  <show_in_website>1</show_in_website>
195
  <show_in_store>1</show_in_store>
196
  </heading_orders>
 
 
 
 
 
 
 
 
 
 
197
  <export_orders_range>
198
  <label>Order Date Range</label>
199
  <frontend_model>emaildirect/adminhtml_system_config_form_field_export_range</frontend_model>
@@ -252,6 +311,16 @@
252
  <can_be_empty>1</can_be_empty>
253
  <comment>Export Products to CSV and send the CSV file to Emaildirect (opens in new window)</comment>
254
  </export_button>
 
 
 
 
 
 
 
 
 
 
255
  </fields>
256
  </export>
257
  <troubleshooting translate="label comment">
25
  <show_in_default>1</show_in_default>
26
  <show_in_website>1</show_in_website>
27
  <show_in_store>1</show_in_store>
28
+ <expanded>1</expanded>
29
  <fields>
30
  <active translate="label">
31
  <label>Enabled</label>
35
  <show_in_default>1</show_in_default>
36
  <show_in_website>1</show_in_website>
37
  <show_in_store>1</show_in_store>
38
+ <depends><setup>1</setup></depends>
39
  </active>
40
  <apikey translate="label comment">
41
  <label>API Key</label>
46
  <show_in_store>1</show_in_store>
47
  <comment>Enter your EmailDirect API Key here</comment>
48
  </apikey>
49
+ <apikey_instructions>
50
+ <label>Get your API Key</label>
51
+ <frontend_model>emaildirect/adminhtml_system_config_form_field_note</frontend_model>
52
+ <text>Testing</text>
53
+ <sort_order>21</sort_order>
54
+ <show_in_default>1</show_in_default>
55
+ <show_in_website>1</show_in_website>
56
+ <show_in_store>1</show_in_store>
57
+ <depends><setup>0</setup></depends>
58
+ </apikey_instructions>
59
  <publication translate="label comment">
60
  <label>Publication</label>
61
  <frontend_type>select</frontend_type>
66
  <show_in_store>1</show_in_store>
67
  <can_be_empty>1</can_be_empty>
68
  <comment>This is the Publication that emails will be subscribed to and is required</comment>
69
+ <depends><setup>1</setup></depends>
70
  </publication>
71
  <additional_lists translate="label comment">
72
  <label>Additional Lists</label>
78
  <show_in_store>1</show_in_store>
79
  <can_be_empty>1</can_be_empty>
80
  <comment>Choose one or more Lists to allow your subscribers more options when subscribing. Not required</comment>
81
+ <depends><setup>1</setup></depends>
82
  </additional_lists>
83
  <source translate="label comment">
84
  <label>Source</label>
89
  <show_in_store>1</show_in_store>
90
  <can_be_empty>0</can_be_empty>
91
  <comment><![CDATA[This is the main source used with the Magento General Subscription.<br/> If you leave this field blank <b>Magento</b> is used]]></comment>
92
+ <depends><setup>1</setup></depends>
93
  </source>
94
+ <override_source translate="label">
95
+ <label>Override Source</label>
96
+ <frontend_type>select</frontend_type>
97
+ <source_model>adminhtml/system_config_source_yesno</source_model>
98
+ <sort_order>50</sort_order>
99
+ <show_in_default>1</show_in_default>
100
+ <show_in_website>1</show_in_website>
101
+ <show_in_store>1</show_in_store>
102
+ <comment>If set to "Yes", the source will be updated when an existing customer is updated.</comment>
103
+ <depends><setup>1</setup></depends>
104
+ </override_source>
105
+
106
  <address_fields translate="label comment">
107
  <label>Address Fields Mapping</label>
108
  <frontend_model>emaildirect/adminhtml_system_config_form_field_addressmapfields</frontend_model>
111
  <show_in_default>1</show_in_default>
112
  <show_in_website>0</show_in_website>
113
  <show_in_store>1</show_in_store>
114
+ <depends><setup>1</setup></depends>
115
  </address_fields>
116
  <map_fields translate="label comment">
117
  <label>Customer Fields Mapping</label>
121
  <show_in_default>1</show_in_default>
122
  <show_in_website>0</show_in_website>
123
  <show_in_store>1</show_in_store>
124
+ <depends><setup>1</setup></depends>
125
  </map_fields>
126
  <shipping_fields translate="label comment">
127
  <label>Shipping Fields Mapping</label>
131
  <show_in_default>1</show_in_default>
132
  <show_in_website>0</show_in_website>
133
  <show_in_store>1</show_in_store>
134
+ <depends><setup>1</setup></depends>
135
  </shipping_fields>
136
  <checkout_subscribe translate="label comment">
137
  <label>Subscribe On Checkout</label>
142
  <show_in_website>0</show_in_website>
143
  <show_in_store>1</show_in_store>
144
  <comment>Show Newsletter Subscribe checkbox in the last Checkout Step (Order Review)</comment>
145
+ <depends><setup>1</setup></depends>
146
  </checkout_subscribe>
147
  <sendorder translate="label">
148
  <label>Send orders to EmailDirect</label>
153
  <show_in_website>1</show_in_website>
154
  <show_in_store>1</show_in_store>
155
  <comment>Sends all completed orders to EmailDirect Purchase Behavior for detailed reporting, filtering and targeting</comment>
156
+ <depends><setup>1</setup></depends>
157
  </sendorder>
158
+ <send_states translate="label comment">
159
+ <label>Send order on which state(s)</label>
160
+ <frontend_type>multiselect</frontend_type>
161
+ <source_model>emaildirect/system_config_source_states</source_model>
162
+ <sort_order>86</sort_order>
163
+ <show_in_default>1</show_in_default>
164
+ <show_in_website>0</show_in_website>
165
+ <show_in_store>1</show_in_store>
166
+ <can_be_empty>0</can_be_empty>
167
+ <comment>Choose one or more States to determine when an order will be sent to EmailDirect. Orders will only be sent the first time one of these states are encountered.</comment>
168
+ <depends><setup>1</setup></depends>
169
+ </send_states>
170
  <save_latest_order translate="label">
171
  <label>Save Latest Order Information</label>
172
  <frontend_type>select</frontend_type>
173
  <source_model>adminhtml/system_config_source_yesno</source_model>
174
+ <sort_order>88</sort_order>
175
  <show_in_default>1</show_in_default>
176
  <show_in_website>1</show_in_website>
177
  <show_in_store>1</show_in_store>
178
  <comment>Save information from the latest order along with the first 3 products from that order</comment>
179
+ <depends><setup>1</setup></depends>
180
  </save_latest_order>
181
  <sendabandoned translate="label">
182
  <label>Add Abandoned Carts To EmailDirect</label>
187
  <show_in_website>1</show_in_website>
188
  <show_in_store>1</show_in_store>
189
  <comment>This will add any abandoned shopping carts to the EmailDirect database with AbandonedDate and AbandonedURL database fields. These fields can be used with Workflows to time your own Abandoned Shopping Cart emails or send a series of emails. This allows for complete customization of the email.</comment>
190
+ <depends><setup>1</setup></depends>
191
  </sendabandoned>
192
  <abandonedtime translate="label comment">
193
  <label>Abandoned Time</label>
198
  <show_in_website>1</show_in_website>
199
  <show_in_store>1</show_in_store>
200
  <comment>How long before a cart is considered abandoned?</comment>
201
+ <depends><setup>1</setup></depends>
202
  </abandonedtime>
203
  <abandonedpublication translate="label comment">
204
  <label>Abandoned Publication</label>
210
  <show_in_store>1</show_in_store>
211
  <can_be_empty>1</can_be_empty>
212
  <comment>This is the Publication that you will put abandoned shoppers into</comment>
213
+ <depends><setup>1</setup></depends>
214
  </abandonedpublication>
215
  <abandonedlist translate="label comment">
216
  <label>Abandoned List</label>
222
  <show_in_store>1</show_in_store>
223
  <can_be_empty>1</can_be_empty>
224
  <comment>This is the List that you will put abandoned shoppers into. Not Required.</comment>
225
+ <depends><setup>1</setup></depends>
226
  </abandonedlist>
227
  </fields>
228
  </general>
243
  <show_in_website>1</show_in_website>
244
  <show_in_store>1</show_in_store>
245
  </heading_orders>
246
+ <include_already_sent translate="label">
247
+ <label>Include orders already sent?</label>
248
+ <frontend_type>select</frontend_type>
249
+ <source_model>adminhtml/system_config_source_yesno</source_model>
250
+ <sort_order>5</sort_order>
251
+ <show_in_default>1</show_in_default>
252
+ <show_in_website>1</show_in_website>
253
+ <show_in_store>1</show_in_store>
254
+ <comment>This option allows you to include or exclude orders that have been sent directly to EmailDirect through the normal order creation process.</comment>
255
+ </include_already_sent>
256
  <export_orders_range>
257
  <label>Order Date Range</label>
258
  <frontend_model>emaildirect/adminhtml_system_config_form_field_export_range</frontend_model>
311
  <can_be_empty>1</can_be_empty>
312
  <comment>Export Products to CSV and send the CSV file to Emaildirect (opens in new window)</comment>
313
  </export_button>
314
+ <export_na>
315
+ <label>Export Not Available</label>
316
+ <frontend_type>label</frontend_type>
317
+ <sort_order>1000</sort_order>
318
+ <show_in_default>0</show_in_default>
319
+ <show_in_website>0</show_in_website>
320
+ <show_in_store>0</show_in_store>
321
+ <comment>Please setup your API Key to perform an Export</comment>
322
+ <depends><setup>0</setup></depends>
323
+ </export_na>
324
  </fields>
325
  </export>
326
  <troubleshooting translate="label comment">
app/code/local/EmailDirect/Integration/sql/emaildirect_setup/mysql4-upgrade-1.5.4-1.5.5.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+
5
+ $installer->startSetup();
6
+
7
+ try
8
+ {
9
+ $installer->run("
10
+ ALTER TABLE `{$this->getTable('sales_flat_order')}`
11
+ add column `sent_to_emaildirect` BOOLEAN NULL DEFAULT 0
12
+ ");
13
+ }
14
+ catch (Exception $e)
15
+ {
16
+ // Ignore
17
+ }
18
+
19
+ $installer->endSetup();
app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/array.phtml CHANGED
@@ -33,35 +33,35 @@ if (!$this->_addAfter) {
33
  $_colspan -= 1;
34
  }
35
  $_colspan = $_colspan > 1 ? 'colspan="' . $_colspan . '"' : '';
 
 
36
  ?>
37
 
 
38
  <div class="grid" id="grid<?php echo $_htmlId ?>">
39
  <table cellpadding="0" cellspacing="0" class="border">
40
  <tbody>
41
-
42
  <tr class="headings" id="headings<?php echo $_htmlId ?>">
43
  <?php foreach ($this->_columns as $columnName => $column):?>
44
  <th><?php echo $column['label'] ?></th>
45
  <?php endforeach;?>
46
  <th <?php echo $_colspan?>></th>
47
  </tr>
48
-
49
  <tr id="addRow<?php echo $_htmlId ?>">
50
  <td colspan="<?php echo count($this->_columns) ?>"></td>
51
  <td <?php echo $_colspan?>>
52
  <button style="" onclick="" class="scalable add" type="button" id="addToEndBtn<?php echo $_htmlId ?>">
53
- <span><span><span><?php echo $this->_addButtonLabel ?></span></span></span>
54
  </button>
55
  </td>
56
  </tr>
57
-
58
  </tbody>
59
  </table>
60
  <input type="hidden" name="<?php echo $this->getElement()->getName() ?>[__empty]" value="" />
61
  </div>
62
  <div id="empty<?php echo $_htmlId ?>">
63
  <button style="" onclick="" class="scalable add" type="button" id="emptyAddBtn<?php echo $_htmlId ?>">
64
- <span><span><span><?php echo $this->_addButtonLabel ?></span></span></span>
65
  </button>
66
  </div>
67
 
@@ -78,9 +78,9 @@ var arrayRow<?php echo $_htmlId ?> = {
78
  +'<\/td>'
79
  <?php endforeach;?>
80
  <?php if ($this->_addAfter):?>
81
- +'<td><button onclick="" class="scalable add" type="button" id="addAfterBtn#{_id}"><span><span><span><?php echo Mage::helper('adminhtml')->__('Add after') ?><\/span><\/span><\/span><\/button><\/td>'
82
  <?php endif;?>
83
- +'<td><button onclick="arrayRow<?php echo $_htmlId ?>.del(\'#{_id}\')" class="scalable delete" type="button"><span><span><span><?php echo Mage::helper('adminhtml')->__('Delete') ?><\/span><\/span><\/span><\/button><\/td>'
84
  +'<\/tr>'
85
  ),
86
 
33
  $_colspan -= 1;
34
  }
35
  $_colspan = $_colspan > 1 ? 'colspan="' . $_colspan . '"' : '';
36
+
37
+
38
  ?>
39
 
40
+ <div id="<?php echo $this->getElement()->getHtmlId(); ?>" style='display:none'></div>
41
  <div class="grid" id="grid<?php echo $_htmlId ?>">
42
  <table cellpadding="0" cellspacing="0" class="border">
43
  <tbody>
 
44
  <tr class="headings" id="headings<?php echo $_htmlId ?>">
45
  <?php foreach ($this->_columns as $columnName => $column):?>
46
  <th><?php echo $column['label'] ?></th>
47
  <?php endforeach;?>
48
  <th <?php echo $_colspan?>></th>
49
  </tr>
 
50
  <tr id="addRow<?php echo $_htmlId ?>">
51
  <td colspan="<?php echo count($this->_columns) ?>"></td>
52
  <td <?php echo $_colspan?>>
53
  <button style="" onclick="" class="scalable add" type="button" id="addToEndBtn<?php echo $_htmlId ?>">
54
+ <span><?php echo $this->_addButtonLabel ?></span>
55
  </button>
56
  </td>
57
  </tr>
 
58
  </tbody>
59
  </table>
60
  <input type="hidden" name="<?php echo $this->getElement()->getName() ?>[__empty]" value="" />
61
  </div>
62
  <div id="empty<?php echo $_htmlId ?>">
63
  <button style="" onclick="" class="scalable add" type="button" id="emptyAddBtn<?php echo $_htmlId ?>">
64
+ <span><?php echo $this->_addButtonLabel ?></span>
65
  </button>
66
  </div>
67
 
78
  +'<\/td>'
79
  <?php endforeach;?>
80
  <?php if ($this->_addAfter):?>
81
+ +'<td><button onclick="" class="scalable add" type="button" id="addAfterBtn#{_id}"><span><?php echo Mage::helper('adminhtml')->__('Add after') ?><\/span><\/button><\/td>'
82
  <?php endif;?>
83
+ +'<td><button onclick="arrayRow<?php echo $_htmlId ?>.del(\'#{_id}\')" class="scalable delete" type="button"><span><?php echo Mage::helper('adminhtml')->__('Delete') ?><\/span><\/button><\/td>'
84
  +'<\/tr>'
85
  ),
86
 
app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/export/date_range.phtml CHANGED
@@ -1,3 +1,4 @@
 
1
  <span>From: </span><input style="width: 75px;" type="text" name="order_export_from" id="order_export_from" value="<?php echo $this->getFromDate() ?>" class="input-text">
2
  <img src="<?php echo $this->getSkinUrl('images/grid-cal.gif'); ?>" alt="Select From Date" class="v-middle" title="Select From Date" id="from_trig">
3
  <span>&nbsp;&nbsp;&nbsp; to: </span>
@@ -50,7 +51,15 @@
50
  Calendar.setup(calendarSetupObject2);
51
 
52
  var url = '<?php echo $this->getUrl("emaildirect/admin_export/count/"); ?>';
53
-
 
 
 
 
 
 
 
 
54
  $('order_export_from').observe('change', function(event)
55
  {
56
  if (!validateDates())
@@ -101,11 +110,14 @@ function dateRangeChange()
101
  {
102
  var from = $('order_export_from').value;
103
  var to = $('order_export_to').value;
 
 
 
104
 
105
  $('orders_found').update("???");
106
 
107
  new Ajax.Request(url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), {
108
- parameters : {from: from, to: to},
109
  method : 'post',
110
  loaderArea : false,
111
  onSuccess : function(transport)
1
+ <div id="<?php echo $this->getElement()->getHtmlId(); ?>" style='display:none'></div>
2
  <span>From: </span><input style="width: 75px;" type="text" name="order_export_from" id="order_export_from" value="<?php echo $this->getFromDate() ?>" class="input-text">
3
  <img src="<?php echo $this->getSkinUrl('images/grid-cal.gif'); ?>" alt="Select From Date" class="v-middle" title="Select From Date" id="from_trig">
4
  <span>&nbsp;&nbsp;&nbsp; to: </span>
51
  Calendar.setup(calendarSetupObject2);
52
 
53
  var url = '<?php echo $this->getUrl("emaildirect/admin_export/count/"); ?>';
54
+
55
+ $('emaildirect_export_include_already_sent').observe('change', function(event)
56
+ {
57
+ if (!validateDates())
58
+ return;
59
+
60
+ dateRangeChange();
61
+ });
62
+
63
  $('order_export_from').observe('change', function(event)
64
  {
65
  if (!validateDates())
110
  {
111
  var from = $('order_export_from').value;
112
  var to = $('order_export_to').value;
113
+ var include = $('emaildirect_export_include_already_sent').value;
114
+
115
+ //var include_disabled = form['groups[export][fields][include_disabled][value]'];
116
 
117
  $('orders_found').update("???");
118
 
119
  new Ajax.Request(url + (url.match(new RegExp('\\?')) ? '&isAjax=true' : '?isAjax=true' ), {
120
+ parameters : {from: from, to: to, include: include},
121
  method : 'post',
122
  loaderArea : false,
123
  onSuccess : function(transport)
app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/export/orders.phtml CHANGED
@@ -1,3 +1,4 @@
 
1
  <button id='emaildirect_export_orders' onClick="perform_order_export(); return false;">Export Orders</button>
2
  <script type='text/javascript'>
3
  function perform_order_export()
@@ -5,9 +6,10 @@ function perform_order_export()
5
  var form = $('config_edit_form');
6
  var from = form['order_export_from'];
7
  var to = form['order_export_to'];
 
8
  var url = '<?php echo $this->getUrl("emaildirect/admin_export/orders/"); ?>';
9
 
10
- url += 'export_from/' + $(from).getValue() + '/export_to/' + $(to).getValue() + '/';
11
 
12
  window.open(url);
13
  }
1
+ <div id="<?php echo $this->getElement()->getHtmlId(); ?>" style='display:none'></div>
2
  <button id='emaildirect_export_orders' onClick="perform_order_export(); return false;">Export Orders</button>
3
  <script type='text/javascript'>
4
  function perform_order_export()
6
  var form = $('config_edit_form');
7
  var from = form['order_export_from'];
8
  var to = form['order_export_to'];
9
+ var include = form['groups[export][fields][include_already_sent][value]'];
10
  var url = '<?php echo $this->getUrl("emaildirect/admin_export/orders/"); ?>';
11
 
12
+ url += 'export_from/' + $(from).getValue() + '/export_to/' + $(to).getValue() + '/include_already_sent/' + $(include).getValue() + '/';
13
 
14
  window.open(url);
15
  }
app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/export/products.phtml CHANGED
@@ -1,3 +1,4 @@
 
1
  <button id='emaildirect_export_products' onClick="perform_product_export(); return false;">Export Products</button>
2
  <script type='text/javascript'>
3
  function perform_product_export()
1
+ <div id="<?php echo $this->getElement()->getHtmlId(); ?>" style='display:none'></div>
2
  <button id='emaildirect_export_products' onClick="perform_product_export(); return false;">Export Products</button>
3
  <script type='text/javascript'>
4
  function perform_product_export()
app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/note.phtml ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <div id="<?php echo $this->getElement()->getHtmlId(); ?>" style='display:none'></div>
2
+ <p>You can retrieve an API Key by going to your EmailDirect account and clicking on Account Setup, then navigating to the API Keys tab.</p>
3
+ <br />
4
+ <p>If you do not have an EmailDirect account, please email us at <a href="mailto:Sales@EmailDirect.com">Sales@EmailDirect.com</a> or call 916-439-6948. You can also visit our website at <a href="http://www.EmailDirect.com">http://www.EmailDirect.com</a> to learn more about this integration and other features that we offer.</p>
app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/trouble.phtml CHANGED
@@ -4,7 +4,7 @@
4
 
5
  $enabled = $element->getValue() == true;
6
  ?>
7
-
8
  <span class='trouble_status'>Status: <strong><?php if ($enabled) echo "Enabled"; else echo "Disabled" ?></strong></span>
9
  <button id='emaildirect_trouble' onClick="toggle_trouble();"><?php if ($enabled) echo "Disable"; else echo "Enable" ?></button>
10
  <input type='hidden' name='<?php echo $this->getElement()->getName() ?>' value='<?php echo $this->getElement()->getValue() ?>'/>
4
 
5
  $enabled = $element->getValue() == true;
6
  ?>
7
+ <div id="<?php echo $this->getElement()->getHtmlId(); ?>" style='display:none'></div>
8
  <span class='trouble_status'>Status: <strong><?php if ($enabled) echo "Enabled"; else echo "Disabled" ?></strong></span>
9
  <button id='emaildirect_trouble' onClick="toggle_trouble();"><?php if ($enabled) echo "Disable"; else echo "Enable" ?></button>
10
  <input type='hidden' name='<?php echo $this->getElement()->getName() ?>' value='<?php echo $this->getElement()->getValue() ?>'/>
app/design/adminhtml/default/default/template/emaildirect/troubleshooting/view/tab/info.phtml CHANGED
@@ -1,5 +1,3 @@
1
-
2
-
3
  <?php
4
  $environment = $this->getEnvironmentInfo();
5
  $store_configuration = $this->getConfigurationInfo();
 
 
1
  <?php
2
  $environment = $this->getEnvironmentInfo();
3
  $store_configuration = $this->getConfigurationInfo();
package.xml CHANGED
@@ -1,18 +1,22 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>EmailDirect_Integration</name>
4
- <version>1.5.3</version>
5
  <stability>stable</stability>
6
  <license>GNU</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>EmailDirect integration for magento</summary>
10
  <description>EmailDirect integration for magento</description>
11
- <notes>Added Functionality: Order Exports for the past 12 months.</notes>
 
 
 
 
12
  <authors><author><name>Kevin Linden</name><user>auto-converted</user><email>Kevin@EmailDirect.com</email></author></authors>
13
- <date>2013-08-05</date>
14
- <time>18:24:14</time>
15
- <contents><target name="magelocal"><dir name="EmailDirect"><dir name="Integration"><dir name="Block"><dir name="Adminhtml"><dir name="Abandoned"><file name="Grid.php" hash="6c89297aecebd7d25c1178bdd3fd5529"/></dir><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Hint.php" hash="7649b64cf2319484207c5179df7b4e9f"/></dir><dir name="Form"><dir name="Field"><dir name="Export"><file name="Orders.php" hash="ddcfc1c3c579421bc5c8af9173d1cbf2"/><file name="Products.php" hash="0c6a9936ccc806b9e3ddf573d1df1e53"/><file name="Range.php" hash="1a65f810199b9ca793ed2e8effeaed5b"/></dir><file name="Addressmapfields.php" hash="97b75c8340d561e863a3985ad73ce228"/><file name="Common.php" hash="e597ff375c4b46b92d6aa35646e3d8c9"/><file name="Mapfields.php" hash="677ebfd526fba11a1c177c00ae085526"/><file name="Shippingmapfields.php" hash="589a74260f394a5eae1b57ca89a74a8b"/><file name="Troubleshooting.php" hash="3699df84e4856983e679bd6c8fc9513e"/></dir></dir><file name="Account.php" hash="60fa8e43a87e1f2ff71c319c979556b2"/></dir><dir name="Convert"><dir name="Profile"><dir name="Export"><file name="Orders.php" hash="b04562daa66840c1e60b0cc930037de7"/><file name="Products.php" hash="a58d1d192ef82fd6ce032db7455b11b8"/></dir><file name="Export.php" hash="8ab53088f2dd35ca001e9a063a5c6e64"/></dir></dir></dir><dir name="Troubleshooting"><dir name="View"><dir name="Tab"><file name="Download.php" hash="9315a364a46f9e39972bbd0a47152e90"/><file name="Info.php" hash="6714b756a3fa7a5812356e544fe48f1b"/><file name="Log.php" hash="7c3661722d1197cd8a564f76275353c7"/><file name="Submit.php" hash="8831d886858fde08a4323eea66ec76d2"/></dir><file name="Form.php" hash="e527a3a2335b109c48a69f06c1b0d01f"/></dir><file name="Tabs.php" hash="ab1fdbe561e8572c2c50cdbec9573f82"/><file name="View.php" hash="7cd8350545f6b6119b2c91b3fc6ae562"/></dir><file name="Abandoned.php" hash="c8b14b123f121b528b9a9d3b6c90c328"/></dir><dir name="Checkout"><file name="Subscribe.php" hash="ae325e815a54bde93507562cf0d86b8a"/></dir><dir name="Customer"><dir name="Account"><dir name="Dashboard"><file name="Info.php" hash="20e74d9c2b2c02611c8f69b254d81ef5"/></dir><file name="Lists.php" hash="3c3bdb9482ecf4a71740a80395bd5465"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="AbandonedMinutes.php" hash="22e33be85dc8348fce9b49637ead919d"/><file name="Action.php" hash="b85ef0454ab5c65ef0c43c7ef057ecc2"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="8f88fd5ed3c1d2260c135b47679bc818"/><file name="Fields.php" hash="1275a766d979e1ac3efabbf168ac92f5"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Source"><dir name="Export"><dir name="Orders"><file name="From.php" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><file name="Batch.php" hash="fd2fcedc80472895b2081e21af8fa7f5"/></dir><file name="Abandoned.php" hash="d4985049dbd47d79a9d8f3361528bc87"/><file name="Abandonedlist.php" hash="a5d3b987ea2a2d8672c9c2c3473c24e2"/><file name="Additionallist.php" hash="1fcede7a1efe84ce13104194f3dc9962"/><file name="Checkoutsubscribe.php" hash="fd90252a1f19649a420dae136ad2a2ba"/><file name="List.php" hash="00611b9215b54e86171a8e4a9a5e54db"/><file name="Maxtimes.php" hash="465ffb2acf45adf594b6e8c720dd23dc"/><file name="Publication.php" hash="903657f0b2a911af97f8bccb6d9cffab"/><file name="Source.php" hash="fb706f2418208b2a8f7a29a6050e815d"/><file name="Time.php" hash="0e26839880e25ec0eedce1ce8a663c0f"/></dir></dir></dir><dir name="Wrapper"><file name="Abandoned.php" hash="f33d3ef289c147ce572bcafdce47665c"/><file name="Abstract.php" hash="90935a39addc872b82639ae97855c894"/><file name="Database.php" hash="3cceb467358d13584baff58c043762ec"/><file name="Execute.php" hash="e186a88a5dd2814b96801e1083ab9353"/><file name="Ftp.php" hash="d5335cfb68f99761d6902dd390a3d7a8"/><file name="Lists.php" hash="dff74c445f6a9582b35bb24560582c2b"/><file name="Orders.php" hash="81dbf1045688e932fa6175784c2bf0cb"/><file name="Publications.php" hash="815715549df345ccb5b69ed65589aa53"/><file name="Sources.php" hash="c6caf0274f7d0c50114324bc47a490c4"/><file name="Subscribers.php" hash="c3093bd2f86fdc3a7e4b2a2d4beadd2b"/></dir><file name="Observer.php" hash="51c5936090ef54a4718eb7f54b12b062"/></dir><dir name="controllers"><dir name="Admin"><file name="AbandonedController.php" hash="a662c919ac3fae1503616a1795c96cf9"/><file name="ExportController.php" hash="35d4e0da60732256ed3d6c4d07c5225c"/><file name="OrderExportController.php" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="TroubleshootingController.php" hash="c3dbc4bd72620dcd0b5844c3ee735f4e"/></dir><dir name="Customer"><file name="AccountController.php" hash="16bfdb6de4804a5d71cb972afbff4537"/></dir><file name="AbandonedController.php" hash="12d8655ed118d280320e5457f4933881"/><file name="ExportController.php" hash="18efc4651839152794bf06c3bf4a6bb1"/></dir><dir name="etc"><file name="adminhtml.xml" hash="896c10d8a3f932346e7d301052b1b6a6"/><file name="config.xml" hash="ca0f208186857a877092daecd0fd909e"/><file name="system.xml" hash="fbeee326e5a9385f8c273797130d26f9"/></dir><dir name="sql"><dir name="emaildirect_setup"><file name="mysql4-install-1.0.0.php" hash="9dc51edb346e9676735e15d3e78fa3eb"/><file name="mysql4-upgrade-1.0.13-1.0.14.php" hash="c42e2677b3960a049d7137b622552084"/><file name="mysql4-upgrade-1.0.19-1.2.0.php" hash="742be042b7f56e7ff2002b0606270ca6"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="emaildirect"><file name="emaildirect-connected-ebizmarts-title.png" hash="faf3858f23eafe3a89cce144fef6bd2a"/><file name="emaildirect-section-background.png" hash="c205ce454fe63280d7d7dd74428b7ea4"/><file name="emaildirect-tab.png" hash="9ddb077b74a7078ac509d79b024631a1"/><file name="emaildirect.css" hash="a1bd456df3c616fb0ec93d0ba60deb10"/><file name="emaildirect.js" hash="ce03dd6f51ea529fc4acdc5116f4e030"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="emaildirect"><dir name="images"><file name="bkg_block-title.gif" hash="f8c1f130ad69464fe7aff2f589b2ec75"/><file name="dotted_divider.gif" hash="260ebae91ffb1b7c663906b29a069925"/><file name="emaildirect-tile.png" hash="86a0ed36169ab9691480fc995ab674a8"/><file name="i_block-subscribe.gif" hash="9e5fee06a543742045118a95f2debcb8"/></dir><file name="integration.js" hash="d8c8d5bf0ddb4f6ead23bec8a2814475"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="emaildirect.xml" hash="60db91d36cf7929e5999239fcd4df256"/></dir><dir name="template"><dir name="emaildirect"><dir name="abandoned"><file name="grid.phtml" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><dir name="system"><dir name="config"><dir name="fieldset"><file name="hint.phtml" hash="4d7607ecb15d13cfe8bb0cc889cb724f"/></dir><dir name="form"><dir name="field"><dir name="export"><file name="date_range.phtml" hash="9f0970202cbe62961418ca9e07af6bca"/><file name="orders.phtml" hash="4e3e9e7bce9d95ed4414c680f81d0eb0"/><file name="products.phtml" hash="c18ce1ac91420dbb92d73cecd422b692"/></dir><file name="array.phtml" hash="d6af9f840f4dda9c73d106e167ec1bc6"/><file name="trouble.phtml" hash="6a4da26c815410af8030f1eda5f1022d"/></dir></dir></dir><dir name="convert"><dir name="profile"><file name="export.phtml" hash="ae27366ebd59f082f1a2dd000b41081b"/><file name="export_orders.phtml" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir></dir><dir name="troubleshooting"><dir name="view"><dir name="tab"><file name="download.phtml" hash="78ec34fd9c3c8b660b19f9e799d8e76e"/><file name="info.phtml" hash="547b1e906ed142983d1034e05f6251bd"/><file name="log.phtml" hash="c9e2c9493a2dad579bba4ed53795cf5e"/><file name="submit.phtml" hash="c2269f4a6a52d66bff5eac660d0831bd"/></dir><file name="form.phtml" hash="d2338bfe3598e9315ca8f5ac8d9b5516"/></dir><file name="view.phtml" hash="ee6af3fe79d916af764f41e7e8c5cc37"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="emaildirect.xml" hash="9803fe9024b7eb6415713d81fe27c629"/></dir><dir name="template"><dir name="emaildirect"><dir name="checkout"><file name="subscribe.phtml" hash="351ea790305f0a3ec99c34180bbee235"/></dir><dir name="customer"><dir name="account"><dir name="dashboard"><file name="info.phtml" hash="4256a03d67ec2a6f97867a87564cff92"/></dir><file name="lists.phtml" hash="4c697dcfa63ece1db7885cadb02982d1"/></dir></dir><dir name="email"><dir name="order"><dir name="items"><dir name="order"><file name="default.phtml" hash="2d65f3d02b9baa08969d68f2a2cca348"/></dir></dir><file name="items.phtml" hash="e6b15e6460010c5acae66017d177bfb9"/></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><file name="newsletter_subscr_success_emaildirect.html" hash="f6afb69d207bbc3f8920e7a72ac9dd07"/><file name="newsletter_unsub_success_emaildirect.html" hash="bd9f97e8f5485180d4420097b5200ef4"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="EmailDirect_Integration.xml" hash="2d2666e6d9cd8d40a4974d5e242721d6"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies/>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>EmailDirect_Integration</name>
4
+ <version>1.5.5</version>
5
  <stability>stable</stability>
6
  <license>GNU</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>EmailDirect integration for magento</summary>
10
  <description>EmailDirect integration for magento</description>
11
+ <notes>Bug fixes for multiple store configuration.&#xD;
12
+ Configure which order state(s) will be sent to EmailDirect.&#xD;
13
+ Override option for Sources on existing records&#xD;
14
+ Debug/Troubleshooting improvements&#xD;
15
+ Misc fixes</notes>
16
  <authors><author><name>Kevin Linden</name><user>auto-converted</user><email>Kevin@EmailDirect.com</email></author></authors>
17
+ <date>2013-09-17</date>
18
+ <time>04:14:30</time>
19
+ <contents><target name="magelocal"><dir name="EmailDirect"><dir name="Integration"><dir name="Block"><dir name="Adminhtml"><dir name="Abandoned"><file name="Grid.php" hash="6c89297aecebd7d25c1178bdd3fd5529"/></dir><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Hint.php" hash="7649b64cf2319484207c5179df7b4e9f"/></dir><dir name="Form"><dir name="Field"><dir name="Export"><file name="Orders.php" hash="ddcfc1c3c579421bc5c8af9173d1cbf2"/><file name="Products.php" hash="0c6a9936ccc806b9e3ddf573d1df1e53"/><file name="Range.php" hash="932ee080796b39687ab7529ac1f18786"/></dir><file name="Addressmapfields.php" hash="97b75c8340d561e863a3985ad73ce228"/><file name="Common.php" hash="e597ff375c4b46b92d6aa35646e3d8c9"/><file name="Mapfields.php" hash="677ebfd526fba11a1c177c00ae085526"/><file name="Note.php" hash="ef99a474bbc3a828c7a618132a80fe66"/><file name="Shippingmapfields.php" hash="589a74260f394a5eae1b57ca89a74a8b"/><file name="Troubleshooting.php" hash="8f624530d0e1a6925ec3c790dc93f36a"/></dir></dir><file name="Account.php" hash="60fa8e43a87e1f2ff71c319c979556b2"/></dir><dir name="Convert"><dir name="Profile"><dir name="Export"><file name="Orders.php" hash="49469cd6a128f8b49d88a5f563492c02"/><file name="Products.php" hash="a58d1d192ef82fd6ce032db7455b11b8"/></dir><file name="Export.php" hash="8ab53088f2dd35ca001e9a063a5c6e64"/></dir></dir></dir><dir name="Troubleshooting"><dir name="View"><dir name="Tab"><file name="Download.php" hash="9315a364a46f9e39972bbd0a47152e90"/><file name="Info.php" hash="6714b756a3fa7a5812356e544fe48f1b"/><file name="Log.php" hash="7c3661722d1197cd8a564f76275353c7"/><file name="Submit.php" hash="8831d886858fde08a4323eea66ec76d2"/></dir><file name="Form.php" hash="e527a3a2335b109c48a69f06c1b0d01f"/></dir><file name="Tabs.php" hash="ab1fdbe561e8572c2c50cdbec9573f82"/><file name="View.php" hash="7cd8350545f6b6119b2c91b3fc6ae562"/></dir><file name="Abandoned.php" hash="c8b14b123f121b528b9a9d3b6c90c328"/></dir><dir name="Checkout"><file name="Subscribe.php" hash="ae325e815a54bde93507562cf0d86b8a"/></dir><dir name="Customer"><dir name="Account"><dir name="Dashboard"><file name="Info.php" hash="20e74d9c2b2c02611c8f69b254d81ef5"/></dir><file name="Lists.php" hash="3c3bdb9482ecf4a71740a80395bd5465"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="AbandonedMinutes.php" hash="22e33be85dc8348fce9b49637ead919d"/><file name="Action.php" hash="b85ef0454ab5c65ef0c43c7ef057ecc2"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="be990388656b8bf9b0bce1139703df4c"/><file name="Fields.php" hash="1275a766d979e1ac3efabbf168ac92f5"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Source"><dir name="Export"><file name="Batch.php" hash="96c51fc5c0b947750be4e612e32c83ab"/></dir><file name="Abandoned.php" hash="9881811b94f38be90bd20a99951a1903"/><file name="Abandonedlist.php" hash="a5d3b987ea2a2d8672c9c2c3473c24e2"/><file name="Additionallist.php" hash="1fcede7a1efe84ce13104194f3dc9962"/><file name="Checkoutsubscribe.php" hash="fd90252a1f19649a420dae136ad2a2ba"/><file name="List.php" hash="00611b9215b54e86171a8e4a9a5e54db"/><file name="Publication.php" hash="903657f0b2a911af97f8bccb6d9cffab"/><file name="Source.php" hash="4b641d4757221c88d26458ae62bc874a"/><file name="States.php" hash="82682b97d671eb616649dfc52e202100"/><file name="Time.php" hash="0e26839880e25ec0eedce1ce8a663c0f"/></dir></dir></dir><dir name="Wrapper"><file name="Abandoned.php" hash="ef81d36a7276737f2d0aa1a5d783a83b"/><file name="Abstract.php" hash="9e97ce6a12e0d074921bb3a1391f3648"/><file name="Database.php" hash="3cceb467358d13584baff58c043762ec"/><file name="Execute.php" hash="7ffbdec336a7ddf6ec9dae21fd3b8545"/><file name="Ftp.php" hash="d5335cfb68f99761d6902dd390a3d7a8"/><file name="Lists.php" hash="dff74c445f6a9582b35bb24560582c2b"/><file name="Orders.php" hash="81dbf1045688e932fa6175784c2bf0cb"/><file name="Publications.php" hash="815715549df345ccb5b69ed65589aa53"/><file name="Sources.php" hash="c6caf0274f7d0c50114324bc47a490c4"/><file name="Subscribers.php" hash="064e07d8f2015cf56f7e82844f5df54c"/></dir><file name="Observer.php" hash="66f81ac132c84c76039dfa3c21b73948"/></dir><dir name="controllers"><dir name="Admin"><file name="AbandonedController.php" hash="a662c919ac3fae1503616a1795c96cf9"/><file name="ExportController.php" hash="0c3d4a316b1ea0d5220aa393be09e537"/><file name="OrderExportController.php" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="TroubleshootingController.php" hash="c3dbc4bd72620dcd0b5844c3ee735f4e"/></dir><dir name="Customer"><file name="AccountController.php" hash="16bfdb6de4804a5d71cb972afbff4537"/></dir><file name="AbandonedController.php" hash="138accdf0fb53ae11ca1c10f522845f2"/><file name="ExportController.php" hash="18efc4651839152794bf06c3bf4a6bb1"/></dir><dir name="etc"><file name="adminhtml.xml" hash="896c10d8a3f932346e7d301052b1b6a6"/><file name="config.xml" hash="9e84845c60a44061907dc9ded33aefa0"/><file name="system.xml" hash="c3cf6a78186905e69f73765a19f900fb"/></dir><dir name="sql"><dir name="emaildirect_setup"><file name="mysql4-install-1.0.0.php" hash="9dc51edb346e9676735e15d3e78fa3eb"/><file name="mysql4-upgrade-1.0.13-1.0.14.php" hash="c42e2677b3960a049d7137b622552084"/><file name="mysql4-upgrade-1.0.19-1.2.0.php" hash="742be042b7f56e7ff2002b0606270ca6"/><file name="mysql4-upgrade-1.5.4-1.5.5.php" hash="560244d63a037f88201a61d7f7482d2c"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="emaildirect"><file name="emaildirect-connected-ebizmarts-title.png" hash="faf3858f23eafe3a89cce144fef6bd2a"/><file name="emaildirect-section-background.png" hash="c205ce454fe63280d7d7dd74428b7ea4"/><file name="emaildirect-tab.png" hash="9ddb077b74a7078ac509d79b024631a1"/><file name="emaildirect.css" hash="3b6aab355cd3c061d7af59ec24871dce"/><file name="emaildirect.js" hash="ce03dd6f51ea529fc4acdc5116f4e030"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="emaildirect"><dir name="images"><file name="bkg_block-title.gif" hash="f8c1f130ad69464fe7aff2f589b2ec75"/><file name="dotted_divider.gif" hash="260ebae91ffb1b7c663906b29a069925"/><file name="emaildirect-tile.png" hash="86a0ed36169ab9691480fc995ab674a8"/><file name="i_block-subscribe.gif" hash="9e5fee06a543742045118a95f2debcb8"/></dir><file name="integration.js" hash="d8c8d5bf0ddb4f6ead23bec8a2814475"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="emaildirect.xml" hash="60db91d36cf7929e5999239fcd4df256"/></dir><dir name="template"><dir name="emaildirect"><dir name="abandoned"><file name="grid.phtml" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><dir name="system"><dir name="config"><dir name="fieldset"><file name="hint.phtml" hash="4d7607ecb15d13cfe8bb0cc889cb724f"/></dir><dir name="form"><dir name="field"><dir name="export"><file name="date_range.phtml" hash="886dd8c9a1526110c615ed6630664d0a"/><file name="orders.phtml" hash="f1e91768c0fc0a228905bd7da42131a6"/><file name="products.phtml" hash="99b88859146f490f87690cd44cabc999"/></dir><file name="array.phtml" hash="5415eeff311735624354468c886d39b5"/><file name="note.phtml" hash="6625a3771ba10daba5ded5570574716f"/><file name="trouble.phtml" hash="6a761369b4f85a78ea518b38f12d22ba"/></dir></dir></dir><dir name="convert"><dir name="profile"><file name="export.phtml" hash="ae27366ebd59f082f1a2dd000b41081b"/><file name="export_orders.phtml" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir></dir><dir name="troubleshooting"><dir name="view"><dir name="tab"><file name="download.phtml" hash="78ec34fd9c3c8b660b19f9e799d8e76e"/><file name="info.phtml" hash="bd19bb1072ce1d60a4fb7bda660a0ce7"/><file name="log.phtml" hash="c9e2c9493a2dad579bba4ed53795cf5e"/><file name="submit.phtml" hash="c2269f4a6a52d66bff5eac660d0831bd"/></dir><file name="form.phtml" hash="d2338bfe3598e9315ca8f5ac8d9b5516"/></dir><file name="view.phtml" hash="ee6af3fe79d916af764f41e7e8c5cc37"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="emaildirect.xml" hash="9803fe9024b7eb6415713d81fe27c629"/></dir><dir name="template"><dir name="emaildirect"><dir name="checkout"><file name="subscribe.phtml" hash="351ea790305f0a3ec99c34180bbee235"/></dir><dir name="customer"><dir name="account"><dir name="dashboard"><file name="info.phtml" hash="4256a03d67ec2a6f97867a87564cff92"/></dir><file name="lists.phtml" hash="4c697dcfa63ece1db7885cadb02982d1"/></dir></dir><dir name="email"><dir name="order"><dir name="items"><dir name="order"><file name="default.phtml" hash="2d65f3d02b9baa08969d68f2a2cca348"/></dir></dir><file name="items.phtml" hash="e6b15e6460010c5acae66017d177bfb9"/></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><file name="newsletter_subscr_success_emaildirect.html" hash="f6afb69d207bbc3f8920e7a72ac9dd07"/><file name="newsletter_unsub_success_emaildirect.html" hash="bd9f97e8f5485180d4420097b5200ef4"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="EmailDirect_Integration.xml" hash="2d2666e6d9cd8d40a4974d5e242721d6"/></dir></target></contents>
20
  <compatible/>
21
  <dependencies/>
22
  </package>
skin/adminhtml/default/default/emaildirect/emaildirect.css CHANGED
@@ -1,12 +1,11 @@
1
- ul.tabs a.emaildirect-section:hover { background-color:#D8E6E6; background-image:url(images/tabs_link_over_bg.gif); }
2
-
3
  ul.tabs a.emaildirect-section,
4
  ul.tabs a.emaildirect-section:hover {background: url("../images/tabs_span_bg.gif") repeat-x scroll 0 100% transparent; border-bottom:none; padding:0.5em 0.5em 0.5em 1.5em; text-indent:-9999px;}
5
 
6
- ul.tabs a.emaildirect-section span,
7
- ul.tabs a.emaildirect-section:hover span { background:url(emaildirect-tab.png) no-repeat 0 0; overflow:hidden; padding:0; width:120px; height:24px;}
8
 
9
- ul.tabs a.emaildirect-section.active, ul.tabs a.emaildirect-section.active:hover {background-color: white;}
 
 
10
 
11
  h3.emaildirect-header { background:url(emaildirect-tab.png) no-repeat 0 0; height: 24px; overflow:hidden; padding:0; width:120px; text-indent:-9999px; }
12
 
@@ -55,4 +54,8 @@ div.emaildirect-notice h4 div.abandoned
55
  .log_note { color: red; padding: 5px 0;}
56
  .log_size_warning { color: red;}
57
 
58
- .ed_orders_found { margin-top: 10px; }
 
 
 
 
 
 
1
  ul.tabs a.emaildirect-section,
2
  ul.tabs a.emaildirect-section:hover {background: url("../images/tabs_span_bg.gif") repeat-x scroll 0 100% transparent; border-bottom:none; padding:0.5em 0.5em 0.5em 1.5em; text-indent:-9999px;}
3
 
4
+ ul.tabs a.emaildirect-section:hover { background-color: #D8E6E6; border-right: solid 1px #8BA5A5;}
 
5
 
6
+ ul.tabs a.emaildirect-section span,
7
+ ul.tabs a.emaildirect-section:hover span { background:url(emaildirect-tab.png) no-repeat 0 0; overflow:hidden; padding:0; width:120px; height:24px; }
8
+ ul.tabs a.emaildirect-section.active, ul.tabs a.emaildirect-section.active:hover { border-bottom: 1px solid #BEBEBE; background: none repeat scroll 0 0 white;}
9
 
10
  h3.emaildirect-header { background:url(emaildirect-tab.png) no-repeat 0 0; height: 24px; overflow:hidden; padding:0; width:120px; text-indent:-9999px; }
11
 
54
  .log_note { color: red; padding: 5px 0;}
55
  .log_size_warning { color: red;}
56
 
57
+ .ed_orders_found { margin-top: 10px; }
58
+
59
+ .head-adminhtml-troubleshooting {
60
+ background-image: url("../images/fam_package_go.gif");
61
+ }