VantageAnalytics_Analytics - Version 1.0.9

Version Notes

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.0.9
Comparing to
See all releases


Code changes from version 1.0.7 to 1.0.9

app/code/community/VantageAnalytics/Analytics/Model/Api/Request.php CHANGED
@@ -26,6 +26,7 @@ class VantageAnalytics_Analytics_Model_Api_Request
26
  $errorDesc
27
  );
28
  }
 
29
  curl_setopt($channel, CURLOPT_SSL_VERIFYHOST, 2);
30
  curl_setopt($channel, CURLOPT_CUSTOMREQUEST, $method);
31
  curl_setopt($channel, CURLOPT_RETURNTRANSFER, true);
@@ -47,17 +48,22 @@ class VantageAnalytics_Analytics_Model_Api_Request
47
  protected function raiseOnError($channel)
48
  {
49
  $status = curl_getinfo($channel, CURLINFO_HTTP_CODE);
 
 
50
 
51
  if ($status >= 400 && $status < 500) {
 
52
  throw new VantageAnalytics_Analytics_Model_Api_Exceptions_BadRequest;
53
  }
54
  if ($status >= 500) {
 
55
  throw new VantageAnalytics_Analytics_Model_Api_Exceptions_ServerError;
56
  }
57
 
58
  if (curl_errno($channel)) {
59
  $errorDesc = curl_error($channel);
60
  curl_close($channel);
 
61
  throw new VantageAnalytics_Analytics_Model_Api_Exceptions_CurlError(
62
  $errorDesc
63
  );
@@ -72,13 +78,13 @@ class VantageAnalytics_Analytics_Model_Api_Request
72
  }
73
  $waitTimes = array(5, 30, 60, 5*60, 10*60, 30*60, 60*60, 4*60*60);
74
  $seconds = $waitTimes[$attempt];
75
- Mage::helper('analytics/log')->logWarn("Waiting for {$seconds} seconds.");
76
  sleep($seconds);
77
  }
78
 
79
  protected function execCurl($method, $entity)
80
  {
81
- $reponse = null;
82
  $attempts = 0;
83
  $success = false;
84
  while ($attempts < 5 && !$success) {
26
  $errorDesc
27
  );
28
  }
29
+
30
  curl_setopt($channel, CURLOPT_SSL_VERIFYHOST, 2);
31
  curl_setopt($channel, CURLOPT_CUSTOMREQUEST, $method);
32
  curl_setopt($channel, CURLOPT_RETURNTRANSFER, true);
48
  protected function raiseOnError($channel)
49
  {
50
  $status = curl_getinfo($channel, CURLINFO_HTTP_CODE);
51
+ $info = curl_getinfo($channel);
52
+ $url = $info['url'];
53
 
54
  if ($status >= 400 && $status < 500) {
55
+ Mage::helper('analytics/log')->logError("BadRequest: $url $status");
56
  throw new VantageAnalytics_Analytics_Model_Api_Exceptions_BadRequest;
57
  }
58
  if ($status >= 500) {
59
+ Mage::helper('analytics/log')->logError("ServerError: $url $status");
60
  throw new VantageAnalytics_Analytics_Model_Api_Exceptions_ServerError;
61
  }
62
 
63
  if (curl_errno($channel)) {
64
  $errorDesc = curl_error($channel);
65
  curl_close($channel);
66
+ Mage::helper('analytics/log')->logError("CurlError: $url $errorDesc");
67
  throw new VantageAnalytics_Analytics_Model_Api_Exceptions_CurlError(
68
  $errorDesc
69
  );
78
  }
79
  $waitTimes = array(5, 30, 60, 5*60, 10*60, 30*60, 60*60, 4*60*60);
80
  $seconds = $waitTimes[$attempt];
81
+ Mage::helper('analytics/log')->logWarn("Will retry in {$seconds} seconds.");
82
  sleep($seconds);
83
  }
84
 
85
  protected function execCurl($method, $entity)
