SearchSpring_Manager - Version 2.0.8

Version Notes

Allowed for passing image file to image helper to override image.
Added Product Review count to feed data.
Limiting configurable options labels based on simple product stock availability, this applies when the corresponding setting: 'Display out of stock products' is set to yes.

Download this release

Release Info

Developer SearchSpring Development Team
Extension SearchSpring_Manager
Version 2.0.8
Comparing to
See all releases


Code changes from version 2.0.6 to 2.0.8

app/code/community/SearchSpring/Manager/Builder/OperationBuilder.php CHANGED
@@ -183,8 +183,10 @@ class SearchSpring_Manager_Builder_OperationBuilder
183
  throw new UnexpectedValueException('Class name must not be null');
184
  }
185
 
 
 
186
  $class = ($useClassPrefix) ? $this->classPrefix . $this->className : $this->className;
187
- $operation = new $class($this->sanitizer, $this->records, $parameters);
188
 
189
  $class = 'SearchSpring_Manager_Operation_Product';
190
  if (!$operation instanceof $class) {
183
  throw new UnexpectedValueException('Class name must not be null');
184
  }
185
 
186
+ $hlp = Mage::helper('searchspring_manager');
187
+
188
  $class = ($useClassPrefix) ? $this->classPrefix . $this->className : $this->className;
189
+ $operation = new $class($this->sanitizer, $this->records, $parameters, $hlp->getConfig());
190
 
191
  $class = 'SearchSpring_Manager_Operation_Product';
192
  if (!$operation instanceof $class) {
app/code/community/SearchSpring/Manager/Helper/Catalog/Image.php CHANGED
@@ -33,8 +33,11 @@ class SearchSpring_Manager_Helper_Catalog_Image extends Mage_Catalog_Helper_Imag
33
  // Overriding this, so we're not calling set base file on our image model initially
34
  public function init(Mage_Catalog_Model_Product $product, $attributeName, $imageFile=null)
35
  {
36
- $attributeValue = $product->getData($attributeName);
37
- return parent::init($product, $attributeName, $attributeValue);
 
 
 
38
  }
39
 
40
  public function ifCachedGetUrl()
33
  // Overriding this, so we're not calling set base file on our image model initially
34
  public function init(Mage_Catalog_Model_Product $product, $attributeName, $imageFile=null)
35
  {
36
+ if(is_null($imageFile)) {
37
+ $imageFile = $product->getData($attributeName);
38
+ }
39
+
40
+ return parent::init($product, $attributeName, $imageFile);
41
  }
42
 
43
  public function ifCachedGetUrl()
app/code/community/SearchSpring/Manager/Operation/Product.php CHANGED
@@ -50,10 +50,16 @@ abstract class SearchSpring_Manager_Operation_Product implements SearchSpring_Ma
50
  public function __construct(
51
  SearchSpring_Manager_String_Sanitizer $sanitizer,
52
  SearchSpring_Manager_Entity_RecordsCollection $records,
53
- array $parameters = array()
 
54
  ) {
 
 
 
 
55
  $this->sanitizer = $sanitizer;
56
  $this->records = $records;
 
57
  $this->parameters = $parameters;
58
  }
59
 
@@ -119,6 +125,15 @@ abstract class SearchSpring_Manager_Operation_Product implements SearchSpring_Ma
119
  return $this->parameters[$key];
120
  }
121
 
 
 
 
 
 
 
 
 
 
122
  /**
123
  * {@inheritdoc}
124
  */
@@ -132,5 +147,4 @@ abstract class SearchSpring_Manager_Operation_Product implements SearchSpring_Ma
132
  public function prepare($productCollection) {
133
  return $this;
134
  }
135
-
136
  }
50
  public function __construct(
51
  SearchSpring_Manager_String_Sanitizer $sanitizer,
52
  SearchSpring_Manager_Entity_RecordsCollection $records,
53
+ array $parameters = array(),
54
+ SearchSpring_Manager_Model_Config $config = NULL
55
  ) {
56
+ if(is_null($config)) {
57
+ $config = Mage::helper('searchspring_manager')->getConfig();
58
+ }
59
+
60
  $this->sanitizer = $sanitizer;
61
  $this->records = $records;
62
+ $this->config = $config;
63
  $this->parameters = $parameters;
64
  }
65
 
125
  return $this->parameters[$key];
126
  }
127
 
128
+ /**
129
+ * Gets the config object
130
+ *
131
+ * @return SearchSpring_Manager_Model_Config
132
+ */
133
+ protected final function getConfig() {
134
+ return $this->config;
135
+ }
136
+
137
  /**
138
  * {@inheritdoc}
139
  */
147
  public function prepare($productCollection) {
148
  return $this;
149
  }
 
150
  }
app/code/community/SearchSpring/Manager/Operation/Product/SetCoreFields.php CHANGED
@@ -131,14 +131,40 @@ class SearchSpring_Manager_Operation_Product_SetCoreFields extends SearchSpring_
131
  /** @var Mage_Catalog_Model_Product_Type_Configurable $typeInstance */
132
  $typeInstance = $product->getTypeInstance(true);
133
 
134
- /** @var Mage_Catalog_Model_Product_Type_Configurable_Attribute $attribute */
135
- foreach ($typeInstance->getConfigurableAttributesAsArray($product) as $attribute) {
136
- foreach ($attribute['values'] as $value) {
137
- $this->getRecords()->add($attribute['attribute_code'], $value['label']);
138
- }
139
  }
