VantageAnalytics_Analytics - Version 1.2.1

Version Notes

1.2.0
-------
- New API

1.1.5
-------
- Minor phpcs code style rule fixes
- Remove embedded sign-up form, registration now begins at app.vantageanalytics.com

1.1.4
------
- Bug fix for webhook URL that could be wrong in some circumstances.

1.1.3
------
- Lower batch size for queue processing to shorten time transaction is kept open

1.1.2
------
- Fix notice error about method overridden from base class with missing default argument

1.1.1
------
- Update debug information

1.1.0
------
- Track checkouts from front-end

1.0.12
-------
- Bug fix: set store domain in product URL and images

1.0.11
-------
- Send Dynamic Product Ad events

1.0.10
--------
- Minor bug fix in export, look for PHP_BINARY correctly

1.0.9
-------
- Try to use PHP_BINARY to find the PHP binary

1.0.8
-------
- Look for PHP binaries in more places

1.0.7
-------

- Fork exec export into 2 children processes to avoid long running process with unbounded memory consumption

1.0.6
-------

Set page size on product collection.

Prefetch some related attributes during product and sales order exports.

Send data to vantage during the data gathering phase of the export process instead of after the data gathering phase is done.

1.0.5
-------

Fixed memory leak in export script which could impact large data exports.

1.0.4
-------
New feature: facebook pixel based visitor and conversion tracking.

1.0.3
-------

Minor bug fix, do not send empty array() objects to Vantage Analytics

1.0.2
-------

Stop sending empty sales quotes to Vantage Analytics.

1.0.1
-------

Improved robustness of historical data export process and report historical data export issues to Vantage Analytics.

1.0.0
-------

First stable release.

Download this release

Release Info

Developer Brandon Kane
Extension VantageAnalytics_Analytics
Version 1.2.1
Comparing to
See all releases


Code changes from version 1.1.5 to 1.2.1

