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 +24 -0
- app/code/community/CommerceStack/CsApiClient/Model/Server.php +5 -0
- app/code/community/CommerceStack/CsApiClient/etc/config.xml +1 -1
- app/code/community/CommerceStack/Recommender/Block/Catalog/Product/Edit/Tab/Crosssell.php +47 -2
- app/code/community/CommerceStack/Recommender/Block/Catalog/Product/Edit/Tab/Related.php +46 -1
- app/code/community/CommerceStack/Recommender/etc/config.xml +1 -1
- js/commercestack/adminhtml/recommender.js +21 -2
- package.xml +5 -5
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.
|
| 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.
|
| 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.
|
| 11 |

|
| 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
|
| 13 |

|
| 14 |
Please contact help@commercestack.com with any bugs, issues, or feature requests. 
|
| 15 |

|
| 16 |
After installing, navigate to System->Configuration->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-
|
| 20 |
-
<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="
|
| 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.
|
| 11 |

|
| 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
|
| 13 |

|
| 14 |
Please contact help@commercestack.com with any bugs, issues, or feature requests. 
|
| 15 |

|
| 16 |
After installing, navigate to System->Configuration->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>
|
