Nosto_Tagging - Version 2.6.6

Version Notes

* Fix account removal for self-signup accounts through the iframe
* Fix uncaught "InvalidArgumentException" exception when order status is missing
a label
* Make order buyer info optional in tagging and API calls

Download this release

Release Info

Developer Nosto
Extension Nosto_Tagging
Version 2.6.6
Comparing to
See all releases


Code changes from version 2.6.5 to 2.6.6

app/code/community/Nosto/Tagging/Block/Adminhtml/Iframe.php CHANGED
@@ -35,7 +35,7 @@
35
  */
36
  class Nosto_Tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template
37
  {
38
- const DEFAULT_IFRAME_ORIGIN_REGEXP = '(https:\/\/magento-([a-z0-9]+)\.hub\.nosto\.com)|(https:\/\/my\.nosto\.com)';
39
 
40
  /**
41
  * @var string the iframe url if SSO to Nosto can be made.
35
  */
36
  class Nosto_Tagging_Block_Adminhtml_Iframe extends Mage_Adminhtml_Block_Template
37
  {
38
+ const DEFAULT_IFRAME_ORIGIN_REGEXP = '(https:\/\/(.*)\.hub\.nosto\.com)|(https:\/\/my\.nosto\.com)';
39
 
40
  /**
41
  * @var string the iframe url if SSO to Nosto can be made.
app/code/community/Nosto/Tagging/Model/Export/Collection/Order.php CHANGED
@@ -45,11 +45,7 @@ class Nosto_Tagging_Model_Export_Collection_Order extends NostoOrderCollection i
45
  'order_status_label' => $item->getOrderStatus()->getLabel(),
46
  'order_statuses' => array(),
47
  'created_at' => Nosto::helper('date')->format($item->getCreatedDate()),
48
- 'buyer' => array(
49
- 'first_name' => $item->getBuyerInfo()->getFirstName(),
50
- 'last_name' => $item->getBuyerInfo()->getLastName(),
51
- 'email' => $item->getBuyerInfo()->getEmail(),
52
- ),
53
  'payment_provider' => $item->getPaymentProvider(),
54
  'purchased_items' => array(),
55
  );
@@ -69,6 +65,16 @@ class Nosto_Tagging_Model_Export_Collection_Order extends NostoOrderCollection i
69
  $data['order_statuses'][$status->getCode()][] =
70
  date('Y-m-d\TH:i:s\Z', strtotime($status->getCreatedAt()));
71
  }
 
 
 
 
 
 
 
 
 
 
72
  $array[] = $data;
73
  }
74
  return json_encode($array);
45
  'order_status_label' => $item->getOrderStatus()->getLabel(),
46
  'order_statuses' => array(),
47
  'created_at' => Nosto::helper('date')->format($item->getCreatedDate()),
48
+ 'buyer' => array(),
 
 
 
 
49
  'payment_provider' => $item->getPaymentProvider(),
50
  'purchased_items' => array(),
51
  );
65
  $data['order_statuses'][$status->getCode()][] =
66
  date('Y-m-d\TH:i:s\Z', strtotime($status->getCreatedAt()));
67
  }
68
+ if ($item->getBuyerInfo()->getFirstName()) {
69
+ $data['buyer']['first_name'] = $item->getBuyerInfo()->getFirstName();
70
+ }
71
+ if ($item->getBuyerInfo()->getLastName()) {
72
+ $data['buyer']['last_name'] = $item->getBuyerInfo()->getLastName();
73
+ }
74
+ if ($item->getBuyerInfo()->getEmail()) {
75
+ $data['buyer']['email'] = $item->getBuyerInfo()->getEmail();
76
+ }
77
+
78
  $array[] = $data;
79
  }
80
  return json_encode($array);
app/code/community/Nosto/Tagging/Model/Meta/Order/Buyer.php CHANGED
@@ -62,19 +62,25 @@ class Nosto_Tagging_Model_Meta_Order_Buyer extends Mage_Core_Model_Abstract impl
62
  */
63
  public function __construct(array $args)
64
  {
65
- if (!isset($args['firstName']) || !is_string($args['firstName']) || empty($args['firstName'])) {
66
- throw new InvalidArgumentException(sprintf('%s.firstName must be a non-empty string value.', __CLASS__));
 
 
67
  }
68
- if (!isset($args['lastName']) || !is_string($args['lastName']) || empty($args['lastName'])) {
69
- throw new InvalidArgumentException(sprintf('%s.lastName must be a non-empty string value.', __CLASS__));
 
 
70
  }
71
- if (!isset($args['email']) || !is_string($args['email']) || empty($args['email'])) {
72
- throw new InvalidArgumentException(sprintf('%s.email must be a non-empty string value.', __CLASS__));
 
 
73
  }
74
 
75
- $this->_firstName = $args['firstName'];
76
- $this->_lastName = $args['lastName'];
77
- $this->_email = $args['email'];
78
  }
79
 
80
  /**
62
  */
63
  public function __construct(array $args)
64
  {
65
+ if (isset($args['firstName'])) {
66
+ if (!is_string($args['firstName']) || empty($args['firstName'])) {
67
+ throw new InvalidArgumentException(sprintf('%s.firstName must be a non-empty string value.', __CLASS__));
68
+ }
69
  }
70
+ if (isset($args['lastName'])) {
71
+ if (!is_string($args['lastName']) || empty($args['lastName'])) {
72
+ throw new InvalidArgumentException(sprintf('%s.lastName must be a non-empty string value.', __CLASS__));
73
+ }
74
  }
75
+ if (isset($args['email'])) {
76
+ if (!is_string($args['email']) || empty($args['email'])) {
77
+ throw new InvalidArgumentException(sprintf('%s.email must be a non-empty string value.', __CLASS__));
78
+ }
79
  }
80
 
81
+ $this->_firstName = isset($args['firstName']) ? $args['firstName'] : null;
82
+ $this->_lastName = isset($args['lastName']) ? $args['lastName'] : null;
83
+ $this->_email = isset($args['email']) ? $args['email'] : null;
84
  }
85
 
86
  /**
app/code/community/Nosto/Tagging/Model/Meta/Order/Status.php CHANGED
@@ -65,8 +65,10 @@ class Nosto_Tagging_Model_Meta_Order_Status extends Mage_Core_Model_Abstract imp
65
  if (!isset($args['code']) || !is_string($args['code']) || empty($args['code'])) {
66
  throw new InvalidArgumentException(sprintf('%s.code must be a non-empty string value.', __CLASS__));
67
  }
68
- if (!isset($args['label']) || !is_string($args['label']) || empty($args['label'])) {
69
- throw new InvalidArgumentException(sprintf('%s.label must be a non-empty string value.', __CLASS__));
 
 
70
  }
71
  if (isset($args['createdAt'])) {
72
  if (!is_string($args['createdAt']) || strtotime($args['createdAt']) === false) {
@@ -75,10 +77,8 @@ class Nosto_Tagging_Model_Meta_Order_Status extends Mage_Core_Model_Abstract imp
75
  }
76
 
77
  $this->_code = $args['code'];
78
- $this->_label = $args['label'];
79
- if (isset($args['createdAt'])) {
80
- $this->_createdAt = $args['createdAt'];
81
- }
82
  }
83
 
84
  /**
65
  if (!isset($args['code']) || !is_string($args['code']) || empty($args['code'])) {
66
  throw new InvalidArgumentException(sprintf('%s.code must be a non-empty string value.', __CLASS__));
67
  }
68
+ if (isset($args['label'])) {
69
+ if (!is_string($args['label']) || empty($args['label'])) {
70
+ throw new InvalidArgumentException(sprintf('%s.label must be a non-empty string value.', __CLASS__));
71
+ }
72
  }
73
  if (isset($args['createdAt'])) {
74
  if (!is_string($args['createdAt']) || strtotime($args['createdAt']) === false) {
77
  }
78
 
79
  $this->_code = $args['code'];
80
+ $this->_label = isset($args['label']) ? $args['label'] : $args['code'];
81
+ $this->_createdAt = isset($args['createdAt']) ? $args['createdAt'] : null;
 
 
82
  }
83
 
84
  /**
app/code/community/Nosto/Tagging/Model/Service/Order.php CHANGED
@@ -89,11 +89,7 @@ class Nosto_Tagging_Model_Service_Order
89
  'external_order_ref' => $order->getExternalOrderRef(),
90
  'order_status_code' => $order->getOrderStatus()->getCode(),
91
  'order_status_label' => $order->getOrderStatus()->getLabel(),
92
- 'buyer' => array(
93
- 'first_name' => $order->getBuyerInfo()->getFirstName(),
94
- 'last_name' => $order->getBuyerInfo()->getLastName(),
95
- 'email' => $order->getBuyerInfo()->getEmail(),
96
- ),
97
  'created_at' => Nosto::helper('date')->format($order->getCreatedDate()),
98
  'payment_provider' => $order->getPaymentProvider(),
99
  'purchased_items' => array(),
@@ -107,6 +103,15 @@ class Nosto_Tagging_Model_Service_Order
107
  'price_currency_code' => strtoupper($item->getCurrencyCode()),
108
  );
109
  }
 
 
 
 
 
 
 
 
 
110
  return json_encode($data);
111
  }
112
  }
89
  'external_order_ref' => $order->getExternalOrderRef(),
90
  'order_status_code' => $order->getOrderStatus()->getCode(),
91
  'order_status_label' => $order->getOrderStatus()->getLabel(),
92
+ 'buyer' => array(),
 
 
 
 
93
  'created_at' => Nosto::helper('date')->format($order->getCreatedDate()),
94
  'payment_provider' => $order->getPaymentProvider(),
95
  'purchased_items' => array(),
103
  'price_currency_code' => strtoupper($item->getCurrencyCode()),
104
  );
105
  }
106
+ if ($order->getBuyerInfo()->getFirstName()) {
107
+ $data['buyer']['first_name'] = $order->getBuyerInfo()->getFirstName();
108
+ }
109
+ if ($order->getBuyerInfo()->getLastName()) {
110
+ $data['buyer']['last_name'] = $order->getBuyerInfo()->getLastName();
111
+ }
112
+ if ($order->getBuyerInfo()->getEmail()) {
113
+ $data['buyer']['email'] = $order->getBuyerInfo()->getEmail();
114
+ }
115
  return json_encode($data);
116
  }
117
  }
app/code/community/Nosto/Tagging/etc/config.xml CHANGED
@@ -29,7 +29,7 @@
29
  <config>
30
  <modules>
31
  <Nosto_Tagging>
32
- <version>2.6.5</version>
33
  </Nosto_Tagging>
34
  </modules>
35
  <global>
29
  <config>
30
  <modules>
31
  <Nosto_Tagging>
32
+ <version>2.6.6</version>
33
  </Nosto_Tagging>
34
  </modules>
35
  <global>
app/design/adminhtml/default/default/layout/nostotagging.xml CHANGED
@@ -31,9 +31,8 @@
31
  <adminhtml_nosto_index>
32
  <!-- Add JavaScript file -->
33
  <reference name="head">
34
- <action method="addJs"><script>nosto/iframeresizer.min.js</script></action>
35
- <action method="addJs"><script>nosto/NostoIframe.min.js</script></action>
36
- <action method="addJs"><script>nosto/NostoAdmin.js</script></action>
37
  </reference>
38
  <!--Set active menu item-->
39
  <reference name="menu">
31
  <adminhtml_nosto_index>
32
  <!-- Add JavaScript file -->
33
  <reference name="head">
34
+ <action method="addJs"><script>nosto/iframeResizer.min.js</script></action>
35
+ <action method="addJs"><script>nosto/iframeHandler.min.js</script></action>
 
36
  </reference>
37
  <!--Set active menu item-->
38
  <reference name="menu">
app/design/adminhtml/default/default/template/nostotagging/iframe.phtml CHANGED
@@ -34,17 +34,50 @@ $params = array('store' => $this->getSelectedStore()->getId(), 'isAjax' => true)
34
  ?>
35
  <iframe id="nosto_iframe" src='<?php echo $this->getIframeUrl(); ?>' width='100%' frameborder='0' scrolling='no' style="min-height: 600px;"></iframe>
36
  <script type="text/javascript">
37
- // Define the "Nosto" namespace if not already defined.
38
- if (typeof Nosto === "undefined") {
39
- var Nosto = {};
40
- }
41
- Nosto.settings = {
42
- origin: "<?php echo $this->getIframeOrigin(); ?>",
43
- urls: {
44
- createAccount: "<?php echo $this->getUrl('*/*/createAccount', $params); ?>",
45
- connectAccount: "<?php echo $this->getUrl('*/*/connectAccount', $params); ?>",
46
- deleteAccount: "<?php echo $this->getUrl('*/*/removeAccount', $params); ?>"
47
- },
48
- xhrParams: {form_key: window.FORM_KEY}
49
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  </script>
34
  ?>
35
  <iframe id="nosto_iframe" src='<?php echo $this->getIframeUrl(); ?>' width='100%' frameborder='0' scrolling='no' style="min-height: 600px;"></iframe>
36
  <script type="text/javascript">
37
+ document.observe("dom:loaded", function() {
38
+ // Init the iframe re-sizer.
39
+ iFrameResize({heightCalculationMethod : "bodyScroll"});
40
+
41
+ /**
42
+ * Window.postMessage() event handler for catching messages from Nosto.
43
+ *
44
+ * Supported messages must come from [*.]nosto.com and be formatted
45
+ * according to the following example:
46
+ *
47
+ * '[Nosto]{ "type": "the message action", "params": {} }'
48
+ *
49
+ * @param {Object} event
50
+ */
51
+ function receiveMessage(event) {
52
+ var settings = {
53
+ iframeId: "nosto_iframe",
54
+ urls: {
55
+ createAccount: "<?php echo $this->getUrl('*/*/createAccount', $params); ?>",
56
+ connectAccount: "<?php echo $this->getUrl('*/*/connectAccount', $params); ?>",
57
+ deleteAccount: "<?php echo $this->getUrl('*/*/removeAccount', $params); ?>"
58
+ }
59
+ };
60
+
61
+ // Check the origin to prevent cross-site scripting.
62
+ var originRegexp = new RegExp("<?php echo $this->getIframeOrigin(); ?>");
63
+ if (!originRegexp.test(event.origin)) {
64
+ return;
65
+ }
66
+ // If the message does not start with "[Nosto]", then it is not for us.
67
+ if ((""+event.data).substr(0, 7) !== "[Nosto]") {
68
+ return;
69
+ }
70
+
71
+ // Pass the info on to a handler if the data seems sane.
72
+ var json = (""+event.data).substr(7);
73
+ var data = JSON.parse(json);
74
+ if (typeof data === "object" && data.type) {
75
+ Nosto.handlePostMessage(data, settings);
76
+ }
77
+ }
78
+
79
+ // Register event handler for window.postMessage() messages from Nosto.
80
+ window.addEventListener("message", receiveMessage, false);
81
+ });
82
+
83
  </script>
app/design/frontend/base/default/template/nostotagging/order.phtml CHANGED
@@ -46,9 +46,15 @@ $priceHelper = Mage::helper('nosto_tagging/price');
46
  <span class="order_status_label"><?php echo $helper->escapeHtml($order->getOrderStatus()->getLabel()); ?></span>
47
  <span class="payment_provider"><?php echo $helper->escapeHtml($order->getPaymentProvider()); ?></span>
48
  <div class="buyer">
49
- <span class="first_name"><?php echo $helper->escapeHtml($order->getBuyerInfo()->getFirstName()); ?></span>
50
- <span class="last_name"><?php echo $helper->escapeHtml($order->getBuyerInfo()->getLastName()); ?></span>
51
- <span class="email"><?php echo $helper->escapeHtml($order->getBuyerInfo()->getEmail()); ?></span>
 
 
 
 
 
 
52
  </div>
53
  <div class="purchased_items">
54
  <?php foreach ($order->getPurchasedItems() as $item): ?>
46
  <span class="order_status_label"><?php echo $helper->escapeHtml($order->getOrderStatus()->getLabel()); ?></span>
47
  <span class="payment_provider"><?php echo $helper->escapeHtml($order->getPaymentProvider()); ?></span>
48
  <div class="buyer">
49
+ <?php if ($order->getBuyerInfo()->getFirstName()): ?>
50
+ <span class="first_name"><?php echo $helper->escapeHtml($order->getBuyerInfo()->getFirstName()); ?></span>
51
+ <?php endif; ?>
52
+ <?php if ($order->getBuyerInfo()->getLastName()): ?>
53
+ <span class="last_name"><?php echo $helper->escapeHtml($order->getBuyerInfo()->getLastName()); ?></span>
54
+ <?php endif; ?>
55
+ <?php if ($order->getBuyerInfo()->getEmail()): ?>
56
+ <span class="email"><?php echo $helper->escapeHtml($order->getBuyerInfo()->getEmail()); ?></span>
57
+ <?php endif; ?>
58
  </div>
59
  <div class="purchased_items">
60
  <?php foreach ($order->getPurchasedItems() as $item): ?>
js/nosto/NostoAdmin.js DELETED
@@ -1,32 +0,0 @@
1
- /**
2
- * Magento
3
- *
4
- * NOTICE OF LICENSE
5
- *
6
- * This source file is subject to the Open Software License (OSL 3.0)
7
- * that is bundled with this package in the file LICENSE.txt.
8
- * It is also available through the world-wide-web at this URL:
9
- * http://opensource.org/licenses/osl-3.0.php
10
- * If you did not receive a copy of the license and are unable to
11
- * obtain it through the world-wide-web, please send an email
12
- * to license@magentocommerce.com so we can send you a copy immediately.
13
- *
14
- * DISCLAIMER
15
- *
16
- * Do not edit or add to this file if you wish to upgrade Magento to newer
17
- * versions in the future. If you wish to customize Magento for your
18
- * needs please refer to http://www.magentocommerce.com for more information.
19
- *
20
- * @category Nosto
21
- * @package Nosto_Tagging
22
- * @copyright Copyright (c) 2013-2015 Nosto Solutions Ltd (http://www.nosto.com)
23
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
- */
25
-
26
- document.observe("dom:loaded", function() {
27
- // Init the iframe re-sizer.
28
- iFrameResize({heightCalculationMethod : "bodyScroll"});
29
-
30
- // Init the Nosto iframe API.
31
- Nosto.iframe(Nosto.settings);
32
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
js/nosto/NostoIframe.min.js DELETED
@@ -1 +0,0 @@
1
- if("undefined"==typeof Nosto)var Nosto={};Nosto.iframe=function(a){function b(a){var b=new RegExp(j.origin);if(b.test(a.origin)&&"[Nosto]"===(""+a.data).substr(0,7)){var d=(""+a.data).substr(7),e=JSON.parse(d);if("object"==typeof e&&e.type)switch(e.type){case g:c(j.urls.createAccount,{data:{email:e.params.email},success:function(a){var b=JSON.parse(a.target.response);if(!b.redirect_url)throw new Error("Nosto: failed to handle account creation.");f().src=b.redirect_url}});break;case h:c(j.urls.connectAccount,{success:function(a){var b=JSON.parse(a.target.response);if(!b.redirect_url)throw new Error("Nosto: failed to handle account connection.");b.success&&b.success===!0?window.location.href=b.redirect_url:f().src=b.redirect_url}});break;case i:c(j.urls.deleteAccount,{success:function(a){var b=JSON.parse(a.target.response);if(!b.redirect_url)throw new Error("Nosto: failed to handle account deletion.");f().src=b.redirect_url}});break;default:throw new Error("Nosto: invalid postMessage `type`.")}}}function c(a,b){var c=d({method:"POST",async:!0,data:{}},b);d(c.data,j.xhrParams);var f=e(c.data),g=new XMLHttpRequest;"function"==typeof c.success&&g.addEventListener("load",c.success,!1),"function"==typeof c.error&&g.addEventListener("error",c.error,!1),g.open(c.method,decodeURIComponent(a),c.async),g.setRequestHeader("X-Requested-With","XMLHttpRequest"),g.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),g.send(f)}function d(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function e(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(""!==b&&(b+="&"),b+=encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b}function f(){return document.getElementById(j.iframeId)}var g="newAccount",h="connectAccount",i="removeAccount",j={origin:"",iframeId:"nosto_iframe",urls:{createAccount:"",connectAccount:"",deleteAccount:""},xhrParams:{}};d(j,a),window.addEventListener("message",b,!1)};
 
js/nosto/iframeHandler.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(a){"use strict";function b(b,e){var f=c({method:"POST",async:!0,data:{}},e);f.data.form_key=a.FORM_KEY;var g=new XMLHttpRequest;"function"==typeof f.success&&g.addEventListener("load",function(a){f.success(JSON.parse(a.target.response))},!1),g.open(f.method,decodeURIComponent(b),f.async),g.setRequestHeader("X-Requested-With","XMLHttpRequest"),g.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),g.send(d(f.data))}function c(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a}function d(a){var b="";for(var c in a)a.hasOwnProperty(c)&&(""!==b&&(b+="&"),b+=encodeURIComponent(c)+"="+encodeURIComponent(a[c]));return b}var e=function(d,e){var f="newAccount",g="connectAccount",h="removeAccount",i=c({iframeId:"nosto_iframe",urls:{createAccount:"",connectAccount:"",deleteAccount:""}},e),j=document.getElementById(i.iframeId);switch(d.type){case f:b(i.urls.createAccount,{data:{email:d.params.email},success:function(a){a.success&&a.redirect_url&&(j.src=a.redirect_url)}});break;case g:b(i.urls.connectAccount,{success:function(b){b.success&&b.redirect_url?a.location.href=b.redirect_url:!b.success&&b.redirect_url&&(j.src=b.redirect_url)}});break;case h:b(i.urls.deleteAccount,{success:function(a){a.success&&a.redirect_url&&(j.src=a.redirect_url)}});break;default:throw new Error("Nosto: invalid postMessage `type`.")}};a.Nosto=a.Nosto||{},a.Nosto.handlePostMessage=e}(window||{});
js/nosto/{iframeresizer.min.js → iframeResizer.min.js} RENAMED
File without changes
lib/nosto/php-sdk/src/classes/http/NostoHttpRequestAdapterCurl.php CHANGED
@@ -39,6 +39,10 @@
39
  */
40
  class NostoHttpRequestAdapterCurl extends NostoHttpRequestAdapter
41
  {
 
 
 
 
42
  /**
43
  * @inheritdoc
44
  */
39
  */
40
  class NostoHttpRequestAdapterCurl extends NostoHttpRequestAdapter
41
  {
42
+ protected $curlOptions = array(
43
+
44
+ );
45
+
46
  /**
47
  * @inheritdoc
48
  */
package.xml CHANGED
@@ -1,20 +1,21 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Nosto_Tagging</name>
4
- <version>2.6.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>
8
  <extends/>
9
  <summary>Personalization for Magento</summary>
10
  <description>Increase your conversion rate and average order value by delivering your customers personalized product recommendations throughout their shopping journey.</description>
11
- <notes>* Add "external_order_ref" to order tagging and API requests in order to better&#xD;
12
- track orders&#xD;
13
- * Add "order_statuses" to the order export to be able to better check up on order funnels</notes>
 
14
  <authors><author><name>Nosto</name><user>nosto</user><email>magento@nosto.com</email></author></authors>
15
- <date>2015-10-07</date>
16
- <time>09:12:46</time>
17
- <contents><target name="magecommunity"><dir name="Nosto"><dir name="Tagging"><dir name="Block"><file name="Addtocart.php" hash="61d645e5cc9e54a5170ae03797f0426a"/><dir name="Adminhtml"><file name="Iframe.php" hash="d60e2221e6689b2ab2da9263897f6a6b"/><file name="Wizard.php" hash="f98931a1a6e327c0d05e43b73063f672"/></dir><file name="Cart.php" hash="c1c707dad76c98d807d5160b90c06ac6"/><file name="Category.php" hash="177a5d8d9f1ba9e246d149c228c3aec8"/><file name="Customer.php" hash="d35777ca399244e4fb441456320f8ad7"/><file name="Element.php" hash="e5b12bb118b92eb7075ff7a6e16e0eba"/><file name="Embed.php" hash="e8b628b6bc49fb865697552300d08526"/><file name="Meta.php" hash="1f761e731214b7572ef139d9e0577ea1"/><file name="Order.php" hash="32115070d380e654f093da11dd6e4d85"/><file name="Product.php" hash="ac7b85e6d03d94d03c59416b622b0039"/></dir><dir name="Helper"><file name="Account.php" hash="40eb62dd1718741b2064d4a440f46b2f"/><file name="Customer.php" hash="92da4f0ae6c2aef635b837635cd74238"/><file name="Data.php" hash="c50b9b5a694fdd0401748741de97f6ab"/><file name="Date.php" hash="1a108a4ec8169b73411b6c11b86a1d80"/><file name="Oauth.php" hash="9ecbea9e8411501cabe780e0511a1d05"/><file name="Price.php" hash="b7fe656fad1182f5c2166e95a4b29204"/><file name="Url.php" hash="289294904d246c56e4de96798927a7f6"/></dir><dir name="Model"><file name="Base.php" hash="c0b3c4a6f68a0b707bf85ceff50e3c4b"/><dir name="Container"><file name="Cart.php" hash="20d2936693361999575f1e6ac56f2e40"/><file name="Customer.php" hash="b03bca89845b6c939521add8df1f7e9a"/></dir><file name="Customer.php" hash="6d992a43a75f29836ed1450e130df560"/><dir name="Export"><dir name="Collection"><file name="Order.php" hash="d30a5091514397ecf10d1bcac09dade9"/></dir></dir><dir name="Meta"><dir name="Account"><file name="Billing.php" hash="353e807f832a37591bf7359857044ca1"/><file name="Iframe.php" hash="731e2bf424e1b9d4e00d403f55a87b54"/><file name="Owner.php" hash="6fd3228a2758d06f78729c0250f7fd30"/></dir><file name="Account.php" hash="8df7024533e1cf657b407c49fb19a3c5"/><file name="Oauth.php" hash="0863271d8a3db0de93525f0e64308f1c"/><dir name="Order"><file name="Buyer.php" hash="fa231d30ae0d275ba820f05bfcd2f12e"/><file name="Item.php" hash="598aa5a2c713a59e9125976b48764488"/><file name="Status.php" hash="6d55ecde2ea856227b27b0f95c89a976"/></dir><file name="Order.php" hash="e8638ff582ac759a7e6d4c8d311e7d04"/><file name="Product.php" hash="40cf899477bac2f9916b030af8885e5e"/></dir><file name="Observer.php" hash="102b3e6d330e151a4595c54dc88a18a9"/><file name="Product.php" hash="3630a2a688f013b296d1865e6f32e1d2"/><dir name="Resource"><dir name="Customer"><file name="Collection.php" hash="0c99b46d5108a6fe31cad1190d8ef47c"/></dir><file name="Customer.php" hash="f92e4e5334b5e3493e8f04664b20f105"/><dir name="Product"><file name="Collection.php" hash="7566a7f4483a00c923bac2fbea173abd"/></dir><file name="Setup.php" hash="506b08bcb10cbe74e95812c5f646429f"/></dir><dir name="Service"><file name="Order.php" hash="6c6f74cc3d50101bbda13a21a19b5f3c"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Image.php" hash="d1fcc96aab01342627b96edf6fad1dd1"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="NostoController.php" hash="fd43fd322ea1f8d6b7db6d716250f71e"/></dir><file name="ExportController.php" hash="f22510a39256c0baca4fbcb9301c8ef5"/><file name="OauthController.php" hash="19927d6e9648d0f381b1c2f1b9684339"/></dir><dir name="etc"><file name="adminhtml.xml" hash="7ea210738a77630f299a14b442f3b8d0"/><file name="cache.xml" hash="e874fbbf2eb89b325deb1a62afbcfb4d"/><file name="config.xml" hash="56e427762b58625eb31ed2a9a07d2719"/><file name="system.xml" hash="7deba6544a09d7af8c07e6b5edc0975a"/></dir><dir name="sql"><dir name="tagging_setup"><file name="mysql4-install-1.2.0.php" hash="3cbc52834c44870859562eec7969b9fd"/><file name="mysql4-upgrade-1.1.7-1.2.0.php" hash="0d8eb7990461a9d4b74b479120067aeb"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="nostotagging"><file name="iframe.phtml" hash="c81931adf855a4893e0cf2dc60c390cb"/><file name="wizard.phtml" hash="3f92e94e5ee3d3cd9906a6b0942a3a1b"/></dir></dir><dir name="layout"><file name="nostotagging.xml" hash="29eb82c1a28e9c4d398239c765a3f5fd"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="nostotagging"><file name="addtocart.phtml" hash="e8776f59ec4c7c7b6eea2fae9d56e2a4"/><file name="cart.phtml" hash="3c4e80cdcebf63c56dc14a6594e167b8"/><dir name="category"><file name="view.phtml" hash="fc09e2770ad6281ec96c8e92accc01f1"/></dir><file name="category.phtml" hash="81f36742cb4e3adbf9f692cc8f0ea8a8"/><file name="customer.phtml" hash="e9bc92bb7f7df989cc706c7eaee3614a"/><file name="element.phtml" hash="e1d38981789e632a3607ccf2e171f0cb"/><file name="embed.phtml" hash="9193ddd1ae373b68c53f8364f511b0a5"/><file name="meta.phtml" hash="c1b862a4993503fae420fb0eba194b00"/><file name="order.phtml" hash="c176f10c5cc5a1c53fa6ed973a637f6c"/><file name="product.phtml" hash="9df3ff9f6e363e478d7fd68bd09827b1"/></dir></dir><dir name="layout"><file name="nostotagging.xml" hash="8adc3eecf5f90feffabee29d6308912b"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Nosto_Tagging.xml" hash="1705cb7e6db28388662ef52882d61701"/></dir></target><target name="magelib"><dir name="nosto"><dir name="php-sdk"><file name="LICENSE.txt" hash="309b355442cb85601216abd7a41909d2"/><file name="README.md" hash="0c4860a3dfe7bca30f3eb56c146b4166"/><dir name="src"><dir name="classes"><file name="Nosto.php" hash="c595c5f646f6e513b6604848f8d10118"/><file name="NostoAccount.php" hash="c422a7f104c5ebc6eac9d83986280579"/><file name="NostoCipher.php" hash="a3d7d148311aa0319387c0918e5e26dc"/><file name="NostoDotEnv.php" hash="90b23c1b02095c9368372f1d5346c3f9"/><file name="NostoMessage.php" hash="5933eadd2ad08427010b0bf16657266b"/><file name="NostoObject.php" hash="187808f0c55d02294d41e9395f4c5d58"/><file name="NostoOrderConfirmation.php" hash="2a3fd5efb196bc0dcb7ad57fb61a81d0"/><file name="NostoProductReCrawl.php" hash="f370c539409dd74fc98b7aa1ea0f6387"/><file name="NostoValidator.php" hash="2096ddc9979ec77f8f0b1ec58b459329"/><dir name="api"><file name="NostoApiRequest.php" hash="37db50c0d35ff9a848afe6a4bb871b6f"/><file name="NostoApiToken.php" hash="2febdbec0fd3609162845aa678b36b38"/></dir><dir name="collection"><file name="NostoCollection.php" hash="35cea0282628354413f629062b58663a"/><file name="NostoOrderCollection.php" hash="db6f517948c1258e1521ceb1ce49d477"/><file name="NostoProductCollection.php" hash="3ae29dbbcb7effa234fa83461d3e6901"/></dir><dir name="exception"><file name="NostoException.php" hash="c4610fb70278d01bd85bc83b8e74df30"/><file name="NostoHttpException.php" hash="dabf4298746db898c8fe709ea9e25818"/></dir><dir name="export"><file name="NostoExportOrderCollection.php" hash="91bdd99a2be75be062fe5c7cde1803e4"/><file name="NostoExportProductCollection.php" hash="33986c8767922da98aa90f03759dbc0f"/><file name="NostoExporter.php" hash="72ad0af4bce8e57ada5a29e3634df94f"/></dir><dir name="helper"><file name="NostoHelper.php" hash="f4ca6c78e047fec93c32b7eb822b0692"/><file name="NostoHelperDate.php" hash="081a2d8bfec710f2baa52192a99a2658"/><file name="NostoHelperIframe.php" hash="303668f25103c245396b43811a15c28d"/><file name="NostoHelperPrice.php" hash="ee9f217dc1b8e0fc679fb56ca3fd3ca1"/></dir><dir name="http"><file name="NostoHttpRequest.php" hash="2c5b96a56d33b33e334d4d3772c2b14d"/><file name="NostoHttpRequestAdapter.php" hash="d8bf8e5db44ad982b655372529f4d88c"/><file name="NostoHttpRequestAdapterCurl.php" hash="945a4357578f91291d09f1e2850da580"/><file name="NostoHttpRequestAdapterSocket.php" hash="88f57e6d98de2ac652a235e2786f0be7"/><file name="NostoHttpResponse.php" hash="9982d3ed15bfcc8f0147b2b4cc400223"/></dir><dir name="oauth"><file name="NostoOAuthClient.php" hash="2672d9de80d23c91776d97b9803d01b4"/><file name="NostoOAuthToken.php" hash="f81c1c1e5c4fc2010162d8f69de2cb33"/></dir><dir name="operation"><file name="NostoOperationProduct.php" hash="37e24121df779ead75e028b15a3fe226"/></dir></dir><file name="config.inc.php" hash="b46a56f8d61ff2cf69cedb4281719e00"/><dir name="interfaces"><file name="NostoExportCollectionInterface.php" hash="63c833c17fe43ce48b45e0f552313a8b"/><file name="NostoOAuthClientMetaDataInterface.php" hash="75a82417bfc27cd82e41ea9810d31428"/><file name="NostoProductInterface.php" hash="64a9e110a97ebd8be690664ce5b8e371"/><file name="NostoValidatableInterface.php" hash="57ad8b28225344127843b97049f5868d"/><dir name="account"><file name="NostoAccountInterface.php" hash="063da0d25a5420f4e727938467c078f3"/><file name="NostoAccountMetaDataBillingDetailsInterface.php" hash="ef31f0c3b41591fd76f85a25021f0fe4"/><file name="NostoAccountMetaDataIframeInterface.php" hash="c739e6a3ef39a308df6852361f2fd1d7"/><file name="NostoAccountMetaDataInterface.php" hash="5adf0a5ed876348a05028a3ff111bf79"/><file name="NostoAccountMetaDataOwnerInterface.php" hash="4c037b8cb1b529c16c91f25cce2b0ed7"/></dir><dir name="order"><file name="NostoOrderBuyerInterface.php" hash="890884e45bcca61f96f0f98cda40b6c1"/><file name="NostoOrderInterface.php" hash="d341b4faf020bfca01336c5d60ca5e48"/><file name="NostoOrderPurchasedItemInterface.php" hash="e33b94290465eea80d614db35144b75a"/><file name="NostoOrderStatusInterface.php" hash="8c89cf4296629b635f52b53a9b800b1f"/></dir></dir><dir name="js"><file name="NostoIframe.min.js" hash="5fd9f5b418dd796c469aaa0c58b34aaa"/><dir name="src"><file name="NostoIframe.js" hash="ca03585215f846258d2dbb58724e48fa"/></dir></dir><dir name="libs"><dir name="phpseclib"><dir name="crypt"><file name="NostoCryptAES.php" hash="7f16ec6fa7eefa011a27acf4506a3b57"/><file name="NostoCryptBase.php" hash="c78432d428ad8a70be832f91261d4c42"/><file name="NostoCryptRandom.php" hash="eb21a56b9cf6e6ef0b220620dd4d0ebe"/><file name="NostoCryptRijndael.php" hash="9c728d06c0249f8bc24a7c61606ccc89"/></dir></dir></dir><file name=".env.example" hash="42aa9514d8b3f65e9df96b0df601f63c"/></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="nosto"><file name="NostoAdmin.js" hash="0119fb333233f1f0fa70f4167fb014ef"/><file name="NostoIframe.min.js" hash="5fd9f5b418dd796c469aaa0c58b34aaa"/><file name="iframeresizer.min.js" hash="163b065c9dd702dc364913a951b81fee"/></dir></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.6.0.0</min><max>1.9.2.1</max></package></required></dependencies>
20
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Nosto_Tagging</name>
4
+ <version>2.6.6</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>
8
  <extends/>
9
  <summary>Personalization for Magento</summary>
10
  <description>Increase your conversion rate and average order value by delivering your customers personalized product recommendations throughout their shopping journey.</description>
11
+ <notes>* Fix account removal for self-signup accounts through the iframe&#xD;
12
+ * Fix uncaught "InvalidArgumentException" exception when order status is missing&#xD;
13
+ a label&#xD;
14
+ * Make order buyer info optional in tagging and API calls</notes>
15
  <authors><author><name>Nosto</name><user>nosto</user><email>magento@nosto.com</email></author></authors>
16
+ <date>2015-10-22</date>
17
+ <time>08:06:44</time>
18
+ <contents><target name="magecommunity"><dir name="Nosto"><dir name="Tagging"><dir name="Block"><file name="Addtocart.php" hash="61d645e5cc9e54a5170ae03797f0426a"/><dir name="Adminhtml"><file name="Iframe.php" hash="f9e8bc4dcdff141b2f070777d025960d"/><file name="Wizard.php" hash="f98931a1a6e327c0d05e43b73063f672"/></dir><file name="Cart.php" hash="c1c707dad76c98d807d5160b90c06ac6"/><file name="Category.php" hash="177a5d8d9f1ba9e246d149c228c3aec8"/><file name="Customer.php" hash="d35777ca399244e4fb441456320f8ad7"/><file name="Element.php" hash="e5b12bb118b92eb7075ff7a6e16e0eba"/><file name="Embed.php" hash="e8b628b6bc49fb865697552300d08526"/><file name="Meta.php" hash="1f761e731214b7572ef139d9e0577ea1"/><file name="Order.php" hash="32115070d380e654f093da11dd6e4d85"/><file name="Product.php" hash="ac7b85e6d03d94d03c59416b622b0039"/></dir><dir name="Helper"><file name="Account.php" hash="40eb62dd1718741b2064d4a440f46b2f"/><file name="Customer.php" hash="92da4f0ae6c2aef635b837635cd74238"/><file name="Data.php" hash="c50b9b5a694fdd0401748741de97f6ab"/><file name="Date.php" hash="1a108a4ec8169b73411b6c11b86a1d80"/><file name="Oauth.php" hash="9ecbea9e8411501cabe780e0511a1d05"/><file name="Price.php" hash="b7fe656fad1182f5c2166e95a4b29204"/><file name="Url.php" hash="289294904d246c56e4de96798927a7f6"/></dir><dir name="Model"><file name="Base.php" hash="c0b3c4a6f68a0b707bf85ceff50e3c4b"/><dir name="Container"><file name="Cart.php" hash="20d2936693361999575f1e6ac56f2e40"/><file name="Customer.php" hash="b03bca89845b6c939521add8df1f7e9a"/></dir><file name="Customer.php" hash="6d992a43a75f29836ed1450e130df560"/><dir name="Export"><dir name="Collection"><file name="Order.php" hash="b4aa91c86f85b3a6caa8159004b54cf8"/></dir></dir><dir name="Meta"><dir name="Account"><file name="Billing.php" hash="353e807f832a37591bf7359857044ca1"/><file name="Iframe.php" hash="731e2bf424e1b9d4e00d403f55a87b54"/><file name="Owner.php" hash="6fd3228a2758d06f78729c0250f7fd30"/></dir><file name="Account.php" hash="8df7024533e1cf657b407c49fb19a3c5"/><file name="Oauth.php" hash="0863271d8a3db0de93525f0e64308f1c"/><dir name="Order"><file name="Buyer.php" hash="73a2bae09f8c42cc9daf8cb81b60de7e"/><file name="Item.php" hash="598aa5a2c713a59e9125976b48764488"/><file name="Status.php" hash="e72a142feee47a5a1c1d0931e75731f5"/></dir><file name="Order.php" hash="e8638ff582ac759a7e6d4c8d311e7d04"/><file name="Product.php" hash="40cf899477bac2f9916b030af8885e5e"/></dir><file name="Observer.php" hash="102b3e6d330e151a4595c54dc88a18a9"/><file name="Product.php" hash="3630a2a688f013b296d1865e6f32e1d2"/><dir name="Resource"><dir name="Customer"><file name="Collection.php" hash="0c99b46d5108a6fe31cad1190d8ef47c"/></dir><file name="Customer.php" hash="f92e4e5334b5e3493e8f04664b20f105"/><dir name="Product"><file name="Collection.php" hash="7566a7f4483a00c923bac2fbea173abd"/></dir><file name="Setup.php" hash="506b08bcb10cbe74e95812c5f646429f"/></dir><dir name="Service"><file name="Order.php" hash="2e33d5474ed5a19300956b18bc90ceac"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Image.php" hash="d1fcc96aab01342627b96edf6fad1dd1"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="NostoController.php" hash="fd43fd322ea1f8d6b7db6d716250f71e"/></dir><file name="ExportController.php" hash="f22510a39256c0baca4fbcb9301c8ef5"/><file name="OauthController.php" hash="19927d6e9648d0f381b1c2f1b9684339"/></dir><dir name="etc"><file name="adminhtml.xml" hash="7ea210738a77630f299a14b442f3b8d0"/><file name="cache.xml" hash="e874fbbf2eb89b325deb1a62afbcfb4d"/><file name="config.xml" hash="b4d2191aa403364cd8bd76dc88df052c"/><file name="system.xml" hash="7deba6544a09d7af8c07e6b5edc0975a"/></dir><dir name="sql"><dir name="tagging_setup"><file name="mysql4-install-1.2.0.php" hash="3cbc52834c44870859562eec7969b9fd"/><file name="mysql4-upgrade-1.1.7-1.2.0.php" hash="0d8eb7990461a9d4b74b479120067aeb"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="nostotagging"><file name="iframe.phtml" hash="8b6a8faca7d5ab5240b9411993021ca8"/><file name="wizard.phtml" hash="3f92e94e5ee3d3cd9906a6b0942a3a1b"/></dir></dir><dir name="layout"><file name="nostotagging.xml" hash="81c0aa3f71e1c509475410e8ec017214"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="nostotagging"><file name="addtocart.phtml" hash="e8776f59ec4c7c7b6eea2fae9d56e2a4"/><file name="cart.phtml" hash="3c4e80cdcebf63c56dc14a6594e167b8"/><dir name="category"><file name="view.phtml" hash="fc09e2770ad6281ec96c8e92accc01f1"/></dir><file name="category.phtml" hash="81f36742cb4e3adbf9f692cc8f0ea8a8"/><file name="customer.phtml" hash="e9bc92bb7f7df989cc706c7eaee3614a"/><file name="element.phtml" hash="e1d38981789e632a3607ccf2e171f0cb"/><file name="embed.phtml" hash="9193ddd1ae373b68c53f8364f511b0a5"/><file name="meta.phtml" hash="c1b862a4993503fae420fb0eba194b00"/><file name="order.phtml" hash="48ecb391cf32c840c2ae9dc0bd2cec4e"/><file name="product.phtml" hash="9df3ff9f6e363e478d7fd68bd09827b1"/></dir></dir><dir name="layout"><file name="nostotagging.xml" hash="8adc3eecf5f90feffabee29d6308912b"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Nosto_Tagging.xml" hash="1705cb7e6db28388662ef52882d61701"/></dir></target><target name="magelib"><dir name="nosto"><dir name="php-sdk"><file name="LICENSE.txt" hash="309b355442cb85601216abd7a41909d2"/><file name="README.md" hash="0c4860a3dfe7bca30f3eb56c146b4166"/><dir name="src"><dir name="classes"><file name="Nosto.php" hash="c595c5f646f6e513b6604848f8d10118"/><file name="NostoAccount.php" hash="c422a7f104c5ebc6eac9d83986280579"/><file name="NostoCipher.php" hash="a3d7d148311aa0319387c0918e5e26dc"/><file name="NostoDotEnv.php" hash="90b23c1b02095c9368372f1d5346c3f9"/><file name="NostoMessage.php" hash="5933eadd2ad08427010b0bf16657266b"/><file name="NostoObject.php" hash="187808f0c55d02294d41e9395f4c5d58"/><file name="NostoOrderConfirmation.php" hash="2a3fd5efb196bc0dcb7ad57fb61a81d0"/><file name="NostoProductReCrawl.php" hash="f370c539409dd74fc98b7aa1ea0f6387"/><file name="NostoValidator.php" hash="2096ddc9979ec77f8f0b1ec58b459329"/><dir name="api"><file name="NostoApiRequest.php" hash="37db50c0d35ff9a848afe6a4bb871b6f"/><file name="NostoApiToken.php" hash="2febdbec0fd3609162845aa678b36b38"/></dir><dir name="collection"><file name="NostoCollection.php" hash="35cea0282628354413f629062b58663a"/><file name="NostoOrderCollection.php" hash="db6f517948c1258e1521ceb1ce49d477"/><file name="NostoProductCollection.php" hash="3ae29dbbcb7effa234fa83461d3e6901"/></dir><dir name="exception"><file name="NostoException.php" hash="c4610fb70278d01bd85bc83b8e74df30"/><file name="NostoHttpException.php" hash="dabf4298746db898c8fe709ea9e25818"/></dir><dir name="export"><file name="NostoExportOrderCollection.php" hash="91bdd99a2be75be062fe5c7cde1803e4"/><file name="NostoExportProductCollection.php" hash="33986c8767922da98aa90f03759dbc0f"/><file name="NostoExporter.php" hash="72ad0af4bce8e57ada5a29e3634df94f"/></dir><dir name="helper"><file name="NostoHelper.php" hash="f4ca6c78e047fec93c32b7eb822b0692"/><file name="NostoHelperDate.php" hash="081a2d8bfec710f2baa52192a99a2658"/><file name="NostoHelperIframe.php" hash="303668f25103c245396b43811a15c28d"/><file name="NostoHelperPrice.php" hash="ee9f217dc1b8e0fc679fb56ca3fd3ca1"/></dir><dir name="http"><file name="NostoHttpRequest.php" hash="2c5b96a56d33b33e334d4d3772c2b14d"/><file name="NostoHttpRequestAdapter.php" hash="d8bf8e5db44ad982b655372529f4d88c"/><file name="NostoHttpRequestAdapterCurl.php" hash="ba5c20022ba5058d68fc14d5294703c6"/><file name="NostoHttpRequestAdapterSocket.php" hash="88f57e6d98de2ac652a235e2786f0be7"/><file name="NostoHttpResponse.php" hash="9982d3ed15bfcc8f0147b2b4cc400223"/></dir><dir name="oauth"><file name="NostoOAuthClient.php" hash="2672d9de80d23c91776d97b9803d01b4"/><file name="NostoOAuthToken.php" hash="f81c1c1e5c4fc2010162d8f69de2cb33"/></dir><dir name="operation"><file name="NostoOperationProduct.php" hash="37e24121df779ead75e028b15a3fe226"/></dir></dir><file name="config.inc.php" hash="b46a56f8d61ff2cf69cedb4281719e00"/><dir name="interfaces"><file name="NostoExportCollectionInterface.php" hash="63c833c17fe43ce48b45e0f552313a8b"/><file name="NostoOAuthClientMetaDataInterface.php" hash="75a82417bfc27cd82e41ea9810d31428"/><file name="NostoProductInterface.php" hash="64a9e110a97ebd8be690664ce5b8e371"/><file name="NostoValidatableInterface.php" hash="57ad8b28225344127843b97049f5868d"/><dir name="account"><file name="NostoAccountInterface.php" hash="063da0d25a5420f4e727938467c078f3"/><file name="NostoAccountMetaDataBillingDetailsInterface.php" hash="ef31f0c3b41591fd76f85a25021f0fe4"/><file name="NostoAccountMetaDataIframeInterface.php" hash="c739e6a3ef39a308df6852361f2fd1d7"/><file name="NostoAccountMetaDataInterface.php" hash="5adf0a5ed876348a05028a3ff111bf79"/><file name="NostoAccountMetaDataOwnerInterface.php" hash="4c037b8cb1b529c16c91f25cce2b0ed7"/></dir><dir name="order"><file name="NostoOrderBuyerInterface.php" hash="890884e45bcca61f96f0f98cda40b6c1"/><file name="NostoOrderInterface.php" hash="d341b4faf020bfca01336c5d60ca5e48"/><file name="NostoOrderPurchasedItemInterface.php" hash="e33b94290465eea80d614db35144b75a"/><file name="NostoOrderStatusInterface.php" hash="8c89cf4296629b635f52b53a9b800b1f"/></dir></dir><dir name="js"><file name="NostoIframe.min.js" hash="5fd9f5b418dd796c469aaa0c58b34aaa"/><dir name="src"><file name="NostoIframe.js" hash="ca03585215f846258d2dbb58724e48fa"/></dir></dir><dir name="libs"><dir name="phpseclib"><dir name="crypt"><file name="NostoCryptAES.php" hash="7f16ec6fa7eefa011a27acf4506a3b57"/><file name="NostoCryptBase.php" hash="c78432d428ad8a70be832f91261d4c42"/><file name="NostoCryptRandom.php" hash="eb21a56b9cf6e6ef0b220620dd4d0ebe"/><file name="NostoCryptRijndael.php" hash="9c728d06c0249f8bc24a7c61606ccc89"/></dir></dir></dir><file name=".env.example" hash="42aa9514d8b3f65e9df96b0df601f63c"/></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="nosto"><file name="iframeHandler.min.js" hash="c13b574b829791cd061ed63c81060680"/><file name="iframeResizer.min.js" hash="163b065c9dd702dc364913a951b81fee"/></dir></dir></target></contents>
19
  <compatible/>
20
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.6.0.0</min><max>1.9.2.1</max></package></required></dependencies>
21
  </package>