minewhat - Version 1.0.19

Version Notes

MineWhat magento plugin

Download this release

Release Info

Developer MineWhat Inc.
Extension minewhat
Version 1.0.19
Comparing to
See all releases


Code changes from version 1.0.18 to 1.0.19

app/code/community/MineWhat/Insights/controllers/ApiController.php CHANGED
@@ -19,7 +19,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
19
  if(!$API_KEY && strlen($API_KEY) === 0) {
20
  // Api access disabled
21
  $this->getResponse()
22
- ->setBody(json_encode(array('status' => 'error', 'message' => 'API access disabled')))
23
  ->setHttpResponseCode(403)
24
  ->setHeader('Content-type', 'application/json', true);
25
  return false;
@@ -36,7 +36,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
36
  Mage::log('Unable to extract authorization header from request', null, 'minewhat.log');
37
  // Internal server error
38
  $this->getResponse()
39
- ->setBody(json_encode(array('status' => 'error', 'message' => 'Internal server error, Authorization header not found')))
40
  ->setHttpResponseCode(500)
41
  ->setHeader('Content-type', 'application/json', true);
42
  return false;
@@ -45,7 +45,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
45
  if(trim($authHeader) !== trim($API_KEY)) {
46
  // Api access denied
47
  $this->getResponse()
48
- ->setBody(json_encode(array('status' => 'error', 'message' => 'Api access denied')))
49
  ->setHttpResponseCode(401)
50
  ->setHeader('Content-type', 'application/json', true);
51
  return false;
@@ -109,6 +109,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
109
  }
110
  }
111
 
 
112
  $this->getResponse()
113
  ->setBody(json_encode($responseObj))
114
  ->setHttpResponseCode(200)
@@ -140,7 +141,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
140
  }
141
 
142
  $this->getResponse()
143
- ->setBody(json_encode(array('orders' => $orders, 'fromDate' => $fromDate, 'toDate' => $toDate)))
144
  ->setHttpResponseCode(200)
145
  ->setHeader('Content-type', 'application/json', true);
146
 
@@ -148,7 +149,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
148
 
149
  } catch(Exception $e) {
150
  $this->getResponse()
151
- ->setBody(json_encode(array('status' => 'error', 'message' => 'Internal server error')))
152
  ->setHttpResponseCode(500)
153
  ->setHeader('Content-type', 'application/json', true);
154
  }
@@ -181,6 +182,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
181
 
182
  $extras = $this->getRequest()->getParam('extras');
183
  $debug = $this->getRequest()->getParam('debug', 'false') === 'true';
 
