Salesoar_Feed - Version 1.2.5

Version Notes

Bug fixed

Download this release

Release Info

Developer Salesoar
Extension Salesoar_Feed
Version 1.2.5
Comparing to
See all releases


Code changes from version 1.2.3 to 1.2.5

app/code/community/Salesoar/Feed/Block/Abstract.php CHANGED
File without changes
app/code/community/Salesoar/Feed/Block/All.php CHANGED
@@ -26,6 +26,6 @@ class Salesoar_Feed_Block_All extends Salesoar_Feed_Block_Abstract
26
  foreach ($stores as $store) {
27
  $resultArr[$store->getName()] = sprintf($feedUrl, $store->getId());
28
  }
29
- return Mage::helper('core')->jsonEncode($resultArr);
30
  }
31
- }
26
  foreach ($stores as $store) {
27
  $resultArr[$store->getName()] = sprintf($feedUrl, $store->getId());
28
  }
29
+ return json_encode($resultArr, JSON_UNESCAPED_SLASHES);
30
  }
31
+ }
app/code/community/Salesoar/Feed/Block/Create.php CHANGED
@@ -22,5 +22,6 @@ class Salesoar_Feed_Block_Create extends Salesoar_Feed_Block_Abstract
22
  {
23
  $xml = Mage::getModel('Salesoar_Feed/All');
24
  $xml->createAllXml();
 
25
  }
26
  }
22
  {
23
  $xml = Mage::getModel('Salesoar_Feed/All');
24
  $xml->createAllXml();
25
+ print 'Finish';
26
  }
27
  }
app/code/community/Salesoar/Feed/Block/Xml.php CHANGED
@@ -21,5 +21,11 @@ class Salesoar_Feed_Block_Xml extends Salesoar_Feed_Block_Abstract
21
  {
22
  $xml = Mage::getModel('Salesoar_Feed/Atom');
23
  $file = $xml->openFileToRead($this->getRequest()->getParam('store'));
 
 
 
 
 
 
24
  }
25
  }
21
  {
22
  $xml = Mage::getModel('Salesoar_Feed/Atom');
23
  $file = $xml->openFileToRead($this->getRequest()->getParam('store'));
24
+ if ($file) {
25
+ while (!feof($file)) {
26
+ echo fread($file, 4096);
27
+ }
28
+ fclose($file);
29
+ }
30
  }
31
  }
app/code/community/Salesoar/Feed/Model/All.php CHANGED
File without changes
app/code/community/Salesoar/Feed/Model/Atom.php CHANGED
@@ -54,21 +54,38 @@ EOT;
54
  $data['language']))));
55
  }
56
 
57
- public function addLandings($landings) {
58
  fwrite($this->output, " <sr:landings>\n");
 
 
 
 
 
 
 
 
59
  foreach ($landings as $landing) {
60
  $this->_addLanding($landing);
61
  }
62
  fwrite($this->output, " </sr:landings>\n");
63
  }
64
 
65
- public function _addLanding($landing) {
 
 
 
 
 
 
 
66
  $formatBegin = <<<EOT
67
  <sr:landing>
68
  <sr:name><![CDATA[%s]]></sr:name>
69
- <sr:concepts>\n
 
70
  EOT;
71
  $formatEnd = <<<EOT
 
72
  </sr:concepts>
73
  <sr:url><![CDATA[%s]]></sr:url>
74
  </sr:landing>\n
@@ -81,10 +98,23 @@ EOT;
81
  fwrite($this->output, utf8_encode(sprintf($formatEnd, $landing['sr:url'])));
82
  }
83
 
84
- public function _addLandingConcept($concept) {
85
- fwrite($this->output, utf8_encode(" <sr:concept>"));
86
- fwrite($this->output, utf8_encode(preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $concept['sr:concept'])));
87
- fwrite($this->output, utf8_encode("</sr:concept>\n"));
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  }
89
 
90
  public function addEntry($entry) {
@@ -191,3 +221,4 @@ EOT;
191
  return $this->output;
192
  }
193
  }
 
54
  $data['language']))));
55
  }
56
 
