Version Notes
* Additional stock management for configurable products bug fix
* Search results page - quick view selection option for configurable product variation & add-to-cart
* Warning fix on file_get_contents(...)
Download this release
Release Info
Developer | Adar |
Extension | autocompleteplus_autosuggest |
Version | 2.0.8.0 |
Comparing to | |
See all releases |
Code changes from version 2.0.7.9 to 2.0.8.0
- app/code/local/Autocompleteplus/Autosuggest/Block/Inject.php +4 -1
- app/code/local/Autocompleteplus/Autosuggest/Model/Catalog.php +103 -2
- app/code/local/Autocompleteplus/Autosuggest/Model/Observer.php +24 -0
- app/code/local/Autocompleteplus/Autosuggest/controllers/ResultController.php +7 -0
- app/code/local/Autocompleteplus/Autosuggest/etc/config.xml +8 -1
- app/design/frontend/base/default/layout/autocompleteplus.xml +11 -2
- app/design/frontend/base/default/template/autocompleteplus/catalog/product/list.phtml +1 -1
- package.xml +8 -7
app/code/local/Autocompleteplus/Autosuggest/Block/Inject.php
CHANGED
@@ -29,8 +29,11 @@ class Autocompleteplus_Autosuggest_Block_Inject extends Mage_Checkout_Block_Cart
|
|
29 |
if(array_key_exists('adminhtml', $_COOKIE)){
|
30 |
//get session path and add dir seperator and content field of cookie as data name with magento "sess_" prefix
|
31 |
$sessionFilePath = Mage::getBaseDir('session').DS.'sess_'.$_COOKIE['adminhtml'];
|
|
|
|
|
|
|
32 |
//write content of file in var
|
33 |
-
$sessionFile = file_get_contents($sessionFilePath);
|
34 |
|
35 |
//save old session
|
36 |
$oldSession = $_SESSION;
|
29 |
if(array_key_exists('adminhtml', $_COOKIE)){
|
30 |
//get session path and add dir seperator and content field of cookie as data name with magento "sess_" prefix
|
31 |
$sessionFilePath = Mage::getBaseDir('session').DS.'sess_'.$_COOKIE['adminhtml'];
|
32 |
+
if (!file_exists($sessionFilePath)){
|
33 |
+
return false;
|
34 |
+
}
|
35 |
//write content of file in var
|
36 |
+
$sessionFile = @file_get_contents($sessionFilePath);
|
37 |
|
38 |
//save old session
|
39 |
$oldSession = $_SESSION;
|
app/code/local/Autocompleteplus/Autosuggest/Model/Catalog.php
CHANGED
@@ -383,6 +383,7 @@ class Autocompleteplus_Autosuggest_Model_Catalog extends Mage_Core_Model_Abstrac
|
|
383 |
|
384 |
}catch(Exception $e){
|
385 |
$prodImage='';
|
|
|
386 |
}
|
387 |
|
388 |
if($productModel->getTypeID()=='configurable'){
|
@@ -401,6 +402,10 @@ class Autocompleteplus_Autosuggest_Model_Catalog extends Mage_Core_Model_Abstrac
|
|
401 |
$is_in_stock_child_exist = false;
|
402 |
foreach($configurableChildren as $child_product){
|
403 |
if ($child_product->getStockItem()->getIsInStock()){
|
|
|
|
|
|
|
|
|
404 |
$is_in_stock_child_exist = true;
|
405 |
break;
|
406 |
}
|
@@ -507,15 +512,77 @@ class Autocompleteplus_Autosuggest_Model_Catalog extends Mage_Core_Model_Abstrac
|
|
507 |
}
|
508 |
}
|
509 |
}
|
510 |
-
|
511 |
if($productModel->getTypeID()=='configurable' && count($configurableAttributes)>0){
|
|
|
512 |
foreach($configurableAttributes as $attrName=>$confAttrN){
|
513 |
if(is_array($confAttrN) && array_key_exists('values',$confAttrN)){
|
|
|
514 |
$values=implode(' , ',$confAttrN['values']);
|
515 |
$row.='<attribute is_configurable="1" is_filterable="'.$confAttrN['is_filterable'].'" name="'.$attrName.'"><![CDATA['.$values.']]></attribute>';
|
516 |
}
|
517 |
}
|
|
|
518 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
$row.='<simpleproducts><![CDATA['.implode(',',$configurable_children_ids).']]></simpleproducts>';
|
520 |
}
|
521 |
|
@@ -816,7 +883,6 @@ class Autocompleteplus_Autosuggest_Model_Catalog extends Mage_Core_Model_Abstrac
|
|
816 |
$attributeFull = Mage::getModel('eav/config')->getAttribute('catalog_product', $productAttribute['attribute_code']);
|
817 |
|
818 |
foreach ($productAttribute['values'] as $attribute) {
|
819 |
-
|
820 |
$attributeOptions[$productAttribute['store_label']]['values'][] = $attribute['store_label'];
|
821 |
|
822 |
}
|
@@ -873,6 +939,41 @@ class Autocompleteplus_Autosuggest_Model_Catalog extends Mage_Core_Model_Abstrac
|
|
873 |
$priceRange='price_min="'.$min.'" price_max="'.$max.'"';
|
874 |
return $priceRange;
|
875 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
876 |
|
877 |
private function _getOrdersPerProduct($store_id, $product_id_list, $month_interval){
|
878 |
|
383 |
|
384 |
}catch(Exception $e){
|
385 |
$prodImage='';
|
386 |
+
$product_base_image = '';
|
387 |
}
|
388 |
|
389 |
if($productModel->getTypeID()=='configurable'){
|
402 |
$is_in_stock_child_exist = false;
|
403 |
foreach($configurableChildren as $child_product){
|
404 |
if ($child_product->getStockItem()->getIsInStock()){
|
405 |
+
if (method_exists($child_product, 'isSaleable') && !$child_product->isSaleable()){
|
406 |
+
// the simple product is probably disabled (because its in stock)
|
407 |
+
continue;
|
408 |
+
}
|
409 |
$is_in_stock_child_exist = true;
|
410 |
break;
|
411 |
}
|
512 |
}
|
513 |
}
|
514 |
}
|
515 |
+
|
516 |
if($productModel->getTypeID()=='configurable' && count($configurableAttributes)>0){
|
517 |
+
$configural_attributes = array();
|
518 |
foreach($configurableAttributes as $attrName=>$confAttrN){
|
519 |
if(is_array($confAttrN) && array_key_exists('values',$confAttrN)){
|
520 |
+
$configural_attributes[] = $attrName;
|
521 |
$values=implode(' , ',$confAttrN['values']);
|
522 |
$row.='<attribute is_configurable="1" is_filterable="'.$confAttrN['is_filterable'].'" name="'.$attrName.'"><![CDATA['.$values.']]></attribute>';
|
523 |
}
|
524 |
}
|
525 |
+
$simple_products_price = $this->_getSimpleProductsPriceOfConfigurable($productModel, $configurableChildren);
|
526 |
|
527 |
+
if (!empty($configural_attributes)){
|
528 |
+
$product_variation = '<variants>';
|
529 |
+
try{
|
530 |
+
foreach($configurableChildren as $child_product){
|
531 |
+
if (!in_array($productModel->getStoreId(), $child_product->getStoreIds())){
|
532 |
+
continue;
|
533 |
+
}
|
534 |
+
|
535 |
+
$is_variant_in_stock = ($child_product->getStockItem()->getIsInStock()) ? 1 : 0;
|
536 |
+
|
537 |
+
if (method_exists($child_product, 'isSaleable')){
|
538 |
+
$is_variant_sellable = ($child_product->isSaleable()) ? 1 : 0;
|
539 |
+
} else {
|
540 |
+
$is_variant_sellable = '';
|
541 |
+
// $is_variant_sellable = (Mage::getModel('catalog/product')
|
542 |
+
// ->setStore($productModel->getStoreId())
|
543 |
+
// ->setStoreId($productModel->getStoreId())
|
544 |
+
// ->load($child_product->getId())
|
545 |
+
// ->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
|
546 |
+
}
|
547 |
+
|
548 |
+
if (method_exists($child_product, 'getVisibility')){
|
549 |
+
$is_variant_visible = ($child_product->getVisibility()) ? 1 : 0;
|
550 |
+
} else {
|
551 |
+
$is_variant_visible = '';
|
552 |
+
// $is_variant_visible = (Mage::getModel('catalog/product')
|
553 |
+
// ->setStore($productModel->getStoreId())
|
554 |
+
// ->setStoreId($productModel->getStoreId())
|
555 |
+
// ->load($child_product->getId())
|
556 |
+
// ->getVisibility());
|
557 |
+
}
|
558 |
+
|
559 |
+
$variant_price = (array_key_exists($child_product->getId(), $simple_products_price)) ?
|
560 |
+
$simple_products_price[$child_product->getId()] : '';
|
561 |
+
|
562 |
+
$product_variation .= '<variant id="'.$child_product->getId().'" type="'.$child_product->getTypeID().
|
563 |
+
'" visibility="'.$is_variant_visible.'" is_in_stock="'.$is_variant_in_stock.'" is_seallable="'.$is_variant_sellable.'" price="'.$variant_price.'">';
|
564 |
+
$product_variation .= '<name><![CDATA['.$child_product->getName().']]></name>';
|
565 |
+
|
566 |
+
$attributes = $child_product->getAttributes();
|
567 |
+
foreach ($attributes as $attribute) {
|
568 |
+
if (!$attribute['is_configurable'] || !in_array($attribute['store_label'], $configural_attributes)){ // || !$attribute->getIsVisibleOnFront()
|
569 |
+
continue;
|
570 |
+
}
|
571 |
+
|
572 |
+
$product_variation .= '<variant_attribute is_configurable="1" is_filterable="'.$attribute->getis_filterable().
|
573 |
+
'" name="'.$attribute['store_label'].'" name_code="'.$attribute->getId().
|
574 |
+
'" value_code="'.$child_product->getData($attribute->getAttributeCode()).
|
575 |
+
'"><![CDATA['.$attribute->getFrontend()->getValue($child_product).
|
576 |
+
']]></variant_attribute>';
|
577 |
+
}
|
578 |
+
$product_variation .= '</variant>';
|
579 |
+
}
|
580 |
+
} catch(Exception $e ){
|
581 |
+
}
|
582 |
+
$product_variation .= '</variants>';
|
583 |
+
$row.=$product_variation;
|
584 |
+
}
|
585 |
+
|
586 |
$row.='<simpleproducts><![CDATA['.implode(',',$configurable_children_ids).']]></simpleproducts>';
|
587 |
}
|
588 |
|
883 |
$attributeFull = Mage::getModel('eav/config')->getAttribute('catalog_product', $productAttribute['attribute_code']);
|
884 |
|
885 |
foreach ($productAttribute['values'] as $attribute) {
|
|
|
886 |
$attributeOptions[$productAttribute['store_label']]['values'][] = $attribute['store_label'];
|
887 |
|
888 |
}
|
939 |
$priceRange='price_min="'.$min.'" price_max="'.$max.'"';
|
940 |
return $priceRange;
|
941 |
}
|
942 |
+
|
943 |
+
private function _getSimpleProductsPriceOfConfigurable($product, $configurable_children){
|
944 |
+
$simple_products_price = array();
|
945 |
+
$pricesByAttributeValues = array();
|
946 |
+
$attributes = $product->getTypeInstance(true)->getConfigurableAttributes($product);
|
947 |
+
$basePrice = $product->getFinalPrice();
|
948 |
+
$items = $attributes->getItems();
|
949 |
+
if (is_array($items)){
|
950 |
+
foreach ($items as $attribute){
|
951 |
+
$prices = $attribute->getPrices();
|
952 |
+
if (is_array($prices)){
|
953 |
+
foreach ($prices as $price){
|
954 |
+
if ($price['is_percent']){ //if the price is specified in percents
|
955 |
+
$pricesByAttributeValues[$price['value_index']] = (float)$price['pricing_value'] * $basePrice / 100;
|
956 |
+
}
|
957 |
+
else { //if the price is absolute value
|
958 |
+
$pricesByAttributeValues[$price['value_index']] = (float)$price['pricing_value'];
|
959 |
+
}
|
960 |
+
}
|
961 |
+
}
|
962 |
+
}
|
963 |
+
}
|
964 |
+
|
965 |
+
foreach ($configurable_children as $sProduct){
|
966 |
+
$totalPrice = $basePrice;
|
967 |
+
foreach ($attributes as $attribute){
|
968 |
+
$value = $sProduct->getData($attribute->getProductAttribute()->getAttributeCode());
|
969 |
+
if (isset($pricesByAttributeValues[$value])){
|
970 |
+
$totalPrice += $pricesByAttributeValues[$value];
|
971 |
+
}
|
972 |
+
}
|
973 |
+
$simple_products_price[$sProduct->getId()] = $totalPrice;
|
974 |
+
}
|
975 |
+
return $simple_products_price;
|
976 |
+
}
|
977 |
|
978 |
private function _getOrdersPerProduct($store_id, $product_id_list, $month_interval){
|
979 |
|
app/code/local/Autocompleteplus/Autosuggest/Model/Observer.php
CHANGED
@@ -177,6 +177,13 @@ class Autocompleteplus_Autosuggest_Model_Observer extends Mage_Core_Model_Abstra
|
|
177 |
|
178 |
$dt = strtotime('now');
|
179 |
//$mysqldate = date( 'Y-m-d h:m:s', $dt );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
|
181 |
try{
|
182 |
$_tableprefix = (string)Mage::getConfig()->getTablePrefix();
|
@@ -215,6 +222,23 @@ class Autocompleteplus_Autosuggest_Model_Observer extends Mage_Core_Model_Abstra
|
|
215 |
} catch (Exception $e){
|
216 |
Mage::log('checksum failed - ' . $e->getMessage(), null, 'autocompleteplus.log');
|
217 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
}
|
219 |
|
220 |
}catch(Exception $e){
|
177 |
|
178 |
$dt = strtotime('now');
|
179 |
//$mysqldate = date( 'Y-m-d h:m:s', $dt );
|
180 |
+
|
181 |
+
$simple_product_parents = array();
|
182 |
+
if ($product->getTypeID() == 'simple'){
|
183 |
+
$simple_product_parents = Mage::getModel('catalog/product_type_configurable')
|
184 |
+
->getParentIdsByChild($product->getId());
|
185 |
+
|
186 |
+
}
|
187 |
|
188 |
try{
|
189 |
$_tableprefix = (string)Mage::getConfig()->getTablePrefix();
|
222 |
} catch (Exception $e){
|
223 |
Mage::log('checksum failed - ' . $e->getMessage(), null, 'autocompleteplus.log');
|
224 |
}
|
225 |
+
|
226 |
+
// trigger update for simple product's configurable parent
|
227 |
+
if (!empty($simple_product_parents)){ // simple product has configural parent
|
228 |
+
foreach ($simple_product_parents as $configurable_product){
|
229 |
+
$sqlFetch = 'SELECT * FROM '. $_tableprefix.'autocompleteplus_batches WHERE product_id = ? AND store_id=?';
|
230 |
+
$updates = $read->fetchAll($sqlFetch, array($configurable_product, $product_store));
|
231 |
+
if (!$updates || (count($updates) == 0) || $updates[0]['action'] != 'remove'){
|
232 |
+
if($updates && count($updates) != 0){
|
233 |
+
$sql = 'UPDATE '. $_tableprefix.'autocompleteplus_batches SET update_date=?,action=? WHERE product_id = ? AND store_id=?';
|
234 |
+
$write->query($sql, array($dt, "update", $configurable_product, $product_store));
|
235 |
+
} else {
|
236 |
+
$sql = 'INSERT INTO '. $_tableprefix.'autocompleteplus_batches (product_id,store_id,update_date,action,sku) VALUES (?,?,?,?,?)';
|
237 |
+
$write->query($sql, array($configurable_product, $product_store, $dt, "update", 'ISP_NO_SKU'));
|
238 |
+
}
|
239 |
+
}
|
240 |
+
}
|
241 |
+
}
|
242 |
}
|
243 |
|
244 |
}catch(Exception $e){
|
app/code/local/Autocompleteplus/Autosuggest/controllers/ResultController.php
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once(Mage::getModuleDir('controllers','Mage_CatalogSearch') . DS . 'ResultController.php');
|
4 |
+
|
5 |
+
class Autocompleteplus_Autosuggest_ResultController extends Mage_CatalogSearch_ResultController
|
6 |
+
{
|
7 |
+
}
|
app/code/local/Autocompleteplus/Autosuggest/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Autocompleteplus_Autosuggest>
|
5 |
-
<version>2.0.
|
6 |
<url>http://autocompleteplus.com/</url>
|
7 |
<modulename>Autocompleteplus_Autosuggest</modulename>
|
8 |
</Autocompleteplus_Autosuggest>
|
@@ -185,6 +185,13 @@
|
|
185 |
</updates>
|
186 |
</layout>
|
187 |
<routers>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
<autocompleteplus>
|
189 |
<use>standard</use>
|
190 |
<args>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Autocompleteplus_Autosuggest>
|
5 |
+
<version>2.0.8.0</version>
|
6 |
<url>http://autocompleteplus.com/</url>
|
7 |
<modulename>Autocompleteplus_Autosuggest</modulename>
|
8 |
</Autocompleteplus_Autosuggest>
|
185 |
</updates>
|
186 |
</layout>
|
187 |
<routers>
|
188 |
+
<instantsearchplus>
|
189 |
+
<use>standard</use>
|
190 |
+
<args>
|
191 |
+
<module>Autocompleteplus_Autosuggest</module>
|
192 |
+
<frontName>instantsearchplus</frontName>
|
193 |
+
</args>
|
194 |
+
</instantsearchplus>
|
195 |
<autocompleteplus>
|
196 |
<use>standard</use>
|
197 |
<args>
|
app/design/frontend/base/default/layout/autocompleteplus.xml
CHANGED
@@ -6,7 +6,7 @@
|
|
6 |
<block type="autocompleteplus_autosuggest/autocomplete" />
|
7 |
</reference>
|
8 |
</default>
|
9 |
-
<
|
10 |
<reference name="catalogsearch.leftnav">
|
11 |
<action method="setTemplate" ifconfig="autocompleteplus/config/layered">
|
12 |
<value>autocompleteplus/catalog/layer/view.phtml</value>
|
@@ -17,5 +17,14 @@
|
|
17 |
<value>autocompleteplus/catalog/product/list.phtml</value>
|
18 |
</action>
|
19 |
</reference>
|
20 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
</layout>
|
6 |
<block type="autocompleteplus_autosuggest/autocomplete" />
|
7 |
</reference>
|
8 |
</default>
|
9 |
+
<autocompleteplus>
|
10 |
<reference name="catalogsearch.leftnav">
|
11 |
<action method="setTemplate" ifconfig="autocompleteplus/config/layered">
|
12 |
<value>autocompleteplus/catalog/layer/view.phtml</value>
|
17 |
<value>autocompleteplus/catalog/product/list.phtml</value>
|
18 |
</action>
|
19 |
</reference>
|
20 |
+
</autocompleteplus>
|
21 |
+
<autocompleteplus_result_index>
|
22 |
+
<update handle="autocompleteplus"/>
|
23 |
+
<remove name="search.result"/>
|
24 |
+
<remove name="left"/>
|
25 |
+
<reference name="content">
|
26 |
+
<block type="catalog/product_list" name="search_result_list" template="autocompleteplus/catalog/product/list.phtml"/>
|
27 |
+
<!-- <block type=“core/template” name="search_result_list" template="autocompleteplus/catalog/product/list.phtml"/> -->
|
28 |
+
</reference>
|
29 |
+
</autocompleteplus_result_index>
|
30 |
</layout>
|
app/design/frontend/base/default/template/autocompleteplus/catalog/product/list.phtml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
$store_id = Mage::app()->getStore()->getStoreId();
|
3 |
$auto_config = Mage::getModel('autocompleteplus_autosuggest/config')->getCollection()->getData();
|
4 |
$uuid = $auto_config[0]['licensekey'];
|
5 |
-
$query = Mage::app()->getRequest()->getParam('q');
|
6 |
|
7 |
try{
|
8 |
// prevent js injection - Remove query with <script>
|
2 |
$store_id = Mage::app()->getStore()->getStoreId();
|
3 |
$auto_config = Mage::getModel('autocompleteplus_autosuggest/config')->getCollection()->getData();
|
4 |
$uuid = $auto_config[0]['licensekey'];
|
5 |
+
$query = htmlentities(Mage::app()->getRequest()->getParam('q'), ENT_QUOTES);
|
6 |
|
7 |
try{
|
8 |
// prevent js injection - Remove query with <script>
|
package.xml
CHANGED
@@ -1,21 +1,22 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>autocompleteplus_autosuggest</name>
|
4 |
-
<version>2.0.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.autocompleteplus.com/privacy">AC+</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>AutoComplete+ InstantSearch</summary>
|
10 |
<description>AutoComplete+ InstantSearch triples visitor conversion, optimizes search, and offers promotions through state-of-the-art contextual suggestions dropdown. Since suggestions are lightning fast, accurate, and contextual - visitors find exactly what they want - faster.</description>
|
11 |
-
<notes
|
12 |
-
*
|
13 |
-
*
|
|
|
14 |
</notes>
|
15 |
<authors><author><name>Adar</name><user>Adar</user><email>magento@autocompleteplus.com</email></author></authors>
|
16 |
-
<date>2015-
|
17 |
-
<time>
|
18 |
-
<contents><target name="magelocal"><dir name="Autocompleteplus"><dir name="Autosuggest"><dir name="Adminhtml"><dir name="Model"><file name="Attributes.php" hash="4fc7b546eb9cbff0b5067bc09fb62597"/><file name="Button.php" hash="afd78d0d80b4af60ea70fcfcffea5d8b"/></dir></dir><dir name="Block"><dir name="Adminhtml"><file name="Button.php" hash="e0a2fe4d412ebdf8cabc01fa4c224e6e"/><file name="Process.php" hash="aa23776a49fb4fae3f7a9891155608c2"/><file name="Sync.php" hash="033d8bbf1f2aa68582ff56d87ee7f4c7"/></dir><file name="Autocomplete.php" hash="3a63d5c743d8dda3552f8c0b717c8d2e"/><file name="Autocorrection.php" hash="08da843c04cf9176cefb8588a0da3e77"/><file name="Inject.php" hash="
|
19 |
<compatible/>
|
20 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
21 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>autocompleteplus_autosuggest</name>
|
4 |
+
<version>2.0.8.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.autocompleteplus.com/privacy">AC+</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>AutoComplete+ InstantSearch</summary>
|
10 |
<description>AutoComplete+ InstantSearch triples visitor conversion, optimizes search, and offers promotions through state-of-the-art contextual suggestions dropdown. Since suggestions are lightning fast, accurate, and contextual - visitors find exactly what they want - faster.</description>
|
11 |
+
<notes>* Additional stock management for configurable products bug fix
|
12 |
+
* Search results page - quick view selection option for configurable product variation & add-to-cart
|
13 |
+
* Warning fix on file_get_contents(...)
|
14 |
+

|
15 |
</notes>
|
16 |
<authors><author><name>Adar</name><user>Adar</user><email>magento@autocompleteplus.com</email></author></authors>
|
17 |
+
<date>2015-11-04</date>
|
18 |
+
<time>15:08:54</time>
|
19 |
+
<contents><target name="magelocal"><dir name="Autocompleteplus"><dir name="Autosuggest"><dir name="Adminhtml"><dir name="Model"><file name="Attributes.php" hash="4fc7b546eb9cbff0b5067bc09fb62597"/><file name="Button.php" hash="afd78d0d80b4af60ea70fcfcffea5d8b"/></dir></dir><dir name="Block"><dir name="Adminhtml"><file name="Button.php" hash="e0a2fe4d412ebdf8cabc01fa4c224e6e"/><file name="Process.php" hash="aa23776a49fb4fae3f7a9891155608c2"/><file name="Sync.php" hash="033d8bbf1f2aa68582ff56d87ee7f4c7"/></dir><file name="Autocomplete.php" hash="3a63d5c743d8dda3552f8c0b717c8d2e"/><file name="Autocorrection.php" hash="08da843c04cf9176cefb8588a0da3e77"/><file name="Inject.php" hash="c8eaa1f845d65fd50327b2782e0555a1"/><file name="Notifications.php" hash="825fcc830917a22aff36e859fd63b16f"/></dir><dir name="Helper"><file name="Data.php" hash="f70246d91906dada414f9a8c1a99eee9"/></dir><dir name="Model"><dir name="Adminhtml"><file name="Attributes.php" hash="1e321486e5c3bea159e4a7d8a79926ab"/></dir><dir name="Api"><file name="V2.php" hash="f7bfd6626466de0fe860484ab2bc7a00"/></dir><file name="Api.php" hash="4dd5882dcfd219087c1cec3cff46f7a9"/><file name="Catalog.php" hash="6c42d3e59d9dfd05d23eff2669b61fd3"/><file name="Catalogreport.php" hash="05f88adba656366d814f259056f92c73"/><file name="Config.php" hash="57d8e278d1cd13fea31504ee8f8ee304"/><file name="Layer.php" hash="ef1b5ddaa4fd12354e349d64f09ba1af"/><dir name="Mysql4"><dir name="Config"><file name="Collection.php" hash="110486b53b74e5b1cba1d552814a4b7c"/></dir><file name="Config.php" hash="991a9f1e674756a0a57577febb2f48cd"/><dir name="Fulltext"><file name="Collection.php" hash="709f6d0a955ec7bc1d31c577858101e6"/></dir><file name="Fulltext.php" hash="eada3fc83bd7976d8e3a38f8bb6e0e5f"/><dir name="Notifications"><file name="Collection.php" hash="d306a8690255ba7c444d30f94f780df4"/></dir><file name="Notifications.php" hash="c74b9b6a8f639318c828d3d5984bcf5d"/><dir name="Pusher"><file name="Collection.php" hash="28f0c11f2a3dd26fd06c508a342becd9"/></dir><file name="Pusher.php" hash="9337bd6a280f35f4694e7a1351f39e7d"/></dir><file name="Notifications.php" hash="6467b4765964afba40e452e564c7347d"/><file name="Observer.php" hash="785d7456a5763165c1ffffcaab0f9e7a"/><file name="Pusher.php" hash="cb55bd677f131dc4370429c2cb485be9"/><dir name="Resource"><dir name="Fulltext"><file name="Collection.php" hash="2492156a0fffde6aa7a62f596d8b30ca"/></dir></dir><file name="Service.php" hash="2c1e4d7764f7d99d2f54e442f3652918"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="PushController.php" hash="f92822911e861c39e2bb50eb1ccc1d14"/><file name="RedirectController.php" hash="2bdc7574edfc293bde1e89c87a9b6ce1"/></dir><dir name="CatalogSearch"><file name="ResultController.php" hash="67333080dc7d7cf748667b53616f1457"/></dir><file name="CatalogsearchController.php" hash="0327c979fc357504147d7caff7079d69"/><file name="CategoriesController.php" hash="38e9551dd84f4f9fad2ccebde1f8bf77"/><file name="LayeredController.php" hash="f43274329a4e8cfbae6c994beea25653"/><file name="ProductsController.php" hash="072d5527963e5022ce02344d17ffc234"/><file name="ProductsbyidController.php" hash="5705ccffaba0d594d6e64bdb0fa95715"/><file name="ResultController.php" hash="1c0df6c89ec836c305105342ced5c400"/><file name="SearchesController.php" hash="344ab1717d1b25d746d033074ae22ade"/></dir><dir name="etc"><file name="adminhtml.xml" hash="aceab8126257d9afbb4a2bc9be994ac5"/><file name="api.xml" hash="25ab859fc8312c4aa308f2e3306c6b66"/><file name="cache.xml" hash="b57472bc9410d67af3843825fba5b420"/><file name="config.xml" hash="dac3b61194905c9b60c58fb164fe199f"/><file name="config_no_fulltext.xml" hash="1ed15add3a2968ddc9b21504a2b2aea7"/><file name="config_with_crontab.xml" hash="3ea8556899a84435c11c6f526bccec27"/><file name="system.xml" hash="6bed22fbdfc336254126cf4a8c49aa09"/><file name="wsdl.xml" hash="97b1503c710c79376cd85e7f971c1587"/></dir><dir name="sql"><dir name="autosuggest_setup"><file name="mysql4-install-2.0.1.1.php" hash="fd4018c6752ba72af7af2f5f14a0dc12"/><file name="mysql4-upgrade-2.0.1.3-2.0.2.2.php" hash="275c674ba7ef38beb03d20dd16c56d79"/><file name="mysql4-upgrade-2.0.2.5-2.0.2.6.php" hash="4db99239287c64410ac1d7abf6517b59"/><file name="mysql4-upgrade-2.0.4.6-2.0.4.7.php" hash="9a37396d35fec0e3b911455ec61b18d6"/><file name="mysql4-upgrade-2.0.5.4-2.0.5.5.php" hash="2f43b1c32617ea88ef02bab870788807"/><file name="mysql4-upgrade-2.0.5.6-2.0.5.7.php" hash="6a77ea58afed1b6937f0c6d0aa831392"/><file name="mysql4-upgrade-2.0.6.1-2.0.6.4.php" hash="fa5411870fa2eef5ed21a6db1373b651"/><file name="mysql4-upgrade-2.0.7.0-2.0.7.1.php" hash="02c07e5d0c94299165dce4bd140ee547"/><file name="mysql4-upgrade-2.0.7.2-2.0.7.3.php" hash="9ea280adb0ba238fcb6b92b0fe86219b"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Autocompleteplus_Autosuggest.xml" hash="e2279cfe50ac070fcfabcf9d327a25fc"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="autocompleteplus.xml" hash="d590c20a909c4201485ffccc501db702"/></dir><dir name="template"><dir name="autocompleteplus"><dir name="catalog"><dir name="layer"><file name="view.phtml" hash="57066d2ac5fa051c15c3ed8bb43b5d08"/></dir><dir name="product"><file name="list.phtml" hash="50977af122c417fd534f372be86a03cc"/></dir></dir><file name="inject.phtml" hash="8cdcb15176db3b14c9c135e87d31e7ad"/><file name="inject_new.phtml" hash="e1e8e050631fe65417edb7a8f25155c8"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="autocompleteplus"><file name="notifications.phtml" hash="88db09b9c262104a73886aa7e7efef1e"/><file name="notifications_old.php" hash="8824edf5a99aa011a1d123233b6a513d"/><dir name="system"><dir name="config"><file name="button.phtml" hash="4762e2343ede91cdee6ecdbf1fd85030"/><file name="sync.phtml" hash="e0392aac8584e98ef4260419750e1cbb"/></dir></dir></dir></dir><dir name="layout"><file name="autocompleteplus.xml" hash="939f8a52905dfef7b81a0f4552042376"/></dir></dir></dir></dir></target></contents>
|
20 |
<compatible/>
|
21 |
<dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
|
22 |
</package>
|