Brainsins_Recommender - Version 2.1.6

Version Notes

Added code necessary for tracking quotes without using IDs, thus we may build the cart back using the hash generated,

Download this release

Release Info

Developer BrainSINS
Extension Brainsins_Recommender
Version 2.1.6
Comparing to
See all releases


Code changes from version 2.1.5 to 2.1.6

app/code/community/Brainsins/Recommender/Helper/Data.php CHANGED
@@ -557,92 +557,43 @@ class Brainsins_Recommender_Helper_Data extends Mage_Core_Helper_Abstract
557
 
558
  $ruta = "order/trackOrder.xml?";
559
  $url = self::getApiUrl() . $ruta . "token=" . Mage::getStoreConfig('brainsins_recommender_options/brainsins_recommender_general/bs_key', Mage::app()->getStore()->getStoreId());
560
-
561
  $cartXML = new DOMDocument('1.0', 'UTF-8');
562
  $cartXML->xmlStandalone = true;
563
-
564
  $pRecsins = $cartXML->createElement('recsins');
565
  $pRecsins->setAttribute('version', '0.1');
566
  $cartXML->appendChild($pRecsins);
567
 
568
  $pOrders = $cartXML->createElement('orders');
569
-
570
  $pOrder = $cartXML->createElement('order');
 
571
  $pIdBuyer = $cartXML->createElement('idBuyer', $this->_getUser());
572
  $pOrder->appendChild($pIdBuyer);
573
 
574
- // $pLanguage =
 
575
 
576
- //$pCurrency = $cartXML->createElement('idCurrency', Mage::app()->getStore()->getCurrentCurrencyCode());
577
- //$pOrder->appendChild($pCurrency);
578
 
579
  $pTotal = $cartXML->createElement('totalAmount', $cartData["totalAmount"]);
580
  $pOrder->appendChild($pTotal);
581
 
582
  $pOrders->appendChild($pOrder);
583
-
584
  $pRecsins->appendChild($pOrders);
585
 
586
  $pProducts = $cartXML->createElement('products');
587
  $pOrder->appendChild($pProducts);
588
 
589
-
590
- /*
591
- if ($special)
592
- $items = $cart->getAllVisibleItems();
593
- else
594
- $items = $cart->getItems();
595
-
596
- $cartItems = Array();
597
-
598
- foreach ($items as $item) {
599
-
600
- $cartItem = Array();
601
-
602
- $price = $item->getPriceInclTax();
603
-
604
- if ($item->getParentItem()) {
605
- $item = $item->getParentItem();
606
- }
607
-
608
- $id = $item->getProductId();
609
-
610
- $qty = $item->getQty();
611
-
612
- //get parent if exists -> ensure not single products that belong to configurable exist
613
- $configurable_product_model = Mage::getModel('catalog/product_type_configurable');
614
- $parentIdArray = $configurable_product_model->getParentIdsByChild($id);
615
-
616
- // Mage::log("-----");
617
- // Mage::log($item->getProductId());
618
- // Mage::log("type : " . $item->getProductType());
619
- // Mage::log($item->getProduct()->getName());
620
- // Mage::log("parent : " . ($item->getParentItem() ? $item->getParentItem()->getProductId() : "-"));
621
- // Mage::log("qty is " . $qty);
622
- // Mage::log("-----");
623
-
624
- $cartItem["id"] = $id;
625
- $cartItem["qty"] = $qty;
626
- $cartItem["price"] = $price;
627
-
628
- $cartItems[] = $cartItem;
629
-
630
- //if (array_key_exists($id, $cartItems)) {
631
- // $cartItems[$id] = $cartItems[$id] + $qty;
632
- //} else {
633
- // $cartItems[$id] = $qty;
634
- //}
635
- }
636
-
637
- //Mage::log($cartItems);
638
-
639
- */
640
-
641
  $cartItems = $cartData["products"];
642
 