184
  if($extras && strlen($extras)) {
185
  $extras = explode(',', $extras);
186
  for($i = 0;$i < sizeof($extras);$i++) {
@@ -195,7 +197,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
195
 
196
  $product = Mage::getModel('catalog/product')->load($productId);
197
 
198
- $product = $this->getFormatedProduct($product, $extras, $debug);
199
  if($product !== null) {
200
  $products[] = $product;
201
  }
@@ -212,7 +214,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
212
  ;
213
 
214
  foreach($productsCollection as $product) {
215
- $product = $this->getFormatedProduct($product, $extras, $debug);
216
  if($product !== null) {
217
  $products[] = $product;
218
  }
@@ -223,14 +225,91 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
223
  $currency = Mage::app()->getStore()->getCurrentCurrencyCode();
224
 
225
  $this->getResponse()
226
- ->setBody(json_encode(array('products' => $products, 'currency' => $currency)))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  ->setHttpResponseCode(200)
228
  ->setHeader('Content-type', 'application/json', true);
229
 
230
 
231
  } catch(Exception $e) {
232
  $this->getResponse()
233
- ->setBody(json_encode(array('status' => 'error', 'message' => 'Internal server error')))
234
  ->setHttpResponseCode(500)
235
  ->setHeader('Content-type', 'application/json', true);
236
  }
@@ -255,7 +334,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
255
  if(!$productId || strlen($productId) <= 0) {
256
 
257
  $this->getResponse()
258
- ->setBody(json_encode(array('status' => 'error', 'message' => 'product id required')))
259
  ->setHttpResponseCode(500)
260
  ->setHeader('Content-type', 'application/json', true);
261
 
@@ -266,7 +345,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
266
  $product = Mage::getModel('catalog/product')->loadByAttribute('sku', $productId);
267
  if($product == null) {
268
  $this->getResponse()
269
- ->setBody(json_encode(array('status' => 'error', 'message' => 'invalid sku')))
270
  ->setHttpResponseCode(500)
271
  ->setHeader('Content-type', 'application/json', true);
272
  return $this;
@@ -280,7 +359,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
280
  $stock = $stockObj->getQty();
281
 
282
  $this->getResponse()
283
- ->setBody(json_encode(array('id' => $productId, 'stock' => $stock)))
284
  ->setHttpResponseCode(200)
285
  ->setHeader('Content-type', 'application/json', true);
286
 
@@ -288,7 +367,7 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
288
 
289
  } catch(Exception $e) {
290
  $this->getResponse()
291
- ->setBody(json_encode(array('status' => 'error', 'message' => 'Internal server error')))
292
  ->setHttpResponseCode(500)
293
  ->setHeader('Content-type', 'application/json', true);
294
  }
@@ -298,12 +377,12 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
298
  }
299
 
300
 
301
- private function getFormatedProduct($product, $extras, $debug) {
302
 
303
- $formatedProduct = null;
304
 
305
  try {
306
- $formatedProduct = array(
307
  'id' => $product->getId(),
308
  'sku' => $product->getSku(),
309
  'name' => $product->getName(),
@@ -316,44 +395,76 @@ class MineWhat_Insights_ApiController extends Mage_Core_Controller_Front_Action
316
  'url' => $product->getProductUrl(),
317
  'info' => $product->getShortDescription(),
318
  'status' => $product->getStatus(),
319
- 'type' => $product->getTypeId(),
320
- 'created_at' => $product->getCreatedAt(),
321
- 'updated_at' => $product->getUpdatedAt()
322
  );
323
- if(!$formatedProduct['manufacturer'] || strlen($formatedProduct['manufacturer']) === 0) {
324
  $product = Mage::getModel('catalog/product')->load($product->getId());
325
- $formatedProduct['manufacturer'] = $product->getAttributeText('manufacturer');
326
  }
327
 
328
- if($formatedProduct['type'] == "configurable") {
329
  // get associated product ids
330
- $associatedProducts = Mage::getModel('catalog/product_type_configurable')->getChildrenIds($formatedProduct['id']);
331
- $formatedProduct['associated_products'] = $associatedProducts;
332
  }
333
 
334
  // get stock info
335
  $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product);
336
- $formatedProduct['stock'] = $stock->getQty();
337
 
338
  if($debug) {
339
  $attributes = $product->getAttributes();
340
  foreach($attributes as $key => $value) {
341
- $formatedProduct['extras'][$key] = $product->getAttributeText($key);
342
  }
343
  } else {
344
  foreach($extras as $key) {
345
- $formatedProduct['extras'][$key] = $product->getAttributeText($key);
346
  }
347
  }
348
 
349
- $categories = $product->getCategoryCollection()->addAttributeToSelect('name');
 
 
 
 
350
  foreach($categories as $category) {
351
- $formatedProduct['cat'][] = $category->getName();
 
 
 
 
 
352
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
353
  } catch(Exception $e) {}
354
 
355
- return $formatedProduct;
356
 
357
  }
358
 
359
- }
19
  if(!$API_KEY && strlen($API_KEY) === 0) {
20
  // Api access disabled
21
  $this->getResponse()
22
+ ->setBody(json_encode(array('status' => 'error', 'message' => 'API access disabled', 'version' => 2)))
23
  ->setHttpResponseCode(403)
24
  ->setHeader('Content-type', 'application/json', true);
25
  return false;
36
  Mage::log('Unable to extract authorization header from request', null, 'minewhat.log');
37
  // Internal server error
38
  $this->getResponse()
39
+ ->setBody(json_encode(array('status' => 'error', 'message' => 'Internal server error, Authorization header not found', 'version' => 2)))
40
  ->setHttpResponseCode(500)
41
  ->setHeader('Content-type', 'application/json', true);
42
  return false;
45
  if(trim($authHeader) !== trim($API_KEY)) {
46
  // Api access denied
47
  $this->getResponse()
48
+ ->setBody(json_encode(array('status' => 'error', 'message' => 'Api access denied', 'version' => 2)))
49
  ->setHttpResponseCode(401)
50
  ->setHeader('Content-type', 'application/json', true);
51
  return false;
109
  }
110
  }
111
 
112
+ $responseObj['version'] = 2;
113
  $this->getResponse()
114
  ->setBody(json_encode($responseObj))
115
  ->setHttpResponseCode(200)
141
  }
142
 
143
  $this->getResponse()