app/code/community/VantageAnalytics/Analytics/Helper/Account.php CHANGED
@@ -29,11 +29,6 @@ class VantageAnalytics_Analytics_Helper_Account extends Mage_Core_Helper_Abstrac
29
return dirname(Mage::getStoreConfig('vantageanalytics/accountoptions/vantageurl', Mage::app()->getStore())) . '/webhook';
30
}
31
32
- public function registerAccountUrl()
33
- {
34
- return dirname($this->vantageUrl()) . '/register';
35
- }
36
-
37
public function verifyAccountUrl()
38
{
39
return dirname($this->vantageUrl()) . '/verify';
@@ -93,12 +88,23 @@ class VantageAnalytics_Analytics_Helper_Account extends Mage_Core_Helper_Abstrac
93
Mage::getConfig()->reinit();
94
}
95
96
public function getExtensionVersion()
97
{
98
return (string) Mage::getConfig()->getNode()->modules->VantageAnalytics_Analytics->version;
99
}
100
101
- protected function collectStoreInfo()
102
{
103
$stores = array();
104
@@ -113,50 +119,31 @@ class VantageAnalytics_Analytics_Helper_Account extends Mage_Core_Helper_Abstrac
113
return $stores;
114
}
115
116
- public function registerAccount($params)
117
- {
118
- $verifyUrl = Mage::helper("analytics/account")->verifyAccountUrl();
119
- Mage::helper("analytics/log")->logInfo("The account verify URL is ${verifyUrl}");
120
121
- $channel = curl_init($verifyUrl);
122
-
123
- curl_setopt($channel, CURLOPT_SSL_VERIFYHOST, 2);
124
- curl_setopt($channel, CURLOPT_CUSTOMREQUEST, 'POST');
125
- curl_setopt($channel, CURLOPT_RETURNTRANSFER, true);
126
- curl_setopt($channel, CURLOPT_CONNECTTIMEOUT_MS, 12200);
127
- curl_setopt($channel, CURLOPT_TIMEOUT_MS, 15000);
128
-
129
- $account = array(
130
- 'username' => $params['username'],
131
- 'secret' => $params['secret'],
132
- 'stores' => $this->collectStoreInfo()
133
- );
134
-
135
- $body = json_encode($account);
136
- curl_setopt($channel, CURLOPT_POSTFIELDS, $body);
137
- $headers = array(
138
- 'Content-type: application/json',
139
- 'Content-length: ' . strlen($body)
140
- );
141
-
142
-
143
- curl_setopt($channel, CURLOPT_HTTPHEADER, $headers);
144
- $result = curl_exec($channel);
145
146
- $status = curl_getinfo($channel, CURLINFO_HTTP_CODE);
147
- if ($status >= 500) {
148
- Mage::throwException("An error occurred. Please try again later.");
149
}
150
151
- if (curl_errno($channel)) {
152
- $errorDesc = curl_error($channel);
153
- curl_close($channel);
154
- Mage::throwException("An error occurred. Please try again later.");
155
}
156
157
- curl_close($channel);
158
- $response = json_decode($result, true);
159
160
- return $response;
161
}
162
}
29
return dirname(Mage::getStoreConfig('vantageanalytics/accountoptions/vantageurl', Mage::app()->getStore())) . '/webhook';
30
}
31
32
public function verifyAccountUrl()
33
{
34
return dirname($this->vantageUrl()) . '/verify';
88
Mage::getConfig()->reinit();
89
}
90
91
+ public function isCronEnabled()
92
+ {
93
+ return Mage::getStoreConfig('vantageanalytics/export/cron', Mage::app()->getStore());
94
+ }
95
+
96
+ public function setCronEnabled($enabled)
97
+ {
98
+ Mage::getConfig()->saveConfig('vantageanalytics/export/cron', $enabled);
99
+ Mage::getConfig()->reinit();
100
+ }
101
+
102
public function getExtensionVersion()
103
{
104
return (string) Mage::getConfig()->getNode()->modules->VantageAnalytics_Analytics->version;
105
}
106
107
+ public function collectStoreInfo()
108
{
109
$stores = array();
110
119
return $stores;
120
}
121
122
+ public function hashEquals($safe, $user) {
123
+ $safeLen = strlen($safe);
124
+ $userLen = strlen($user);
125
126
+ if ($safeLen == 0) {
127
+ return false;
128
+ }
129
130
+ if ($userLen != $safeLen) {
131
+ return false;
132
}
133
134
+ $result = 0;
135
+
136
+ for ($i = 0; $i < $userLen; $i++) {
137
+ $result |= (ord($safe[$i]) ^ ord($user[$i]));
138
}
139
140
+ // They are only identical strings if $result is exactly 0...
141
+ return $result === 0;
142
+ }
143
144
+ public function verifySecret($providedSecret)
145
+ {
146
+ $mySecret = $this->secret();
147
+ return $this->hashEquals($mySecret, $providedSecret);
148
}
149
}
app/code/community/VantageAnalytics/Analytics/Helper/Queue.php CHANGED
@@ -68,9 +68,26 @@ class VantageAnalytics_Analytics_Helper_Queue extends Mage_Core_Helper_Abstract
68
}
69
}
70
71
- public function isEmpty($queue)
72
{
73
- return ($this->getQueue()->count() == 0);
74
}
75
76
public function enqueue($task)
68
}
69
}
70
71
+ public function receiveMessages($batchSize)
72
{
73
+ $queue = $this->getQueue();
74
+ return $queue->receive($batchSize);
75
+ }
76
+
77
+ public function deleteMessage($message)
78
+ {
79
+ $queue = $this->getQueue();
80
+ $queue->deleteMessage($message);
81
+ }
82
+
83
+ public function getMessageCount()
84
+ {
85
+ return $this->getQueue()->count();
86
+ }
87
+
88
+ public function isEmpty()
89
+ {
90
+ return $this->getMessageCount() == 0;
91
}
92
93
public function enqueue($task)
app/code/community/VantageAnalytics/Analytics/Model/Api/Inline.php ADDED
@@ -0,0 +1,29 @@
1
+ <?php
2
+
3
+ class VantageAnalytics_Analytics_Model_Api_Inline
4
+ {
5
+ public function __construct()
6
+ {
7
+ $this->queue = array();
8
+ $this->metaData = array();
9
+ }
10
+
11
+ public function enqueue($entityMethod, $entity, $isExport=false)
12
+ {
13
+ if ($entityMethod == 'progress') {
14
+ $this->metaData = $entity;
15
+ } else {
16
+ $this->queue[] = $entity;
17
+ }
18
+ }
19
+
20
+ public function isEmpty()
21
+ {
22
+ return true;
23
+ }
24
+
25
+ public function processQueue()
26
+ {
27
+ return; // no-op
28
+ }
29
+ }
app/code/community/VantageAnalytics/Analytics/Model/Api/RequestQueue.php CHANGED
@@ -21,4 +21,16 @@ class VantageAnalytics_Analytics_Model_Api_RequestQueue
21
'args' => array($entityMethod, $entity)
22
));
23
}
24
}
21
'args' => array($entityMethod, $entity)
22
));
23
}
24
+
25
+ public function processQueue()
26
+ {
27
+ $queue = Mage::helper('analytics/queue');
28
+ return $queue->processQueue();
29
+ }
30
+
31
+ public function isEmpty()
32
+ {
33
+ $queue = Mage::helper('analytics/queue');
34
+ return $queue->isEmpty();
35
+ }
36
}
app/code/community/VantageAnalytics/Analytics/Model/Cron.php CHANGED
@@ -69,8 +69,17 @@ class VantageAnalytics_Analytics_Model_Cron
69
return Mage::helper('analytics/account')->isVerified();
70
}
71
72
public function run()
73
{
74
if (!$this->accountIsVerified()) {
75
$this->log('account verification required or failed. Not running.');
76
return;
69
return Mage::helper('analytics/account')->isVerified();
70
}
71
72
+ protected function cronIsEnabled()
73
+ {
74
+ return Mage::helper('analytics/account')->isCronEnabled();
75
+ }
76
+
77
public function run()
78
{
79
+ if (!$this->cronIsEnabled()) {
80
+ return;
81
+ }
82
+
83
if (!$this->accountIsVerified()) {
84
$this->log('account verification required or failed. Not running.');
85
return;
app/code/community/VantageAnalytics/Analytics/Model/Export/Base.php CHANGED
@@ -103,14 +103,14 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
103
}
104
}
105
106
- protected function exportEntity($entity, $store)
107
{
108
$transformer = $this->makeTransformer($entity, $store);
109
$data = $transformer->toVantage();
110
$this->enqueue($data);
111
}
112
113
- protected function exportMetaData($websiteId, $entity, $currentPage, $totalPages, $pageSize)
114
{
115
$this->api->enqueue(
116
'progress',
@@ -119,7 +119,8 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
119
'entity_type' => $entity,
120
'current_page' => $currentPage,
121
'total_pages' => $totalPages,
122
- 'page_size' => $pageSize
123
),
124
true
125
);
@@ -134,6 +135,7 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
134
return;
135
}
136
$totalPages = $collection->getLastPageNumber();
137
$entityName = $this->getEntityName();
138
$currentPage = 0;
139
$endPage = $currentPage + $numberOfPages;
@@ -144,12 +146,13 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
144
$maxChildren = 1;
145
146
while ($currentPage <= $totalPages) {
147
- $this->exportMetaData(
148
$website->getWebsiteId(),
149
strtolower($entityName),
150
$currentPage,
151
$totalPages,
152
- $this->pageSize
153
);
154
155
if ($endPage >= $totalPages) {
@@ -177,6 +180,31 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
177
}
178
}
179
180
public function exportPage($websiteId, $startPage, $endPage)
181
{
182
$websites = Mage::app()->getWebsites();
@@ -188,6 +216,18 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
188
$currentPage = $startPage;
189
while ($currentPage < $endPage) {
190
$collection = $this->createCollection($website, $currentPage);
191
192
foreach ($collection as $entity) {
193
$this->exportEntity($entity, $store);
@@ -212,7 +252,6 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
212
213
protected function processQueue()
214
{
215
- $queue = Mage::helper('analytics/queue');
216
- $queue->processQueue();
217
}
218
}
103
}
104
}
105
106
+ public function exportEntity($entity, $store)
107
{
108
$transformer = $this->makeTransformer($entity, $store);
109
$data = $transformer->toVantage();
110
$this->enqueue($data);
111
}
112
113
+ protected function _exportMetaData($websiteId, $entity, $currentPage, $totalPages, $pageSize, $totalItems)
114
{
115
$this->api->enqueue(
116
'progress',
119
'entity_type' => $entity,
120
'current_page' => $currentPage,
121
'total_pages' => $totalPages,
122
+ 'page_size' => $pageSize,
123
+ 'total_items' => $totalItems
124
),
125
true
126
);
135
return;
136
}
137
$totalPages = $collection->getLastPageNumber();
138
+ $totalItems = $collection->getSize();
139
$entityName = $this->getEntityName();
140
$currentPage = 0;
141
$endPage = $currentPage + $numberOfPages;
146
$maxChildren = 1;
147
148
while ($currentPage <= $totalPages) {
149
+ $this->_exportMetaData(
150
$website->getWebsiteId(),
151
strtolower($entityName),
152
$currentPage,
153
$totalPages,
154
+ $this->pageSize,
155
+ $totalItems
156
);
157
158
if ($endPage >= $totalPages) {
180
}
181
}
182
183
+ public function exportMetaData($websiteId)
184
+ {
185
+ $websites = Mage::app()->getWebsites();
186
+ foreach ($websites as $website) {
187
+ if ($websiteId == $website->getWebsiteId()) {
188
+ $store = $website->getDefaultGroup()->getDefaultStore();
189
+ Mage::app()->setCurrentStore($store->getStoreId());
190
+
191
+ $collection = $this->createCollection($website, 1);
192
+ $totalPages = $collection->getLastPageNumber();
193
+ $totalItems = $collection->getSize();
194
+ $entityName = $this->getEntityName();
195
+
196
+ $this->_exportMetaData(
197
+ $website->getWebsiteId(),
198
+ strtolower($entityName),
199
+ $currentPage,
200
+ $totalPages,
201
+ $this->pageSize,
202
+ $totalItems
203
+ );
204
+ }
205
+ }
206
+ }
207
+
208
public function exportPage($websiteId, $startPage, $endPage)
209
{
210
$websites = Mage::app()->getWebsites();
216
$currentPage = $startPage;
217
while ($currentPage < $endPage) {
218
$collection = $this->createCollection($website, $currentPage);
219
+ $totalPages = $collection->getLastPageNumber();
220
+ $totalItems = $collection->getSize();
221
+ $entityName = $this->getEntityName();
222
+
223
+ $this->_exportMetaData(
224
+ $website->getWebsiteId(),
225
+ strtolower($entityName),
226
+ $currentPage,
227
+ $totalPages,
228
+ $this->pageSize,
229
+ $totalItems
230
+ );
231
232
foreach ($collection as $entity) {
233
$this->exportEntity($entity, $store);
252
253
protected function processQueue()
254
{
255
+ $this->api->processQueue();
256
}
257
}
app/code/community/VantageAnalytics/Analytics/Model/Export/Store.php CHANGED
@@ -14,7 +14,9 @@ class VantageAnalytics_Analytics_Model_Export_Store extends VantageAnalytics_Ana
14
15
public function exportWebsite($website)
16
{
17
- $this->exportEntity($website);
18
}
19
}
20
14
15
public function exportWebsite($website)
16
{
17
+ $store = $website->getDefaultGroup()->getDefaultStore();
18
+ Mage::app()->setCurrentStore($store->getStoreId());
19
+ $this->exportEntity($website, $store);
20
}
21
}
22
app/code/community/VantageAnalytics/Analytics/Model/Heartbeat.php CHANGED
@@ -9,6 +9,10 @@ class VantageAnalytics_Analytics_Model_Heartbeat
9
10
public function send()
11
{
12
if (Mage::helper('analytics/account')->isVerified()) {
13
$data = VantageAnalytics_Analytics_Model_Debug::factory()->toVantage();
14
9
10
public function send()
11
{
12
+ if (!Mage::helper('analytics/account')->isCronEnabled()) {
13
+ return;
14
+ }
15
+
16
if (Mage::helper('analytics/account')->isVerified()) {
17
$data = VantageAnalytics_Analytics_Model_Debug::factory()->toVantage();
18
app/code/community/VantageAnalytics/Analytics/controllers/Adminhtml/Analytics/VerifyController.php DELETED
@@ -1,49 +0,0 @@
1
- <?php
2
-
3
- class VantageAnalytics_Analytics_Adminhtml_Analytics_VerifyController extends Mage_Adminhtml_Controller_Action
4
- {
5
- public function _isAllowed()
6
- {
7
- return true;
8
- }
9
-
10
- public function verifyAction()
11
- {
12
- $this->_redirectUrl(($this->_getRefererUrl()));
13
-
14
- $username = Mage::helper('analytics/account')->username();
15
- $secret = Mage::helper('analytics/account')->secret();
16
- if (empty($username) || empty($secret)) {
17
- Mage::getSingleton('adminhtml/session')
18
- ->init('core', 'adminhtml')
19
- ->addSuccess(
20
- 'Your Vantage Username or Secret is missing. ' .
21
- 'Enter them and click Save Config and Verify again.'
22
- );
23
- }
24
-
25
- try {
26
- $response = Mage::helper('analytics/account')->registerAccount(array("username" => $username, "secret" => $secret));
27
- } catch (Exception $e) {
28
- Mage::getSingleton('adminhtml/session')
29
- ->init('core', 'adminhtml')
30
- ->addError($e->getMessage());
31
- return;
32
- }
33
-
34
- if (!empty($response) && array_key_exists("success", $response)) {
35
- Mage::helper('analytics/account')->setIsVerified(1);
36
- Mage::getSingleton('adminhtml/session')
37
- ->init('core', 'adminhtml')
38
- ->addSuccess('Your Vantage Account is verified.');
39
- } else {
40
- Mage::getSingleton('adminhtml/session')
41
- ->init('core', 'adminhtml')
42
- ->addError(
43
- "Account Verfication with Vantage failed. " .
44
- "Re-enter the VantageAnalytics username and secret, " .
45
- "click Save Config and Verify again."
46
- );
47
- }
48
- }
49
- }
app/code/community/VantageAnalytics/Analytics/controllers/ExportController.php ADDED
@@ -0,0 +1,232 @@
1
+ <?php
2
+
3
+ class VantageAnalytics_Analytics_ExportController extends Mage_Core_Controller_Front_Action
4
+ {
5
+ protected function _verifySignature()
6
+ {
7
+ $requestSignature = $this->getRequest()->getParam('signature');
8
+
9
+ if (empty($requestSignature)) {
10
+ $this->_setResponse(
11
+ array("failure" => "Invalid request."), '401'
12
+ );
13
+ return false;
14
+ }
15
+
16
+ $params = $this->getRequest()->getParams();
17
+ ksort($params);
18
+ unset($params['signature']);
19
+ $query = http_build_query($params);
20
+
21
+ $secret = Mage::helper('analytics/account')->secret();
22
+ $mySignature = base64_encode(hash_hmac("sha256", $query, $secret, true));
23
+
24
+ if (!Mage::helper('analytics/account')->hashEquals($mySignature, $requestSignature)) {
25
+ $this->_setResponse(
26
+ array("failure" => "Invalid request."), '403'
27
+ );
28
+ return false;
29
+ }
30
+
31
+ return true;
32
+ }
33
+
34
+ public function storesAction()
35
+ {
36
+ if (!$this->_verifySignature()) {
37
+ return;
38
+ }
39
+
40
+ $websites = Mage::app()->getWebsites();
41
+
42
+ $inlineApi = new VantageAnalytics_Analytics_Model_Api_Inline();
43
+
44
+ // The first argument is pageSize and is unused here
45
+ $exporter = new VantageAnalytics_Analytics_Model_Export_Store(5000, $inlineApi);
46
+
47
+ foreach ($websites as $website) {
48
+ $exporter->exportWebsite($website);
49
+ }
50
+
51
+ $results = $inlineApi->queue;
52
+
53
+ $this->_setResponse(
54
+ array(
55
+ "model" => 'Store',
56
+ "currentPage" => 1,
57
+ "totalPages" => 1,
58
+ "pageSize" => count($websites),
59
+ "totalItems" => count($websites),
60
+ "results" => $results,
61
+ )
62
+ );
63
+ }
64
+
65
+ public function ordersAction()
66
+ {
67
+ return $this->_pageAction('Order');
68
+ }
69
+
70
+ public function productsAction()
71
+ {
72
+ return $this->_pageAction('Product');
73
+ }
74
+
75
+ public function customersAction()
76
+ {
77
+ return $this->_pageAction('Customer');
78
+ }
79
+
80
+ protected function _setResponse($data, $status='200')
81
+ {
82
+ $this->getResponse()
83
+ ->setHeader('HTTP/1.0', $status, true)
84
+ ->setHeader('Content-Type', 'application/json', true)
85
+ ->appendBody(json_encode($data));
86
+ }
87
+
88
+ protected function _pageAction($entityName)
89
+ {
90
+ if (!$this->_verifySignature()) {
91
+ return;
92
+ }
93
+
94
+ if (!in_array($entityName, array('Product', 'Customer', 'Order'))) {
95
+ $this->_setResponse(
96
+ array("failure" => "Invalid model provided"), '400'
97
+ );
98
+ return;
99
+ }
100
+
101
+ $currentPage = max((int) $this->getRequest()->getParam('page', 1), 0);
102
+ $pageSize = min((int) $this->getRequest()->getParam('page_size', 50), 250);
103
+ $websiteId = $this->getRequest()->getParam('store_id', 1);
104
+ $noResults = $this->getRequest()->getParam('no_results', 0);
105
+
106
+ $exportClass = "VantageAnalytics_Analytics_Model_Export_" . $entityName;
107
+ $inlineApi = new VantageAnalytics_Analytics_Model_Api_Inline();
108
+
109
+ $exporter = new $exportClass($pageSize, $inlineApi);
110
+
111
+ if ($noResults) {
112
+ // Only export the metadata (page size, page count, item count)
113
+ $exporter->exportMetaData($websiteId);
114
+ } else {
115
+ // Export metadata and results
116
+ $exporter->exportPage($websiteId, $currentPage, $currentPage + 1);
117
+ }
118
+
119
+ $results = $inlineApi->queue;
120
+ $metaData = $inlineApi->metaData;
121
+
122
+ $this->_setResponse(
123
+ array(
124
+ "model" => $entityName,
125
+ "currentPage" => $currentPage,
126
+ "totalPages" => $metaData['total_pages'],
127
+ "pageSize" => $pageSize,
128
+ "totalItems" => $metaData['total_items'],
129
+ "results" => $results,
130
+ ),
131
+ '200'
132
+ );
133
+ }
134
+
135
+ public function finalizeAction()
136
+ {
137
+ if (!$this->_verifySignature()) {
138
+ return;
139
+ }
140
+
141
+ Mage::helper('analytics/account')->setExportDone(1);
142
+ Mage::helper('analytics/account')->setIsVerified(1);
143
+
144
+ $this->_setResponse(
145
+ array(
146
+ 'isExportDone' => Mage::helper('analytics/account')->isExportDone(),
147
+ 'isVerified' => Mage::helper('analytics/account')->isVerified()
148
+ ),
149
+ 200
150
+ );
151
+ }
152
+
153
+ public function queueAction()
154
+ {
155
+ if (!$this->_verifySignature()) {
156
+ return;
157
+ }
158
+
159
+ $batchSize = (int) $this->getRequest()->getParam('batch_size', 20);
160
+
161
+ $messages = array();
162
+ $queue = Mage::helper('analytics/queue');
163
+ foreach ($queue->receiveMessages($batchSize) as $message) {
164
+ $msg = json_decode($message->body, true);
165
+ $messages[] = $msg;
166
+ $queue->deleteMessage($message);
167
+ }
168
+
169
+ $this->_setResponse(
170
+ array(
171
+ 'results' => $messages,
172
+ 'queueSize' => $queue->getMessageCount(),
173
+ ),
174
+ '200'
175
+ );
176
+ }
177
+
178
+ public function pixelAction()
179
+ {
180
+ if (!$this->_verifySignature()) {
181
+ return;
182
+ }
183
+
184
+ $storeId = (int) $this->getRequest()->getParam('store_id');
185
+ $url = $this->getRequest()->getParam('url');
186
+
187
+ $store = Mage::app()->getStore($storeId);
188
+ if ($store) {
189
+ $config = Mage::app()->getConfig();
190
+ $config->saveConfig('vantageanalytics/trackingpixel/url', $url, 'stores', $storeId);
191
+ $this->_setResponse(array('success' => 'store pixel url updated'), '200');
192
+ } else {
193
+ $this->_setResponse(array('failure' => 'store not found'), '400');
194
+ }
195
+ }
196
+
197
+ public function infoAction()
198
+ {
199
+ if (!$this->_verifySignature()) {
200
+ return;
201
+ }
202
+
203
+ $data = VantageAnalytics_Analytics_Model_Debug::factory()->toVantage();
204
+
205
+ $this->_setResponse($data, '200');
206
+ }
207
+
208
+ public function cronAction()
209
+ {
210
+ if (!$this->_verifySignature()) {
211
+ return;
212
+ }
213
+
214
+ $enable = $this->getRequest()->getParam('enable', 0);
215
+ $disable = $this->getRequest()->getParam('disable', 0);
216
+
217
+ if ($enable) {
218
+ Mage::helper('analytics/account')->setCronEnabled(1);
219
+ }
220
+
221
+ if ($disable) {
222
+ Mage::helper('analytics/account')->setCronEnabled(0);
223
+ }
224
+
225
+ $this->_setResponse(
226
+ array(
227
+ 'cronEnabled' => Mage::helper('analytics/account')->isCronEnabled()
228
+ ),
229
+ '200'
230
+ );
231
+ }
232
+ }
app/code/community/VantageAnalytics/Analytics/etc/config.xml CHANGED
@@ -2,9 +2,10 @@
2
<config>
3
<modules>
4
<VantageAnalytics_Analytics>
5
- <version>1.1.2</version>
6
</VantageAnalytics_Analytics>
7
</modules>
8
<phpunit>
9
<suite>
10
<modules>
@@ -126,6 +127,15 @@
126
</global>
127
128
<frontend>
129
<events>
130
<sales_order_place_after>
131
<observers>
@@ -186,6 +196,7 @@
186
</accountoptions>
187
<export>
188
<done>0</done>
189
</export>
190
</vantageanalytics>
191
</default>
2
<config>
3
<modules>
4
<VantageAnalytics_Analytics>
5
+ <version>1.1.5</version>
6
</VantageAnalytics_Analytics>
7
</modules>
8
+
9
<phpunit>
10
<suite>
11
<modules>
127
</global>
128
129
<frontend>
130
+ <routers>
131
+ <analytics>
132
+ <use>standard</use>
133
+ <args>
134
+ <module>VantageAnalytics_Analytics</module>
135
+ <frontName>analytics</frontName>
136
+ </args>
137
+ </analytics>
138
+ </routers>
139
<events>
140
<sales_order_place_after>
141
<observers>
196
</accountoptions>
197
<export>
198
<done>0</done>
199
+ <cron>0</cron>
200
</export>
201
</vantageanalytics>
202
</default>
app/code/community/VantageAnalytics/Analytics/etc/system.xml CHANGED
@@ -45,39 +45,8 @@
45
The API Secret for your Vantage account.
46
]]></comment>
47
</accountpwd>
48
- <verify translate="label">
49
- <label>Verify Account</label>
50
- <frontend_type>button</frontend_type>
51
- <frontend_model>VantageAnalytics_Analytics_Block_Adminhtml_Verify</frontend_model>
52
- <sort_order>20</sort_order>
53
- <show_in_default>1</show_in_default>
54
- <show_in_website>1</show_in_website>
55
- <show_in_store>1</show_in_store>
56
- <comment>Verify your username and secret.</comment>
57
- </verify>
58
</fields>
59
</accountoptions>
60
- <export translate="label">
61
- <label>Advanced</label>
62
- <sort_order>1</sort_order>
63
- <show_in_default>1</show_in_default>
64
- <show_in_website>1</show_in_website>
65
- <show_in_store>1</show_in_store>
66
- <fields>
67
- <done translate="label">
68
- <label>Export Completed?</label>
69
- <frontend_type>select</frontend_type>
70
- <source_model>adminhtml/system_config_source_yesno</source_model>
71
- <sort_order>1</sort_order>
72
- <show_in_default>1</show_in_default>
73
- <show_in_website>1</show_in_website>
74
- <show_in_store>1</show_in_store>
75
- <comment>
76
- Set to "No" to force a full historical data export.
77
- </comment>
78
- </done>
79
- </fields>
80
- </export>
81
</groups>
82
</vantageanalytics>
83
</sections>
45
The API Secret for your Vantage account.
46
]]></comment>
47
</accountpwd>
48
</fields>
49
</accountoptions>
50
</groups>
51
</vantageanalytics>
52
</sections>
app/design/frontend/base/default/layout/vantageanalytics_analytics.xml ADDED
@@ -0,0 +1,24 @@
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <default>
4
+ <reference name="before_body_end">
5
+ <block type="core/template" template="vantageanalytics/analytics/visitor.phtml" />
6
+ </reference>
7
+ </default>
8
+ <checkout_onepage_success translate="label">
9
+ <reference name="after_body_start">
10
+ <block type="core/template" template="vantageanalytics/analytics/conversion.phtml" />
11
+ </reference>
12
+ </checkout_onepage_success>
13
+ <checkout_multishipping_success translate="label">
14
+ <reference name="after_body_start">
15
+ <block type="core/template" template="vantageanalytics/analytics/conversion.phtml" />
16
+ </reference>
17
+ </checkout_multishipping_success>
18
+
19
+ <catalog_product_view>
20
+ <reference name="after_body_start">
21
+ <block type="core/template" template="vantageanalytics/analytics/productview.phtml" />
22
+ </reference>
23
+ </catalog_product_view>
24
+ </layout>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
<?xml version="1.0"?>
2
<package>
3
<name>VantageAnalytics_Analytics</name>
4
- <version>1.1.5</version>
5
<stability>stable</stability>
6
<license uri="http://vantageanalytics.com/legal/terms-of-use/">Commercial - Vantage</license>
7
<channel>community</channel>
@@ -25,7 +25,11 @@ Vantage also offers financial insights, such as month to date revenue, that show
25
With the customer segmentation tools Vantage offers, you can export a list of your highest value customers to offer discounts or exclusive offers in as little as 3 clicks!&#xD;
26
&#xD;
27
For store owners with multiple locations or multiple ecommerce stores, we offer a multi-store management panel to monitor each store&#x2019;s performance.</description>
28
- <notes>1.1.5&#xD;
29
-------&#xD;
30
- Minor phpcs code style rule fixes&#xD;
31
- Remove embedded sign-up form, registration now begins at app.vantageanalytics.com &#xD;
@@ -116,9 +120,9 @@ Improved robustness of historical data export process and report historical data
116
&#xD;
117
First stable release.</notes>
118
<authors><author><name>Brandon Kane</name><user>brandon</user><email>brandon@vantageanalytics.com</email></author></authors>
119
- <date>2017-06-02</date>
120
- <time>15:55:45</time>
121
- <contents><target name="magecommunity"><dir name="VantageAnalytics"><dir name="Analytics"><dir name="Block"><dir name="Adminhtml"><file name="Analyticsbackend.php" hash="e305f2e7b0bfad28d84da570b27e7ab7"/><file name="Verify.php" hash="c3496c9d8cb37936705132a3aca6120d"/></dir></dir><dir name="Helper"><file name="Account.php" hash="fec1771530c4b4d92442e5967b9570c2"/><file name="Checkout.php" hash="a4ec19d149f0a47936a9e607f0177056"/><file name="Data.php" hash="e2368bb846dc4e8090a31c2cd9b4dd64"/><file name="DateFormatter.php" hash="6e98a6efb5263f01a9d463faa1043d6e"/><dir name="Extension"><file name="Lister.php" hash="332928b892e1d47e5fbda24ea61017a3"/><file name="Pool.php" hash="36da98e3dd9e67c6308ff0901a800e63"/></dir><file name="Log.php" hash="eeb557a144f1254d2f01970530eded32"/><file name="Pixel.php" hash="85e46cf2763f8cb73a4589f3fdb9f7f3"/><file name="Queue.php" hash="b0460de27c67477fffd3d467ea657502"/><file name="Statuses.php" hash="9527eb737121cd34530c813aea52e962"/><file name="Tracking.php" hash="27ac8e7d194cb4b18712da1a6a8cf5be"/></dir><dir name="Model"><file name="AddressRetriever.php" hash="6d6761b08aa8d50f5473ee79b5211254"/><dir name="Api"><dir name="Exceptions"><file name="BadRequest.php" hash="90e31638b100c1f160b04a06a96c75f7"/><file name="CurlError.php" hash="cf82c3b693522cf86c02f9d1f1e83217"/><file name="MaxRetries.php" hash="2f2be83f975277cca1a5c0442d1e0cb3"/><file name="ServerError.php" hash="d68761c5e4e5e9666a4aa992db74a611"/></dir><file name="Request.php" hash="e5cac61e391a2b132d7f4b0db0578ada"/><file name="RequestQueue.php" hash="ab1ec911b14c9d5bb688ea5b8cac9395"/><file name="Secret.php" hash="4668d55a9ade673da752965486225272"/><file name="Signature.php" hash="9769075f75e55e60442f6e7afe0964d6"/><file name="Username.php" hash="8e8b3b0ae689b615aa19db8608741db9"/><file name="Webhook.php" hash="e4bac72b798acfda514d96b02dc0046c"/></dir><file name="Cron.php" hash="f385aff0db8c78e5349a4162b28a4348"/><file name="Debug.php" hash="2cfcecd19bd97b87bc4fd434d3278fb5"/><dir name="Export"><file name="Base.php" hash="5f5df5d1e4b51dfbda43f0d9fd1859d4"/><file name="Customer.php" hash="2bac395f9573e99740737348e7cdc0ac"/><file name="ExportPage.php" hash="25fa6d4fa48be30c57abd751185e30a0"/><file name="Order.php" hash="6a779faee4881f5babf032b218642131"/><file name="Product.php" hash="765dfbe5e4e3bf92d22fdfb49035bd98"/><file name="Runner.php" hash="05f1362952b62272e019522e64d1072b"/><file name="Store.php" hash="1cf68e5689615dfba835bb74118151cc"/></dir><file name="Heartbeat.php" hash="110d7158f12a86e2dcc877b40c9a44d4"/><dir name="Observer"><file name="Base.php" hash="613ef7dcf1723cbf26ede5a7f50a8811"/><file name="CatalogProduct.php" hash="4c964ab1dd6850b124442e1a9f7506e7"/><file name="Customer.php" hash="0686ca80283a14d98358b8e7179c1269"/><file name="SalesOrder.php" hash="ec2c0f43df1443387e8c7f740f02cd33"/><file name="SalesQuote.php" hash="c0cc6aea5e71ec06e394883b6bf684da"/><file name="Tracking.php" hash="a8a95092168e0c917109bb4ce9c6d9a9"/></dir><file name="ParentProduct.php" hash="e773561b45bcabbfbd739c49122ccab3"/><file name="Pixel.php" hash="3ed3efdfa25231e1b57ce68cebde4c76"/><file name="ProductCategories.php" hash="d3265e984587bf8a5d5cc202bd464c12"/><file name="ProductImages.php" hash="0c3ee899e4aa884af8d3af0c52259657"/><file name="ProductOptions.php" hash="42fedb046f2ec7deb730239f8b9427d6"/><dir name="Queue"><dir name="Adapter"><file name="Db.php" hash="a1733dc68647c1f812afaf98ce3a26d9"/></dir></dir><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="a115284cf544ad06b799c552b1f8c5c1"/></dir></dir><file name="SubscriberInformation.php" hash="67816c4724238f275a73058553010e83"/><dir name="Transformer"><file name="Address.php" hash="f9f0f27abf5597d89763b55ea9946cd3"/><file name="Base.php" hash="31313c87cefc65e9299f4996ae73a97d"/><file name="BaseSales.php" hash="d5ea80caa43574a81f72e7fb54a73a88"/><file name="BaseSalesItem.php" hash="aa281fe585defda3844baffeb6dfa9f9"/><file name="Customer.php" hash="0ffa13cdea0308170ce4c0a6f7f03950"/><file name="Product.php" hash="9c29061ac16210563b8f331b962e5afc"/><file name="SalesOrder.php" hash="1b9d74e0ff1b59b0e7cc203b58f1a45e"/><file name="SalesOrderLineItem.php" hash="664fe35f03d901c75fa1796480e40135"/><file name="SalesQuote.php" hash="ffeb73588f89141367a40eb80fd07249"/><file name="SalesQuoteLineItem.php" hash="800ef2a4a2ecd00e9ed82bfb33623ceb"/><file name="Store.php" hash="80dd794795bcdef4442206a40c1d6a3e"/></dir></dir><dir name="Test"><dir name="Model"><dir name="Api"><file name="Signature.php" hash="5db3d5f9456c7948ecb636c9fe2d4850"/></dir><file name="Base.php" hash="fa7cb987301c0d1f092146447bac1d35"/><file name="Config.php" hash="84a1043ecfe94e1ff52de06b1c63254e"/><dir name="Customer"><dir name="fixtures"><file name="simpleCustomer.yaml" hash="e6b22424ddc0940226344bcccf13c745"/></dir></dir><file name="Customer.php" hash="77480c5696b5c5f9006b330b8b0d2010"/><file name="DateFormatterTest.php" hash="b7f0ff0cddfb0cce1b73c6a8de8d74dc"/><dir name="LineItem"><dir name="fixtures"><file name="simpleOrder.yaml" hash="8d6ff7b4cf8c434631305b51fca7884c"/></dir></dir><file name="LineItem.php" hash="2f2599d5d80a6726958ab9a3b2b24b96"/><dir name="Observer"><file name="SalesQuote.php" hash="1a6380469b28386dfe42ed7bd3ee39f5"/></dir><dir name="Order"><dir name="fixtures"><file name="orderStatus.yaml" hash="a2786f2eda68ce0035f9edc8beaf9fee"/><file name="orderStatusCanceled.yaml" hash="800fcb6ee04f912e3e3f27efdbdafde3"/><file name="orderStatusComplete.yaml" hash="1c912c447d255f0afd096e6f32eace1c"/><file name="paymentStatusUnpaid.yaml" hash="c0d0a55eec973ad3ee3730ebc143a3b7"/></dir><dir name="providers"><file name="orderStatus.yaml" hash="e88ed6c1b39272f3f4767810a427613c"/></dir></dir><file name="Order.php" hash="82204a6eca60382a189a1482b1f85197"/><dir name="Product"><dir name="fixtures"><file name="parentProduct.yaml" hash="931604baf487baa33cf78dc26548431c"/><file name="simpleProduct.yaml" hash="56b88f052816173a79780f43779df4ff"/></dir></dir><file name="Product.php" hash="2226535622cf67a72efbf747fc0cb87a"/><file name="Webhook.php" hash="d34e01e88599529cf79b8cc27efad550"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Analytics"><file name="VerifyController.php" hash="627cc04bbf86f238df5942da86e27d1a"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="cdfb6a37810355796f416784ce7f5584"/><file name="config.xml" hash="c1760ba1a236c25f9882631c8a1c9529"/><file name="system.xml" hash="e7824db3d5dffc23b18dcb6662dab1cc"/></dir><dir name="sql"><dir name="vantageanalytics_analytics_setup"><file name="install-0.1.0.php" hash="0e7150e283f1ece9251af3e3d2ce76aa"/><file name="mysql4-upgrade-0.1.0-0.2.0.php" hash="e61c872d2e3527d8fa9e8daf21d8fc2e"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="VantageAnalytics_Analytics.xml" hash="69ca3371e05fff3d8b1e89849e3fab32"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="vantageanalytics"><dir name="analytics"><file name="conversion.phtml" hash="a637baea0a96508e91144d749c37d4af"/><file name="visitor.phtml" hash="35ea63a52433775d4e32dc96b5cdee3f"/><file name="productview.phtml" hash="f2148d125dae6e762c09418291d40328"/></dir></dir></dir></dir></dir></dir></target></contents>
122
<compatible/>
123
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
124
</package>
1
<?xml version="1.0"?>
2
<package>
3
<name>VantageAnalytics_Analytics</name>
4
+ <version>1.2.1</version>
5
<stability>stable</stability>
6
<license uri="http://vantageanalytics.com/legal/terms-of-use/">Commercial - Vantage</license>
7
<channel>community</channel>
25
With the customer segmentation tools Vantage offers, you can export a list of your highest value customers to offer discounts or exclusive offers in as little as 3 clicks!&#xD;
26
&#xD;
27
For store owners with multiple locations or multiple ecommerce stores, we offer a multi-store management panel to monitor each store&#x2019;s performance.</description>
28
+ <notes>1.2.0&#xD;
29
+ -------&#xD;
30
+ - New API&#xD;
31
+ &#xD;
32
+ 1.1.5&#xD;
33
-------&#xD;
34
- Minor phpcs code style rule fixes&#xD;
35
- Remove embedded sign-up form, registration now begins at app.vantageanalytics.com &#xD;
120
&#xD;
121
First stable release.</notes>
122
<authors><author><name>Brandon Kane</name><user>brandon</user><email>brandon@vantageanalytics.com</email></author></authors>
123
+ <date>2017-06-26</date>
124
+ <time>18:10:49</time>
125
+ <contents><target name="magecommunity"><dir name="VantageAnalytics"><dir name="Analytics"><dir name="Block"><dir name="Adminhtml"><file name="Analyticsbackend.php" hash="e305f2e7b0bfad28d84da570b27e7ab7"/><file name="Verify.php" hash="c3496c9d8cb37936705132a3aca6120d"/></dir></dir><dir name="Helper"><file name="Account.php" hash="55df5016610083c1da7df8a8b2d9172f"/><file name="Checkout.php" hash="a4ec19d149f0a47936a9e607f0177056"/><file name="Data.php" hash="e2368bb846dc4e8090a31c2cd9b4dd64"/><file name="DateFormatter.php" hash="6e98a6efb5263f01a9d463faa1043d6e"/><dir name="Extension"><file name="Lister.php" hash="332928b892e1d47e5fbda24ea61017a3"/><file name="Pool.php" hash="36da98e3dd9e67c6308ff0901a800e63"/></dir><file name="Log.php" hash="eeb557a144f1254d2f01970530eded32"/><file name="Pixel.php" hash="85e46cf2763f8cb73a4589f3fdb9f7f3"/><file name="Queue.php" hash="3e548ae77ab6a67d1bc279df0c17b165"/><file name="Statuses.php" hash="9527eb737121cd34530c813aea52e962"/><file name="Tracking.php" hash="27ac8e7d194cb4b18712da1a6a8cf5be"/></dir><dir name="Model"><file name="AddressRetriever.php" hash="6d6761b08aa8d50f5473ee79b5211254"/><dir name="Api"><dir name="Exceptions"><file name="BadRequest.php" hash="90e31638b100c1f160b04a06a96c75f7"/><file name="CurlError.php" hash="cf82c3b693522cf86c02f9d1f1e83217"/><file name="MaxRetries.php" hash="2f2be83f975277cca1a5c0442d1e0cb3"/><file name="ServerError.php" hash="d68761c5e4e5e9666a4aa992db74a611"/></dir><file name="Inline.php" hash="5a099b4dadab426f2e50770ff6f86a0d"/><file name="Request.php" hash="e5cac61e391a2b132d7f4b0db0578ada"/><file name="RequestQueue.php" hash="4081a0fca85e229749a6d7403b7b1939"/><file name="Secret.php" hash="4668d55a9ade673da752965486225272"/><file name="Signature.php" hash="9769075f75e55e60442f6e7afe0964d6"/><file name="Username.php" hash="8e8b3b0ae689b615aa19db8608741db9"/><file name="Webhook.php" hash="e4bac72b798acfda514d96b02dc0046c"/></dir><file name="Cron.php" hash="a07ef21d4ba8dd75a683d7a2786d482e"/><file name="Debug.php" hash="2cfcecd19bd97b87bc4fd434d3278fb5"/><dir name="Export"><file name="Base.php" hash="181726d31c30223d38df1c920a36aab6"/><file name="Customer.php" hash="2bac395f9573e99740737348e7cdc0ac"/><file name="ExportPage.php" hash="25fa6d4fa48be30c57abd751185e30a0"/><file name="Order.php" hash="6a779faee4881f5babf032b218642131"/><file name="Product.php" hash="765dfbe5e4e3bf92d22fdfb49035bd98"/><file name="Runner.php" hash="05f1362952b62272e019522e64d1072b"/><file name="Store.php" hash="a1bd7ad27d7d18b9567dbde26b4e94f7"/></dir><file name="Heartbeat.php" hash="d29f235942bc20ea16c9d687af45003e"/><dir name="Observer"><file name="Base.php" hash="613ef7dcf1723cbf26ede5a7f50a8811"/><file name="CatalogProduct.php" hash="4c964ab1dd6850b124442e1a9f7506e7"/><file name="Customer.php" hash="0686ca80283a14d98358b8e7179c1269"/><file name="SalesOrder.php" hash="ec2c0f43df1443387e8c7f740f02cd33"/><file name="SalesQuote.php" hash="c0cc6aea5e71ec06e394883b6bf684da"/><file name="Tracking.php" hash="a8a95092168e0c917109bb4ce9c6d9a9"/></dir><file name="ParentProduct.php" hash="e773561b45bcabbfbd739c49122ccab3"/><file name="Pixel.php" hash="3ed3efdfa25231e1b57ce68cebde4c76"/><file name="ProductCategories.php" hash="d3265e984587bf8a5d5cc202bd464c12"/><file name="ProductImages.php" hash="0c3ee899e4aa884af8d3af0c52259657"/><file name="ProductOptions.php" hash="42fedb046f2ec7deb730239f8b9427d6"/><dir name="Queue"><dir name="Adapter"><file name="Db.php" hash="a1733dc68647c1f812afaf98ce3a26d9"/></dir></dir><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="a115284cf544ad06b799c552b1f8c5c1"/></dir></dir><file name="SubscriberInformation.php" hash="67816c4724238f275a73058553010e83"/><dir name="Transformer"><file name="Address.php" hash="f9f0f27abf5597d89763b55ea9946cd3"/><file name="Base.php" hash="31313c87cefc65e9299f4996ae73a97d"/><file name="BaseSales.php" hash="d5ea80caa43574a81f72e7fb54a73a88"/><file name="BaseSalesItem.php" hash="aa281fe585defda3844baffeb6dfa9f9"/><file name="Customer.php" hash="0ffa13cdea0308170ce4c0a6f7f03950"/><file name="Product.php" hash="9c29061ac16210563b8f331b962e5afc"/><file name="SalesOrder.php" hash="1b9d74e0ff1b59b0e7cc203b58f1a45e"/><file name="SalesOrderLineItem.php" hash="664fe35f03d901c75fa1796480e40135"/><file name="SalesQuote.php" hash="ffeb73588f89141367a40eb80fd07249"/><file name="SalesQuoteLineItem.php" hash="800ef2a4a2ecd00e9ed82bfb33623ceb"/><file name="Store.php" hash="80dd794795bcdef4442206a40c1d6a3e"/></dir></dir><dir name="Test"><dir name="Model"><dir name="Api"><file name="Signature.php" hash="5db3d5f9456c7948ecb636c9fe2d4850"/></dir><file name="Base.php" hash="fa7cb987301c0d1f092146447bac1d35"/><file name="Config.php" hash="84a1043ecfe94e1ff52de06b1c63254e"/><dir name="Customer"><dir name="fixtures"><file name="simpleCustomer.yaml" hash="e6b22424ddc0940226344bcccf13c745"/></dir></dir><file name="Customer.php" hash="77480c5696b5c5f9006b330b8b0d2010"/><file name="DateFormatterTest.php" hash="b7f0ff0cddfb0cce1b73c6a8de8d74dc"/><dir name="LineItem"><dir name="fixtures"><file name="simpleOrder.yaml" hash="8d6ff7b4cf8c434631305b51fca7884c"/></dir></dir><file name="LineItem.php" hash="2f2599d5d80a6726958ab9a3b2b24b96"/><dir name="Observer"><file name="SalesQuote.php" hash="1a6380469b28386dfe42ed7bd3ee39f5"/></dir><dir name="Order"><dir name="fixtures"><file name="orderStatus.yaml" hash="a2786f2eda68ce0035f9edc8beaf9fee"/><file name="orderStatusCanceled.yaml" hash="800fcb6ee04f912e3e3f27efdbdafde3"/><file name="orderStatusComplete.yaml" hash="1c912c447d255f0afd096e6f32eace1c"/><file name="paymentStatusUnpaid.yaml" hash="c0d0a55eec973ad3ee3730ebc143a3b7"/></dir><dir name="providers"><file name="orderStatus.yaml" hash="e88ed6c1b39272f3f4767810a427613c"/></dir></dir><file name="Order.php" hash="82204a6eca60382a189a1482b1f85197"/><dir name="Product"><dir name="fixtures"><file name="parentProduct.yaml" hash="931604baf487baa33cf78dc26548431c"/><file name="simpleProduct.yaml" hash="56b88f052816173a79780f43779df4ff"/></dir></dir><file name="Product.php" hash="2226535622cf67a72efbf747fc0cb87a"/><file name="Webhook.php" hash="d34e01e88599529cf79b8cc27efad550"/></dir></dir><dir name="controllers"><file name="ExportController.php" hash="1935e4bab16b1b7d2be72e692850814c"/></dir><dir name="etc"><file name="adminhtml.xml" hash="cdfb6a37810355796f416784ce7f5584"/><file name="config.xml" hash="e575a51b049f68c5b80228d23fc4e870"/><file name="system.xml" hash="5085eec015c4e002ba4390af3f60fd53"/></dir><dir name="sql"><dir name="vantageanalytics_analytics_setup"><file name="install-0.1.0.php" hash="0e7150e283f1ece9251af3e3d2ce76aa"/><file name="mysql4-upgrade-0.1.0-0.2.0.php" hash="e61c872d2e3527d8fa9e8daf21d8fc2e"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="VantageAnalytics_Analytics.xml" hash="69ca3371e05fff3d8b1e89849e3fab32"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="vantageanalytics"><dir name="analytics"><file name="conversion.phtml" hash="a637baea0a96508e91144d749c37d4af"/><file name="visitor.phtml" hash="35ea63a52433775d4e32dc96b5cdee3f"/><file name="productview.phtml" hash="f2148d125dae6e762c09418291d40328"/></dir></dir></dir><dir name="layout"><file name="vantageanalytics_analytics.xml" hash="c852aff83b27479807f002adb350778f"/></dir></dir></dir></dir></target></contents>
126
<compatible/>
127
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
128
</package>