140
 
 
141
  $children = $typeInstance->getUsedProducts(null, $product);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  $childQuantity = $this->getQuantityForChildren($children);
143
 
144
  break;
131
  /** @var Mage_Catalog_Model_Product_Type_Configurable $typeInstance */
132
  $typeInstance = $product->getTypeInstance(true);
133
 
134
+ $attributes = array();
135
+ foreach ($typeInstance->getConfigurableAttributes($product) as $attribute) {
136
+ $attributes[] = $attribute->getProductAttribute()->getAttributeCode();
 
 
137
  }
138
 
139
+ $displayOos = $this->getConfig()->isOutOfStockIndexingEnabled($product->getStoreId());
140
  $children = $typeInstance->getUsedProducts(null, $product);
141
+
142
+ $attributeValues = array();
143
+ foreach($children as $child) {
144
+ $stockItem = $child->getStockItem();
145
+
146
+ if(
147
+ // Check the stockItem even exists, customers are stupid
148
+ is_object($stockItem) && method_exists($stockItem, 'getIsInStock') &&
149
+ // If not indexing out of stock products, skip out of stock options
150
+ !$stockItem->getIsInStock() && !$displayOos
151
+ ) {
152
+ continue;
153
+ }
154
+
155
+ foreach($attributes as $attribute) {
156
+ $attributeValues[$attribute][] = $child->getAttributeText($attribute);
157
+ }
158
+
159
+ }
160
+
161
+ foreach($attributeValues as $attribute => $values) {
162
+ $values = array_unique($values);
163
+ foreach($values as $value) {
164
+ $this->getRecords()->add($attribute, $value);
165
+ }
166
+ }
167
+
168
  $childQuantity = $this->getQuantityForChildren($children);
169
 
170
  break;
app/code/community/SearchSpring/Manager/Operation/Product/SetImages.php CHANGED
@@ -31,17 +31,18 @@ class SearchSpring_Manager_Operation_Product_SetImages extends SearchSpring_Mana
31
  protected $_imageHeight;
32
  protected $_imageWidth;
33
 