144
+ ->setBody(json_encode(array('orders' => $orders, 'fromDate' => $fromDate, 'toDate' => $toDate, 'version' => 2)))
145
  ->setHttpResponseCode(200)
146
  ->setHeader('Content-type', 'application/json', true);
147
 
149
 
150
  } catch(Exception $e) {
151
  $this->getResponse()
152
+ ->setBody(json_encode(array('status' => 'error', 'message' => 'Internal server error', 'version' => 2)))
153
  ->setHttpResponseCode(500)
154
  ->setHeader('Content-type', 'application/json', true);
155
  }
182
 
183
  $extras = $this->getRequest()->getParam('extras');
184
  $debug = $this->getRequest()->getParam('debug', 'false') === 'true';
185
+
186
  if($extras && strlen($extras)) {
187
  $extras = explode(',', $extras);
188
  for($i = 0;$i < sizeof($extras);$i++) {
197
 
198
  $product = Mage::getModel('catalog/product')->load($productId);
199
 
200
+ $product = $this->getFormattedProduct($product, $extras, $debug);
201
  if($product !== null) {
202
  $products[] = $product;
203
  }
214
  ;
215
 
216
  foreach($productsCollection as $product) {
217
+ $product = $this->getFormattedProduct($product, $extras, $debug);
218
  if($product !== null) {
219
  $products[] = $product;
220
  }
225
  $currency = Mage::app()->getStore()->getCurrentCurrencyCode();
226
 
227
  $this->getResponse()
228
+ ->setBody(json_encode(array('products' => $products, 'currency' => $currency, 'version' => 2)))
229
+ ->setHttpResponseCode(200)
230
+ ->setHeader('Content-type', 'application/json', true);
231
+
232
+
233
+ } catch(Exception $e) {
234
+ $this->getResponse()
235
+ ->setBody(json_encode(array('status' => 'error', 'message' => 'Internal server error', 'version' => 2)))
236
+ ->setHttpResponseCode(500)
237
+ ->setHeader('Content-type', 'application/json', true);
238
+ }
239
+
240
+ return $this;
241
+
242
+ }
243
+
244
+
245
+ public function categoriesAction() {
246
+
247
+ try {
248
+
249
+ if(!$this->_authorise()) {
250
+ return $this;
251
+ }
252
+
253
+ $attributes = array(
254
+ 'id',
255
+ 'name',
256
+ 'image',
257
+ 'url',
258
+ 'level',
259
+ 'created_at',
260
+ 'updated_at'
261
+ );
262
+
263
+ $sections = explode('/', trim($this->getRequest()->getPathInfo(), '/'));
264
+ $categories = array();
265
+
266
+ $level = $this->getRequest()->getParam('extras');
267
+ $debug = $this->getRequest()->getParam('debug', 'false') === 'true';
268
+
269
+ if($level && strlen($level)) {
270
+ $level = intval($level);
271
+ }
272
+
273
+ if(isset($sections[3])) {
274
+ // Looking for a specific category
275
+ $categoryId = $sections[3];
276
+
277
+ $category = Mage::getModel('catalog/category')->load($categoryId);
278
+
279
+ $category = $this->getFormattedCategory($category, $debug);
280
+ if($category !== null) {
281
+ $categories[] = $category;
282
+ }
283
+
284
+ } else {
285
+ // Looking for a list of categories
286
+ $limit = $this->getRequest()->getParam('limit', 100);
287
+ $offset = $this->getRequest()->getParam('offset', 1);
288
+
289
+ $categoriesCollection = Mage::getModel('catalog/category')->getCollection();
290
+ $categoriesCollection
291
+ ->addAttributeToSelect($attributes)
292
+ ->getSelect()->limit($limit, $offset) //we can specify how many categories we want to show on this page
293
+ ;
294
+
295
+ foreach($categoriesCollection as $category) {
296
+ $category = $this->getFormattedCategory($category, $debug);
297
+ if($category !== null) {
298
+ $categories[] = $category;
299
+ }
300
+ }
301
+
302
+ }
303
+
304
+ $this->getResponse()
305
+ ->setBody(json_encode(array('categories' => $categories, 'version' => 2)))
306
  ->setHttpResponseCode(200)
307
  ->setHeader('Content-type', 'application/json', true);
308
 
309
 
310
  } catch(Exception $e) {
311
  $this->getResponse()
312
+ ->setBody(json_encode(array('status' => 'error', 'message' => 'Internal server error', 'version' => 2)))
313
  ->setHttpResponseCode(500)
314
  ->setHeader('Content-type', 'application/json', true);
315
  }
334
  if(!$productId || strlen($productId) <= 0) {
335
 
336
  $this->getResponse()
337
+ ->setBody(json_encode(array('status' => 'error', 'message' => 'product id required', 'version' => 2)))
338
  ->setHttpResponseCode(500)
339
  ->setHeader('Content-type', 'application/json', true);
340
 
345
  $product = Mage::getModel('catalog/product')->loadByAttribute('sku', $productId);
346
  if($product == null) {
347
  $this->getResponse()
348
+ ->setBody(json_encode(array('status' => 'error', 'message' => 'invalid sku', 'version' => 2)))
349
  ->setHttpResponseCode(500)
350
  ->setHeader('Content-type', 'application/json', true);
351
  return $this;
359
  $stock = $stockObj->getQty();
360
 
361
  $this->getResponse()
362
+ ->setBody(json_encode(array('id' => $productId, 'stock' => $stock, 'version' => 2)))
363
  ->setHttpResponseCode(200)
364
  ->setHeader('Content-type', 'application/json', true);
365
 
367
 
368
  } catch(Exception $e) {
369
  $this->getResponse()
370
+ ->setBody(json_encode(array('status' => 'error', 'message' => 'Internal server error', 'version' => 2)))
371
  ->setHttpResponseCode(500)
372
  ->setHeader('Content-type', 'application/json', true);
373
  }
377
  }
378
 
379
 
380
+ private function getFormattedProduct($product, $extras, $debug) {
381
 
382
+ $formattedProduct = null;
383
 
384
  try {
385
+ $formattedProduct = array(
386
  'id' => $product->getId(),
387
  'sku' => $product->getSku(),
388
  'name' => $product->getName(),
395
  'url' => $product->getProductUrl(),
396
  'info' => $product->getShortDescription(),
397
  'status' => $product->getStatus(),
398
+ 'type' => $product->getTypeId(),
399
+ 'created_at' => $product->getCreatedAt(),
400
+ 'updated_at' => $product->getUpdatedAt()
401
  );
402
+ if(!$formattedProduct['manufacturer'] || strlen($formattedProduct['manufacturer']) === 0) {
403
  $product = Mage::getModel('catalog/product')->load($product->getId());
404
+ $formattedProduct['manufacturer'] = $product->getAttributeText('manufacturer');
405
  }
406
 
407
+ if($formattedProduct['type'] == "configurable") {
408
  // get associated product ids
409
+ $associatedProducts = Mage::getModel('catalog/product_type_configurable')->getChildrenIds($formattedProduct['id']);
410
+ $formattedProduct['associated_products'] = $associatedProducts;
411
  }
412
 
413
  // get stock info
414
  $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product);
415
+ $formattedProduct['stock'] = $stock->getQty();
416
 
417
  if($debug) {
418
  $attributes = $product->getAttributes();
419
  foreach($attributes as $key => $value) {
420
+ $formattedProduct['extras'][$key] = $product->getAttributeText($key);
421
  }
422
  } else {
423
  foreach($extras as $key) {
424
+ $formattedProduct['extras'][$key] = $product->getAttributeText($key);
425
  }
426
  }
427
 
428
+ $categories = $product->getCategoryCollection()
429
+ ->addAttributeToSelect('id')
430
+ ->addAttributeToSelect('name')
431
+ ->addAttributeToSelect('path')
432
+ ->addAttributeToSelect('level');
433
  foreach($categories as $category) {
434
+ $formattedCategory = array();
435
+ $formattedCategory['id'] = $category->getId();
436
+ $formattedCategory['name'] = $category->getName();
437
+ $formattedCategory['level'] = $category->getLevel();
438
+ $formattedCategory['path'] = $category->getPath();
439
+ $formattedProduct['cat'][$formattedCategory['id']] = $formattedCategory;
440
  }
441
+
442
+ } catch(Exception $e) {}
443
+
444
+ return $formattedProduct;
445
+
446
+ }
447
+
448
+ private function getFormattedCategory($category, $extras, $debug) {
449
+
450
+ $formattedCategory = null;
451
+
452
+ try {
453
+
454
+ $formattedCategory = array(
455
+ 'id' => $category->getId(),
456
+ 'name' => $category->getName(),
457
+ 'image' => $category->getImageUrl(),
458
+ 'url' => $category->getUrl(),
459
+ 'level' => $category->getLevel(),
460
+ 'created_at' => $category->getCreatedAt(),
461
+ 'updated_at' => $category->getUpdatedAt()
462
+ );
463
+
464
  } catch(Exception $e) {}
465
 
466
+ return $formattedCategory;
467
 
468
  }
469
 
470
+ }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>minewhat</name>
4
- <version>1.0.18</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">osl</license>
7
  <channel>community</channel>