57
+ public function addLandings($landings_group, $landings) {
58
  fwrite($this->output, " <sr:landings>\n");
59
+ foreach ($landings_group[0] as $landing) {
60
+ if(count($landing['sr:landing']['sr:concepts'])<=1){
61
+ $this->_addLanding($landing);
62
+ }
63
+ else {
64
+ $this->_addLanding_group($landing);
65
+ }
66
+ }
67
  foreach ($landings as $landing) {
68
  $this->_addLanding($landing);
69
  }
70
  fwrite($this->output, " </sr:landings>\n");
71
  }
72
 
73
+ public function _addLandingConcept($concept) {
74
+ fwrite($this->output, utf8_encode(" <sr:concept>"));
75
+ fwrite($this->output, utf8_encode(preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', $concept['sr:concept'])));
76
+ fwrite($this->output, utf8_encode("</sr:concept>\n"));
77
+ }
78
+
79
+
80
+ public function _addLanding_group($landing) {
81
  $formatBegin = <<<EOT
82
  <sr:landing>
83
  <sr:name><![CDATA[%s]]></sr:name>
84
+ <sr:concepts>
85
+ <group>\n
86
  EOT;
87
  $formatEnd = <<<EOT
88
+ </group>
89
  </sr:concepts>
90
  <sr:url><![CDATA[%s]]></sr:url>
91
  </sr:landing>\n
98
  fwrite($this->output, utf8_encode(sprintf($formatEnd, $landing['sr:url'])));
99
  }
100
 
101
+ public function _addLanding($landing) {
102
+ $formatBegin = <<<EOT
103
+ <sr:landing>
104
+ <sr:name><![CDATA[%s]]></sr:name>
105
+ <sr:concepts>\n
106
+ EOT;
107
+ $formatEnd = <<<EOT
108
+ </sr:concepts>
109
+ <sr:url><![CDATA[%s]]></sr:url>
110
+ </sr:landing>\n
111
+ EOT;
112
+ $landing = $landing['sr:landing'];
113
+ fwrite($this->output, utf8_encode(preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F\x7F]/', '', sprintf($formatBegin, $landing['sr:name']))));
114
+ foreach ($landing['sr:concepts'] as $concept) {
115
+ $this->_addLandingConcept($concept);
116
+ }
117
+ fwrite($this->output, utf8_encode(sprintf($formatEnd, $landing['sr:url'])));
118
  }
119
 
120
  public function addEntry($entry) {
221
  return $this->output;
222
  }
223
  }
224
+
app/code/community/Salesoar/Feed/Model/Feed.php CHANGED
File without changes
app/code/community/Salesoar/Feed/Model/Observer.php CHANGED
@@ -18,7 +18,6 @@ class Salesoar_Feed_Model_Observer
18
  {
19
  $googleSalesoar = $_POST['googleSalesoar'];
20
  $sql = '';
21
- $prefix = Mage::getConfig()->getTablePrefix();
22
  foreach($googleSalesoar as $idCat => $string ){
23
  if($string == '') {
24
  $idGoogle = 0;
18
  {
19
  $googleSalesoar = $_POST['googleSalesoar'];
20
  $sql = '';
 
21
  foreach($googleSalesoar as $idCat => $string ){
22
  if($string == '') {
23
  $idGoogle = 0;
app/code/community/Salesoar/Feed/Model/Session.php CHANGED
File without changes
app/code/community/Salesoar/Feed/Model/Xml.php CHANGED
@@ -85,54 +85,19 @@ class Salesoar_Feed_Model_Xml
85
  $category_max_depth = count($path);
86
  }
87
  }
88
- array_push($landings, $this->_createLanding(
89
- "Category page",
90
- array("category"),
91
- $domain . "{category}" . "?___store=" . $store));
92
-
93
- $products = $this->getQueryProducts($store);
94
- $tot_cats = 0;
95
-
96
- if (Mage::getStoreConfig('salesoar_feed/config/salesoar_feed_all_categories')) {
97
- foreach ($products->getData() as $productData) {
98
- $product = Mage::getModel('catalog/Product')->fromArray($productData);
99
 
100
- if ($product->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE &&
101
- $product->getTypeID() == Mage_Catalog_Model_Product_Type::TYPE_SIMPLE
102
- ) {
103
-
104
- // Skip simple products that are children of configurable product
105
- continue;
106
- }
107
-
108
- $cats = $product->getCategoryCollection()
109
- ->addAttributeToSelect('entity_id')
110
- ->addAttributeToFilter('is_active', 1)
111
- ->setPageSize(false);
112
- $n_cats = count($cats);
113
- if ($n_cats > $tot_cats) {
114
- $tot_cats = $n_cats;
115
- }
116
- }
117
- } else {
118
- $tot_cats = 1;
119
- }
120
-
121
- for ($k = 0; $k < $tot_cats; $k++) {
122
- $prefix = $tot_cats > 1 ? $k : "";
123
- for ($i = 0; $i < $category_max_depth - 2; $i++) {
124
- $categories = array();
125
- for ($j = 0; $j <= $i; $j++) {
126
- array_push($categories, "category" . $prefix . "_L" . $j);
127
- }
128
- array_push($landings, $this->_createLanding(
129
- "Category" . $prefix . " L" . (count($categories) - 1) . " page",
130
- $categories,
131
- $domain . "{" . end($categories) . "}" . "?___store=" . $store));
132
  }
 
 
 
 
133
  }
134
 
135
- return array($landings, $tot_cats);
136
  }
137
 
138
  protected function getAttributeLandings($store, $domain) {
@@ -228,14 +193,19 @@ class Salesoar_Feed_Model_Xml
228
 
229
  $landings = array();
230
 
231
- $categoris_totcats = $this->getCategoryLandings($store, $domain);
232
- $landings = array_merge($landings, $categoris_totcats[0]);
 
 
 
 
 
233
  //ATTRIBUTES FOR LANDING
234
- if (Mage::getStoreConfig('salesoar_feed/config/salesoar_feed_add_attributes')) {
235
  $landings = array_merge($landings, $this->getAttributeLandings($store, $domain));
236
  }
237
 
238
- $atomObj->addLandings($landings);
239
 
240
  foreach (Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('name') as $_cat) {
241
  $this->all_categories[$_cat->getId()] = $_cat;
@@ -247,8 +217,7 @@ class Salesoar_Feed_Model_Xml
247
  $this->addNewItemXmlCallback(array(
248
  'atomObj' => $atomObj,
249
  'productData' => $productData,
250
- 'store' => $store,
251
- 'tot_cats' => $categoris_totcats[1]));
252
  }
253
 
254
  $atomObj->addXMLEnd();
@@ -279,7 +248,6 @@ class Salesoar_Feed_Model_Xml
279
  $productData = $args['productData'];
280
  $store = $args['store'];
281
  $atomObj = $args['atomObj'];
282
- $tot_cats = $args['tot_cats'];
283
  $product = Mage::getModel('catalog/Product')->fromArray($productData);
284
 
285
  if ($product->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE &&
@@ -309,13 +277,9 @@ class Salesoar_Feed_Model_Xml
309
  ->addAttributeToFilter('is_active', 1)
310
  ->setPageSize(false);
311
 
312
- $prefix = 0;
313
  $googleProductCategory= '';
314
  foreach ($cats as $_c) {
315
  $product_type = ($_c->getId());
316
- if ($tot_cats == 1) {
317
- $prefix = "";
318
- }
319
  $_cat = $this->all_categories[$_c->getId()];
320
  $path = explode('/', $_cat->getPath());
321
  for ($i = 2; $i <count($path); $i++) {
@@ -326,7 +290,7 @@ class Salesoar_Feed_Model_Xml
326
  array_push($concepts, $this->_createConcept(
327
  "category", $value, $label));
328
  array_push($concepts, $this->_createConcept(
329
- "category" . $prefix . "_L" . ($i - 2), $value, $label));
330
 
331
  ////GOOGLE_CATEGORY////
332
  if ($i == count($path) - 1 && $this->arraySalesoar != null) {
@@ -334,12 +298,6 @@ class Salesoar_Feed_Model_Xml
334
  $googleProductCategory = $this->arraySalesoar[$cat->getId()];
335
  }
336
  }
337
- if ($tot_cats == 1) {
338
- break;
339
- }
340
- else {
341
- $prefix++;
342
- }
343
  }
344
 
345
  if (Mage::getStoreConfig('salesoar_feed/config/salesoar_feed_add_attributes')) {
@@ -424,3 +382,4 @@ class Salesoar_Feed_Model_Xml
424
  $atomObj->addEntry($data);
425
  }
426
  }
 
85
  $category_max_depth = count($path);
86
  }
87
  }
 
 
 
 
 
 
 
 
 
 
 
88
 
89
+ for ($i = 0; $i < $category_max_depth - 2; $i++) {
90
+ $categories = array();
91
+ for ($j = 0; $j <= $i; $j++) {
92
+ array_push($categories, "category_L" . $j);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  }
94
+ array_push($landings, $this->_createLanding(
95
+ "Category Level " . (count($categories) - 1) . " page",
96
+ $categories,
97
+ $domain . "{" . end($categories) . "}" . "?___store=" . $store));
98
  }
99
 
100
+ return array($landings);
101
  }
102
 
103
  protected function getAttributeLandings($store, $domain) {
193
 
194
  $landings = array();
195
 
196
+ array_push($landings, $this->_createLanding(
197
+ "Category page",
198
+ array("category"),
199
+ $domain . "{category}" . "?___store=" . $store));
200
+
201
+ $landings_group = $this->getCategoryLandings($store, $domain);
202
+
203
  //ATTRIBUTES FOR LANDING
204
+ if (Mage::getStoreConfig('salesoar_feed/attribute_category_settings/salesoar_feed_add_attributes')) {
205
  $landings = array_merge($landings, $this->getAttributeLandings($store, $domain));
206
  }
207
 
208
+ $atomObj->addLandings($landings_group, $landings);
209
 
210
  foreach (Mage::getModel('catalog/category')->getCollection()->addAttributeToSelect('name') as $_cat) {
211
  $this->all_categories[$_cat->getId()] = $_cat;
217
  $this->addNewItemXmlCallback(array(
218
  'atomObj' => $atomObj,
219
  'productData' => $productData,
220
+ 'store' => $store));
 
221
  }
222
 
223
  $atomObj->addXMLEnd();
248
  $productData = $args['productData'];
249
  $store = $args['store'];
250
  $atomObj = $args['atomObj'];
 
251
  $product = Mage::getModel('catalog/Product')->fromArray($productData);
252
 
253
  if ($product->getVisibility() == Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE &&
277
  ->addAttributeToFilter('is_active', 1)
278
  ->setPageSize(false);
279
 
 
280
  $googleProductCategory= '';
281
  foreach ($cats as $_c) {
282
  $product_type = ($_c->getId());
 
 
 
283
  $_cat = $this->all_categories[$_c->getId()];
284
  $path = explode('/', $_cat->getPath());
285
  for ($i = 2; $i <count($path); $i++) {
290
  array_push($concepts, $this->_createConcept(
291
  "category", $value, $label));
292
  array_push($concepts, $this->_createConcept(
293
+ "category_L" . ($i - 2), $value, $label));
294
 
295
  ////GOOGLE_CATEGORY////
296
  if ($i == count($path) - 1 && $this->arraySalesoar != null) {
298
  $googleProductCategory = $this->arraySalesoar[$cat->getId()];
299
  }
300
  }
 
 
 
 
 
 
301
  }
302
 
303
  if (Mage::getStoreConfig('salesoar_feed/config/salesoar_feed_add_attributes')) {
382
  $atomObj->addEntry($data);
383
  }
384
  }
385
+
app/code/community/Salesoar/Feed/etc/config.xml CHANGED
@@ -12,7 +12,7 @@
12
  <config>
13
  <modules>
14
  <Salesoar_Feed>
15
- <version>1.2.0</version>
16
  </Salesoar_Feed>
17
  </modules>
18
  <default>
12
  <config>
13
  <modules>
14
  <Salesoar_Feed>
15
+ <version>1.2.5</version>
16
  </Salesoar_Feed>
17
  </modules>
18
  <default>
app/design/frontend/base/default/layout/salesoar_feed.xml ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Salesoar
5
+ *
6
+ * @category Salesoar
7
+ * @package Salesoar_Feed
8
+ * @copyright Copyright (c) 2015 Salesoar S.r.l. (http://salesoar.com)
9
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
10
+ */
11
+ -->
12
+ <layout version="0.1.0">
13
+ <!--
14
+ Default layout, loads most of the pages
15
+ -->
16
+ <salesoar_feed_feed_index>
17
+ <block type="Salesoar_Feed/all" output="toHtml" name="salesoar_feed_all">
18
+ </block>
19
+ </salesoar_feed_feed_index>
20
+ <salesoar_feed_feed_xml>
21
+ <block type="Salesoar_Feed/xml" output="toHtml" name="salesoar_feed_xml">
22
+ </block>
23
+ </salesoar_feed_feed_xml>
24
+ <salesoar_feed_feed_create>
25
+ <block type="Salesoar_Feed/create" output="toHtml" name="salesoar_feed_create">
26
+ </block>
27
+ </salesoar_feed_feed_create>
28
+ </layout>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Salesoar_Feed</name>
4
- <version>1.2.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
@@ -10,9 +10,9 @@
10
  <description>Salesoar is the perfect marketing assistant for your ecommerce. Simply connect your ecommerce with Salesoar and you can easily create, monitor and manage your campaigns. Create your account on https://salesoar.com and start promoting your products</description>
11
  <notes>Bug fixed</notes>
12
  <authors><author><name>Salesoar</name><user>MAG003095121</user><email>hello@salesoar.com</email></author></authors>
13
- <date>2016-04-29</date>
14
- <time>08:53:44</time>
15
- <contents><target name="magecommunity"><dir name="Salesoar"><dir name="Feed"><dir name="Block"><file name="Abstract.php" hash="6fda60e05280624dec374de5f3c64037"/><dir name="Adminhtml"><dir name="Frontend"><file name="Create.php" hash="81fabd5aa53a2fce34b8a7ab9d7b3bda"/><file name="Links.php" hash="63c49a5db2ddb48863ad266e011d66a1"/></dir></dir><file name="All.php" hash="d87af68ee29734d2c95385fb9358ac8c"/><dir name="Config"><dir name="Adminhtml"><dir name="Form"><dir name="Field"><file name="Category.php" hash="bcdde546cb8af3872caeb14013784441"/><file name="GoogleCategory.php" hash="19c1e94bea04fd18dbd8b4ae9a6c3df4"/></dir></dir></dir><file name="Advertise.php" hash="42965df1c1f77fa13687c612230a4395"/><file name="TableMapping.php" hash="2819596b25566b2028f3a01da1922a5d"/></dir><file name="Create.php" hash="9e4b0843838ce5891d145bf931358c06"/><file name="Xml.php" hash="26f8a9a9e17d94405f1e640b01987cf6"/></dir><dir name="Helper"><file name="Data.php" hash="452fdf447086d40354753b37b8cf2702"/></dir><dir name="Model"><file name="All.php" hash="0c72ab1b243919fc90c3971e7a4ebd6e"/><file name="Atom.php" hash="316a200c36f8d053f8489278504a6d2f"/><file name="Feed.php" hash="0a9593319f5f5335aaf1d29e7af33d4a"/><file name="Observer.php" hash="579f9bf044f93d0bf0d2075b36e88647"/><file name="Session.php" hash="cc6f2ec572d56eb882d0269b55f4f796"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Attributes.php" hash="9d1264a5207425f0b0154966ffdc2ee2"/><file name="Categories.php" hash="888d4035a1f0eefe7fe73ccf465d2ef7"/><file name="Create.php" hash="5441649de14854fcbfedceb87aebc688"/><file name="CurrencyMap.php" hash="4485a6403b4c5cddfe6ac4f9cd9e4c9c"/><file name="Links.php" hash="3a7c2cfef5e92ba736ddbf8af06ba2e4"/><file name="SelectCategory.php" hash="37ff5211b10ae7e143fa78bfb0bd66ff"/><file name="SelectGoogleCategory.php" hash="15ca98755661d24ae0eac911b956bb89"/><dir name="Taxonomy"><file name="taxonomy_br.txt" hash="399d492d03c2c35ad1e174edf0d1f4a0"/><file name="taxonomy_de.txt" hash="6b1fc333d89fa26ba431e1658ac9364e"/><file name="taxonomy_dk.txt" hash="402a30fe21119c18af0ccd6ecbf99474"/><file name="taxonomy_en_US.txt" hash="5bc8bc4863a7d7bf1c8a68ccc54a731c"/><file name="taxonomy_es.txt" hash="57c9dad37ea984adcfd280550c338382"/><file name="taxonomy_fr.txt" hash="eb00ab5d99e1d0fdd64b2eccbd1a3700"/><file name="taxonomy_it.txt" hash="c2e5c5fcdff87033826ef908165ad48c"/><file name="taxonomy_nl.txt" hash="cd3bf4c7e879fee47f3d8f5fa0ee6477"/><file name="taxonomy_pl.txt" hash="711372a31920120e8d11d971ad186e5e"/><file name="taxonomy_se.txt" hash="fe03b123ab99796ccd24f2cbec07818e"/></dir></dir></dir></dir><file name="Xml.php" hash="80d804e3954140d1ef806258c2c7f093"/></dir><dir name="controllers"><file name="FeedController.php" hash="2d568887a82d5f8424f8b379271914f4"/><file name="IndexController.php" hash="2975c0be5a94694435771defc7c48835"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a84e1e3df9ee1808ea254bcedc424a41"/><file name="config.xml" hash="19013749fdb909f1e0cb69eff50ff67b"/><file name="system.xml" hash="5e6552778998c9a2e63bef954e214f06"/></dir><dir name="sql"><dir name="Salesoar_Feed_setup"><file name="mysql4-install-1.2.0.php" hash="f5d29abb803035586af7f11a39f85e92"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Salesoar_Feed.xml" hash="06e2e706952847a75cc1045a61067755"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Salesoar_Feed.csv" hash="f99bd663f6b7becac87c8be1720f14b3"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php><package><name>Mage_Catalog</name><channel>community</channel><min>1.6.0.0</min><max>1.9.2.4</max></package><package><name>Mage_CatalogInventory</name><channel>community</channel><min>1.6.0.0</min><max>1.9.2.4</max></package><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.6.0.0</min><max>1.9.2.4</max></package><extension><name>Core</name><min>1.6.0.0</min><max>1.9.2.4</max></extension><extension><name>PDO</name><min>1.6.0.0</min><max>1.9.2.4</max></extension></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Salesoar_Feed</name>
4
+ <version>1.2.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
10
  <description>Salesoar is the perfect marketing assistant for your ecommerce. Simply connect your ecommerce with Salesoar and you can easily create, monitor and manage your campaigns. Create your account on https://salesoar.com and start promoting your products</description>
11
  <notes>Bug fixed</notes>
12
  <authors><author><name>Salesoar</name><user>MAG003095121</user><email>hello@salesoar.com</email></author></authors>
13
+ <date>2016-05-02</date>
14
+ <time>09:22:01</time>
15
+ <contents><target name="magecommunity"><dir name="Salesoar"><dir name="Feed"><dir name="Block"><file name="Abstract.php" hash="6fda60e05280624dec374de5f3c64037"/><dir name="Adminhtml"><dir name="Frontend"><file name="Create.php" hash="81fabd5aa53a2fce34b8a7ab9d7b3bda"/><file name="Links.php" hash="63c49a5db2ddb48863ad266e011d66a1"/></dir></dir><file name="All.php" hash="d87af68ee29734d2c95385fb9358ac8c"/><dir name="Config"><dir name="Adminhtml"><dir name="Form"><dir name="Field"><file name="Category.php" hash="bcdde546cb8af3872caeb14013784441"/><file name="GoogleCategory.php" hash="19c1e94bea04fd18dbd8b4ae9a6c3df4"/></dir></dir></dir><file name="Advertise.php" hash="42965df1c1f77fa13687c612230a4395"/><file name="TableMapping.php" hash="2819596b25566b2028f3a01da1922a5d"/></dir><file name="Create.php" hash="9e4b0843838ce5891d145bf931358c06"/><file name="Xml.php" hash="26f8a9a9e17d94405f1e640b01987cf6"/></dir><dir name="Helper"><file name="Data.php" hash="452fdf447086d40354753b37b8cf2702"/></dir><dir name="Model"><file name="All.php" hash="0c72ab1b243919fc90c3971e7a4ebd6e"/><file name="Atom.php" hash="316a200c36f8d053f8489278504a6d2f"/><file name="Feed.php" hash="0a9593319f5f5335aaf1d29e7af33d4a"/><file name="Observer.php" hash="bdadc319680152c3bfcffa178b19e77f"/><file name="Session.php" hash="cc6f2ec572d56eb882d0269b55f4f796"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Attributes.php" hash="9d1264a5207425f0b0154966ffdc2ee2"/><file name="Categories.php" hash="888d4035a1f0eefe7fe73ccf465d2ef7"/><file name="Create.php" hash="5441649de14854fcbfedceb87aebc688"/><file name="CurrencyMap.php" hash="4485a6403b4c5cddfe6ac4f9cd9e4c9c"/><file name="Links.php" hash="3a7c2cfef5e92ba736ddbf8af06ba2e4"/><file name="SelectCategory.php" hash="37ff5211b10ae7e143fa78bfb0bd66ff"/><file name="SelectGoogleCategory.php" hash="15ca98755661d24ae0eac911b956bb89"/><dir name="Taxonomy"><file name="taxonomy_br.txt" hash="399d492d03c2c35ad1e174edf0d1f4a0"/><file name="taxonomy_de.txt" hash="6b1fc333d89fa26ba431e1658ac9364e"/><file name="taxonomy_dk.txt" hash="402a30fe21119c18af0ccd6ecbf99474"/><file name="taxonomy_en_US.txt" hash="5bc8bc4863a7d7bf1c8a68ccc54a731c"/><file name="taxonomy_es.txt" hash="57c9dad37ea984adcfd280550c338382"/><file name="taxonomy_fr.txt" hash="eb00ab5d99e1d0fdd64b2eccbd1a3700"/><file name="taxonomy_it.txt" hash="c2e5c5fcdff87033826ef908165ad48c"/><file name="taxonomy_nl.txt" hash="cd3bf4c7e879fee47f3d8f5fa0ee6477"/><file name="taxonomy_pl.txt" hash="711372a31920120e8d11d971ad186e5e"/><file name="taxonomy_se.txt" hash="fe03b123ab99796ccd24f2cbec07818e"/></dir></dir></dir></dir><file name="Xml.php" hash="80d804e3954140d1ef806258c2c7f093"/></dir><dir name="controllers"><file name="FeedController.php" hash="2d568887a82d5f8424f8b379271914f4"/><file name="IndexController.php" hash="2975c0be5a94694435771defc7c48835"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a84e1e3df9ee1808ea254bcedc424a41"/><file name="config.xml" hash="9cb9952c6d94b4bb9d07fd9c1354af6d"/><file name="system.xml" hash="5e6552778998c9a2e63bef954e214f06"/></dir><dir name="sql"><dir name="Salesoar_Feed_setup"><file name="mysql4-install-1.2.0.php" hash="f5d29abb803035586af7f11a39f85e92"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Salesoar_Feed.xml" hash="06e2e706952847a75cc1045a61067755"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Salesoar_Feed.csv" hash="f99bd663f6b7becac87c8be1720f14b3"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="salesoar_feed.xml" hash="2aef7579109252e53f6653a2f337b8c1"/></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.4.0</min><max>6.0.0</max></php><package><name>Mage_Catalog</name><channel>community</channel><min>1.6.0.0</min><max>1.9.2.4</max></package><package><name>Mage_CatalogInventory</name><channel>community</channel><min>1.6.0.0</min><max>1.9.2.4</max></package><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.6.0.0</min><max>1.9.2.4</max></package><extension><name>Core</name><min>1.6.0.0</min><max>1.9.2.4</max></extension><extension><name>PDO</name><min>1.6.0.0</min><max>1.9.2.4</max></extension></required></dependencies>
18
  </package>