CommerceStack_Recommender - Version 2.1.3

Version Notes

Please contact help@commercestack.com with any feature requests, bugs, issues, or questions.

Download this release

Release Info

Developer CommerceStack
Extension CommerceStack_Recommender
Version 2.1.3
Comparing to
See all releases


Code changes from version 2.1.2 to 2.1.3

app/code/community/CommerceStack/CsApiClient/Model/Account.php CHANGED
@@ -136,5 +136,29 @@ class CommerceStack_CsApiClient_Model_Account extends Mage_Core_Model_Abstract
136
 
137
  return json_encode($retJson);
138
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  }
140
 
136
 
137
  return json_encode($retJson);
138
  }
139
+
140
+ public function getSubscriptions()
141
+ {
142
+ $server = Mage::getModel('csapiclient/server');
143
+ $server->setTimeout(4);
144
+ $url = $this->appendAuthToUri($server->base_url . 'status');
145
+
146
+ $response = $server->get($url, true);
147
+ $status = json_decode($response);
148
+
149
+ $subs = array();
150
+
151
+ if(!is_null($status) && isset($status->rpm_plan))
152
+ {
153
+ $subs['rpm'] = $status->rpm_plan;
154
+
155
+ if(isset($status->rpm_plan_required))
156
+ {
157
+ $subs['rpm_plan_required'] = $status->rpm_plan_required;
158
+ }
159
+ }
160
+
161
+ return $subs;
162
+ }
163
  }
164
 
app/code/community/CommerceStack/CsApiClient/Model/Server.php CHANGED
@@ -35,6 +35,11 @@ class CommerceStack_CsApiClient_Model_Server extends Mage_Core_Model_Abstract
35
  $this->_clientModuleVersion = $version;
36
  }
37
 
 
 
 
 
 
38
  protected function _getAuthUrl($url)
39
  {
40
  try
35
  $this->_clientModuleVersion = $version;
36
  }
37
 
38
+ public function setTimeout($timeoutSecs)
39
+ {
40
+ $this->curl_opts[CURLOPT_TIMEOUT] = $timeoutSecs;
41
+ }
42
+
43
  protected function _getAuthUrl($url)