643
  foreach ($cartItems as $cartItem) {
644
  $pProduct = $cartXML->createElement('product');
645
 
 
 
 
646
  $pIdProduct = $cartXML->createElement('idProduct', $cartItem["id"]);
647
  $pProduct->appendChild($pIdProduct);
648
 
@@ -669,7 +620,6 @@ class Brainsins_Recommender_Helper_Data extends Mage_Core_Helper_Abstract
669
 
670
 
671
  $lastTrackedCart = Mage::getSingleton('core/session')->getBrainsinsLastCartTracked();
672
- // Mage::log($cartId);
673
  if ($cartId == $lastTrackedCart) {
674
  return;
675
  } else {
@@ -677,9 +627,8 @@ class Brainsins_Recommender_Helper_Data extends Mage_Core_Helper_Abstract
677
  }
678
 
679
  $content = $cartXML->saveXML($cartXML->documentElement);
680
- //Mage::log($content);
681
  $result = $this->_sendBrainsinsWS($url, $content);
682
- // Mage::log($result);
683
  return $result;
684
  }
685
 
@@ -824,7 +773,6 @@ class Brainsins_Recommender_Helper_Data extends Mage_Core_Helper_Abstract
824
 
825
  protected function _sendBrainsinsWS($url, $content = "", $contentType = "application/xml", $post = true)