86
  {
87
+ $response = null;
88
  $attempts = 0;
89
  $success = false;
90
  while ($attempts < 5 && !$success) {
app/code/community/VantageAnalytics/Analytics/Model/Export/Base.php CHANGED
@@ -6,10 +6,36 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
6
 
7
  abstract protected function createCollection($website, $pageNumber);
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  protected function getPathToPHP()
10
  {
11
- if (isset($PHP_BINARY) && file_exists($PHP_BINARY)) {
12
- return $PHP_BINARY;
13
  }
14
 
15
  // mage> echo " " . getmypid() . " " . posix_getpid() . " " . exec('echo $PPID');
@@ -22,33 +48,22 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
22
  $pid = exec('echo $PPID');
23
  }
24
 
25
- $exe = exec("readlink -f /proc/$pid/exe");
26
- if ($exe && file_exists($exe)) {
27
- return $exe;
28
- }
29
-
30
- if (file_exists("/usr/bin/php5")) {
31
- return "/usr/bin/php5";
32
- }
33
-
34
- if (file_exists("/usr/local/bin/php5")) {
35
- return "/usr/local/bin/php5";
36
  }
37
 
38
- $exe = exec("which php5");
39
  if ($exe) {
40
  return $exe;
41
  }
42
-
43
- if (file_exists("/usr/bin/php")) {
44
- return "/usr/bin/php";
45
- }
46
-
47
- if (file_exists("/usr/local/bin/php")) {
48
- return "/usr/local/bin/php";
49
  }
50
-
51
- $exe = exec("which php");
52
  if ($exe) {
53
  return $exe;
54
  }
@@ -122,10 +137,6 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
122
  $maxChildren = 1;
123
 
124
  while ($currentPage <= $totalPages) {
125
- if (count($pids) >= $maxChildren) {
126
- $pid = pcntl_waitpid(-1, $status);
127
- unset($pids[$pid]);
128
- }
129
 
130
  $this->exportMetaData(
131
  $website->getWebsiteId(),
@@ -139,21 +150,34 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
139
  $endPage = $totalPages + 1; // The page ranges are inclusive-exclusive so pick up the last page
140
  }
141
  $args = array("{$where}/ExportPage.php", $entityName, "{$websiteId}", "{$currentPage}", "{$endPage}");
142
- $pid = pcntl_fork();
143
- if ($pid == -1) {
144
- Mage::helper('analytics/log')->logError('Could not fork');
145
- die('could not fork');
146
- } else if ($pid) {
147
- // in the parent
148
- $pids[$pid] = $pid;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
 
150
  $endPage = $endPage + $numberOfPages;
151
  $currentPage = $currentPage + $numberOfPages;
152
- } else {
153
- // in the child
154
- pcntl_exec($phpbin, $args);
155
  }
156
-
157
  }
158
  }
159
 
6
 
7
  abstract protected function createCollection($website, $pageNumber);
8
 
9
+ protected function tryToFindPHP($phpv)
10
+ {
11
+ if (file_exists("/usr/local/php{$phpv}/bin/php")) {
12
+ return "/usr/local/php{$phpv}/bin/php";
13
+ }
14
+
15
+ if (file_exists("/usr/local/php{$phpv}/bin/php{$phpv}")) {
16
+ return "/usr/local/php{$phpv}/bin/php{$phpv}";
17
+ }
18
+
19
+ if (file_exists("/usr/bin/php${phpv}")) {
20
+ return "/usr/bin/php{$phpv}";
21
+ }
22
+
23
+ if (file_exists("/usr/local/bin/php{$phpv}")) {
24
+ return "/usr/local/bin/php{$phpv}";
25
+ }
26
+
27
+ if (function_exists("exec")) {
28
+ $exe = exec("which php{$phpv}");
29
+ if ($exe) {
30
+ return $exe;
31
+ }
32
+ }
33
+ }
34
+
35
  protected function getPathToPHP()
36
  {
37
+ if (defined(PHP_BINARY) && file_exists(PHP_BINARY)) {
38
+ return PHP_BINARY;
39
  }
40
 
41
  // mage> echo " " . getmypid() . " " . posix_getpid() . " " . exec('echo $PPID');
48
  $pid = exec('echo $PPID');
49
  }
50
 
51
+ if (function_exists('exec')) {
52
+ $exe = exec("readlink -f /proc/$pid/exe");
53
+ if ($exe && file_exists($exe)) {
54
+ return $exe;
55
+ }
 
 
 
 
 
 
56
  }
57
 
58
+ $exe = $this->tryToFindPHP("56");
59
  if ($exe) {
60
  return $exe;
61
  }
62
+ $exe = $this->tryToFindPHP("5");
63
+ if ($exe) {
64
+ return $exe;
 
 
 
 
65
  }
66
+ $exe = $this->tryToFindPHP("");
 
67
  if ($exe) {
68
  return $exe;
69
  }
137
  $maxChildren = 1;
138
 
139
  while ($currentPage <= $totalPages) {
 
 
 
 
140
 
141
  $this->exportMetaData(
142
  $website->getWebsiteId(),
150
  $endPage = $totalPages + 1; // The page ranges are inclusive-exclusive so pick up the last page
151
  }
152
  $args = array("{$where}/ExportPage.php", $entityName, "{$websiteId}", "{$currentPage}", "{$endPage}");
153
+ if (function_exists('pcntl_fork')) {
154
+ $pid = pcntl_fork();
155
+ if ($pid == -1) {
156
+ Mage::helper('analytics/log')->logError('Could not fork');
157
+ die('could not fork');
158
+ } else if ($pid) {
159
+ // in the parent
160
+ $pids[$pid] = $pid;
161
+
162
+ $endPage = $endPage + $numberOfPages;
163
+ $currentPage = $currentPage + $numberOfPages;
164
+
165
+ } else {
166
+ // in the child
167
+ pcntl_exec($phpbin, $args);
168
+ }
169
+
170
+ if (count($pids) >= $maxChildren) {
171
+ $pid = pcntl_waitpid(-1, $status);
172
+ unset($pids[$pid]);
173
+ }
174
+
175
+ } else {
176
+ $this->exportPage($websiteId, $currentPage, $endPage);
177
 
178
  $endPage = $endPage + $numberOfPages;
179
  $currentPage = $currentPage + $numberOfPages;
 
 
 
180
  }
 
181
  }
182
  }