44
  {
45
  try
app/code/community/CommerceStack/CsApiClient/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <CommerceStack_CsApiClient>
5
- <version>1.1</version>
6
  </CommerceStack_CsApiClient>
7
  </modules>
8
 
2
  <config>
3
  <modules>
4
  <CommerceStack_CsApiClient>
5
+ <version>1.1.1</version>
6
  </CommerceStack_CsApiClient>
7
  </modules>
8
 
app/code/community/CommerceStack/Recommender/Block/Catalog/Product/Edit/Tab/Crosssell.php CHANGED
@@ -8,7 +8,6 @@ class CommerceStack_Recommender_Block_Catalog_Product_Edit_Tab_Crosssell extends
8
 
9
  public function getSelectedCrossSellProducts()
10
  {
11
- $this->_emptyText = Mage::helper('adminhtml')->__('Not enough page view/order data yet for product. Random cross-sells will be shown.');
12
  Mage::registry('current_product')->getLinkInstance()->useLinkSourceCommerceStack();
13
  $currentProduct = Mage::registry('current_product');
14
  $products = array();
@@ -32,7 +31,7 @@ class CommerceStack_Recommender_Block_Catalog_Product_Edit_Tab_Crosssell extends
32
  protected function _prepareCollection()
33
  {
34
  $currentProduct = $this->_getProduct();
35
-
36
  // If this product has a parent, use that instead since we do not produce recommendations
37
  // for children
38
  $configurableProductModel = Mage::getModel('catalog/product_type_configurable');
@@ -55,6 +54,52 @@ class CommerceStack_Recommender_Block_Catalog_Product_Edit_Tab_Crosssell extends
55
  $productIds = $this->_getSelectedProducts();
56
  if (empty($productIds)) {
57
  $productIds = array(0);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  }
59
  $collection->addFieldToFilter('entity_id', array('in'=>$productIds));
60
  }
8
 
9
  public function getSelectedCrossSellProducts()
10
  {
 
11
  Mage::registry('current_product')->getLinkInstance()->useLinkSourceCommerceStack();
12
  $currentProduct = Mage::registry('current_product');
13
  $products = array();
31
  protected function _prepareCollection()
32
  {
33
  $currentProduct = $this->_getProduct();
34
+
35
  // If this product has a parent, use that instead since we do not produce recommendations
36
  // for children
37
  $configurableProductModel = Mage::getModel('catalog/product_type_configurable');
54
  $productIds = $this->_getSelectedProducts();
55
  if (empty($productIds)) {
56
  $productIds = array(0);
57
+ $emptyText = 'Not enough page view/order data yet for product. Random cross-sells will be shown.';
58
+
59
+ $account = Mage::getModel('csapiclient/account');
60
+
61
+ try
62
+ {
63
+ $subs = $account->getSubscriptions();
64
+
65
+ if(!is_null($subs) && isset($subs['rpm']))
66
+ {
67
+ if(isset($subs['rpm_plan_required']))
68
+ {
69
+ if($subs['rpm'] < $subs['rpm_plan_required'])
70
+ {
71
+ $emptyText = "Random cross-sells are currently showing. Please <a href='" .
72
+ Mage::helper("adminhtml")->getUrl("adminhtml/system_config/edit/section/recommender") .
73
+ "#recommender_account-head'>upgrade to Related Products Manager ";
74
+
75
+ if($subs['rpm_plan_required'] == 3)
76
+ {
77
+ $emptyText .= "Pro";
78
+ }
79
+ else
80
+ {
81
+ $emptyText .= "Basic";
82
+ }
83
+
84
+ $emptyText .= "</a> to show smart recommendations.";
85
+ }
86
+ }
87
+ else
88
+ {
89
+ $emptyText = "Random cross-sells are currently showing because no smart recommendations have been generated. Please click Update Related Products in <a href='";
90
+ $emptyText .= Mage::helper("adminhtml")->getUrl("adminhtml/system_config/edit/section/recommender");
91
+ $emptyText .= "'>Configuration > Related Products Manager</a> to create smart recommendations.";
92
+
93
+ }
94
+ }
95
+ }
96
+ catch(Exception $e)
97
+ {
98
+ // Server is probably having trouble
99
+ $emptyText = "Random cross-sells are currently being shown.";
100
+ }
101
+
102
+ $this->_emptyText = Mage::helper('adminhtml')->__($emptyText);
103
  }
104
  $collection->addFieldToFilter('entity_id', array('in'=>$productIds));
105
  }
app/code/community/CommerceStack/Recommender/Block/Catalog/Product/Edit/Tab/Related.php CHANGED
@@ -30,7 +30,6 @@ class CommerceStack_Recommender_Block_Catalog_Product_Edit_Tab_Related extends M
30
 
31
  protected function _prepareCollection()
32
  {
33
- $this->_emptyText = Mage::helper('adminhtml')->__('Not enough page view/order data yet for product. Random related products will be shown.');
34
  $currentProduct = $this->_getProduct();
35
 
36
  // If this product has a parent, use that instead since we do not produce recommendations
@@ -54,6 +53,52 @@ class CommerceStack_Recommender_Block_Catalog_Product_Edit_Tab_Related extends M
54
  $productIds = $this->_getSelectedProducts();
55
  if (empty($productIds)) {
56
  $productIds = array(0);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  }
58
  $collection->addFieldToFilter('entity_id', array('in' => $productIds));
59
  }
30
 
31
  protected function _prepareCollection()
32
  {
 
33
  $currentProduct = $this->_getProduct();
34
 
35
  // If this product has a parent, use that instead since we do not produce recommendations
53
  $productIds = $this->_getSelectedProducts();
54
  if (empty($productIds)) {
55
  $productIds = array(0);
56
+ $emptyText = 'Not enough page view/order data yet for product. Random related products will be shown.';
57
+
58
+ $account = Mage::getModel('csapiclient/account');
59
+ try
60
+ {
61
+ $subs = $account->getSubscriptions();
62
+
63
+ if(!is_null($subs) && isset($subs['rpm']))
64
+ {
65
+ if(isset($subs['rpm_plan_required']))
66
+ {
67
+ if($subs['rpm'] < $subs['rpm_plan_required'])
68
+ {
69
+ $emptyText = "Random related products are currently showing. Please <a href='" .
70
+ Mage::helper("adminhtml")->getUrl("adminhtml/system_config/edit/section/recommender") .
71
+ "#recommender_account-head'>upgrade to Related Products Manager ";
72
+
73
+ if($subs['rpm_plan_required'] == 3)
74
+ {
75
+ $emptyText .= "Pro";
76
+ }
77
+ else
78
+ {
79
+ $emptyText .= "Basic";
80
+ }
81
+
82
+ $emptyText .= "</a> to show smart recommendations.";
83
+ }
84
+ }
85
+ else
86
+ {
87
+ $emptyText = "Random related products are currently showing because no smart recommendations have been generated. Please click Update Related Products in <a href='";
88
+ $emptyText .= Mage::helper("adminhtml")->getUrl("adminhtml/system_config/edit/section/recommender");
89
+ $emptyText .= "'>Configuration > Related Products Manager</a> to create smart recommendations.";
90
+
91
+ }
92
+ }
93
+ }
94
+ catch(Exception $e)
95
+ {
96
+ // Server is probably having trouble
97
+ $emptyText = "Random related products are currently being shown.";
98
+ }
99
+
100
+
101
+ $this->_emptyText = Mage::helper('adminhtml')->__($emptyText);
102
  }
103
  $collection->addFieldToFilter('entity_id', array('in' => $productIds));
104
  }
app/code/community/CommerceStack/Recommender/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <CommerceStack_Recommender>
5
- <version>2.1.2</version>
6
  </CommerceStack_Recommender>
7
  </modules>
8
 
2
  <config>
3
  <modules>
4
  <CommerceStack_Recommender>
5
+ <version>2.1.3</version>
6
  </CommerceStack_Recommender>
7
  </modules>
8
 
js/commercestack/adminhtml/recommender.js CHANGED
@@ -35,7 +35,10 @@ document.observe("dom:loaded", function() {
35
  generateAuthUrls(apikey.apiUser, apikey.apiSecret);
36
  getStatus();
37
  }
38
-
 
 
 
39
  commercestackPe = new PeriodicalExecuter(function(pe) {
40
  getStatus();
41
  }, 5);
@@ -266,6 +269,14 @@ function cancelCommerceStackUpdate()
266
  jQuery.post(commercestackStatusAuthUrl, 'cancelRequested');
267
  }
268
 
 
 
 
 
 
 
 
 
269
  function openAccountTab()
270
  {
271
  if($(recommender_account).clientHeight == 0)
@@ -274,10 +285,18 @@ function openAccountTab()
274
  }
275
  }
276
 
 
 
 
 
 
 
 
 
277
  function openHelpTab()
278
  {
279
  if($(recommender_relatedproductshelp).clientHeight == 0)
280
  {
281
  Fieldset.toggleCollapse('recommender_relatedproductshelp');
282
  }
283
- }
35
  generateAuthUrls(apikey.apiUser, apikey.apiSecret);
36
  getStatus();
37
  }
38
+
39
+ openConfigTab();
40
+ openAccountTab();
41
+
42
  commercestackPe = new PeriodicalExecuter(function(pe) {
43
  getStatus();
44
  }, 5);
269
  jQuery.post(commercestackStatusAuthUrl, 'cancelRequested');
270
  }