826
  {
827
-
828
  if (function_exists('curl_init')) {
829
  $ch = curl_init($url);
830
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
557
 
558
  $ruta = "order/trackOrder.xml?";
559
  $url = self::getApiUrl() . $ruta . "token=" . Mage::getStoreConfig('brainsins_recommender_options/brainsins_recommender_general/bs_key', Mage::app()->getStore()->getStoreId());
560
+ //build XML
561
  $cartXML = new DOMDocument('1.0', 'UTF-8');
562
  $cartXML->xmlStandalone = true;
563
+ //add roots
564
  $pRecsins = $cartXML->createElement('recsins');
565
  $pRecsins->setAttribute('version', '0.1');
566
  $cartXML->appendChild($pRecsins);
567
 
568
  $pOrders = $cartXML->createElement('orders');
 
569
  $pOrder = $cartXML->createElement('order');
570
+ //Add order associate attrs
571
  $pIdBuyer = $cartXML->createElement('idBuyer', $this->_getUser());
572
  $pOrder->appendChild($pIdBuyer);
573
 
574
+ $checkoutSession = Mage::getSingleton('checkout/session');
575
+ $brainsins_qhash=$checkoutSession->getData("brainsins_qhash");
576
 
577
+ $pCartMisc = $cartXML->createElement('cartMisc', json_encode(array("brainsins_qhash"=>$brainsins_qhash,"quoteId"=>$cartId)));
578
+ $pOrder->appendChild($pCartMisc);
579
 
580
  $pTotal = $cartXML->createElement('totalAmount', $cartData["totalAmount"]);
581
  $pOrder->appendChild($pTotal);
582
 
583
  $pOrders->appendChild($pOrder);
 
584
  $pRecsins->appendChild($pOrders);
585
 
586
  $pProducts = $cartXML->createElement('products');
587
  $pOrder->appendChild($pProducts);
588
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
589
  $cartItems = $cartData["products"];
590
 
591
  foreach ($cartItems as $cartItem) {
592
  $pProduct = $cartXML->createElement('product');
593
 
594
+ $pProductType = $cartXML->createElement('productType', "product");
595
+ $pProduct->appendChild($pProductType);
596
+
597
  $pIdProduct = $cartXML->createElement('idProduct', $cartItem["id"]);
598
  $pProduct->appendChild($pIdProduct);
599
 
620
 
621
 
622
  $lastTrackedCart = Mage::getSingleton('core/session')->getBrainsinsLastCartTracked();
 
623
  if ($cartId == $lastTrackedCart) {
624
  return;
625
  } else {
627
  }
628
 
629
  $content = $cartXML->saveXML($cartXML->documentElement);
 
630
  $result = $this->_sendBrainsinsWS($url, $content);
631
+ //error_log(var_export($content,TRUE));
632
  return $result;
633
  }
634
 
773
 
774
  protected function _sendBrainsinsWS($url, $content = "", $contentType = "application/xml", $post = true)
775
  {
 
776
  if (function_exists('curl_init')) {
777
  $ch = curl_init($url);
778
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
app/code/community/Brainsins/Recommender/Model/.DS_Store ADDED
Binary file
app/code/community/Brainsins/Recommender/Model/Observer.php CHANGED
@@ -26,6 +26,7 @@ class Brainsins_Recommender_Model_Observer extends Mage_Core_Model_Abstract
26
  {
27
  public function updateCartEvent($observer)
28
  {
 
29
  if($observer->getEvent()->getControllerAction()->getFullActionName() == 'checkout_cart_add' ||
30
  $observer->getEvent()->getControllerAction()->getFullActionName() == 'checkout_cart_delete' ||
31
  $observer->getEvent()->getControllerAction()->getFullActionName() == 'sales_order_reorder')
@@ -35,8 +36,10 @@ class Brainsins_Recommender_Model_Observer extends Mage_Core_Model_Abstract
35
  if($observer->getEvent()->getControllerAction()->getFullActionName() == 'checkout_cart_updatePost') //TO DO: Genera 2 llamadas en la actualización del carrito
36
  Mage::dispatchEvent('checkout_update_cart_after', array());
37
 
38
- if(Mage::app()->getRequest()->getRouteName().'/'.Mage::app()->getRequest()->getControllerName().'/'.Mage::app()->getRequest()->getActionName() == 'brainsins/cart/create') //Desde controller
39
- Mage::dispatchEvent('checkout_update_cart_after', array());
 
 
40
 
41
  return $this;
42
  }
@@ -93,6 +96,23 @@ class Brainsins_Recommender_Model_Observer extends Mage_Core_Model_Abstract
93
  {
94
  if(!Mage::getStoreConfigFlag('brainsins_recommender_options/brainsins_recommender_general/enabled', Mage::app()->getStore()->getStoreId()) || $this->_isApiRequest())
95
  return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  Mage::helper('brainsins_recommender')->updateCartInBrainsins(Mage::getSingleton('checkout/session')->getQuote(), true);
97
  }
98
 
26
  {
27
  public function updateCartEvent($observer)
28
  {
29
+
30
  if($observer->getEvent()->getControllerAction()->getFullActionName() == 'checkout_cart_add' ||
31
  $observer->getEvent()->getControllerAction()->getFullActionName() == 'checkout_cart_delete' ||
32
  $observer->getEvent()->getControllerAction()->getFullActionName() == 'sales_order_reorder')
36
  if($observer->getEvent()->getControllerAction()->getFullActionName() == 'checkout_cart_updatePost') //TO DO: Genera 2 llamadas en la actualización del carrito
37
  Mage::dispatchEvent('checkout_update_cart_after', array());
38
 
39
+ if(Mage::app()->getRequest()->getRouteName().'/'.Mage::app()->getRequest()->getControllerName().'/'.Mage::app()->getRequest()->getActionName() == 'brainsins/cart/create'){
40
+ Mage::dispatchEvent('checkout_update_cart_after', array());
41
+ }
42
+
43
 
44
  return $this;
45
  }
96
  {
97
  if(!Mage::getStoreConfigFlag('brainsins_recommender_options/brainsins_recommender_general/enabled', Mage::app()->getStore()->getStoreId()) || $this->_isApiRequest())
98
  return;
99
+ //check and update brainsins_qhash
100
+ $quote=$observer->getEvent()->getQuote();
101
+ if($quote!==null){
102
+ $brainsins_qhash=$quote->getData('brainsins_qhash');
103
+ if($brainsins_qhash ===null || $brainsins_qhash===""){
104
+ $brainsins_qhash=md5($quote->getId());
105
+ $session = Mage::getSingleton('checkout/session');
106
+ $session->setData("brainsins_qhash",$brainsins_qhash);
107
+ try{
108
+ $quote->setData('brainsins_qhash',$brainsins_qhash);
109
+ $quote->save();
110
+ }catch(Exception $e){
111
+ error_log("[BrainSINS]".$e);
112
+ }
113
+ }
114
+ }
115
+
116
  Mage::helper('brainsins_recommender')->updateCartInBrainsins(Mage::getSingleton('checkout/session')->getQuote(), true);
117
  }
118
 
app/code/community/Brainsins/Recommender/controllers/CartController.php CHANGED
@@ -33,63 +33,31 @@ class Brainsins_Recommender_CartController extends Mage_Core_Controller_Front_Ac
33
  return $this;
34
  }
35
 
36
- if($this->getRequest()->getParam('p') && $this->getRequest()->getParam('q'))
37
  {
38
- $cart = Mage::getSingleton('checkout/cart');
39
- $products = explode(',', $this->getRequest()->getParam('p'));
40
- $qties = explode(',', $this->getRequest()->getParam('q'));
41
-
42
- foreach ($products as $key => $product)
43
- {
44
- try
45
- {
46
- if(isset($qties[$key]) && intval($qties[$key]))
47
- $qty = (int)$qties[$key];
48
- else
49
- $qty = 1;
50
-
51
- $productObj = new Mage_Catalog_Model_Product();
52
- $productObj->load($product);
53
-
54
- if(!$productObj->getId())
55
- continue;
56
-
57
- if($productObj->getTypeId() == 'configurable' || $productObj->getTypeId() == 'grouped' || $productObj->getTypeId() == 'bundle')
58
- {
59
- $default = $this->_getDefaultProduct($productObj, $productObj->getTypeId());
60
- if($default)
61
- {
62
- unset($productObj);
63
- $productObj = new Mage_Catalog_Model_Product();
64
- $productObj->load($default);
65
- $product = $productObj->getId();
66
- }
67
- else
68
- continue;
69
- }
70
-
71
- $existing_products = $cart->getItems();
72
- if($this->_checkIfProductExistsInCart($product, $existing_products))
73
- continue;
74
-
75
- $params = array(
76
- 'product' => $product,
77
- 'qty' => $qty,
78
- );
79
-
80
- $cart->addProduct($productObj, $params);
81
- unset($productObj);
82
- }
83
- catch(Exception $e)
84
- {
85
- continue;
86
- }
87
  }
88
- $cart->save();
89
- Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
90
-
91
- $this->_redirect('checkout/cart/', array('_query' => $this->getRequest()->getParams()));
92
  }
 
93
  }
94
 
95
  public function addAction($product, $qty) {
33
  return $this;
34
  }
35
 
36
+ if($this->getRequest()->getParam('brainsins_qhash'))
37
  {
38
+ $brainsins_qhash=$this->getRequest()->getParam('brainsins_qhash');
39
+ $session = Mage::getSingleton('checkout/session');
40
+ try{
41
+ //get carts info
42
+ $oldQuote=Mage::getModel('sales/quote')->load($brainsins_qhash,'brainsins_qhash');
43
+ $currentQuote=Mage::getModel('sales/quote')->load($session->getQuoteId());
44
+ if($currentQuote->getId()===null){
45
+ //replace it with the old one
46
+ $session->replaceQuote($oldQuote);
47
+ //add quote info to BrainSINSData tracking, since a new quote has been created
48
+ $newQuote=$session->getQuote();
49
+ $session->setData("quoteId",$newQuote->getId());
50
+ $session->setData("brainsins_qhash",$newQuote->brainsins_qhash);
51
+ }else{
52
+ //merge old cart with current cart
53
+ $currentQuote->merge($oldQuote);
54
+ $currentQuote->collectTotals()->save();
55
+ }
56
+ }catch(Exception $e){
57
+ error_log("[BrainSINS]".$e);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
  }
 
 
 
 
59
  }
60
+ $this->_redirect('checkout/cart/', array('_query' => $this->getRequest()->getParams()));
61
  }
62
 
63
  public function addAction($product, $qty) {
app/code/community/Brainsins/Recommender/etc/config.xml CHANGED
@@ -15,7 +15,7 @@
15
  <config>
16
  <modules>
17
  <Brainsins_Recommender>
18
- <version>2.1.5</version>
19
  </Brainsins_Recommender>
20
  </modules>
21
  <global>
@@ -35,19 +35,14 @@
35
  </brainsins_recommender>
36
  </blocks>
37
  <resources>
38
- <brainsins_recommender_setup>
39
  <setup>
40
  <module>Brainsins_Recommender</module>
41
  </setup>
42
  <connection>
43
  <use>core_setup</use>
44
  </connection>
45
- </brainsins_recommender_setup>
46
- <brainsins_recommender_read>
47
- <connection>
48
- <use>core_read</use>
49
- </connection>
50
- </brainsins_recommender_read>
51
  </resources>
52
  <events>
53
  <sales_order_invoice_save_after>
15
  <config>
16
  <modules>
17
  <Brainsins_Recommender>
18
+ <version>2.1.6</version>
19
  </Brainsins_Recommender>
20
  </modules>
21
  <global>
35
  </brainsins_recommender>
36
  </blocks>
37
  <resources>
38
+ <recommender_setup>
39
  <setup>
40
  <module>Brainsins_Recommender</module>
41
  </setup>
42
  <connection>
43
  <use>core_setup</use>
44
  </connection>
45
+ </recommender_setup>
 
 
 
 
 
46
  </resources>
47
  <events>
48
  <sales_order_invoice_save_after>
app/code/community/Brainsins/Recommender/sql/.DS_Store ADDED
Binary file
app/code/community/Brainsins/Recommender/sql/recommender_setup/mysql4-install-2.1.6.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+ try{
4
+ $installer->startSetup();
5
+ $installer->getConnection()->addColumn(
6
+ $this->getTable('sales_flat_quote'),
7
+ 'brainsins_qhash',
8
+ array(
9
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
10
+ 'length' => 255,
11
+ 'nullable' => false,
12
+ 'default' => '',
13
+ 'comment' => 'Random hash to identify quote ID'
14
+ )
15
+ );
16
+ $installer->endSetup();
17
+ }catch(Eception $e){
18
+ error_log($e);
19
+ }
20
+
21
+ ?>
app/design/frontend/base/default/template/brainsins/recommender/js.phtml CHANGED
@@ -20,7 +20,8 @@
20
 
21
  function bsIsCartPage()
22
  {
23
- return Mage::app()->getRequest()->getControllerName() . '/' . Mage::app()->getRequest()->getActionName() == 'cart/index';
 
24
  }
25
 
26
  function bsIsCheckoutPage()
@@ -130,6 +131,14 @@
130
  $pageType = "cart";
131
  $bdata["pageType"] = "cart";
132
  $bdata["cart"] = bsCartInfo(false);
 
 
 
 
 
 
 
 
133
  }
134
 
135
  if (bsIsCheckoutPage()) {
20
 
21
  function bsIsCartPage()
22
  {
23
+ $path=Mage::app()->getRequest()->getControllerName() . '/' . Mage::app()->getRequest()->getActionName();
24
+ return $path == 'cart/index' || $path== 'checkout_cart/index';
25
  }
26
 
27
  function bsIsCheckoutPage()
131
  $pageType = "cart";
132
  $bdata["pageType"] = "cart";
133
  $bdata["cart"] = bsCartInfo(false);
134
+ //track misc data for order
135
+ $session = Mage::getSingleton('checkout/session');
136
+ if($session->getData("brainsins_qhash")){
137
+ $bdata["cartMisc"] =array(
138
+ "quoteId"=>$session->getQuoteId(),
139
+ "brainsins_qhash"=>$session->getData("brainsins_qhash")
140
+ );
141
+ }
142
  }
143
 
144
  if (bsIsCheckoutPage()) {
app/design/frontend/base/default/template/brainsins/recommender/sample.phtml CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
  /* --- GET RECOMMENDATIONS --- */
3
  $recommendations = $this->getRecommendations();
 
4
  ?>
5
 
6
  <?php if(count($recommendations)): ?>
1
  <?php
2
  /* --- GET RECOMMENDATIONS --- */
3
  $recommendations = $this->getRecommendations();
4
+ error_log(1);
5
  ?>
6
 
7
  <?php if(count($recommendations)): ?>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Brainsins_Recommender</name>
4
- <version>2.1.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/gpl-license.php">GPL</license>
7
  <channel>community</channel>
@@ -18,11 +18,11 @@ Some key features:&#xD;
18
  * Easily create marketing rules that modify your e-commerce website or interact with your customers according to user behavior.&#xD;
19
  * Use gamification to engage and cultivate the loyalty of your customers and grow a community of prescribers.&#xD;
20
  * We provide a full e-commerce analytics solution to help you understand the evolution of your online business.</description>
21
- <notes>[Fix] Fixed issue when loading cusotm script plus ajax tracking</notes>
22
  <authors><author><name>BrainSINS</name><user>Developer</user><email>support@brainsins.com</email></author></authors>
23
- <date>2016-07-19</date>
24
- <time>14:22:11</time>
25
- <contents><target name="magecommunity"><dir name="Brainsins"><dir name="Recommender"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Expanded.php" hash="8fb32bbec5454610a8aab055c8891bf7"/><file name="Help.php" hash="df89b5f0a9d7510aa1393c888324e6dd"/></dir><dir name="Form"><dir name="Fieldset"><dir name="Dashboard"><file name="Dashboard.php" hash="7fcdcc0b077e1fcd40f209ada40d183e"/></dir></dir></dir><dir name="Source"><dir name="Feeds"><file name="ProductOffline.php" hash="d2480bf9d3a79f41b5889c46f747c008"/><file name="ProductOnline.php" hash="8a64b9b4cf0b1e57e0afa19889271934"/></dir><dir name="Recommenders"><file name="Cart.php" hash="3c8b3efaa4edfb696483b7e04787f852"/><file name="Category.php" hash="df3bdf28ef21e61d954d561e5bf69e13"/><file name="Checkout.php" hash="a4cf4b2b0df44b8efdc983a2616105c1"/><file name="Home.php" hash="c77c1afbdac04b9eec90e749aa67a6f9"/><file name="Product.php" hash="2ca0f98935197a5f515d0882e4177e00"/><file name="Show.php" hash="108263f746e4650ad46878b97edfd43c"/></dir></dir></dir></dir></dir><file name="Recommendations.php" hash="223234fb802b171bc46d4840e9a3e325"/></dir><dir name="Helper"><file name="Data.php" hash="5ad299fc315394812b27ffa060da6e65"/><file name="sendBrainsinsWS.log" hash="3ea4f9e70438ab097c878da3f1929a0f"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="f0187336296261795b3163d7da20a24d"/><file name="Serialized.php" hash="c68122c82e7e1fc13a2575ac4e417d78"/></dir><dir name="Source"><file name="Apimode.php" hash="80852b4069d03c7a3b70390d67d2f875"/><file name="Attributes.php" hash="c223fe5451b35bb8779ec8d3e077d4b7"/><file name="Configurableproducttracking.php" hash="3b3c28b4142d90abafeacb3daa13f035"/><file name="Currencies.php" hash="478e4c7a7ca1d3d8d984c37af1d487e6"/><file name="Emailtracking.php" hash="017ec03450cff0317cb390830eca26ef"/><file name="Totalamounttrackingoptions.php" hash="0bba8d100a8a78030dd6a12ffe443c40"/></dir></dir></dir></dir><file name="Brainsins.php" hash="4012634c558c030effa04c92485621ba"/><file name="Cron.php" hash="04e1ed2c59fa488e614fe903abac45d1"/><file name="Observer.php" hash="c5975e7872c5697c0f9b725a92a967b3"/><file name="Recommendation.php" hash="a8918aceeb106b2b5afe8664c87229ef"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FeedsController.php" hash="d318a3d4ba80b9587229a4f364bd3de3"/></dir><file name="CartController.php" hash="c1e857c1f5dc3f0ecf202bb825f48a84"/><file name="FeedController.php" hash="f537330700e1cc70e4260357af6a2db0"/><file name="LoginController.php" hash="3e2e8ff8564e987ba1550f54246737ed"/><file name="PurchaseController.php" hash="584b0ba37024bb84cf0171fc23fb2a9d"/><file name="RecommendationController.php" hash="1ead8f07f6ff07b5ed2283581a4ad1ab"/><file name="TrackingController.php" hash="04b22c332cdd9ad47dfab42c39bab66b"/></dir><dir name="etc"><file name="config.xml" hash="fa4d292fff338d11e4a12932e1228beb"/><file name="system.xml" hash="7c5e34a435ca19760334398a8f7b5b1b"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="brainsins_recommender.xml" hash="a0008aeb7f895e96b60995792d37bed9"/></dir><dir name="template"><dir name="brainsins"><dir name="recommender"><file name="help.phtml" hash="890622a39d07bd9029fbab39e3f7abf7"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="brainsins_recommender.xml" hash="6a98a70604110c1fb7596ce0cdc93fb9"/></dir><dir name="template"><dir name="brainsins"><dir name="recommender"><file name="header.phtml" hash="0b96e5604460941461c13557a5cb8ff8"/><file name="js.phtml" hash="74e4831cdd09cea4fc3912b7bce48330"/><file name="sample.phtml" hash="8ee06704ba1f71a60c771e5e8816912a"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Brainsins_Recommender.xml" hash="b66f774ab8de3a90258047d6701491aa"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Brainsins_Recommender.csv" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><dir name="es_ES"><file name="Brainsins_Recommender.csv" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="brainsins"><dir name="recommender"><dir name="css"><file name="brainsins_recommender.css" hash="db420d334316b3d19f013c7d1289e6c8"/></dir><dir name="images"><file name="brainsins.png" hash="98f06e0c5eb7668dd7293fc89614f7bc"/><file name="brainsins_logo.png" hash="cb4086cde3e5eef572159bd9f2ebd298"/><file name="feed_file_nok.gif" hash="e4f28607f075a105e53fa3113d84bd26"/><file name="feed_file_ok.gif" hash="834dfafd5f8b44c4b24a4c00add56fcf"/></dir><dir name="js"><file name="brainsins_recommender.js" hash="6ceed921b60e8590a70ee9db54e04811"/></dir></dir></dir></dir></dir></dir></target></contents>
26
  <compatible/>
27
  <dependencies><required><php><min>5.2.0</min><max>7.0.0</max></php></required></dependencies>
28
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Brainsins_Recommender</name>
4
+ <version>2.1.6</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/gpl-license.php">GPL</license>
7
  <channel>community</channel>
18
  * Easily create marketing rules that modify your e-commerce website or interact with your customers according to user behavior.&#xD;
19
  * Use gamification to engage and cultivate the loyalty of your customers and grow a community of prescribers.&#xD;
20
  * We provide a full e-commerce analytics solution to help you understand the evolution of your online business.</description>
21
+ <notes>Added code necessary for tracking quotes without using IDs, thus we may build the cart back using the hash generated,</notes>
22
  <authors><author><name>BrainSINS</name><user>Developer</user><email>support@brainsins.com</email></author></authors>
23
+ <date>2016-09-22</date>
24
+ <time>15:55:11</time>
25
+ <contents><target name="magecommunity"><dir name="Brainsins"><dir name="Recommender"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Expanded.php" hash="8fb32bbec5454610a8aab055c8891bf7"/><file name="Help.php" hash="df89b5f0a9d7510aa1393c888324e6dd"/></dir><dir name="Form"><dir name="Fieldset"><dir name="Dashboard"><file name="Dashboard.php" hash="7fcdcc0b077e1fcd40f209ada40d183e"/></dir></dir></dir><dir name="Source"><dir name="Feeds"><file name="ProductOffline.php" hash="d2480bf9d3a79f41b5889c46f747c008"/><file name="ProductOnline.php" hash="8a64b9b4cf0b1e57e0afa19889271934"/></dir><dir name="Recommenders"><file name="Cart.php" hash="3c8b3efaa4edfb696483b7e04787f852"/><file name="Category.php" hash="df3bdf28ef21e61d954d561e5bf69e13"/><file name="Checkout.php" hash="a4cf4b2b0df44b8efdc983a2616105c1"/><file name="Home.php" hash="c77c1afbdac04b9eec90e749aa67a6f9"/><file name="Product.php" hash="2ca0f98935197a5f515d0882e4177e00"/><file name="Show.php" hash="108263f746e4650ad46878b97edfd43c"/></dir></dir></dir></dir></dir><file name="Recommendations.php" hash="223234fb802b171bc46d4840e9a3e325"/></dir><dir name="Helper"><file name="Data.php" hash="a32634f64cf30fc068391e8208706f3c"/><file name="sendBrainsinsWS.log" hash="3ea4f9e70438ab097c878da3f1929a0f"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="f0187336296261795b3163d7da20a24d"/><file name="Serialized.php" hash="c68122c82e7e1fc13a2575ac4e417d78"/></dir><dir name="Source"><file name="Apimode.php" hash="80852b4069d03c7a3b70390d67d2f875"/><file name="Attributes.php" hash="c223fe5451b35bb8779ec8d3e077d4b7"/><file name="Configurableproducttracking.php" hash="3b3c28b4142d90abafeacb3daa13f035"/><file name="Currencies.php" hash="478e4c7a7ca1d3d8d984c37af1d487e6"/><file name="Emailtracking.php" hash="017ec03450cff0317cb390830eca26ef"/><file name="Totalamounttrackingoptions.php" hash="0bba8d100a8a78030dd6a12ffe443c40"/></dir></dir></dir></dir><file name="Brainsins.php" hash="4012634c558c030effa04c92485621ba"/><file name="Cron.php" hash="04e1ed2c59fa488e614fe903abac45d1"/><file name="Observer.php" hash="8827c65cf4d6a3443bd1b80834043304"/><file name="Recommendation.php" hash="a8918aceeb106b2b5afe8664c87229ef"/><file name=".DS_Store" hash="5e07621f6f2348ae9d991910f46b3b71"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="FeedsController.php" hash="d318a3d4ba80b9587229a4f364bd3de3"/></dir><file name="CartController.php" hash="d4eac15059730ad6cd8b454e0e22e16d"/><file name="FeedController.php" hash="f537330700e1cc70e4260357af6a2db0"/><file name="LoginController.php" hash="3e2e8ff8564e987ba1550f54246737ed"/><file name="PurchaseController.php" hash="584b0ba37024bb84cf0171fc23fb2a9d"/><file name="RecommendationController.php" hash="1ead8f07f6ff07b5ed2283581a4ad1ab"/><file name="TrackingController.php" hash="04b22c332cdd9ad47dfab42c39bab66b"/></dir><dir name="etc"><file name="config.xml" hash="9576eb8ef1d0eec5b1ad98210af6aaa9"/><file name="system.xml" hash="7c5e34a435ca19760334398a8f7b5b1b"/></dir><dir name="sql"><dir name="recommender_setup"><file name="mysql4-install-2.1.6.php" hash="b412f2e3b2bea04a8fdaca01f8586163"/></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="brainsins_recommender.xml" hash="a0008aeb7f895e96b60995792d37bed9"/></dir><dir name="template"><dir name="brainsins"><dir name="recommender"><file name="help.phtml" hash="890622a39d07bd9029fbab39e3f7abf7"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="brainsins_recommender.xml" hash="6a98a70604110c1fb7596ce0cdc93fb9"/></dir><dir name="template"><dir name="brainsins"><dir name="recommender"><file name="header.phtml" hash="0b96e5604460941461c13557a5cb8ff8"/><file name="js.phtml" hash="96994b3bfe73facd3b5c3fa5706933f1"/><file name="sample.phtml" hash="cc1459aedacb18b5360182f8a1f7177d"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Brainsins_Recommender.xml" hash="b66f774ab8de3a90258047d6701491aa"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Brainsins_Recommender.csv" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir><dir name="es_ES"><file name="Brainsins_Recommender.csv" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="brainsins"><dir name="recommender"><dir name="css"><file name="brainsins_recommender.css" hash="db420d334316b3d19f013c7d1289e6c8"/></dir><dir name="images"><file name="brainsins.png" hash="98f06e0c5eb7668dd7293fc89614f7bc"/><file name="brainsins_logo.png" hash="cb4086cde3e5eef572159bd9f2ebd298"/><file name="feed_file_nok.gif" hash="e4f28607f075a105e53fa3113d84bd26"/><file name="feed_file_ok.gif" hash="834dfafd5f8b44c4b24a4c00add56fcf"/></dir><dir name="js"><file name="brainsins_recommender.js" hash="6ceed921b60e8590a70ee9db54e04811"/></dir></dir></dir></dir></dir></dir></target></contents>
26
  <compatible/>
27
  <dependencies><required><php><min>5.2.0</min><max>7.0.0</max></php></required></dependencies>
28
  </package>