@@ -10,8 +10,8 @@
10
  <description>MineWhat Insights</description>
11
  <notes>MineWhat magento plugin</notes>
12
  <authors><author><name>MineWhat Inc.</name><user>MineWhat</user><email>plugins@minewhat.com</email></author></authors>
13
- <date>2014-11-08</date>
14
- <time>09:56:43</time>
15
  <contents><target name="magecommunity"><dir name="MineWhat"><dir name="Insights"><dir name="Block"><dir name="Base"><file name="Script.php" hash="dd44e43a5954e82cfa5cf47921642624"/></dir><dir name="Event"><dir name="Catalog"><dir name="Product"><file name="View.php" hash="41eb512f4f77a8e127253cf246587f0c"/></dir></dir><dir name="Checkout"><dir name="Cart"><file name="Index.php" hash="fafaf6953262ea2b0bc3092d538c30d1"/></dir><dir name="Onepage"><file name="Success.php" hash="779fa1bb799413b05fc111bdc8bc7023"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="c9284d372a18c6db27dec077c04296ff"/></dir><dir name="Model"><file name="Observer.php" hash="8f8ffe64147205aebc15670bc819ccb5"/></dir><dir name="controllers"><file name="ApiController.php" hash="eaeeb290dc1097a0d93f480f6312fe38"/></dir><dir name="etc"><file name="adminhtml.xml" hash="f1fb655aac4dc7f71cadb6c7a7e816f8"/><file name="config.xml" hash="b4443479201149d5ee72c95ca6ffaae5"/><file name="system.xml" hash="8b5d2901cae5a3f65a06ce7fc65e440d"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="MineWhat_Insights.xml" hash="8d2f076cbfcc14688ed800f622869d4b"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="minewhat"><dir name="insights"><dir name="base"><file name="script.phtml" hash="fe16e289984308941fb830bc97e7cad2"/></dir><dir name="event"><dir name="catalog"><dir name="product"><file name="view.phtml" hash="f4a801140203b524d44a23ac83e5873a"/></dir></dir><dir name="checkout"><dir name="cart"><file name="index.phtml" hash="16cf404c9684e5839270fb0931e8fb3b"/></dir><dir name="onepage"><file name="success.phtml" hash="7868bd6e2b4bfe23972a1d6694a8b719"/></dir></dir></dir></dir></dir></dir><dir name="layout"><file name="minewhat_insights.xml" hash="bffb825f36d0a76fa1e5a1eee1e91b07"/></dir></dir></dir><dir name="base"><dir name="default"><dir name="template"><dir name="minewhat"><dir name="insights"><dir name="base"><file name="script.phtml" hash="fe16e289984308941fb830bc97e7cad2"/></dir><dir name="event"><dir name="catalog"><dir name="product"><file name="view.phtml" hash="f4a801140203b524d44a23ac83e5873a"/></dir></dir><dir name="checkout"><dir name="cart"><file name="index.phtml" hash="16cf404c9684e5839270fb0931e8fb3b"/></dir><dir name="onepage"><file name="success.phtml" hash="3a1d49f78428e4cfd41e8cdd8cedc863"/></dir></dir></dir><dir name="list"><file name="toolbar.phtml" hash="0d35ba1449c7ed24e040ff3a8242838d"/><file name=".DS_Store" hash="220a7ff2487261d1b60c8b2659878617"/></dir><file name="list.phtml" hash="aedc12d376fd394dea55e6dd7593d573"/><dir name="view"><file name="featured.phtml" hash="5ecd5a962cd7d460d96cf792b2ba8d42"/><file name="list.phtml" hash="045c9f03c610ac296ffc0fe998c9f774"/><file name=".DS_Store" hash="984ca461816e7a9ac20b6ee55374f870"/></dir><file name="view.phtml" hash="25359d701778fd130b5b0bc0af2f223e"/><file name=".DS_Store" hash="b0f57b625503b5c464300f483bbec82e"/></dir><file name=".DS_Store" hash="2edc75db2a6acc90e6fef43665df0ae4"/></dir></dir><dir name="layout"><file name="minewhat_insights.xml" hash="8ed857b2639ce2dcc48e5f0225982650"/></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.5</min><max>6.0.0</max></php></required></dependencies>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>minewhat</name>