271
 
272
+ function openConfigTab()
273
+ {
274
+ if($(recommender_account).clientHeight == 0)
275
+ {
276
+ Fieldset.toggleCollapse('recommender_relatedproducts');
277
+ }
278
+ }
279
+
280
  function openAccountTab()
281
  {
282
  if($(recommender_account).clientHeight == 0)
285
  }
286
  }
287
 
288
+ function openAdvancedTab()
289
+ {
290
+ if($(recommender_account).clientHeight == 0)
291
+ {
292
+ Fieldset.toggleCollapse('recommender_relatedproductsadvanced');
293
+ }
294
+ }
295
+
296
  function openHelpTab()
297
  {
298
  if($(recommender_relatedproductshelp).clientHeight == 0)
299
  {
300
  Fieldset.toggleCollapse('recommender_relatedproductshelp');
301
  }
302
+ }
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>CommerceStack_Recommender</name>
4
- <version>2.1.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License v 3.0</license>
7
  <channel>community</channel>
@@ -9,16 +9,16 @@
9
  <summary>Automatically generate related products, up-sells, and cross-sells for your entire catalog with one click.</summary>
10
  <description>Automatically generates related products, cross-sells, and up-sells for your entire catalog using existing order and page view data.&#xD;
11
  &#xD;
12
- Supported Magento versions: 1.5.0, 1.5.0.1, 1.5.1, 1.6.0, 1.6.1, 1.6.2, 1.7.0, 1.8.0, 1.8.1, 1.9.0, 1.9.1&#xD;
13
  &#xD;