183
 
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>VantageAnalytics_Analytics</name>
4
- <version>1.0.7</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,15 @@ 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.0.7&#xD;
 
 
 
 
 
 
 
 
29
  -------&#xD;
30
  &#xD;
31
  - Fork exec export into 2 children processes to avoid long running process with unbounded memory consumption&#xD;
@@ -71,9 +79,9 @@ Improved robustness of historical data export process and report historical data
71
  &#xD;
72
  First stable release.</notes>
73
  <authors><author><name>Brandon Kane</name><user>brandon</user><email>brandon@vantageanalytics.com</email></author></authors>
74
- <date>2016-05-27</date>
75
- <time>10:42:39</time>
76
- <contents><target name="magecommunity"><dir name="VantageAnalytics"><dir name="Analytics"><dir name="Block"><dir name="Adminhtml"><file name="Analyticsbackend.php" hash="e305f2e7b0bfad28d84da570b27e7ab7"/><file name="Reset.php" hash="532930f826f191a37c21a9556936c3ce"/></dir></dir><dir name="Helper"><file name="Account.php" hash="270976db69e227162d35d1eb9a424d6b"/><file name="Data.php" hash="e2368bb846dc4e8090a31c2cd9b4dd64"/><file name="DateFormatter.php" hash="6e98a6efb5263f01a9d463faa1043d6e"/><dir name="Extension"><file name="Lister.php" hash="bcd42cde1226011937276f35b84043b0"/><file name="Pool.php" hash="198c0585d60c9c3cd0d161de43eed4cc"/></dir><file name="Log.php" hash="eeb557a144f1254d2f01970530eded32"/><file name="Pixel.php" hash="85e46cf2763f8cb73a4589f3fdb9f7f3"/><file name="Queue.php" hash="2d9b23e9b7d6f9847a444c2837ca1f2e"/><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="b03ee6b624587155b6a21e832d756e94"/><file name="RequestQueue.php" hash="ab1ec911b14c9d5bb688ea5b8cac9395"/><file name="Secret.php" hash="7056e3d3ae2d54dda82191d9e51832f2"/><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="c24900a7e9ecbfeb8c0d9509f3f8e44d"/><dir name="Export"><file name="Base.php" hash="d933e81ae44856cca325e5b0e777256a"/><file name="Customer.php" hash="2bac395f9573e99740737348e7cdc0ac"/><file name="ExportPage.php" hash="fa2b012e861c1149630452816ae724a7"/><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="060b2bc4ae4a6d0cee00d1cf21556d83"/><file name="CatalogProduct.php" hash="c6e553ed6feb5173f0405e771a1203d3"/><file name="Customer.php" hash="0686ca80283a14d98358b8e7179c1269"/><file name="SalesOrder.php" hash="e406749cf6b8e74e341968f2707af82f"/><file name="SalesQuote.php" hash="0bae57dbbdf65f10b8dbb59314861cc9"/><file name="Tracking.php" hash="a8a95092168e0c917109bb4ce9c6d9a9"/></dir><file name="ParentProduct.php" hash="e15d56807edb680a7c880f88d3cc654c"/><file name="Pixel.php" hash="3ed3efdfa25231e1b57ce68cebde4c76"/><file name="ProductCategories.php" hash="d3265e984587bf8a5d5cc202bd464c12"/><file name="ProductImages.php" hash="608c0444218733661dc94c214887cadd"/><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="8f766b0d85187de732db44b26a210773"/><file name="BaseSales.php" hash="7e248d70f07b24e50a92999696833101"/><file name="BaseSalesItem.php" hash="aa281fe585defda3844baffeb6dfa9f9"/><file name="Customer.php" hash="481e0972f572340c96a59da8f582dba9"/><file name="Product.php" hash="1f1951f3be2bf6880a2bd708c97ea71d"/><file name="SalesOrder.php" hash="9fb3aa63042873fa0f2f6dedc108e4f1"/><file name="SalesOrderLineItem.php" hash="34a919367236cdd9351454ed47cb78b2"/><file name="SalesQuote.php" hash="c1712d7eb2b440b4d9c77d9dab96717d"/><file name="SalesQuoteLineItem.php" hash="27687eba35dab7fdadad438aeb63bf03"/><file name="Store.php" hash="cde2395de468981b3b964184dd214afb"/></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="722d0096e8211b4b57485b24efced031"/><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="e35411c7d970af0b5913807830ffe45e"/><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="24cefdde2b5bf68452f5c6301c1d5efc"/><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="9f22904ec0015355f6fbf2f287d5574d"/><file name="Webhook.php" hash="d34e01e88599529cf79b8cc27efad550"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Analytics"><file name="AnalyticsbackendController.php" hash="6d82eb561da08535ae761f84ae27179e"/><file name="ResetController.php" hash="c45b58f6aaba218d7d271288add8780a"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="cdfb6a37810355796f416784ce7f5584"/><file name="config.xml" hash="534207999bd00fe15b1f56fe50dedd67"/><file name="system.xml" hash="96810a47632dbee35df743615ced3c41"/></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"/><file name="mysql4-upgrade-0.2.0-1.0.7.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="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="analytics.xml" hash="3f5da1f21784db4d01111aa208914d27"/></dir><dir name="template"><dir name="analytics"><file name="analyticsbackend.phtml" hash="2eb2bc2ba45a071c17ad376553b46c9b"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="vantageanalytics_analytics.xml" hash="474402cfcca713298e88f50ff4fafe2c"/></dir><dir name="template"><dir name="vantageanalytics"><dir name="analytics"><file name="conversion.phtml" hash="c7442d4077cf1d3719b05f16ceda1c89"/><file name="visitor.phtml" hash="82c64d032b8b9dadff0c847c4538f6d9"/></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><file name="register.css" hash="704cc1e177a9353715d065cb0b8841d4"/></dir></dir></dir><dir name="base"><dir name="default"><dir name="images"><file name="vantage-for-magento.png" hash="36604b9b28ca5d8a7ff0ead39323eae9"/></dir></dir></dir></dir></target></contents>
77
  <compatible/>
