Version Notes
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.
Release Info
Developer | Brandon Kane |
Extension | VantageAnalytics_Analytics |
Version | 1.0.12 |
Comparing to | |
See all releases |
Code changes from version 1.0.11 to 1.0.12
- app/code/community/VantageAnalytics/Analytics/Helper/Account.php +4 -0
- app/code/community/VantageAnalytics/Analytics/Helper/Extension/Lister.php +2 -2
- app/code/community/VantageAnalytics/Analytics/Helper/Extension/Pool.php +1 -1
- app/code/community/VantageAnalytics/Analytics/Model/Debug.php +6 -1
- app/code/community/VantageAnalytics/Analytics/Model/Export/Base.php +26 -35
- app/code/community/VantageAnalytics/Analytics/Model/Observer/Base.php +16 -6
- app/code/community/VantageAnalytics/Analytics/Model/Observer/CatalogProduct.php +29 -2
- app/code/community/VantageAnalytics/Analytics/Model/ParentProduct.php +2 -2
- app/code/community/VantageAnalytics/Analytics/Model/ProductImages.php +4 -3
- app/code/community/VantageAnalytics/Analytics/Model/Transformer/Base.php +2 -1
- app/code/community/VantageAnalytics/Analytics/Model/Transformer/BaseSales.php +2 -2
- app/code/community/VantageAnalytics/Analytics/Model/Transformer/Customer.php +2 -2
- app/code/community/VantageAnalytics/Analytics/Model/Transformer/Product.php +8 -18
- app/code/community/VantageAnalytics/Analytics/Model/Transformer/SalesOrder.php +6 -6
- app/code/community/VantageAnalytics/Analytics/Model/Transformer/SalesOrderLineItem.php +2 -2
- app/code/community/VantageAnalytics/Analytics/Model/Transformer/SalesQuote.php +2 -2
- app/code/community/VantageAnalytics/Analytics/Model/Transformer/SalesQuoteLineItem.php +2 -2
- app/code/community/VantageAnalytics/Analytics/Model/Transformer/Store.php +1 -1
- app/code/community/VantageAnalytics/Analytics/Test/Model/Customer.php +4 -2
- app/code/community/VantageAnalytics/Analytics/Test/Model/LineItem.php +2 -1
- app/code/community/VantageAnalytics/Analytics/Test/Model/Order.php +2 -1
- app/code/community/VantageAnalytics/Analytics/Test/Model/Product.php +6 -3
- app/code/community/VantageAnalytics/Analytics/controllers/ExportController.php +62 -0
- app/code/community/VantageAnalytics/Analytics/sql/vantageanalytics_analytics_setup/mysql4-upgrade-0.2.0-1.0.7.php +0 -7
- package.xml +9 -5
@@ -88,4 +88,8 @@ class VantageAnalytics_Analytics_Helper_Account extends Mage_Core_Helper_Abstrac
|
|
88 |
Mage::getConfig()->reinit();
|
89 |
}
|
90 |
|
|
|
|
|
|
|
|
|
91 |
}
|
88 |
Mage::getConfig()->reinit();
|
89 |
}
|
90 |
|
91 |
+
public function getExtensionVersion()
|
92 |
+
{
|
93 |
+
return (string) Mage::getConfig()->getNode()->modules->VanageAnalytics_Analytics->version;
|
94 |
+
}
|
95 |
}
|
@@ -25,7 +25,7 @@ class VantageAnalytics_Analytics_Helper_Extension_Lister
|
|
25 |
{
|
26 |
$extensions = array();
|
27 |
|
28 |
-
foreach($this->pools() as $pool)
|
29 |
{
|
30 |
$extensions[] =
|
31 |
VantageAnalytics_Analytics_Helper_Extension_Pool::factory($pool)
|
@@ -35,4 +35,4 @@ class VantageAnalytics_Analytics_Helper_Extension_Lister
|
|
35 |
return call_user_func_array('array_merge', $extensions);
|
36 |
}
|
37 |
|
38 |
-
}
|
25 |
{
|
26 |
$extensions = array();
|
27 |
|
28 |
+
foreach ($this->pools() as $pool)
|
29 |
{
|
30 |
$extensions[] =
|
31 |
VantageAnalytics_Analytics_Helper_Extension_Pool::factory($pool)
|
35 |
return call_user_func_array('array_merge', $extensions);
|
36 |
}
|
37 |
|
38 |
+
}
|
@@ -16,7 +16,7 @@ class VantageAnalytics_Analytics_Helper_Extension_Pool
|
|
16 |
{
|
17 |
$final = array();
|
18 |
|
19 |
-
foreach($this->_files() as $file)
|
20 |
{
|
21 |
if(is_dir($file))
|
22 |
{
|
16 |
{
|
17 |
$final = array();
|
18 |
|
19 |
+
foreach ($this->_files() as $file)
|
20 |
{
|
21 |
if(is_dir($file))
|
22 |
{
|
@@ -64,7 +64,7 @@ class VantageAnalytics_Analytics_Model_Debug
|
|
64 |
|
65 |
$sites = Mage::app()->getWebsites(true);
|
66 |
|
67 |
-
foreach($sites as $website) {
|
68 |
$websites[$website->getId()] = $website->getCode();
|
69 |
}
|
70 |
|
@@ -82,6 +82,11 @@ class VantageAnalytics_Analytics_Model_Debug
|
|
82 |
return Mage::helper('analytics/account')->isVerified();
|
83 |
}
|
84 |
|
|
|
|
|
|
|
|
|
|
|
85 |
public function toVantage()
|
86 |
{
|
87 |
$methods = array_diff(
|
64 |
|
65 |
$sites = Mage::app()->getWebsites(true);
|
66 |
|
67 |
+
foreach ($sites as $website) {
|
68 |
$websites[$website->getId()] = $website->getCode();
|
69 |
}
|
70 |
|
82 |
return Mage::helper('analytics/account')->isVerified();
|
83 |
}
|
84 |
|
85 |
+
public function extensionVersion()
|
86 |
+
{
|
87 |
+
return Mage::helper('analytics/account')->getExtensionVersion();
|
88 |
+
}
|
89 |
+
|
90 |
public function toVantage()
|
91 |
{
|
92 |
$methods = array_diff(
|
@@ -34,8 +34,14 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
|
|
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');
|
@@ -77,9 +83,10 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
|
|
77 |
new VantageAnalytics_Analytics_Model_Api_RequestQueue());
|
78 |
}
|
79 |
|
80 |
-
protected function makeTransformer($entity)
|
81 |
{
|
82 |
-
|
|
|
83 |
}
|
84 |
|
85 |
protected function enqueue($data)
|
@@ -96,9 +103,9 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
|
|
96 |
}
|
97 |
}
|
98 |
|
99 |
-
protected function exportEntity($entity)
|
100 |
{
|
101 |
-
$transformer = $this->makeTransformer($entity);
|
102 |
$data = $transformer->toVantage();
|
103 |
$this->enqueue($data);
|
104 |
}
|
@@ -137,7 +144,6 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
|
|
137 |
$maxChildren = 1;
|
138 |
|
139 |
while ($currentPage <= $totalPages) {
|
140 |
-
|
141 |
$this->exportMetaData(
|
142 |
$website->getWebsiteId(),
|
143 |
strtolower($entityName),
|
@@ -149,35 +155,17 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
|
|
149 |
if ($endPage >= $totalPages) {
|
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 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
$this->exportPage($websiteId, $currentPage, $endPage);
|
177 |
-
|
178 |
-
$endPage = $endPage + $numberOfPages;
|
179 |
-
$currentPage = $currentPage + $numberOfPages;
|
180 |
}
|
|
|
|
|
|
|
181 |
}
|
182 |
}
|
183 |
|
@@ -194,12 +182,15 @@ abstract class VantageAnalytics_Analytics_Model_Export_Base
|
|
194 |
$websites = Mage::app()->getWebsites();
|
195 |
foreach ($websites as $website) {
|
196 |
if ($websiteId == $website->getWebsiteId()) {
|
|
|
|
|
|
|
197 |
$currentPage = $startPage;
|
198 |
while ($currentPage < $endPage) {
|
199 |
$collection = $this->createCollection($website, $currentPage);
|
200 |
|
201 |
foreach ($collection as $entity) {
|
202 |
-
$this->exportEntity($entity);
|
203 |
try {
|
204 |
$entity->clearInstance();
|
205 |
} catch (Exception $e) {
|
34 |
|
35 |
protected function getPathToPHP()
|
36 |
{
|
37 |
+
if (defined("PHP_BINARY") && file_exists(constant("PHP_BINARY"))) {
|
38 |
+
return constant("PHP_BINARY");
|
39 |
+
}
|
40 |
+
if (defined("PHP_PREFIX") && file_exists(constant("PHP_PREFIX") . "/bin/php")) {
|
41 |
+
return constant("PHP_PREFIX") . "/bin/php";
|
42 |
+
}
|
43 |
+
if (defined("PHP_BIN_DIR") && file_exists(constant("PHP_BIN_DIR") . "/php")) {
|
44 |
+
return constant("PHP_BIN_DIR") . "/php";
|
45 |
}
|
46 |
|
47 |
// mage> echo " " . getmypid() . " " . posix_getpid() . " " . exec('echo $PPID');
|
83 |
new VantageAnalytics_Analytics_Model_Api_RequestQueue());
|
84 |
}
|
85 |
|
86 |
+
protected function makeTransformer($entity, $store)
|
87 |
{
|
88 |
+
$transformClass = "VantageAnalytics_Analytics_Model_Transformer_" . $this->transformer;
|
89 |
+
return new $transformClass($entity, $store);
|
90 |
}
|
91 |
|
92 |
protected function enqueue($data)
|
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 |
}
|
144 |
$maxChildren = 1;
|
145 |
|
146 |
while ($currentPage <= $totalPages) {
|
|
|
147 |
$this->exportMetaData(
|
148 |
$website->getWebsiteId(),
|
149 |
strtolower($entityName),
|
155 |
if ($endPage >= $totalPages) {
|
156 |
$endPage = $totalPages + 1; // The page ranges are inclusive-exclusive so pick up the last page
|
157 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
|
159 |
+
$retVal = null;
|
160 |
+
$output = array();
|
161 |
+
$cmd ="${phpbin} {$where}/ExportPage.php {$entityName} {$websiteId} {$currentPage} {$endPage}";
|
162 |
+
exec($cmd, $output, $retVal);
|
163 |
+
if ($retVal !== 0) {
|
164 |
+
Mage::helper('analytics/log')->logError("Failure running (exit ${retVal}): {$cmd}");
|
|
|
|
|
|
|
|
|
165 |
}
|
166 |
+
|
167 |
+
$endPage = $endPage + $numberOfPages;
|
168 |
+
$currentPage = $currentPage + $numberOfPages;
|
169 |
}
|
170 |
}
|
171 |
|
182 |
$websites = Mage::app()->getWebsites();
|
183 |
foreach ($websites as $website) {
|
184 |
if ($websiteId == $website->getWebsiteId()) {
|
185 |
+
$store = $website->getDefaultGroup()->getDefaultStore();
|
186 |
+
Mage::app()->setCurrentStore($store->getStoreId());
|
187 |
+
|
188 |
$currentPage = $startPage;
|
189 |
while ($currentPage < $endPage) {
|
190 |
$collection = $this->createCollection($website, $currentPage);
|
191 |
|
192 |
foreach ($collection as $entity) {
|
193 |
+
$this->exportEntity($entity, $store);
|
194 |
try {
|
195 |
$entity->clearInstance();
|
196 |
} catch (Exception $e) {
|
@@ -10,12 +10,16 @@ abstract class VantageAnalytics_Analytics_Model_Observer_Base
|
|
10 |
// abstract protected function
|
11 |
abstract protected function getEntity($event);
|
12 |
|
13 |
-
protected function collectData($entity)
|
14 |
{
|
15 |
if(!Mage::helper('analytics/account')->isVerified()){
|
16 |
return array();
|
17 |
}
|
18 |
-
|
|
|
|
|
|
|
|
|
19 |
return $transform->toVantage();
|
20 |
}
|
21 |
|
@@ -25,14 +29,17 @@ abstract class VantageAnalytics_Analytics_Model_Observer_Base
|
|
25 |
Mage::getDesign()->getArea() == 'adminhtml');
|
26 |
}
|
27 |
|
28 |
-
public function performSave($observer)
|
29 |
{
|
30 |
if(!Mage::helper('analytics/account')->isVerified()){
|
31 |
return;
|
32 |
}
|
|
|
|
|
|
|
33 |
try {
|
34 |
$entity = $this->getEntity($observer->getEvent());
|
35 |
-
$data = $this->collectData($entity);
|
36 |
if (!empty($data)) {
|
37 |
$this->api->enqueue('create', $data);
|
38 |
}
|
@@ -41,14 +48,17 @@ abstract class VantageAnalytics_Analytics_Model_Observer_Base
|
|
41 |
}
|
42 |
}
|
43 |
|
44 |
-
public function performDelete($observer)
|
45 |
{
|
46 |
if(!Mage::helper('analytics/account')->isVerified()){
|
47 |
return;
|
48 |
}
|
|
|
|
|
|
|
49 |
try {
|
50 |
$entity = $this->getEntity($observer->getEvent());
|
51 |
-
$data = $this->collectData($entity);
|
52 |
if (!empty($data)) {
|
53 |
$this->api->enqueue('delete', $data);
|
54 |
}
|
10 |
// abstract protected function
|
11 |
abstract protected function getEntity($event);
|
12 |
|
13 |
+
protected function collectData($entity, $store)
|
14 |
{
|
15 |
if(!Mage::helper('analytics/account')->isVerified()){
|
16 |
return array();
|
17 |
}
|
18 |
+
if (is_null($store)) {
|
19 |
+
$store = Mage::app()->getStore();
|
20 |
+
}
|
21 |
+
$transformClass = "VantageAnalytics_Analytics_Model_Transformer_" . $this->transformer;
|
22 |
+
$transform = new $transformClass($entity, $store);
|
23 |
return $transform->toVantage();
|
24 |
}
|
25 |
|
29 |
Mage::getDesign()->getArea() == 'adminhtml');
|
30 |
}
|
31 |
|
32 |
+
public function performSave($observer, $store=null)
|
33 |
{
|
34 |
if(!Mage::helper('analytics/account')->isVerified()){
|
35 |
return;
|
36 |
}
|
37 |
+
if (is_null($store)) {
|
38 |
+
$store = Mage::app()->getStore();
|
39 |
+
}
|
40 |
try {
|
41 |
$entity = $this->getEntity($observer->getEvent());
|
42 |
+
$data = $this->collectData($entity, $store);
|
43 |
if (!empty($data)) {
|
44 |
$this->api->enqueue('create', $data);
|
45 |
}
|
48 |
}
|
49 |
}
|
50 |
|
51 |
+
public function performDelete($observer, $store=null)
|
52 |
{
|
53 |
if(!Mage::helper('analytics/account')->isVerified()){
|
54 |
return;
|
55 |
}
|
56 |
+
if (is_null($store)) {
|
57 |
+
$store = Mage::app()->getStore();
|
58 |
+
}
|
59 |
try {
|
60 |
$entity = $this->getEntity($observer->getEvent());
|
61 |
+
$data = $this->collectData($entity, $store);
|
62 |
if (!empty($data)) {
|
63 |
$this->api->enqueue('delete', $data);
|
64 |
}
|
@@ -11,13 +11,40 @@ class VantageAnalytics_Analytics_Model_Observer_CatalogProduct extends VantageAn
|
|
11 |
return $event->getProduct();
|
12 |
}
|
13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
public function catalogProductSaveAfter($observer)
|
15 |
{
|
16 |
-
$this->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
}
|
18 |
|
19 |
public function catalogProductDeleteAfter($observer)
|
20 |
{
|
21 |
-
$this->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
}
|
23 |
}
|
11 |
return $event->getProduct();
|
12 |
}
|
13 |
|
14 |
+
protected function findStoreByWebsiteId($websiteId)
|
15 |
+
{
|
16 |
+
foreach (Mage::app()->getWebsites() as $website) {
|
17 |
+
if ($website->getId() == $websiteId) {
|
18 |
+
return $website->getDefaultGroup()->getDefaultStore();
|
19 |
+
}
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
public function catalogProductSaveAfter($observer)
|
24 |
{
|
25 |
+
$product = $this->getEntity($observer->getEvent());
|
26 |
+
$storeId = Mage::app()->getStore()->getId();
|
27 |
+
|
28 |
+
foreach ($product->getWebsiteIds() as $websiteId) {
|
29 |
+
$store = $this->findStoreByWebsiteId($websiteId);
|
30 |
+
Mage::app()->setCurrentStore($store->getStoreId());
|
31 |
+
$this->performSave($observer, $store);
|
32 |
+
}
|
33 |
+
|
34 |
+
Mage::app()->setCurrentStore($storeId);
|
35 |
}
|
36 |
|
37 |
public function catalogProductDeleteAfter($observer)
|
38 |
{
|
39 |
+
$product = $this->getEntity($observer->getEvent());
|
40 |
+
$storeId = Mage::app()->getStore()->getId();
|
41 |
+
|
42 |
+
foreach ($product->getWebsiteIds() as $websiteId) {
|
43 |
+
$store = $this->findStoreByWebsiteId($websiteId);
|
44 |
+
Mage::app()->setCurrentStore($store->getStoreId());
|
45 |
+
$this->performDelete($observer, $store);
|
46 |
+
}
|
47 |
+
|
48 |
+
Mage::app()->setCurrentStore($storeId);
|
49 |
}
|
50 |
}
|
@@ -33,7 +33,7 @@ class VantageAnalytics_Analytics_Model_ParentProduct
|
|
33 |
// An example of a grouped product "Buy a phone and a car charger"
|
34 |
$parents = $this->_parents();
|
35 |
|
36 |
-
foreach($parents as $parent)
|
37 |
{
|
38 |
if ($this->_configurableProduct($parent))
|
39 |
{
|
@@ -50,7 +50,7 @@ class VantageAnalytics_Analytics_Model_ParentProduct
|
|
50 |
|
51 |
$parentIds = $this->_parentIds();
|
52 |
|
53 |
-
foreach($parentIds as $parentId) {
|
54 |
$parents[] = Mage::getModel('catalog/product')->load($parentId);
|
55 |
}
|
56 |
|
33 |
// An example of a grouped product "Buy a phone and a car charger"
|
34 |
$parents = $this->_parents();
|
35 |
|
36 |
+
foreach ($parents as $parent)
|
37 |
{
|
38 |
if ($this->_configurableProduct($parent))
|
39 |
{
|
50 |
|
51 |
$parentIds = $this->_parentIds();
|
52 |
|
53 |
+
foreach ($parentIds as $parentId) {
|
54 |
$parents[] = Mage::getModel('catalog/product')->load($parentId);
|
55 |
}
|
56 |
|
@@ -1,15 +1,16 @@
|
|
1 |
<?php
|
2 |
class VantageAnalytics_Analytics_Model_ProductImages
|
3 |
{
|
4 |
-
public static function factory($product)
|
5 |
{
|
6 |
-
return new self($product);
|
7 |
}
|
8 |
|
9 |
-
public function __construct($product)
|
10 |
{
|
11 |
$this->product = $product;
|
12 |
$this->config = $product->getMediaConfig();
|
|
|
13 |
}
|
14 |
|
15 |
public function urls()
|
1 |
<?php
|
2 |
class VantageAnalytics_Analytics_Model_ProductImages
|
3 |
{
|
4 |
+
public static function factory($product, $store)
|
5 |
{
|
6 |
+
return new self($product, $store);
|
7 |
}
|
8 |
|
9 |
+
public function __construct($product, $store)
|
10 |
{
|
11 |
$this->product = $product;
|
12 |
$this->config = $product->getMediaConfig();
|
13 |
+
$this->store = $store;
|
14 |
}
|
15 |
|
16 |
public function urls()
|
@@ -7,10 +7,11 @@ abstract class VantageAnalytics_Analytics_Model_Transformer_Base
|
|
7 |
* 'updated_at' is already in UTC, and does not
|
8 |
* require conversion. Neither are formatted correctly.
|
9 |
*/
|
10 |
-
public function __construct($magentoEntity)
|
11 |
{
|
12 |
$this->entity = $magentoEntity;
|
13 |
$this->data = $this->entity->getData();
|
|
|
14 |
}
|
15 |
|
16 |
public function sourceCreatedAt()
|
7 |
* 'updated_at' is already in UTC, and does not
|
8 |
* require conversion. Neither are formatted correctly.
|
9 |
*/
|
10 |
+
public function __construct($magentoEntity, $magentoStore)
|
11 |
{
|
12 |
$this->entity = $magentoEntity;
|
13 |
$this->data = $this->entity->getData();
|
14 |
+
$this->magentoStore = $magentoStore;
|
15 |
}
|
16 |
|
17 |
public function sourceCreatedAt()
|
@@ -2,9 +2,9 @@
|
|
2 |
|
3 |
abstract class VantageAnalytics_Analytics_Model_Transformer_BaseSales extends VantageAnalytics_Analytics_Model_Transformer_Base
|
4 |
{
|
5 |
-
public function __construct($magentoSalesEntity)
|
6 |
{
|
7 |
-
parent::__construct($magentoSalesEntity);
|
8 |
|
9 |
$this->billingAddress = VantageAnalytics_Analytics_Model_Transformer_Address::factory(
|
10 |
$this->entity->getBillingAddress(), 'billing');
|
2 |
|
3 |
abstract class VantageAnalytics_Analytics_Model_Transformer_BaseSales extends VantageAnalytics_Analytics_Model_Transformer_Base
|
4 |
{
|
5 |
+
public function __construct($magentoSalesEntity, $magentoStore)
|
6 |
{
|
7 |
+
parent::__construct($magentoSalesEntity, $magentoStore);
|
8 |
|
9 |
$this->billingAddress = VantageAnalytics_Analytics_Model_Transformer_Address::factory(
|
10 |
$this->entity->getBillingAddress(), 'billing');
|
@@ -3,9 +3,9 @@
|
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_Customer extends VantageAnalytics_Analytics_Model_Transformer_Base
|
4 |
{
|
5 |
|
6 |
-
public static function factory($magentoCustomer)
|
7 |
{
|
8 |
-
return new self($magentoCustomer);
|
9 |
}
|
10 |
|
11 |
public function storeIds()
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_Customer extends VantageAnalytics_Analytics_Model_Transformer_Base
|
4 |
{
|
5 |
|
6 |
+
public static function factory($magentoCustomer, $magentoStore)
|
7 |
{
|
8 |
+
return new self($magentoCustomer, $magentoStore);
|
9 |
}
|
10 |
|
11 |
public function storeIds()
|
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
class VantageAnalytics_Analytics_Model_Transformer_Product extends VantageAnalytics_Analytics_Model_Transformer_Base
|
3 |
{
|
4 |
-
public static function factory($magentoProduct)
|
5 |
{
|
6 |
-
return new VantageAnalytics_Analytics_Model_Transformer_Product($magentoProduct);
|
7 |
}
|
8 |
|
9 |
public function entityType()
|
@@ -13,7 +13,7 @@ class VantageAnalytics_Analytics_Model_Transformer_Product extends VantageAnalyt
|
|
13 |
|
14 |
public function storeIds()
|
15 |
{
|
16 |
-
return $this->
|
17 |
}
|
18 |
|
19 |
public function externalIdentifier()
|
@@ -76,25 +76,15 @@ class VantageAnalytics_Analytics_Model_Transformer_Product extends VantageAnalyt
|
|
76 |
|
77 |
public function productUrl()
|
78 |
{
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
$storeId = $websites[1]->getDefaultStore()->getId();
|
84 |
-
$product = Mage::helper('catalog/product')->getProduct(
|
85 |
-
$this->externalIdentifier(),
|
86 |
-
$storeId
|
87 |
-
);
|
88 |
-
|
89 |
-
return empty($product) ? NULL: $product->getProductUrl();
|
90 |
-
}
|
91 |
-
|
92 |
-
return $this->entity->getProductUrl();
|
93 |
}
|
94 |
|
95 |
public function imageUrls()
|
96 |
{
|
97 |
-
$images = VantageAnalytics_Analytics_Model_ProductImages::factory($this->entity);
|
98 |
return $images->urls();
|
99 |
}
|
100 |
|
1 |
<?php
|
2 |
class VantageAnalytics_Analytics_Model_Transformer_Product extends VantageAnalytics_Analytics_Model_Transformer_Base
|
3 |
{
|
4 |
+
public static function factory($magentoProduct, $magentoStore)
|
5 |
{
|
6 |
+
return new VantageAnalytics_Analytics_Model_Transformer_Product($magentoProduct, $magentoStore);
|
7 |
}
|
8 |
|
9 |
public function entityType()
|
13 |
|
14 |
public function storeIds()
|
15 |
{
|
16 |
+
return array($this->magentoStore->getWebsiteId());
|
17 |
}
|
18 |
|
19 |
public function externalIdentifier()
|
76 |
|
77 |
public function productUrl()
|
78 |
{
|
79 |
+
$url = Mage::helper('catalog/product')->getProductUrl($this->entity->getId());
|
80 |
+
$pos = strpos($url, '?');
|
81 |
+
$url = ($pos > 0) ? substr($url, 0, $pos) : $url;
|
82 |
+
return $url;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
}
|
84 |
|
85 |
public function imageUrls()
|
86 |
{
|
87 |
+
$images = VantageAnalytics_Analytics_Model_ProductImages::factory($this->entity, $this->magentoStore);
|
88 |
return $images->urls();
|
89 |
}
|
90 |
|
@@ -2,14 +2,14 @@
|
|
2 |
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_SalesOrder extends VantageAnalytics_Analytics_Model_Transformer_BaseSales
|
4 |
{
|
5 |
-
public static function factory($magentoSalesEntity)
|
6 |
{
|
7 |
-
return new self($magentoSalesEntity);
|
8 |
}
|
9 |
|
10 |
-
public function __construct($magentoSalesEntity)
|
11 |
{
|
12 |
-
parent::__construct($magentoSalesEntity);
|
13 |
|
14 |
$this->statuses = VantageAnalytics_Analytics_Helper_Statuses::factory($magentoSalesEntity);
|
15 |
}
|
@@ -80,7 +80,7 @@ class VantageAnalytics_Analytics_Model_Transformer_SalesOrder extends VantageAna
|
|
80 |
// Total item is only avaialable on order
|
81 |
$total = 0;
|
82 |
|
83 |
-
foreach($this->_lines() as $item) {
|
84 |
$total += $item->getQtyOrdered();
|
85 |
}
|
86 |
|
@@ -100,7 +100,7 @@ class VantageAnalytics_Analytics_Model_Transformer_SalesOrder extends VantageAna
|
|
100 |
|
101 |
protected function buildLine($item)
|
102 |
{
|
103 |
-
return VantageAnalytics_Analytics_Model_Transformer_SalesOrderLineItem::factory($item)
|
104 |
->toVantage();
|
105 |
}
|
106 |
}
|
2 |
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_SalesOrder extends VantageAnalytics_Analytics_Model_Transformer_BaseSales
|
4 |
{
|
5 |
+
public static function factory($magentoSalesEntity, $magentoStore)
|
6 |
{
|
7 |
+
return new self($magentoSalesEntity, $magentoStore);
|
8 |
}
|
9 |
|
10 |
+
public function __construct($magentoSalesEntity, $magentoStore)
|
11 |
{
|
12 |
+
parent::__construct($magentoSalesEntity, $magentoStore);
|
13 |
|
14 |
$this->statuses = VantageAnalytics_Analytics_Helper_Statuses::factory($magentoSalesEntity);
|
15 |
}
|
80 |
// Total item is only avaialable on order
|
81 |
$total = 0;
|
82 |
|
83 |
+
foreach ($this->_lines() as $item) {
|
84 |
$total += $item->getQtyOrdered();
|
85 |
}
|
86 |
|
100 |
|
101 |
protected function buildLine($item)
|
102 |
{
|
103 |
+
return VantageAnalytics_Analytics_Model_Transformer_SalesOrderLineItem::factory($item, $this->magentoStore)
|
104 |
->toVantage();
|
105 |
}
|
106 |
}
|
@@ -2,9 +2,9 @@
|
|
2 |
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_SalesOrderLineItem extends VantageAnalytics_Analytics_Model_Transformer_BaseSalesItem
|
4 |
{
|
5 |
-
public static function factory($magentoSalesOrderLineItem)
|
6 |
{
|
7 |
-
return new self($magentoSalesOrderLineItem);
|
8 |
}
|
9 |
|
10 |
public function storeIds()
|
2 |
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_SalesOrderLineItem extends VantageAnalytics_Analytics_Model_Transformer_BaseSalesItem
|
4 |
{
|
5 |
+
public static function factory($magentoSalesOrderLineItem, $magentoStore)
|
6 |
{
|
7 |
+
return new self($magentoSalesOrderLineItem, $magentoStore);
|
8 |
}
|
9 |
|
10 |
public function storeIds()
|
@@ -2,9 +2,9 @@
|
|
2 |
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_SalesQuote extends VantageAnalytics_Analytics_Model_Transformer_BaseSales
|
4 |
{
|
5 |
-
public static function factory($magentoSalesEntity)
|
6 |
{
|
7 |
-
return new self($magentoSalesEntity);
|
8 |
}
|
9 |
|
10 |
public function entityType()
|
2 |
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_SalesQuote extends VantageAnalytics_Analytics_Model_Transformer_BaseSales
|
4 |
{
|
5 |
+
public static function factory($magentoSalesEntity, $magentoStore)
|
6 |
{
|
7 |
+
return new self($magentoSalesEntity, $magentoStore);
|
8 |
}
|
9 |
|
10 |
public function entityType()
|
@@ -2,9 +2,9 @@
|
|
2 |
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_SalesQuoteLineItem extends VantageAnalytics_Analytics_Model_Transformer_BaseSalesItem
|
4 |
{
|
5 |
-
public static function factory($magentoSalesQuoteLineItem)
|
6 |
{
|
7 |
-
return new self($magentoSalesQuoteLineItem);
|
8 |
}
|
9 |
|
10 |
public function externalParentIdentifier()
|
2 |
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_SalesQuoteLineItem extends VantageAnalytics_Analytics_Model_Transformer_BaseSalesItem
|
4 |
{
|
5 |
+
public static function factory($magentoSalesQuoteLineItem, $magentoStore)
|
6 |
{
|
7 |
+
return new self($magentoSalesQuoteLineItem, $magentoStore);
|
8 |
}
|
9 |
|
10 |
public function externalParentIdentifier()
|
@@ -3,7 +3,7 @@
|
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_Store extends VantageAnalytics_Analytics_Model_Transformer_Base
|
4 |
{
|
5 |
|
6 |
-
public function __construct($magentoWebsite)
|
7 |
{
|
8 |
$this->website = $magentoWebsite;
|
9 |
$this->entity = $magentoWebsite->getDefaultStore();
|
3 |
class VantageAnalytics_Analytics_Model_Transformer_Store extends VantageAnalytics_Analytics_Model_Transformer_Base
|
4 |
{
|
5 |
|
6 |
+
public function __construct($magentoWebsite, $magentoStore)
|
7 |
{
|
8 |
$this->website = $magentoWebsite;
|
9 |
$this->entity = $magentoWebsite->getDefaultStore();
|
@@ -10,9 +10,10 @@ class VantageAnalytics_Analytics_Test_Model_Customer extends VantageAnalytics_An
|
|
10 |
public function simpleCustomer()
|
11 |
{
|
12 |
$customer = Mage::getModel('customer/customer')->load(1);
|
|
|
13 |
|
14 |
$transformer =
|
15 |
-
VantageAnalytics_Analytics_Model_Transformer_Customer::factory($customer);
|
16 |
|
17 |
$this->assertEquals("example@example.com", $transformer->email());
|
18 |
$this->assertEquals("john", $transformer->firstName());
|
@@ -28,9 +29,10 @@ class VantageAnalytics_Analytics_Test_Model_Customer extends VantageAnalytics_An
|
|
28 |
public function vantageCustomerTest()
|
29 |
{
|
30 |
$customer = Mage::getModel('customer/customer')->load(1);
|
|
|
31 |
|
32 |
$transformer =
|
33 |
-
VantageAnalytics_Analytics_Model_Transformer_Customer::factory($customer);
|
34 |
|
35 |
$data = $transformer->toVantage();
|
36 |
|
10 |
public function simpleCustomer()
|
11 |
{
|
12 |
$customer = Mage::getModel('customer/customer')->load(1);
|
13 |
+
$store = Mage::app()->getStore();
|
14 |
|
15 |
$transformer =
|
16 |
+
VantageAnalytics_Analytics_Model_Transformer_Customer::factory($customer, $store);
|
17 |
|
18 |
$this->assertEquals("example@example.com", $transformer->email());
|
19 |
$this->assertEquals("john", $transformer->firstName());
|
29 |
public function vantageCustomerTest()
|
30 |
{
|
31 |
$customer = Mage::getModel('customer/customer')->load(1);
|
32 |
+
$store = Mage::app()->getStore();
|
33 |
|
34 |
$transformer =
|
35 |
+
VantageAnalytics_Analytics_Model_Transformer_Customer::factory($customer, $store);
|
36 |
|
37 |
$data = $transformer->toVantage();
|
38 |
|
@@ -19,9 +19,10 @@ class VantageAnalytics_Analytics_Test_Model_LineItem extends VantageAnalytics_An
|
|
19 |
{
|
20 |
$order = Mage::getModel('sales/order')->load(1);
|
21 |
$items = $order->getAllItems();
|
|
|
22 |
|
23 |
$transformer =
|
24 |
-
VantageAnalytics_Analytics_Model_Transformer_SalesOrderLineItem::factory($items[0]);
|
25 |
|
26 |
$this->assertEquals("book", $transformer->sku());
|
27 |
$this->assertEquals("1", $transformer->externalParentIdentifier());
|
19 |
{
|
20 |
$order = Mage::getModel('sales/order')->load(1);
|
21 |
$items = $order->getAllItems();
|
22 |
+
$store = Mage::app()->getStore();
|
23 |
|
24 |
$transformer =
|
25 |
+
VantageAnalytics_Analytics_Model_Transformer_SalesOrderLineItem::factory($items[0], $store);
|
26 |
|
27 |
$this->assertEquals("book", $transformer->sku());
|
28 |
$this->assertEquals("1", $transformer->externalParentIdentifier());
|
@@ -8,7 +8,8 @@ class VantageAnalytics_Analytics_Test_Model_Order extends VantageAnalytics_Analy
|
|
8 |
if ($state) {
|
9 |
$order->setState($state);
|
10 |
}
|
11 |
-
$
|
|
|
12 |
return $transform->toVantage();
|
13 |
}
|
14 |
|
8 |
if ($state) {
|
9 |
$order->setState($state);
|
10 |
}
|
11 |
+
$store = Mage::app()->getStore(1);
|
12 |
+
$transform = VantageAnalytics_Analytics_Model_Transformer_SalesOrder::factory($order, $store);
|
13 |
return $transform->toVantage();
|
14 |
}
|
15 |
|
@@ -12,9 +12,10 @@ class VantageAnalytics_Analytics_Test_Model_Product extends VantageAnalytics_Ana
|
|
12 |
$price = 70.50;
|
13 |
$product = Mage::getModel('catalog/product')->load(1);
|
14 |
$product->setPrice($price);
|
|
|
15 |
|
16 |
$transformer =
|
17 |
-
VantageAnalytics_Analytics_Model_Transformer_Product::factory($product);
|
18 |
|
19 |
$this->assertEquals("book", $transformer->sku());
|
20 |
$this->assertEquals('2012-08-17T18:00:41+00:00', $transformer->sourceCreatedAt());
|
@@ -29,9 +30,10 @@ class VantageAnalytics_Analytics_Test_Model_Product extends VantageAnalytics_Ana
|
|
29 |
public function toVantageTest()
|
30 |
{
|
31 |
$product = Mage::getModel('catalog/product')->load(1);
|
|
|
32 |
|
33 |
$transformer =
|
34 |
-
VantageAnalytics_Analytics_Model_Transformer_Product::factory($product);
|
35 |
|
36 |
$data = $transformer->toVantage();
|
37 |
$this->assertEquals('product', $data['entity_type']);
|
@@ -45,8 +47,9 @@ class VantageAnalytics_Analytics_Test_Model_Product extends VantageAnalytics_Ana
|
|
45 |
public function parentProduct()
|
46 |
{
|
47 |
$product = Mage::getModel('catalog/product')->load(410955);
|
|
|
48 |
|
49 |
-
$parentId = VantageAnalytics_Analytics_Model_ParentProduct::factory($product)->id();
|
50 |
|
51 |
$this->assertEquals(336835, $parentId);
|
52 |
}
|
12 |
$price = 70.50;
|
13 |
$product = Mage::getModel('catalog/product')->load(1);
|
14 |
$product->setPrice($price);
|
15 |
+
$store = Mage::app()->getStore();
|
16 |
|
17 |
$transformer =
|
18 |
+
VantageAnalytics_Analytics_Model_Transformer_Product::factory($product, $store);
|
19 |
|
20 |
$this->assertEquals("book", $transformer->sku());
|
21 |
$this->assertEquals('2012-08-17T18:00:41+00:00', $transformer->sourceCreatedAt());
|
30 |
public function toVantageTest()
|
31 |
{
|
32 |
$product = Mage::getModel('catalog/product')->load(1);
|
33 |
+
$store = Mage::app()->getStore();
|
34 |
|
35 |
$transformer =
|
36 |
+
VantageAnalytics_Analytics_Model_Transformer_Product::factory($product, $store);
|
37 |
|
38 |
$data = $transformer->toVantage();
|
39 |
$this->assertEquals('product', $data['entity_type']);
|
47 |
public function parentProduct()
|
48 |
{
|
49 |
$product = Mage::getModel('catalog/product')->load(410955);
|
50 |
+
$store = Mage::app()->getStore();
|
51 |
|
52 |
+
$parentId = VantageAnalytics_Analytics_Model_ParentProduct::factory($product, $store)->id();
|
53 |
|
54 |
$this->assertEquals(336835, $parentId);
|
55 |
}
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if (!function_exists('hash_equals')) {
|
4 |
+
function hash_equals($safe, $user)
|
5 |
+
{
|
6 |
+
$safeLen = strlen($safe);
|
7 |
+
$userLen = strlen($user);
|
8 |
+
|
9 |
+
if ($userLen != $safeLen) {
|
10 |
+
return false;
|
11 |
+
}
|
12 |
+
|
13 |
+
$result = 0;
|
14 |
+
|
15 |
+
for ($i = 0; $i < $userLen; $i++) {
|
16 |
+
$result |= (ord($safe[$i]) ^ ord($user[$i]));
|
17 |
+
}
|
18 |
+
|
19 |
+
// They are only identical strings if $result is exactly 0...
|
20 |
+
return $result === 0;
|
21 |
+
}
|
22 |
+
}
|
23 |
+
|
24 |
+
|
25 |
+
class VantageAnalytics_Analytics_ExportController extends Mage_Core_Controller_Front_Action
|
26 |
+
{
|
27 |
+
public function pageAction()
|
28 |
+
{
|
29 |
+
// verify secret
|
30 |
+
$secret = $this->getRequest()->getParam('secret');
|
31 |
+
if (!hash_equals($secret, 'banana'))
|
32 |
+
{
|
33 |
+
Mage::throwException("You are not authorized to view this page.");
|
34 |
+
}
|
35 |
+
|
36 |
+
$currentPage = min((int) $this->getRequest()->getParam('page', 1), 0);
|
37 |
+
$pageSize = max((int) $this->getRequest()->getParam('page_size', 50), 250);
|
38 |
+
$entityName = $this->getRequest()->getParam('model');
|
39 |
+
$store = $this->getRequest()->getParam('store');
|
40 |
+
|
41 |
+
|
42 |
+
if (!in_array($entityName, array('Store', 'Product', 'Customer', 'Order'))) {
|
43 |
+
Mage::throwException("You provided an invalid model.");
|
44 |
+
}
|
45 |
+
|
46 |
+
$exportClass = "VantageAnalytics_Analytics_Model_Export_" . $entityName;
|
47 |
+
$exporter = new $exportClass;
|
48 |
+
// $exporter->exportPage($websiteId, $startPage, $endPage);
|
49 |
+
|
50 |
+
echo json_encode(
|
51 |
+
array(
|
52 |
+
"model" => $model,
|
53 |
+
"currentPage" => $currentPage,
|
54 |
+
"totalPages" => 50,
|
55 |
+
"pageSize" => $pageSize,
|
56 |
+
"freeMemory" => 0,
|
57 |
+
"results" => array()
|
58 |
+
)
|
59 |
+
);
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
@@ -1,7 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
$installer = $this;
|
4 |
-
|
5 |
-
$installer->startSetup();
|
6 |
-
$installer->resetConfig();
|
7 |
-
$installer->endSetup();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>VantageAnalytics_Analytics</name>
|
4 |
-
<version>1.0.
|
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!
|
26 |

|
27 |
For store owners with multiple locations or multiple ecommerce stores, we offer a multi-store management panel to monitor each store’s performance.</description>
|
28 |
-
<notes>1.0.
|
|
|
|
|
|
|
|
|
29 |
-------
|
30 |
- Send Dynamic Product Ad events
|
31 |

|
@@ -87,9 +91,9 @@ Improved robustness of historical data export process and report historical data
|
|
87 |

|
88 |
First stable release.</notes>
|
89 |
<authors><author><name>Brandon Kane</name><user>brandon</user><email>brandon@vantageanalytics.com</email></author></authors>
|
90 |
-
<date>2016-05
|
91 |
-
<time>
|
92 |
-
<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="
|
93 |
<compatible/>
|
94 |
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
|
95 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>VantageAnalytics_Analytics</name>
|
4 |
+
<version>1.0.12</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!
|
26 |

|
27 |
For store owners with multiple locations or multiple ecommerce stores, we offer a multi-store management panel to monitor each store’s performance.</description>
|
28 |
+
<notes>1.0.12
|
29 |
+
-------
|
30 |
+
- Bug fix: set store domain in product URL and images
|
31 |
+

|
32 |
+
1.0.11
|
33 |
-------
|
34 |
- Send Dynamic Product Ad events
|
35 |

|
91 |

|
92 |
First stable release.</notes>
|
93 |
<authors><author><name>Brandon Kane</name><user>brandon</user><email>brandon@vantageanalytics.com</email></author></authors>
|
94 |
+
<date>2016-08-05</date>
|
95 |
+
<time>18:32:15</time>
|
96 |
+
<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="f3762de7b336e472bcf55536a3e3df94"/><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="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="37077022a46e1727724d4e4d8ae1f9be"/><dir name="Export"><file name="Base.php" hash="5f5df5d1e4b51dfbda43f0d9fd1859d4"/><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="38f76c0bac7817ac8756207fbea0c3a5"/><file name="CatalogProduct.php" hash="4c964ab1dd6850b124442e1a9f7506e7"/><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="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="83b5440d05aceb411610c650dcd39e14"/><file name="Store.php" hash="9c06558247a16b7a9c6511b3398b1f28"/></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="AnalyticsbackendController.php" hash="6d82eb561da08535ae761f84ae27179e"/><file name="ResetController.php" hash="c45b58f6aaba218d7d271288add8780a"/></dir></dir><file name="ExportController.php" hash="a40be0701a80b77d7c34913bd056a220"/></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"/></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="c852aff83b27479807f002adb350778f"/></dir><dir name="template"><dir name="vantageanalytics"><dir name="analytics"><file name="conversion.phtml" hash="e9e33218e9be8617cc5ef7c5fe885dee"/><file name="visitor.phtml" hash="35ea63a52433775d4e32dc96b5cdee3f"/><file name="productview.phtml" hash="f2148d125dae6e762c09418291d40328"/></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>
|
97 |
<compatible/>
|
98 |
<dependencies><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
|
99 |
</package>
|