14
  Please contact help@commercestack.com with any bugs, issues, or feature requests. &#xD;
15
  &#xD;
16
  After installing, navigate to System-&gt;Configuration-&gt;Related Products Manager to begin.</description>
17
  <notes>Please contact help@commercestack.com with any feature requests, bugs, issues, or questions.</notes>
18
  <authors><author><name>CommerceStack</name><user>dbright</user><email>dbright@commercestack.com</email></author></authors>
19
- <date>2014-12-09</date>
20
- <time>22:05:23</time>
21
- <contents><target name="magecommunity"><dir name="CommerceStack"><dir name="Recommender"><dir name="Block"><dir name="Cart"><file name="Crosssell.php" hash="3502a27a963955eb91cf8165a39af9d5"/></dir><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><file name="Crosssell.php" hash="6bf054a0c4cb02d5029e865c1f834d65"/><file name="Related.php" hash="0daa5a8c523d389eaea2d1d220d96be9"/></dir><file name="Tabs.php" hash="aa26d6e9e585117100e983616e6a0afa"/></dir></dir></dir><dir name="Product"><dir name="List"><file name="Related.php" hash="597516550d0a8d532f668925d59bbb35"/><file name="Upsell.php" hash="cd8e2be1800665cc7743f0765ce9b02a"/></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Apikey.php" hash="def235a2710cea0b01ace89bce9ffda4"/><file name="Apikeyurl.php" hash="5ce3031fd84f912b3552d7c37f2a04ac"/><file name="Apisecret.php" hash="9b9a92981a5ff80aa4ec3e4255844801"/><file name="Apiuser.php" hash="bba5a87192ab0821d999aa4ab8cddada"/><file name="Cancelbutton.php" hash="7a87871461a6d589a28ccbc18f9d1603"/><file name="Email.php" hash="0231900a317a75e1f72cfdd440df2e45"/><file name="Helpiframe.php" hash="cd049db20bfa53e6a57eaba796a0f5b6"/><file name="Paymentiframe.php" hash="aac32f6d47bf80aef61c1b4288363f7e"/><file name="Updatebutton.php" hash="997d957fab4ac828237b9b0ca92d51e6"/></dir><file name="Form.php" hash="de1c3b70b03ac09fe1d5c7cd7613feb1"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="8ad308615eb1dffe036199970c978a61"/></dir><dir name="Model"><dir name="Product"><file name="Link.php" hash="c2fb978783910af6472fbcf50070bb0f"/></dir><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><dir name="Product"><dir name="Link"><dir name="Product"><file name="Collection.php" hash="3fb32d0da982297829938dc2427b35cb"/></dir></dir><file name="Link.php" hash="0910e13e6a3b3cac3573a4ea1df59e9f"/></dir></dir></dir><dir name="Mysql4"><file name="Setup.php" hash="1e93566c0f56cc52cdf4e4a73153d2f9"/></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Upsellsource.php" hash="34ed5e3c61bd288340b7de3809953ad3"/></dir></dir></dir></dir><dir name="controllers"><file name="AccountController.php" hash="2ba2f4ae67df9a140ed2b8b5bc4ec986"/><file name="IndexController.php" hash="2a60213f638ebd16d051d83d3d8f726c"/><file name="ProductController.php" hash="83ad4a8d6d22d53f4fb03744950500d9"/></dir><dir name="etc"><file name="config.xml" hash="d4a1b429f3415107e3b3ef0ee6e4c51b"/><file name="system.xml" hash="2ee1ffb7b78936caf27acc87bc34a4c9"/></dir><dir name="sql"><dir name="recommender_setup"><file name="mysql4-install-0.9.3.php" hash="cfe38102d96814f6b254cc38c07f2037"/><file name="mysql4-upgrade-0.9.3-0.9.4.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-0.9.4-0.9.5.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-0.9.5-1.0.0.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.0.2-1.1.0.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.1.0-1.2.0.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.0-1.2.1.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.1-1.2.2.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.2-1.2.3.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.3-1.2.4.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.4-1.2.5.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.5-1.2.6.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.6-2.0.0.php" hash="b2d2b463578d50b2a1a313c36d02ecdf"/></dir></dir></dir><dir name="CsApiClient"><dir name="Model"><file name="Account.php" hash="eee0430b1dabbf423c31c42f371be1e1"/><file name="Server.php" hash="6dd11dab8794ab53cdb763d4820d36c9"/></dir><dir name="etc"><file name="config.xml" hash="aa75ad3da4595655fe6dc9507e1af176"/></dir></dir><dir name="CsNotification"><dir name="Model"><dir name="AdminNotification"><file name="Feed.php" hash="1f20e704fe895c4a2748612a028ee186"/></dir></dir><dir name="etc"><file name="config.xml" hash="9ede9a59b2e857828a341bbf53953abe"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="recommender.xml" hash="26d8deea180738fdd5e3f0a5bcbc8f07"/></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="commercestack"><dir name="adminhtml"><file name="recommender.js" hash="b9b1fb4afa53aeb99d3a180f9fafc155"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="CommerceStack_Recommender.xml" hash="c0faaf57bb93c70fe6ba45e68c96fc11"/><file name="CommerceStack_CsApiClient.xml" hash="dd56312764a58b18b7e21738ebb8a6b0"/><file name="CommerceStack_CsNotification.xml" hash="94bb10db3af629c7e68bbf32fd18159c"/></dir></target></contents>
22
  <compatible/>