34
-
35
  public function __construct(
36
  SearchSpring_Manager_String_Sanitizer $sanitizer,
37
  SearchSpring_Manager_Entity_RecordsCollection $records,
38
- array $parameters = array()
 
39
  ) {
40
- parent::__construct($sanitizer, $records, $parameters);
41
 
42
- if(Mage::helper('searchspring_manager')->isCacheImagesEnabled()) {
43
- $this->_imageWidth = Mage::helper('searchspring_manager')->getImageWidth();
44
- $this->_imageHeight = Mage::helper('searchspring_manager')->getImageHeight();
45
 
46
  if (empty($this->_imageWidth)) {
47
  if (!empty($this->_imageHeight)) {
@@ -60,7 +61,7 @@ class SearchSpring_Manager_Operation_Product_SetImages extends SearchSpring_Mana
60
 
61
  }
62
  }
63
-
64
  /**
65
  * Set magento product options to the feed
66
  *
@@ -75,7 +76,7 @@ class SearchSpring_Manager_Operation_Product_SetImages extends SearchSpring_Mana
75
  $this->getRecords()->set(self::FEED_IMAGE_URL, $mediaBaseUrl . self::PREFIX_MEDIA_PRODUCT . $product->getData('image'));
76
  $this->getRecords()->set(self::FEED_THUMBNAIL_URL, $mediaBaseUrl . self::PREFIX_MEDIA_PRODUCT . $product->getData('thumbnail'));
77
 
78
- if(Mage::helper('searchspring_manager')->isCacheImagesEnabled()) {
79
 
80
  /** @var SearchSpring_Manager_Helper_Catalog_Image $imageHelper */
81
  $imageHelper = Mage::helper('searchspring_manager/catalog_image');
31
  protected $_imageHeight;
32
  protected $_imageWidth;
33
 
34
+
35
  public function __construct(
36
  SearchSpring_Manager_String_Sanitizer $sanitizer,
37
  SearchSpring_Manager_Entity_RecordsCollection $records,
38
+ array $parameters = array(),
39
+ SearchSpring_Manager_Model_Config $config = NULL
40
  ) {
41
+ parent::__construct($sanitizer, $records, $parameters, $config);
42
 
43
+ if($this->config->isCacheImagesEnabled()) {
44
+ $this->_imageWidth = $this->config->getImageWidth();
45
+ $this->_imageHeight = $this->config->getImageHeight();
46
 
47
  if (empty($this->_imageWidth)) {
48
  if (!empty($this->_imageHeight)) {
61
 
62
  }
63
  }
64
+
65
  /**
66
  * Set magento product options to the feed
67
  *
76
  $this->getRecords()->set(self::FEED_IMAGE_URL, $mediaBaseUrl . self::PREFIX_MEDIA_PRODUCT . $product->getData('image'));
77
  $this->getRecords()->set(self::FEED_THUMBNAIL_URL, $mediaBaseUrl . self::PREFIX_MEDIA_PRODUCT . $product->getData('thumbnail'));
78
 
79
+ if($this->config->isCacheImagesEnabled()) {
80
 
81
  /** @var SearchSpring_Manager_Helper_Catalog_Image $imageHelper */
82
  $imageHelper = Mage::helper('searchspring_manager/catalog_image');
app/code/community/SearchSpring/Manager/Operation/Product/SetRatings.php CHANGED
@@ -20,6 +20,7 @@ class SearchSpring_Manager_Operation_Product_SetRatings extends SearchSpring_Man
20
  const FEED_RATING_PERCENTAGE = 'rating_percentage';
21
  const FEED_RATING_STAR = 'rating_star';
22
  const FEED_RATING_COUNT = 'rating_count';
 
23
  /**#@-*/
24
 
25
  /**
@@ -34,22 +35,25 @@ class SearchSpring_Manager_Operation_Product_SetRatings extends SearchSpring_Man
34
  */
35
  public function perform(Mage_Catalog_Model_Product $product)
36
  {
37
- $votes = Mage::getModel('rating/rating_option_vote')
38
  ->getResourceCollection()
39
- ->setEntityPkFilter($product->getId())
40
- ->load();
 
41
 
42
- $ratings = array();
43
- foreach ($votes as $vote) {
44
- $ratings[] = $vote['percent'];
 
45
  }
46
 
47
- $ratingCount = count($votes);
48
 
49
  $ratingPercentage = (0 === $ratingCount) ? 0 : array_sum($ratings) / $ratingCount;
50
  $this->getRecords()->set(self::FEED_RATING_PERCENTAGE, $ratingPercentage);
51
  $this->getRecords()->set(self::FEED_RATING_STAR, round($ratingPercentage / 20));
52
  $this->getRecords()->set(self::FEED_RATING_COUNT, $ratingCount);
 
53
 
54
  return $this;
55
  }
20
  const FEED_RATING_PERCENTAGE = 'rating_percentage';
21
  const FEED_RATING_STAR = 'rating_star';
22
  const FEED_RATING_COUNT = 'rating_count';
23
+ const FEED_REVIEWS_COUNT = 'reviews_count';
24
  /**#@-*/
25
 
26
  /**
35
  */
36
  public function perform(Mage_Catalog_Model_Product $product)
37
  {
38
+ $reviews = Mage::getModel('review/review')
39
  ->getResourceCollection()
40
+ ->addEntityFilter('product', $product->getId())
41
+ ->addStatusFilter(Mage_Review_Model_Review::STATUS_APPROVED)
42
+ ->addRateVotes();
43
 
44
+ foreach($reviews->getItems() as $review) {
45
+ foreach($review->getRatingVotes() as $vote) {
46
+ $ratings[] = $vote->getPercent();
47
+ }
48
  }
49
 
50
+ $ratingCount = count($ratings);
51
 
52
  $ratingPercentage = (0 === $ratingCount) ? 0 : array_sum($ratings) / $ratingCount;
53
  $this->getRecords()->set(self::FEED_RATING_PERCENTAGE, $ratingPercentage);
54
  $this->getRecords()->set(self::FEED_RATING_STAR, round($ratingPercentage / 20));
55
  $this->getRecords()->set(self::FEED_RATING_COUNT, $ratingCount);
56
+ $this->getRecords()->set(self::FEED_REVIEWS_COUNT, count($reviews));
57
 
58
  return $this;
59
  }
app/code/community/SearchSpring/Manager/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <SearchSpring_Manager>
5
- <version>2.0.6</version>
6
  </SearchSpring_Manager>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <SearchSpring_Manager>
5
+ <version>2.0.8</version>
6
  </SearchSpring_Manager>
7
  </modules>
8
  <global>
package.xml CHANGED
@@ -1,2 +1,4 @@
1
  <?xml version="1.0"?>
2
- <package><name>SearchSpring_Manager</name><version>2.0.6</version><stability>stable</stability><license>SearchSpring Terms of Service</license><channel>community</channel><extends></extends><summary>Connects your Magento store to SearchSpring's subscription-based site search and category navigation services.</summary><description>SearchSpring improves the default Magento site search. Providing merchants with flexible, learning technology that enhances site search functionality, optimizes product results in real-time, allows for custom navigation, automates product SEO and provides fully configurable merchandising. Shoppers will find your products quickly and easily, generating repeat visits and increased sales!</description><notes>Fixed server error when encountering products with no stock_item when counting inventory.</notes><authors><author><name>SearchSpring Development Team</name><user>searchspring</user><email>info@searchspring.com</email></author></authors><date>2015-06-08</date><time>13:07:35</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="js"><dir name="searchspring"><file name="jquery-1.11.1.min.js" hash="8101d596b2b8fa35fe3a634ea342d7c3"/><file name="setup.js" hash="ca141997bdcff0380f07fbf268b92651"/></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="searchspring"><dir name="css"><file name="styles.css" hash="95f1ec4a442f0e2239f9a2db9e6e517c"/></dir></dir></dir></dir></dir></dir><dir name="app"><dir name="code"><dir name="community"><dir name="SearchSpring"><file name="ErrorCodes.php" hash="fd8f65524b8f8708471f106aad294d0a"/><dir name="Manager"><file name="Collection.php" hash="0ebd621892bccd5d59ed3edcafada89b"/><file name="Iterator.php" hash="6f68effbe5452c1a6abd97cbf4b528ee"/><dir name="Generator"><file name="ProductGenerator.php" hash="69147879853105d0a388596b479a0b81"/></dir><dir name="Transformer"><file name="ProductCollectionToRecordCollectionTransformer.php" hash="d9cb83ae72b6a30ed0c3b978f16ebdef"/></dir><dir name="sql"><dir name="searchspring_manager"><file name="mysql4-data-upgrade-1.10.2-2.0.0.php" hash="b27aae0f397c5d938a29dc12f6bbd4c8"/><file name="mysql4-install-1.0.0.php" hash="c0de6de0b74290978f65d7896768e89f"/><file name="mysql4-upgrade-0.4.0-1.0.0.php" hash="1f59325ef181499292deb7775a5e4dc2"/></dir></dir><dir name="Strategy"><file name="PricingStrategy.php" hash="ee021066a76db7fc2710e329daed1a4b"/><dir name="Pricing"><file name="BundleStrategy.php" hash="df2aee59e4a6ff19acf13bbc5f9ad5b9"/><file name="ConfigurableStrategy.php" hash="403e8298c4799ba2b7701255db86a941"/><file name="GroupedStrategy.php" hash="383c482098f502d6cde5dd9ed5cf9e13"/><file name="SimpleStrategy.php" hash="a1b9e7bae38c2def28a7b0a9e6fd456e"/><file name="Strategy.php" hash="9d0fda2a4ff168ab319fd0c2240501fd"/></dir></dir><dir name="Helper"><file name="Data.php" hash="c9cca0128a2d189517dba33a3fb73d9b"/><file name="Http.php" hash="b5922b50413d60818d8ef63649edfff3"/><file name="Oauth.php" hash="2344a2130c68af5cc166b02b6bd40026"/><file name="Product.php" hash="2d49e1559dc1fb38a5796a42293ae796"/><file name="Profiler.php" hash="9b9c63773b74a974ccf20648aa6a2f20"/><file name="Webservice.php" hash="88b592aa459f8e6fa1d855e5b94e5597"/><dir name="Catalog"><file name="Image.php" hash="00c7be2874011db790e9e05d394d90d4"/></dir></dir><dir name="Validator"><file name="ProductValidator.php" hash="b73a3cee6124c74c6433acb0552ae4bc"/></dir><dir name="etc"><file name="adminhtml.xml" hash="879a64f061de25cbd1292f4ead6c5b15"/><file name="api2.xml" hash="c958f2f25b6fcd0b467dc20fb945f1b4"/><file name="config.xml" hash="ce4a4e9d9a1e96203560acd87b5644eb"/><file name="readme.md" hash="30d24e1aae89696090dcf22203802ad2"/><file name="system.xml" hash="a2854dfd977765e195ddf4a95ffa5abe"/></dir><dir name="Request"><file name="JSON.php" hash="541d9331b620bc92820abe5630824e41"/></dir><dir name="Model"><file name="Config.php" hash="2c508f903cd39c251e993fa1ae95b59d"/><file name="Layer.php" hash="eede52743afa3f0f178ad81a4e5681bb"/><file name="Observer.php" hash="bf0973d689ac56e9de59f9ddeed95eeb"/><file name="Source.php" hash="a27000dc01a8778c33bccf88dc76346e"/><dir name="Api2"><dir name="Auth"><file name="Adapter.php" hash="bdf620903d412f1da7cc596d6c54b618"/></dir><dir name="Indexing"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="6a52b0077bfb5376f749ff60b77bb6d8"/></dir></dir></dir></dir><dir name="Catalog"><dir name="Category"><dir name="Attribute"><dir name="EnableSearchSpring"><file name="Backend.php" hash="12d9799f273951ca22717df93088e6bb"/><file name="Source.php" hash="03fad199c925e07fffd5e42f63cbb1bb"/></dir></dir></dir><dir name="Product"><file name="Image.php" hash="29f549e5d2fbe5c04360327fadcf79f4"/></dir></dir><dir name="Layer"><dir name="Filter"><file name="SearchSpring.php" hash="128a0a569e7d7a4e19b74bc947a4c01a"/><file name="SearchSpringCategory.php" hash="6654bdad88ca43917dbe072b6dfb21f8"/><file name="SearchSpringCategoryItem.php" hash="2dc143031706d2c6a7f4481ef7434bf4"/><file name="SearchSpringItem.php" hash="459fae0c48c411a58ae885d56124b1f3"/></dir></dir><dir name="Oauth"><file name="Server.php" hash="c5c2df03bc419caa49c8b1e3fe7d50ac"/></dir><dir name="Source"><file name="Abstract.php" hash="965bfb89b539db821a75dd71ef7e7d5f"/></dir><dir name="Observer"><file name="CategorySaveObserver.php" hash="c7906db422635d9f2b19831f52ecc896"/><file name="ConfigObserver.php" hash="ff66abc4f6bbd5dcd245ea8e33684288"/><file name="ProductSaveObserver.php" hash="4a1926a7e8c598e20bdb4724036506c0"/></dir></dir><dir name="controllers"><file name="GenerateController.php" hash="31adf11522a1f43df0645c7997ed6245"/></dir><dir name="ThirdParty"><dir name="Amasty"><file name="LabelsOperation.php" hash="99479aae0bb856c5b43a44ec9d741eef"/></dir><dir name="TBT"><file name="RewardsOperation.php" hash="7e17b6205037de39c4154c7f4041836d"/></dir></dir><dir name="String"><file name="Sanitizer.php" hash="e89fa5f86714621ea554aea9aa3f796c"/></dir><dir name="Factory"><file name="ApiFactory.php" hash="ad09b49e1b294325bd3eb99e17849bb2"/><file name="GeneratorFactory.php" hash="8d61b22ccae2ac404bfbbd0ac1a727d7"/><file name="IndexingRequestBodyFactory.php" hash="10e0717f6d938a06a9cfc68f6ac1ceaf"/><file name="LiveIndexerFactory.php" hash="18758a1c85075231ce995506f10a2440"/><file name="PricingFactory.php" hash="bbba11efb7a2fd6ebf8c47d896c365a2"/><file name="SearchRequestBodyFactory.php" hash="f2e1f13f20bc15255f9d755ba6f20b23"/></dir><dir name="Block"><dir name="Layer"><file name="View.php" hash="ae69c24e04b03048cc2cd9b7cc436603"/><dir name="Filter"><file name="SearchSpringCategory.php" hash="39fc479e15275db637c227e596d040f5"/><file name="SearchSpringList.php" hash="743bb9cb690c9df3d74e9de2c206d020"/></dir></dir><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Field"><file name="Timespan.php" hash="04e13b7375f1d57195aae385256c1274"/></dir><dir name="Fieldset"><file name="Hint.php" hash="68f5052c08e8887d20029e19a2fdc978"/><file name="Setup.php" hash="a95194865d467b36146c043607e544b8"/></dir></dir></dir></dir></dir><dir name="Handler"><file name="ApiErrorHandler.php" hash="a287ed86d8d83a88b5a8f555015f2e80"/></dir><dir name="Builder"><file name="OperationBuilder.php" hash="d85ad0a561091d34b3b98efd95646962"/></dir><dir name="Entity"><file name="Credentials.php" hash="5b151a569bceffed81350454655bf9d9"/><file name="IndexingRequestBody.php" hash="5a492e6c16b738ee352ca517af44e479"/><file name="OperationsCollection.php" hash="be19c06bb1be447bd57601e67ac87557"/><file name="ProductDeletionToken.php" hash="978e8c51d9a31aa7bc35cbd5fbd5ae35"/><file name="RecordsCollection.php" hash="c336526a10625a859c093d2b25dff911"/><file name="RequestBody.php" hash="4b6d7fd23f57527e9d53dd938d69a88d"/><file name="RequestCredentials.php" hash="1c2936cf0779322225ceb27e4b8fafb1"/><file name="RequestParams.php" hash="f4778075264cd441c87e8de220fdd2a9"/><file name="SearchCollection.php" hash="e64543d4315c16d7a0717da8ec081e09"/><file name="SearchRequestBody.php" hash="f3f2993d0e8bfac4c0686ef364f978eb"/><file name="SearchResult.php" hash="863a720b8a837bd7e56e8a7fa781a1a1"/><dir name="SearchResult"><file name="Result.php" hash="ea4e36fe95e4c412af8d525a4628db5d"/></dir></dir><dir name="Writer"><file name="ProductWriter.php" hash="c7b218d215e68b5e3076ef654a41b141"/><dir name="Product"><file name="FileWriter.php" hash="b296be56f236635afc20e817e6277c80"/><file name="ResponseWriter.php" hash="c1af0cc22a9e823ec07175e2d8e34c9f"/><dir name="Params"><file name="FileWriterParams.php" hash="728da0fc1385ed651be354af370b34d0"/><file name="ResponseWriterParams.php" hash="bf66753a5952a78c0049f69ccaa6e74d"/></dir></dir></dir><dir name="Service"><file name="LiveIndexer.php" hash="e952b80d171fef13c3e96c24d9313963"/><dir name="SearchSpring"><file name="ApiAdapter.php" hash="9ce66dddd09040d69457dc1735440b71"/><file name="IndexingApiAdapter.php" hash="da876af1440547abae4f1dbe6b25b3bf"/><file name="SearchApiAdapter.php" hash="bda32ec16f53054e75fb331ffcc0c155"/></dir></dir><dir name="Provider"><file name="ProductCollectionProvider.php" hash="e639e1667ed0f2bc59f2272ad36d3107"/><dir name="ProductCollection"><file name="FeedProvider.php" hash="2238e8b44f24178ef71af1df1b3cba6c"/><file name="ProductProvider.php" hash="56a0aae894f910eddbdced5e4c828668"/></dir></dir><dir name="Operation"><file name="Product.php" hash="03fa9bdacbfc9b9217c2c6bc648f4608"/><file name="ProductOperation.php" hash="a6b554a4314461d9e5b48885169e680e"/><dir name="Product"><file name="SetCategories.php" hash="3db2105af06d6e1851a965289dcff85d"/><file name="SetCoreFields.php" hash="c3509a37759b64be0193a6665a918cf4"/><file name="SetFields.php" hash="8896858d190cadc5b19104120d7a1b58"/><file name="SetId.php" hash="792f08d85b399d57afca103e9d0eabd1"/><file name="SetImages.php" hash="7d0fc10b390fc446c870679e99a80a65"/><file name="SetOptions.php" hash="3db65aee252c0eb6a5c65eac1b641bfb"/><file name="SetPricing.php" hash="a2bb94df706c1c62c5b1cbe26d8afdf6"/><file name="SetRatings.php" hash="d04ad0e2f5e1820b4b8b94880a83aef7"/><file name="SetReport.php" hash="a87c8a98c7f474a19618c7a7be8fdab1"/></dir></dir><dir name="VarienObject"><file name="Data.php" hash="44f184dabbf0db1958d1f922af92f6a8"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="SearchSpring_SearchSpringManager.xml" hash="613ec81afc8d858f60dee96d91719c09"/></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="searchspring"><dir name="manager"><dir name="system"><dir name="config"><dir name="fieldset"><file name="hint.phtml" hash="a0e3da8cd870432cce2849a41aa1c5b9"/><file name="setup.phtml" hash="298e7b2672fb2d4e24e20068138a135c"/><file name="setup_scope.phtml" hash="95e8d1fd92c9f10a940455a3f74e01bb"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="searchspring_manager.xml" hash="32227434f5770ddfd93de42d7feeff71"/></dir><dir name="template"><dir name="searchspring_manager"><dir name="product"><file name="list.phtml" hash="9849b76e4fefac8ce181b428b5c6a148"/><dir name="list"><file name="toolbar.phtml" hash="aa2235708f7e861c63ba3e3e33ec041f"/></dir></dir><dir name="layer"><file name="category_filter.phtml" hash="a9dd8c95a1d63b514cc8e9c5939168c5"/><file name="filter.phtml" hash="79888aac8f72d3597f2980d471237d64"/><file name="state.phtml" hash="168546af0f48a42c31c5a5d66b1de1c3"/><file name="view.phtml" hash="509776f71bc643839ade8d7e025764cb"/></dir></dir></dir></dir></dir></dir></dir><dir name="locale"><dir name="en_US"><dir name="template"><dir name="email"><file name="searchspring_api_error.html" hash="20bc8d923f96ca22dd2fe8cd876c49fe"/></dir></dir></dir></dir></dir></target></contents></package>
 
 
1
  <?xml version="1.0"?>
2
+ <package><name>SearchSpring_Manager</name><version>2.0.8</version><stability>stable</stability><license>SearchSpring Terms of Service</license><channel>community</channel><extends></extends><summary>Connects your Magento store to SearchSpring's subscription-based site search and category navigation services.</summary><description>SearchSpring improves the default Magento site search. Providing merchants with flexible, learning technology that enhances site search functionality, optimizes product results in real-time, allows for custom navigation, automates product SEO and provides fully configurable merchandising. Shoppers will find your products quickly and easily, generating repeat visits and increased sales!</description><notes>Allowed for passing image file to image helper to override image.
3
+ Added Product Review count to feed data.
4
+ Limiting configurable options labels based on simple product stock availability, this applies when the corresponding setting: 'Display out of stock products' is set to yes.</notes><authors><author><name>SearchSpring Development Team</name><user>searchspring</user><email>info@searchspring.com</email></author></authors><date>2015-07-16</date><time>9:32:10</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="app"><dir name="code"><dir name="community"><dir name="SearchSpring"><file name="ErrorCodes.php" hash="fd8f65524b8f8708471f106aad294d0a"/><dir name="Manager"><file name="Collection.php" hash="0ebd621892bccd5d59ed3edcafada89b"/><file name="Iterator.php" hash="6f68effbe5452c1a6abd97cbf4b528ee"/><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Field"><file name="Timespan.php" hash="04e13b7375f1d57195aae385256c1274"/></dir><dir name="Fieldset"><file name="Hint.php" hash="68f5052c08e8887d20029e19a2fdc978"/><file name="Setup.php" hash="a95194865d467b36146c043607e544b8"/></dir></dir></dir></dir><dir name="Layer"><file name="View.php" hash="ae69c24e04b03048cc2cd9b7cc436603"/><dir name="Filter"><file name="SearchSpringCategory.php" hash="39fc479e15275db637c227e596d040f5"/><file name="SearchSpringList.php" hash="743bb9cb690c9df3d74e9de2c206d020"/></dir></dir></dir><dir name="Builder"><file name="OperationBuilder.php" hash="a5d9114bb24bf714894e543438d46c27"/></dir><dir name="controllers"><file name="GenerateController.php" hash="31adf11522a1f43df0645c7997ed6245"/></dir><dir name="Entity"><file name="Credentials.php" hash="5b151a569bceffed81350454655bf9d9"/><file name="IndexingRequestBody.php" hash="5a492e6c16b738ee352ca517af44e479"/><file name="OperationsCollection.php" hash="be19c06bb1be447bd57601e67ac87557"/><file name="ProductDeletionToken.php" hash="978e8c51d9a31aa7bc35cbd5fbd5ae35"/><file name="RecordsCollection.php" hash="c336526a10625a859c093d2b25dff911"/><file name="RequestBody.php" hash="4b6d7fd23f57527e9d53dd938d69a88d"/><file name="RequestCredentials.php" hash="1c2936cf0779322225ceb27e4b8fafb1"/><file name="RequestParams.php" hash="f4778075264cd441c87e8de220fdd2a9"/><file name="SearchCollection.php" hash="e64543d4315c16d7a0717da8ec081e09"/><file name="SearchRequestBody.php" hash="f3f2993d0e8bfac4c0686ef364f978eb"/><file name="SearchResult.php" hash="863a720b8a837bd7e56e8a7fa781a1a1"/><dir name="SearchResult"><file name="Result.php" hash="ea4e36fe95e4c412af8d525a4628db5d"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="879a64f061de25cbd1292f4ead6c5b15"/><file name="api2.xml" hash="c958f2f25b6fcd0b467dc20fb945f1b4"/><file name="config.xml" hash="2e412e5018f3859f656cb595f15553b0"/><file name="readme.md" hash="30d24e1aae89696090dcf22203802ad2"/><file name="system.xml" hash="a2854dfd977765e195ddf4a95ffa5abe"/></dir><dir name="Factory"><file name="ApiFactory.php" hash="ad09b49e1b294325bd3eb99e17849bb2"/><file name="GeneratorFactory.php" hash="8d61b22ccae2ac404bfbbd0ac1a727d7"/><file name="IndexingRequestBodyFactory.php" hash="10e0717f6d938a06a9cfc68f6ac1ceaf"/><file name="LiveIndexerFactory.php" hash="18758a1c85075231ce995506f10a2440"/><file name="PricingFactory.php" hash="bbba11efb7a2fd6ebf8c47d896c365a2"/><file name="SearchRequestBodyFactory.php" hash="f2e1f13f20bc15255f9d755ba6f20b23"/></dir><dir name="Generator"><file name="ProductGenerator.php" hash="69147879853105d0a388596b479a0b81"/></dir><dir name="Handler"><file name="ApiErrorHandler.php" hash="a287ed86d8d83a88b5a8f555015f2e80"/></dir><dir name="Helper"><file name="Data.php" hash="c9cca0128a2d189517dba33a3fb73d9b"/><file name="Http.php" hash="b5922b50413d60818d8ef63649edfff3"/><file name="Oauth.php" hash="2344a2130c68af5cc166b02b6bd40026"/><file name="Product.php" hash="2d49e1559dc1fb38a5796a42293ae796"/><file name="Profiler.php" hash="9b9c63773b74a974ccf20648aa6a2f20"/><file name="Webservice.php" hash="88b592aa459f8e6fa1d855e5b94e5597"/><dir name="Catalog"><file name="Image.php" hash="ff41504fceb91dee99d67cc6f62a419d"/></dir></dir><dir name="Model"><file name="Config.php" hash="2c508f903cd39c251e993fa1ae95b59d"/><file name="Layer.php" hash="eede52743afa3f0f178ad81a4e5681bb"/><file name="Observer.php" hash="bf0973d689ac56e9de59f9ddeed95eeb"/><file name="Source.php" hash="a27000dc01a8778c33bccf88dc76346e"/><dir name="Api2"><dir name="Auth"><file name="Adapter.php" hash="bdf620903d412f1da7cc596d6c54b618"/></dir><dir name="Indexing"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="6a52b0077bfb5376f749ff60b77bb6d8"/></dir></dir></dir></dir><dir name="Catalog"><dir name="Category"><dir name="Attribute"><dir name="EnableSearchSpring"><file name="Backend.php" hash="12d9799f273951ca22717df93088e6bb"/><file name="Source.php" hash="03fad199c925e07fffd5e42f63cbb1bb"/></dir></dir></dir><dir name="Product"><file name="Image.php" hash="29f549e5d2fbe5c04360327fadcf79f4"/></dir></dir><dir name="Layer"><dir name="Filter"><file name="SearchSpring.php" hash="128a0a569e7d7a4e19b74bc947a4c01a"/><file name="SearchSpringCategory.php" hash="6654bdad88ca43917dbe072b6dfb21f8"/><file name="SearchSpringCategoryItem.php" hash="2dc143031706d2c6a7f4481ef7434bf4"/><file name="SearchSpringItem.php" hash="459fae0c48c411a58ae885d56124b1f3"/></dir></dir><dir name="Oauth"><file name="Server.php" hash="c5c2df03bc419caa49c8b1e3fe7d50ac"/></dir><dir name="Observer"><file name="CategorySaveObserver.php" hash="c7906db422635d9f2b19831f52ecc896"/><file name="ConfigObserver.php" hash="ff66abc4f6bbd5dcd245ea8e33684288"/><file name="ProductSaveObserver.php" hash="4a1926a7e8c598e20bdb4724036506c0"/></dir><dir name="Source"><file name="Abstract.php" hash="965bfb89b539db821a75dd71ef7e7d5f"/></dir></dir><dir name="Operation"><file name="Product.php" hash="2f62f03362c69a34e2ec09ce667999de"/><file name="ProductOperation.php" hash="a6b554a4314461d9e5b48885169e680e"/><dir name="Product"><file name="SetCategories.php" hash="3db2105af06d6e1851a965289dcff85d"/><file name="SetCoreFields.php" hash="4a2663f277e78576af0ba0752c285935"/><file name="SetFields.php" hash="8896858d190cadc5b19104120d7a1b58"/><file name="SetId.php" hash="792f08d85b399d57afca103e9d0eabd1"/><file name="SetImages.php" hash="d17f9730578eba89649e407441a4ceed"/><file name="SetOptions.php" hash="3db65aee252c0eb6a5c65eac1b641bfb"/><file name="SetPricing.php" hash="a2bb94df706c1c62c5b1cbe26d8afdf6"/><file name="SetRatings.php" hash="9ef7789dd01ca7f115b3cabf74f68f36"/><file name="SetReport.php" hash="a87c8a98c7f474a19618c7a7be8fdab1"/></dir></dir><dir name="Provider"><file name="ProductCollectionProvider.php" hash="e639e1667ed0f2bc59f2272ad36d3107"/><dir name="ProductCollection"><file name="FeedProvider.php" hash="2238e8b44f24178ef71af1df1b3cba6c"/><file name="ProductProvider.php" hash="56a0aae894f910eddbdced5e4c828668"/></dir></dir><dir name="Request"><file name="JSON.php" hash="541d9331b620bc92820abe5630824e41"/></dir><dir name="Service"><file name="LiveIndexer.php" hash="e952b80d171fef13c3e96c24d9313963"/><dir name="SearchSpring"><file name="ApiAdapter.php" hash="9ce66dddd09040d69457dc1735440b71"/><file name="IndexingApiAdapter.php" hash="da876af1440547abae4f1dbe6b25b3bf"/><file name="SearchApiAdapter.php" hash="bda32ec16f53054e75fb331ffcc0c155"/></dir></dir><dir name="sql"><dir name="searchspring_manager"><file name="mysql4-data-upgrade-1.10.2-2.0.0.php" hash="b27aae0f397c5d938a29dc12f6bbd4c8"/><file name="mysql4-install-1.0.0.php" hash="c0de6de0b74290978f65d7896768e89f"/><file name="mysql4-upgrade-0.4.0-1.0.0.php" hash="1f59325ef181499292deb7775a5e4dc2"/></dir></dir><dir name="Strategy"><file name="PricingStrategy.php" hash="ee021066a76db7fc2710e329daed1a4b"/><dir name="Pricing"><file name="BundleStrategy.php" hash="df2aee59e4a6ff19acf13bbc5f9ad5b9"/><file name="ConfigurableStrategy.php" hash="403e8298c4799ba2b7701255db86a941"/><file name="GroupedStrategy.php" hash="383c482098f502d6cde5dd9ed5cf9e13"/><file name="SimpleStrategy.php" hash="a1b9e7bae38c2def28a7b0a9e6fd456e"/><file name="Strategy.php" hash="9d0fda2a4ff168ab319fd0c2240501fd"/></dir></dir><dir name="String"><file name="Sanitizer.php" hash="e89fa5f86714621ea554aea9aa3f796c"/></dir><dir name="ThirdParty"><dir name="Amasty"><file name="LabelsOperation.php" hash="99479aae0bb856c5b43a44ec9d741eef"/></dir><dir name="TBT"><file name="RewardsOperation.php" hash="7e17b6205037de39c4154c7f4041836d"/></dir></dir><dir name="Transformer"><file name="ProductCollectionToRecordCollectionTransformer.php" hash="d9cb83ae72b6a30ed0c3b978f16ebdef"/></dir><dir name="Validator"><file name="ProductValidator.php" hash="b73a3cee6124c74c6433acb0552ae4bc"/></dir><dir name="VarienObject"><file name="Data.php" hash="44f184dabbf0db1958d1f922af92f6a8"/></dir><dir name="Writer"><file name="ProductWriter.php" hash="c7b218d215e68b5e3076ef654a41b141"/><dir name="Product"><file name="FileWriter.php" hash="b296be56f236635afc20e817e6277c80"/><file name="ResponseWriter.php" hash="c1af0cc22a9e823ec07175e2d8e34c9f"/><dir name="Params"><file name="FileWriterParams.php" hash="728da0fc1385ed651be354af370b34d0"/><file name="ResponseWriterParams.php" hash="bf66753a5952a78c0049f69ccaa6e74d"/></dir></dir></dir></dir></dir></dir></dir><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="searchspring"><dir name="manager"><dir name="system"><dir name="config"><dir name="fieldset"><file name="hint.phtml" hash="a0e3da8cd870432cce2849a41aa1c5b9"/><file name="setup.phtml" hash="298e7b2672fb2d4e24e20068138a135c"/><file name="setup_scope.phtml" hash="95e8d1fd92c9f10a940455a3f74e01bb"/></dir></dir></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="searchspring_manager.xml" hash="32227434f5770ddfd93de42d7feeff71"/></dir><dir name="template"><dir name="searchspring_manager"><dir name="layer"><file name="category_filter.phtml" hash="a9dd8c95a1d63b514cc8e9c5939168c5"/><file name="filter.phtml" hash="79888aac8f72d3597f2980d471237d64"/><file name="state.phtml" hash="168546af0f48a42c31c5a5d66b1de1c3"/><file name="view.phtml" hash="509776f71bc643839ade8d7e025764cb"/></dir><dir name="product"><file name="list.phtml" hash="9849b76e4fefac8ce181b428b5c6a148"/><dir name="list"><file name="toolbar.phtml" hash="aa2235708f7e861c63ba3e3e33ec041f"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="SearchSpring_SearchSpringManager.xml" hash="613ec81afc8d858f60dee96d91719c09"/></dir></dir><dir name="locale"><dir name="en_US"><dir name="template"><dir name="email"><file name="searchspring_api_error.html" hash="20bc8d923f96ca22dd2fe8cd876c49fe"/></dir></dir></dir></dir></dir><dir name="js"><dir name="searchspring"><file name="jquery-1.11.1.min.js" hash="8101d596b2b8fa35fe3a634ea342d7c3"/><file name="setup.js" hash="ca141997bdcff0380f07fbf268b92651"/></dir></dir><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="searchspring"><dir name="css"><file name="styles.css" hash="95f1ec4a442f0e2239f9a2db9e6e517c"/></dir></dir></dir></dir></dir></dir></target></contents></package>