4
+ <version>1.0.19</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">osl</license>
7
  <channel>community</channel>
10
  <description>MineWhat Insights</description>
11
  <notes>MineWhat magento plugin</notes>
12
  <authors><author><name>MineWhat Inc.</name><user>MineWhat</user><email>plugins@minewhat.com</email></author></authors>
13
+ <date>2015-07-10</date>
14
+ <time>11:24:43</time>
15
  <contents><target name="magecommunity"><dir name="MineWhat"><dir name="Insights"><dir name="Block"><dir name="Base"><file name="Script.php" hash="dd44e43a5954e82cfa5cf47921642624"/></dir><dir name="Event"><dir name="Catalog"><dir name="Product"><file name="View.php" hash="41eb512f4f77a8e127253cf246587f0c"/></dir></dir><dir name="Checkout"><dir name="Cart"><file name="Index.php" hash="fafaf6953262ea2b0bc3092d538c30d1"/></dir><dir name="Onepage"><file name="Success.php" hash="779fa1bb799413b05fc111bdc8bc7023"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="c9284d372a18c6db27dec077c04296ff"/></dir><dir name="Model"><file name="Observer.php" hash="8f8ffe64147205aebc15670bc819ccb5"/></dir><dir name="controllers"><file name="ApiController.php" hash="eaeeb290dc1097a0d93f480f6312fe38"/></dir><dir name="etc"><file name="adminhtml.xml" hash="f1fb655aac4dc7f71cadb6c7a7e816f8"/><file name="config.xml" hash="b4443479201149d5ee72c95ca6ffaae5"/><file name="system.xml" hash="8b5d2901cae5a3f65a06ce7fc65e440d"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="MineWhat_Insights.xml" hash="8d2f076cbfcc14688ed800f622869d4b"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="template"><dir name="minewhat"><dir name="insights"><dir name="base"><file name="script.phtml" hash="fe16e289984308941fb830bc97e7cad2"/></dir><dir name="event"><dir name="catalog"><dir name="product"><file name="view.phtml" hash="f4a801140203b524d44a23ac83e5873a"/></dir></dir><dir name="checkout"><dir name="cart"><file name="index.phtml" hash="16cf404c9684e5839270fb0931e8fb3b"/></dir><dir name="onepage"><file name="success.phtml" hash="7868bd6e2b4bfe23972a1d6694a8b719"/></dir></dir></dir></dir></dir></dir><dir name="layout"><file name="minewhat_insights.xml" hash="bffb825f36d0a76fa1e5a1eee1e91b07"/></dir></dir></dir><dir name="base"><dir name="default"><dir name="template"><dir name="minewhat"><dir name="insights"><dir name="base"><file name="script.phtml" hash="fe16e289984308941fb830bc97e7cad2"/></dir><dir name="event"><dir name="catalog"><dir name="product"><file name="view.phtml" hash="f4a801140203b524d44a23ac83e5873a"/></dir></dir><dir name="checkout"><dir name="cart"><file name="index.phtml" hash="16cf404c9684e5839270fb0931e8fb3b"/></dir><dir name="onepage"><file name="success.phtml" hash="3a1d49f78428e4cfd41e8cdd8cedc863"/></dir></dir></dir><dir name="list"><file name="toolbar.phtml" hash="0d35ba1449c7ed24e040ff3a8242838d"/><file name=".DS_Store" hash="220a7ff2487261d1b60c8b2659878617"/></dir><file name="list.phtml" hash="aedc12d376fd394dea55e6dd7593d573"/><dir name="view"><file name="featured.phtml" hash="5ecd5a962cd7d460d96cf792b2ba8d42"/><file name="list.phtml" hash="045c9f03c610ac296ffc0fe998c9f774"/><file name=".DS_Store" hash="984ca461816e7a9ac20b6ee55374f870"/></dir><file name="view.phtml" hash="25359d701778fd130b5b0bc0af2f223e"/><file name=".DS_Store" hash="b0f57b625503b5c464300f483bbec82e"/></dir><file name=".DS_Store" hash="2edc75db2a6acc90e6fef43665df0ae4"/></dir></dir><dir name="layout"><file name="minewhat_insights.xml" hash="8ed857b2639ce2dcc48e5f0225982650"/></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.5</min><max>6.0.0</max></php></required></dependencies>