23
  <dependencies><required><php><min>5.2.13</min><max>6.0.0</max></php></required></dependencies>
24
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>CommerceStack_Recommender</name>
4
+ <version>2.1.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License v 3.0</license>
7
  <channel>community</channel>
9
  <summary>Automatically generate related products, up-sells, and cross-sells for your entire catalog with one click.</summary>
10
  <description>Automatically generates related products, cross-sells, and up-sells for your entire catalog using existing order and page view data.&#xD;
11
  &#xD;
12
+ Supported Magento versions: 1.5.0, 1.5.0.1, 1.5.1, 1.6.0, 1.6.1, 1.6.2, 1.7.0, 1.8.0, 1.8.1, 1.9, 1.9.1&#xD;
13
  &#xD;
14
  Please contact help@commercestack.com with any bugs, issues, or feature requests. &#xD;
15
  &#xD;
16
  After installing, navigate to System-&gt;Configuration-&gt;Related Products Manager to begin.</description>
17
  <notes>Please contact help@commercestack.com with any feature requests, bugs, issues, or questions.</notes>
18
  <authors><author><name>CommerceStack</name><user>dbright</user><email>dbright@commercestack.com</email></author></authors>
19
+ <date>2014-12-17</date>
20
+ <time>19:50:42</time>
21
+ <contents><target name="magecommunity"><dir name="CommerceStack"><dir name="Recommender"><dir name="Block"><dir name="Cart"><file name="Crosssell.php" hash="3502a27a963955eb91cf8165a39af9d5"/></dir><dir name="Catalog"><dir name="Product"><dir name="Edit"><dir name="Tab"><file name="Crosssell.php" hash="4a629f55e16abcd45d8b97ea7b83ee9d"/><file name="Related.php" hash="5d3e6e6fbeadee6a7b5b31675338171e"/></dir><file name="Tabs.php" hash="aa26d6e9e585117100e983616e6a0afa"/></dir></dir></dir><dir name="Product"><dir name="List"><file name="Related.php" hash="597516550d0a8d532f668925d59bbb35"/><file name="Upsell.php" hash="cd8e2be1800665cc7743f0765ce9b02a"/></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Apikey.php" hash="def235a2710cea0b01ace89bce9ffda4"/><file name="Apikeyurl.php" hash="5ce3031fd84f912b3552d7c37f2a04ac"/><file name="Apisecret.php" hash="9b9a92981a5ff80aa4ec3e4255844801"/><file name="Apiuser.php" hash="bba5a87192ab0821d999aa4ab8cddada"/><file name="Cancelbutton.php" hash="7a87871461a6d589a28ccbc18f9d1603"/><file name="Email.php" hash="0231900a317a75e1f72cfdd440df2e45"/><file name="Helpiframe.php" hash="cd049db20bfa53e6a57eaba796a0f5b6"/><file name="Paymentiframe.php" hash="aac32f6d47bf80aef61c1b4288363f7e"/><file name="Updatebutton.php" hash="997d957fab4ac828237b9b0ca92d51e6"/></dir><file name="Form.php" hash="de1c3b70b03ac09fe1d5c7cd7613feb1"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="8ad308615eb1dffe036199970c978a61"/></dir><dir name="Model"><dir name="Product"><file name="Link.php" hash="c2fb978783910af6472fbcf50070bb0f"/></dir><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><dir name="Product"><dir name="Link"><dir name="Product"><file name="Collection.php" hash="3fb32d0da982297829938dc2427b35cb"/></dir></dir><file name="Link.php" hash="0910e13e6a3b3cac3573a4ea1df59e9f"/></dir></dir></dir><dir name="Mysql4"><file name="Setup.php" hash="1e93566c0f56cc52cdf4e4a73153d2f9"/></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Upsellsource.php" hash="34ed5e3c61bd288340b7de3809953ad3"/></dir></dir></dir></dir><dir name="controllers"><file name="AccountController.php" hash="2ba2f4ae67df9a140ed2b8b5bc4ec986"/><file name="IndexController.php" hash="2a60213f638ebd16d051d83d3d8f726c"/><file name="ProductController.php" hash="83ad4a8d6d22d53f4fb03744950500d9"/></dir><dir name="etc"><file name="config.xml" hash="3020ce4b74c9c4deba33dcb8fa93fc96"/><file name="system.xml" hash="2ee1ffb7b78936caf27acc87bc34a4c9"/></dir><dir name="sql"><dir name="recommender_setup"><file name="mysql4-install-0.9.3.php" hash="cfe38102d96814f6b254cc38c07f2037"/><file name="mysql4-upgrade-0.9.3-0.9.4.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-0.9.4-0.9.5.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-0.9.5-1.0.0.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.0.2-1.1.0.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.1.0-1.2.0.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.0-1.2.1.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.1-1.2.2.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.2-1.2.3.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.3-1.2.4.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.4-1.2.5.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.5-1.2.6.php" hash="3beefb00777a6bd04265b7d33c23efa9"/><file name="mysql4-upgrade-1.2.6-2.0.0.php" hash="b2d2b463578d50b2a1a313c36d02ecdf"/></dir></dir></dir><dir name="CsApiClient"><dir name="Model"><file name="Account.php" hash="f48445eafcb1d1d80203987528387dc2"/><file name="Server.php" hash="026be03911b4af5079f2644f06634aa5"/></dir><dir name="etc"><file name="config.xml" hash="852026aa85d127c12b666444779fbc35"/></dir></dir><dir name="CsNotification"><dir name="Model"><dir name="AdminNotification"><file name="Feed.php" hash="1f20e704fe895c4a2748612a028ee186"/></dir></dir><dir name="etc"><file name="config.xml" hash="9ede9a59b2e857828a341bbf53953abe"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="recommender.xml" hash="26d8deea180738fdd5e3f0a5bcbc8f07"/></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="commercestack"><dir name="adminhtml"><file name="recommender.js" hash="1f5896967773fe99bebaa852f3173eda"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="CommerceStack_Recommender.xml" hash="c0faaf57bb93c70fe6ba45e68c96fc11"/><file name="CommerceStack_CsApiClient.xml" hash="dd56312764a58b18b7e21738ebb8a6b0"/><file name="CommerceStack_CsNotification.xml" hash="94bb10db3af629c7e68bbf32fd18159c"/></dir></target></contents>
22
  <compatible/>
23
  <dependencies><required><php><min>5.2.13</min><max>6.0.0</max></php></required></dependencies>
24
  </package>