78
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
79
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>VantageAnalytics_Analytics</name>
4
+ <version>1.0.9</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.0.9&#xD;
29
+ -------&#xD;
30
+ - Try to use PHP_BINARY to find the PHP binary&#xD;
31
+ &#xD;
32
+ 1.0.8&#xD;
33
+ -------&#xD;
34
+ - Look for PHP binaries in more places&#xD;
35
+ &#xD;
36
+ 1.0.7&#xD;
37
  -------&#xD;
38
  &#xD;
39
  - Fork exec export into 2 children processes to avoid long running process with unbounded memory consumption&#xD;
79
  &#xD;
80
  First stable release.</notes>
81
  <authors><author><name>Brandon Kane</name><user>brandon</user><email>brandon@vantageanalytics.com</email></author></authors>
82
+ <date>2016-05-28</date>
83
+ <time>23:41:30</time>
84
+ <contents><target name="magecommunity"><dir name="VantageAnalytics"><dir name="Analytics"><dir name="Block"><dir name="Adminhtml"><file name="Analyticsbackend.php" hash="e305f2e7b0bfad28d84da570b27e7ab7"/><file name="Reset.php" hash="532930f826f191a37c21a9556936c3ce"/></dir></dir><dir name="Helper"><file name="Account.php" hash="270976db69e227162d35d1eb9a424d6b"/><file name="Data.php" hash="e2368bb846dc4e8090a31c2cd9b4dd64"/><file name="DateFormatter.php" hash="6e98a6efb5263f01a9d463faa1043d6e"/><dir name="Extension"><file name="Lister.php" hash="bcd42cde1226011937276f35b84043b0"/><file name="Pool.php" hash="198c0585d60c9c3cd0d161de43eed4cc"/></dir><file name="Log.php" hash="eeb557a144f1254d2f01970530eded32"/><file name="Pixel.php" hash="85e46cf2763f8cb73a4589f3fdb9f7f3"/><file name="Queue.php" hash="2d9b23e9b7d6f9847a444c2837ca1f2e"/><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="7056e3d3ae2d54dda82191d9e51832f2"/><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="c24900a7e9ecbfeb8c0d9509f3f8e44d"/><dir name="Export"><file name="Base.php" hash="0b1eb77e47eae52845cd0af4f34fc3e0"/><file name="Customer.php" hash="2bac395f9573e99740737348e7cdc0ac"/><file name="ExportPage.php" hash="fa2b012e861c1149630452816ae724a7"/><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="060b2bc4ae4a6d0cee00d1cf21556d83"/><file name="CatalogProduct.php" hash="c6e553ed6feb5173f0405e771a1203d3"/><file name="Customer.php" hash="0686ca80283a14d98358b8e7179c1269"/><file name="SalesOrder.php" hash="e406749cf6b8e74e341968f2707af82f"/><file name="SalesQuote.php" hash="0bae57dbbdf65f10b8dbb59314861cc9"/><file name="Tracking.php" hash="a8a95092168e0c917109bb4ce9c6d9a9"/></dir><file name="ParentProduct.php" hash="e15d56807edb680a7c880f88d3cc654c"/><file name="Pixel.php" hash="3ed3efdfa25231e1b57ce68cebde4c76"/><file name="ProductCategories.php" hash="d3265e984587bf8a5d5cc202bd464c12"/><file name="ProductImages.php" hash="608c0444218733661dc94c214887cadd"/><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="8f766b0d85187de732db44b26a210773"/><file name="BaseSales.php" hash="7e248d70f07b24e50a92999696833101"/><file name="BaseSalesItem.php" hash="aa281fe585defda3844baffeb6dfa9f9"/><file name="Customer.php" hash="481e0972f572340c96a59da8f582dba9"/><file name="Product.php" hash="1f1951f3be2bf6880a2bd708c97ea71d"/><file name="SalesOrder.php" hash="9fb3aa63042873fa0f2f6dedc108e4f1"/><file name="SalesOrderLineItem.php" hash="34a919367236cdd9351454ed47cb78b2"/><file name="SalesQuote.php" hash="c1712d7eb2b440b4d9c77d9dab96717d"/><file name="SalesQuoteLineItem.php" hash="27687eba35dab7fdadad438aeb63bf03"/><file name="Store.php" hash="cde2395de468981b3b964184dd214afb"/></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="722d0096e8211b4b57485b24efced031"/><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="e35411c7d970af0b5913807830ffe45e"/><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="24cefdde2b5bf68452f5c6301c1d5efc"/><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="9f22904ec0015355f6fbf2f287d5574d"/><file name="Webhook.php" hash="d34e01e88599529cf79b8cc27efad550"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Analytics"><file name="AnalyticsbackendController.php" hash="6d82eb561da08535ae761f84ae27179e"/><file name="ResetController.php" hash="c45b58f6aaba218d7d271288add8780a"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="cdfb6a37810355796f416784ce7f5584"/><file name="config.xml" hash="534207999bd00fe15b1f56fe50dedd67"/><file name="system.xml" hash="96810a47632dbee35df743615ced3c41"/></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"/><file name="mysql4-upgrade-0.2.0-1.0.7.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="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="analytics.xml" hash="3f5da1f21784db4d01111aa208914d27"/></dir><dir name="template"><dir name="analytics"><file name="analyticsbackend.phtml" hash="2eb2bc2ba45a071c17ad376553b46c9b"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="vantageanalytics_analytics.xml" hash="474402cfcca713298e88f50ff4fafe2c"/></dir><dir name="template"><dir name="vantageanalytics"><dir name="analytics"><file name="conversion.phtml" hash="c7442d4077cf1d3719b05f16ceda1c89"/><file name="visitor.phtml" hash="82c64d032b8b9dadff0c847c4538f6d9"/></dir></dir></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="css"><file name="register.css" hash="704cc1e177a9353715d065cb0b8841d4"/></dir></dir></dir><dir name="base"><dir name="default"><dir name="images"><file name="vantage-for-magento.png" hash="36604b9b28ca5d8a7ff0ead39323eae9"/></dir></dir></dir></dir></target></contents>
85
  <compatible/>
86
  <dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
87
  </package>