Version Notes
Updated to get status of cron jobs. Other minor updates and tweaks.
Download this release
Release Info
Developer | Adam Levenson |
Extension | Ordermonitor_Agent |
Version | 1.2.0 |
Comparing to | |
See all releases |
Code changes from version 1.1.9 to 1.2.0
- app/code/community/Ordermonitor/Agent/Exception.php +1 -1
- app/code/community/Ordermonitor/Agent/Helper/Data.php +1 -1
- app/code/community/Ordermonitor/Agent/Model/Cron.php +132 -0
- app/code/community/Ordermonitor/Agent/Model/Inventory.php +1 -1
- app/code/community/Ordermonitor/Agent/Model/Monitor.php +1 -1
- app/code/community/Ordermonitor/Agent/Model/Secure.php +154 -0
- app/code/community/Ordermonitor/Agent/controllers/AgentController.php +19 -1
- app/code/community/Ordermonitor/Agent/etc/config.xml +3 -3
- app/code/community/Ordermonitor/Agent/etc/system.xml +8 -8
- package.xml +6 -6
app/code/community/Ordermonitor/Agent/Exception.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
-
* @copyright Copyright (C)
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_Exception extends Mage_Core_Exception
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
+
* @copyright Copyright (C) 2015 Digital Operative
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_Exception extends Mage_Core_Exception
|
app/code/community/Ordermonitor/Agent/Helper/Data.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
-
* @copyright Copyright (C)
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_Helper_Data extends Mage_Core_Helper_Abstract
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
+
* @copyright Copyright (C) 2015 Digital Operative
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_Helper_Data extends Mage_Core_Helper_Abstract
|
app/code/community/Ordermonitor/Agent/Model/Cron.php
ADDED
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Order Monitor
|
4 |
+
*
|
5 |
+
* @category Ordermonitor
|
6 |
+
* @package Ordermonitor_Agent
|
7 |
+
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
+
* @copyright Copyright (C) 2015 Digital Operative
|
9 |
+
* @license http://www.ordermonitor.com/license
|
10 |
+
*/
|
11 |
+
class Ordermonitor_Agent_Model_Cron extends Mage_Core_Model_Abstract
|
12 |
+
{
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Get the cron status for all jobs run in the last x days
|
16 |
+
*
|
17 |
+
* @param int $days
|
18 |
+
* @return array list of jobs and status for each
|
19 |
+
*/
|
20 |
+
public function getCronStatus($days = 3)
|
21 |
+
{
|
22 |
+
$window = 60 * 60 * 24 * (int) $days;
|
23 |
+
$now = time();
|
24 |
+
|
25 |
+
$results = array(
|
26 |
+
'lookBackWindow' => $window,
|
27 |
+
'lastComplete' => $window,
|
28 |
+
'jobsList' => array(),
|
29 |
+
'jobs' => array()
|
30 |
+
);
|
31 |
+
|
32 |
+
$results['jobsList'] = $this->_getJobsList($window);
|
33 |
+
$results['lastComplete'] = $this->_getLastCompleted($now, $window);
|
34 |
+
|
35 |
+
foreach ($results['jobsList'] as $job) {
|
36 |
+
$results['jobs'][$job] = $this->_getJobStatus($job, $now, $window);
|
37 |
+
}
|
38 |
+
|
39 |
+
return $results;
|
40 |
+
}
|
41 |
+
|
42 |
+
/**
|
43 |
+
* Get the status and details for a cron kob
|
44 |
+
*
|
45 |
+
* @param $jobCode job code name
|
46 |
+
* @return array array of jobs and status and times
|
47 |
+
*/
|
48 |
+
private function _getJobStatus($jobCode, $time, $maxTime)
|
49 |
+
{
|
50 |
+
$results = array(
|
51 |
+
'status' => '',
|
52 |
+
'scheduled' => $maxTime,
|
53 |
+
'executed' => $maxTime,
|
54 |
+
'finished' => $maxTime,
|
55 |
+
);
|
56 |
+
|
57 |
+
$items = Mage::getModel('cron/schedule')
|
58 |
+
->getCollection()
|
59 |
+
->addFieldToFilter('job_code', array('eq' => $jobCode))
|
60 |
+
->addFieldToFilter('scheduled_at', array('lteq' => strftime('%Y-%m-%d %H:%M:00', $time)))
|
61 |
+
->setOrder('executed_at', 'DESC');
|
62 |
+
|
63 |
+
$items->getSelect()
|
64 |
+
->reset(Zend_Db_Select::COLUMNS)
|
65 |
+
->columns(array('status', 'scheduled_at', 'executed_at', 'finished_at'))
|
66 |
+
->limit(1);
|
67 |
+
|
68 |
+
$jobInfo = $items->getFirstItem()->toArray();
|
69 |
+
|
70 |
+
if (count($jobInfo) > 0) {
|
71 |
+
$results['status'] = $jobInfo['status'];
|
72 |
+
$results['scheduled'] = $time - strtotime($jobInfo['scheduled_at']);
|
73 |
+
$results['executed'] = (is_null($jobInfo['executed_at']) ? $maxTime : $time - strtotime($jobInfo['executed_at']));
|
74 |
+
$results['finished'] = (is_null($jobInfo['finished_at']) ? $maxTime : $time - strtotime($jobInfo['finished_at']));
|
75 |
+
}
|
76 |
+
|
77 |
+
return $results;
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* Gets a list of all the jobs that have been scheduled in the last x days
|
82 |
+
*
|
83 |
+
* @param $window number of days to look for jobs
|
84 |
+
* @param int $limit max number of jobs to pull
|
85 |
+
* @return array of job codes
|
86 |
+
*/
|
87 |
+
private function _getJobsList($window, $limit = 50)
|
88 |
+
{
|
89 |
+
$results = array();
|
90 |
+
|
91 |
+
$items = Mage::getModel('cron/schedule')->getCollection()
|
92 |
+
->addFieldToFilter('scheduled_at', array('gt' => strftime('%Y-%m-%d %H:%M:00', time() - $window)));
|
93 |
+
|
94 |
+
$items->getSelect()
|
95 |
+
->reset(Zend_Db_Select::COLUMNS)
|
96 |
+
->columns(array('job_code'))
|
97 |
+
->group('job_code')
|
98 |
+
->limit($limit);
|
99 |
+
|
100 |
+
$jobs = $items->toArray();
|
101 |
+
|
102 |
+
foreach ($jobs['items'] as $job) {
|
103 |
+
$results[] = $job['job_code'];
|
104 |
+
}
|
105 |
+
|
106 |
+
return $results;
|
107 |
+
}
|
108 |
+
|
109 |
+
/**
|
110 |
+
* Gets the number of seconds since a job ran successfully
|
111 |
+
*
|
112 |
+
* @param $time current time
|
113 |
+
* @return string number of seconds
|
114 |
+
*/
|
115 |
+
private function _getLastCompleted($time, $maxTime)
|
116 |
+
{
|
117 |
+
$items = Mage::getModel('cron/schedule')
|
118 |
+
->getCollection()
|
119 |
+
->addFieldToFilter('executed_at', array('lteq' => strftime('%Y-%m-%d %H:%M:00', $time)))
|
120 |
+
->addFieldToFilter('finished_at', array('neq' => 'NULL'))
|
121 |
+
->setOrder('finished_at', 'DESC');
|
122 |
+
|
123 |
+
$items->getSelect()
|
124 |
+
->reset(Zend_Db_Select::COLUMNS)
|
125 |
+
->columns(array('status', 'scheduled_at', 'executed_at', 'finished_at'))
|
126 |
+
->limit(1);
|
127 |
+
|
128 |
+
$jobInfo = $items->getFirstItem()->toArray();
|
129 |
+
|
130 |
+
return (!isset($jobInfo['finished_at']) || is_null($jobInfo['finished_at'] ) ? $maxTime : $time - strtotime($jobInfo['finished_at']));
|
131 |
+
}
|
132 |
+
}
|
app/code/community/Ordermonitor/Agent/Model/Inventory.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
-
* @copyright Copyright (C)
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_Model_Inventory extends Mage_Core_Model_Abstract
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
+
* @copyright Copyright (C) 2015 Digital Operative
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_Model_Inventory extends Mage_Core_Model_Abstract
|
app/code/community/Ordermonitor/Agent/Model/Monitor.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
-
* @copyright Copyright (C)
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_Model_Monitor extends Mage_Core_Model_Abstract
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
+
* @copyright Copyright (C) 2015 Digital Operative
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_Model_Monitor extends Mage_Core_Model_Abstract
|
app/code/community/Ordermonitor/Agent/Model/Secure.php
ADDED
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Order Monitor
|
4 |
+
*
|
5 |
+
* @category Ordermonitor
|
6 |
+
* @package Ordermonitor_Agent
|
7 |
+
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
+
* @copyright Copyright (C) 2015 Digital Operative
|
9 |
+
* @license http://www.ordermonitor.com/license
|
10 |
+
*/
|
11 |
+
class Ordermonitor_Agent_Model_Secure extends Mage_Core_Model_Abstract
|
12 |
+
{
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Gets information about the security settings for Magento
|
16 |
+
*
|
17 |
+
* @return array security check data
|
18 |
+
*/
|
19 |
+
public function getSecureInfo()
|
20 |
+
{
|
21 |
+
$results = array();
|
22 |
+
|
23 |
+
/*
|
24 |
+
admin/security/use_form_key 1
|
25 |
+
admin/security/session_cookie_lifetime 3600
|
26 |
+
admin/security/lockout_failures 6
|
27 |
+
admin/security/lockout_threshold 30
|
28 |
+
admin/security/password_lifetime 90
|
29 |
+
admin/security/password_is_forced 1
|
30 |
+
*/
|
31 |
+
|
32 |
+
$results['captchaEnabled'] = Mage::getStoreConfig('admin/captcha/enable');
|
33 |
+
$results['adminHttps'] = Mage::getStoreConfig('web/secure/use_in_adminhtml');
|
34 |
+
|
35 |
+
//CASE SENSATIVE - password is always case, used for username
|
36 |
+
$results['loginCaseSensitive'] = Mage::getStoreConfig('admin/security/use_case_sensitive_login');
|
37 |
+
$results['adminPathOk'] = $this->_checkAdminUrlPath();
|
38 |
+
$results['localXmlSecured'] = $this->_checkLocalXmlPublic();
|
39 |
+
|
40 |
+
$results['adminUsername'] = $this->_checkAdminUsernames();
|
41 |
+
|
42 |
+
$passwordUsers = $this->_checkAdminPasswords();
|
43 |
+
|
44 |
+
if (count($passwordUsers) > 0) {
|
45 |
+
$results['passwordsOk'] = 0;
|
46 |
+
} else {
|
47 |
+
$results['passwordsOk'] = 1;
|
48 |
+
}
|
49 |
+
|
50 |
+
$results['badPasswords'] = array('numUsers' => count($passwordUsers), 'usernames' => $passwordUsers);
|
51 |
+
|
52 |
+
return $results;
|
53 |
+
}
|
54 |
+
|
55 |
+
|
56 |
+
private function _checkAdminUrlPath()
|
57 |
+
{
|
58 |
+
$badPaths = array('admin');
|
59 |
+
$adminUrlPath = Mage::getConfig()->getNode('admin/routers/adminhtml/args/frontName');
|
60 |
+
|
61 |
+
if(Mage::getStoreConfig('admin/url/use_custom_path') === 1) {
|
62 |
+
$adminUrlPath = Mage::getStoreConfig('admin/url/custom_path');
|
63 |
+
}
|
64 |
+
|
65 |
+
if (in_array($adminUrlPath, $badPaths)) {
|
66 |
+
return 0;
|
67 |
+
}
|
68 |
+
|
69 |
+
return 1;
|
70 |
+
}
|
71 |
+
|
72 |
+
|
73 |
+
private function _checkAdminUsernames()
|
74 |
+
{
|
75 |
+
$badUsernames = array('admin');
|
76 |
+
|
77 |
+
$admin = Mage::getModel("admin/user");
|
78 |
+
$admins = $admin->getCollection()
|
79 |
+
->addFieldToFilter('username', array('in' => $badUsernames));
|
80 |
+
|
81 |
+
$adminUsers = $admins->load()->toArray();
|
82 |
+
|
83 |
+
return $adminUsers['totalRecords'];
|
84 |
+
}
|
85 |
+
|
86 |
+
private function _checkAdminPasswords()
|
87 |
+
{
|
88 |
+
$badPasswords = array(
|
89 |
+
'123456789',
|
90 |
+
'12345678',
|
91 |
+
'1234567',
|
92 |
+
'69696969',
|
93 |
+
'123123123',
|
94 |
+
'password',
|
95 |
+
'trustno1',
|
96 |
+
'adminadmin',
|
97 |
+
'admin123',
|
98 |
+
'magento',
|
99 |
+
'abc1234',
|
100 |
+
'iloveyou',
|
101 |
+
'football',
|
102 |
+
'baseball',
|
103 |
+
'superman',
|
104 |
+
'letmein'
|
105 |
+
);
|
106 |
+
|
107 |
+
$badUsers = array();
|
108 |
+
|
109 |
+
$admin = Mage::getModel("admin/user");
|
110 |
+
$admins = $admin->getCollection()
|
111 |
+
->addFieldToFilter('is_active', array('eq' => 1));
|
112 |
+
|
113 |
+
$adminUsers = $admins->load();
|
114 |
+
|
115 |
+
foreach ($adminUsers as $user) {
|
116 |
+
foreach ($badPasswords as $password) {
|
117 |
+
if ($admin->authenticate($user->username, $password) == true) {
|
118 |
+
$badUsers[] = $user->username;
|
119 |
+
}
|
120 |
+
}
|
121 |
+
}
|
122 |
+
|
123 |
+
return $badUsers;
|
124 |
+
}
|
125 |
+
|
126 |
+
|
127 |
+
private function _checkLocalXmlPublic()
|
128 |
+
{
|
129 |
+
$url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) . 'app/etc/local.xml';
|
130 |
+
|
131 |
+
$client = new Varien_Http_Client();
|
132 |
+
$client->setUri($url)
|
133 |
+
->setMethod('GET')
|
134 |
+
->setConfig(
|
135 |
+
array(
|
136 |
+
'maxredirects' => 1,
|
137 |
+
'timeout' => 15,
|
138 |
+
));
|
139 |
+
|
140 |
+
try {
|
141 |
+
$response = $client->request();
|
142 |
+
$statusCode = $response->getStatus();
|
143 |
+
} catch (Exception $e) {
|
144 |
+
$statusCode = 0;
|
145 |
+
}
|
146 |
+
|
147 |
+
if ($statusCode === 403) {
|
148 |
+
return 1;
|
149 |
+
}
|
150 |
+
|
151 |
+
return 0;
|
152 |
+
}
|
153 |
+
|
154 |
+
}
|
app/code/community/Ordermonitor/Agent/controllers/AgentController.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
-
* @copyright Copyright (C)
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_AgentController extends Mage_Core_Controller_Front_Action
|
@@ -47,6 +47,7 @@ class Ordermonitor_Agent_AgentController extends Mage_Core_Controller_Front_Acti
|
|
47 |
$getMinMaxPrices = (bool)$request->getParam('maxMinPrices', 0);
|
48 |
$checkStock = (bool)$request->getParam('checkStock', 0);
|
49 |
$getCustomerTotals = (bool)$request->getParam('customerTotals', 0);
|
|
|
50 |
$stockAlertSkus = json_decode($request->getParam('stockSkus', '[]'));
|
51 |
$stockMinQty = (int)$request->getParam('stockMinQty', 0);
|
52 |
$limit = (int)$request->getParam('limit', 100);
|
@@ -104,6 +105,11 @@ class Ordermonitor_Agent_AgentController extends Mage_Core_Controller_Front_Acti
|
|
104 |
$results['info']['runTime'] += $customerTotals['runTime'];
|
105 |
$results['info']['runTimes']['customerTotals'] = $customerTotals['runTime'];
|
106 |
}
|
|
|
|
|
|
|
|
|
|
|
107 |
|
108 |
} else {
|
109 |
$results['error']['code'] = '1';
|
@@ -139,5 +145,17 @@ class Ordermonitor_Agent_AgentController extends Mage_Core_Controller_Front_Acti
|
|
139 |
$this->getResponse()->setHeader('Content-type', 'application/json');
|
140 |
$this->getResponse()->setBody($json);
|
141 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
}
|
5 |
* @category Ordermonitor
|
6 |
* @package Ordermonitor_Agent
|
7 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
8 |
+
* @copyright Copyright (C) 2015 Digital Operative
|
9 |
* @license http://www.ordermonitor.com/license
|
10 |
*/
|
11 |
class Ordermonitor_Agent_AgentController extends Mage_Core_Controller_Front_Action
|
47 |
$getMinMaxPrices = (bool)$request->getParam('maxMinPrices', 0);
|
48 |
$checkStock = (bool)$request->getParam('checkStock', 0);
|
49 |
$getCustomerTotals = (bool)$request->getParam('customerTotals', 0);
|
50 |
+
$getCronStatus = (bool)$request->getParam('cronJobs', 1);
|
51 |
$stockAlertSkus = json_decode($request->getParam('stockSkus', '[]'));
|
52 |
$stockMinQty = (int)$request->getParam('stockMinQty', 0);
|
53 |
$limit = (int)$request->getParam('limit', 100);
|
105 |
$results['info']['runTime'] += $customerTotals['runTime'];
|
106 |
$results['info']['runTimes']['customerTotals'] = $customerTotals['runTime'];
|
107 |
}
|
108 |
+
|
109 |
+
if ($getCronStatus === true) {
|
110 |
+
$cron = Mage::getModel('ordermonitor_agent/cron');
|
111 |
+
$results['cron'] = $cron->getCronStatus();
|
112 |
+
}
|
113 |
|
114 |
} else {
|
115 |
$results['error']['code'] = '1';
|
145 |
$this->getResponse()->setHeader('Content-type', 'application/json');
|
146 |
$this->getResponse()->setBody($json);
|
147 |
}
|
148 |
+
|
149 |
+
public function securityAction()
|
150 |
+
{
|
151 |
+
$om = Mage::getModel('ordermonitor_agent/secure');
|
152 |
+
$results = $om->getSecureInfo();
|
153 |
+
|
154 |
+
$json = json_encode($results);
|
155 |
+
|
156 |
+
$this->getResponse()->setHeader('Content-type', 'application/json');
|
157 |
+
$this->getResponse()->setBody($json);
|
158 |
+
|
159 |
+
}
|
160 |
|
161 |
}
|
app/code/community/Ordermonitor/Agent/etc/config.xml
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* @category Ordermonitor
|
7 |
* @package Ordermonitor_Agent
|
8 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
9 |
-
* @copyright Copyright (C)
|
10 |
* @license http://www.ordermonitor.com/license
|
11 |
*/
|
12 |
-->
|
@@ -14,7 +14,7 @@
|
|
14 |
<modules>
|
15 |
<Ordermonitor_Agent>
|
16 |
<!-- @Om - If version changes, update the default value for <om_version> at end of file -->
|
17 |
-
<version>1.
|
18 |
</Ordermonitor_Agent>
|
19 |
</modules>
|
20 |
<frontend>
|
@@ -69,7 +69,7 @@
|
|
69 |
<default>
|
70 |
<ordermonitor>
|
71 |
<general_configuration>
|
72 |
-
<om_version>1.
|
73 |
<om_username/>
|
74 |
<om_api_key/>
|
75 |
</general_configuration>
|
6 |
* @category Ordermonitor
|
7 |
* @package Ordermonitor_Agent
|
8 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
9 |
+
* @copyright Copyright (C) 2015 Digital Operative
|
10 |
* @license http://www.ordermonitor.com/license
|
11 |
*/
|
12 |
-->
|
14 |
<modules>
|
15 |
<Ordermonitor_Agent>
|
16 |
<!-- @Om - If version changes, update the default value for <om_version> at end of file -->
|
17 |
+
<version>1.2.0</version>
|
18 |
</Ordermonitor_Agent>
|
19 |
</modules>
|
20 |
<frontend>
|
69 |
<default>
|
70 |
<ordermonitor>
|
71 |
<general_configuration>
|
72 |
+
<om_version>1.2.0</om_version>
|
73 |
<om_username/>
|
74 |
<om_api_key/>
|
75 |
</general_configuration>
|
app/code/community/Ordermonitor/Agent/etc/system.xml
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
* @category Ordermonitor
|
7 |
* @package Ordermonitor_Agent
|
8 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
9 |
-
* @copyright Copyright (C)
|
10 |
* @license http://www.ordermonitor.com/license
|
11 |
*/
|
12 |
-->
|
@@ -36,29 +36,29 @@
|
|
36 |
<show_in_store>1</show_in_store>
|
37 |
<fields>
|
38 |
<om_username translate="label">
|
39 |
-
<label>
|
40 |
<frontend_type>text</frontend_type>
|
41 |
<sort_order>1</sort_order>
|
42 |
<show_in_default>1</show_in_default>
|
43 |
-
<show_in_website>
|
44 |
<show_in_store>0</show_in_store>
|
45 |
<comment>
|
46 |
<![CDATA[
|
47 |
-
|
48 |
]]>
|
49 |
</comment>
|
50 |
</om_username>
|
51 |
|
52 |
<om_key translate="label">
|
53 |
-
<label>
|
54 |
<frontend_type>password</frontend_type>
|
55 |
<sort_order>2</sort_order>
|
56 |
<show_in_default>1</show_in_default>
|
57 |
-
<show_in_website>
|
58 |
<show_in_store>0</show_in_store>
|
59 |
<comment>
|
60 |
<![CDATA[
|
61 |
-
Order Monitor
|
62 |
]]>
|
63 |
</comment>
|
64 |
</om_key>
|
@@ -73,7 +73,7 @@
|
|
73 |
<show_in_store>0</show_in_store>
|
74 |
<comment>
|
75 |
<![CDATA[
|
76 |
-
Output additional information for debugging
|
77 |
]]>
|
78 |
</comment>
|
79 |
</om_debug>
|
6 |
* @category Ordermonitor
|
7 |
* @package Ordermonitor_Agent
|
8 |
* @author Digital Operative <codemaster@digitaloperative.com>
|
9 |
+
* @copyright Copyright (C) 2015 Digital Operative
|
10 |
* @license http://www.ordermonitor.com/license
|
11 |
*/
|
12 |
-->
|
36 |
<show_in_store>1</show_in_store>
|
37 |
<fields>
|
38 |
<om_username translate="label">
|
39 |
+
<label>Account Name</label>
|
40 |
<frontend_type>text</frontend_type>
|
41 |
<sort_order>1</sort_order>
|
42 |
<show_in_default>1</show_in_default>
|
43 |
+
<show_in_website>1</show_in_website>
|
44 |
<show_in_store>0</show_in_store>
|
45 |
<comment>
|
46 |
<![CDATA[
|
47 |
+
Order Monitor Account Name - created during sign up, see account page.
|
48 |
]]>
|
49 |
</comment>
|
50 |
</om_username>
|
51 |
|
52 |
<om_key translate="label">
|
53 |
+
<label>Agent Key</label>
|
54 |
<frontend_type>password</frontend_type>
|
55 |
<sort_order>2</sort_order>
|
56 |
<show_in_default>1</show_in_default>
|
57 |
+
<show_in_website>1</show_in_website>
|
58 |
<show_in_store>0</show_in_store>
|
59 |
<comment>
|
60 |
<![CDATA[
|
61 |
+
Order Monitor Agent Key - get this from your account page.
|
62 |
]]>
|
63 |
</comment>
|
64 |
</om_key>
|
73 |
<show_in_store>0</show_in_store>
|
74 |
<comment>
|
75 |
<![CDATA[
|
76 |
+
Output additional information for debugging.
|
77 |
]]>
|
78 |
</comment>
|
79 |
</om_debug>
|
package.xml
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Ordermonitor_Agent</name>
|
4 |
-
<version>1.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.ordermonitor.com/license">Commercial</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Monitor what matters; orders. Get notifications if something goes awry. Trends and forecasting give you insight into how your store is performing.</summary>
|
10 |
<description>The Order Monitor Agent collects and aggregates data for the Order Monitor service, enabling you to setup alerts based on order volume, aov, discounts and much more. Compare your metrics to yesterday and your average to see if your trending up or down. Forecasting allows to predict the sales for the day.</description>
|
11 |
-
<notes>
|
12 |
<authors><author><name>Adam Levenson</name><user>adamdo</user><email>adam@digitaloperative.com</email></author></authors>
|
13 |
-
<date>
|
14 |
-
<time>21:
|
15 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Ordermonitor_Agent.xml" hash="d801d81de66117f06637c0750e2a5931"/></dir></target><target name="magecommunity"><dir name="Ordermonitor"><dir name="Agent"><file name="Exception.php" hash="
|
16 |
<compatible/>
|
17 |
-
<dependencies><required><php><min>5.
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Ordermonitor_Agent</name>
|
4 |
+
<version>1.2.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.ordermonitor.com/license">Commercial</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Monitor what matters; orders. Get notifications if something goes awry. Trends and forecasting give you insight into how your store is performing.</summary>
|
10 |
<description>The Order Monitor Agent collects and aggregates data for the Order Monitor service, enabling you to setup alerts based on order volume, aov, discounts and much more. Compare your metrics to yesterday and your average to see if your trending up or down. Forecasting allows to predict the sales for the day.</description>
|
11 |
+
<notes>Updated to get status of cron jobs. Other minor updates and tweaks.</notes>
|
12 |
<authors><author><name>Adam Levenson</name><user>adamdo</user><email>adam@digitaloperative.com</email></author></authors>
|
13 |
+
<date>2016-02-09</date>
|
14 |
+
<time>21:05:21</time>
|
15 |
+
<contents><target name="mageetc"><dir name="modules"><file name="Ordermonitor_Agent.xml" hash="d801d81de66117f06637c0750e2a5931"/></dir></target><target name="magecommunity"><dir name="Ordermonitor"><dir name="Agent"><file name="Exception.php" hash="43ac0dea595b3d2134a76b55e70b1d5f"/><dir name="Helper"><file name="Data.php" hash="9275cefdbaeca0062868e257c391f7e7"/></dir><dir name="Model"><file name="Cron.php" hash="f5ed277ab930a44951ac3b78487d2317"/><file name="Inventory.php" hash="937d22c671add6ae30726e0bf38c9d54"/><file name="Monitor.php" hash="6acf1b9e5336aaeeab4cadcf6e322e16"/><file name="Secure.php" hash="eb3f5601eecf3585f58d8fff4414d680"/></dir><dir name="controllers"><file name="AgentController.php" hash="1ffcdba434dcac43e1309576a6fbbae4"/></dir><dir name="etc"><file name="config.xml" hash="31cb814911264eaa2513c85f18ef9b36"/><file name="system.xml" hash="544cf6e710b8d0cc50cd04bbf1faa202"/></dir><file name=".DS_Store" hash="816504a148fbbe790644c6c7427a6f81"/></dir><file name=".DS_Store" hash="60238f239932c73cc1be075fbd3e96ef"/></dir></target></contents>
|
16 |
<compatible/>
|
17 |
+
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.5.0.0</min><max>1.9.2.3</max></package></required></dependencies>
|
18 |
</package>
|