Blue_Acorn_Optimizely - Version 1.0.2

Version Notes

Stable release. Has been tested for bugs, compatibility, and performance on Magento Community Edition 1.6+ and Magento Enterprise Edition 1.11+. This extension has been tested in a live environment, but as always please leave feedback if you run into any issues.

Updated in this version: new support for Optimizely custom tags! Now any page tags available through the Magento module will appear as custom tags in your Optimizely experiment settings!

Download this release

Release Info

Developer Blue Acorn, Inc.
Extension Blue_Acorn_Optimizely
Version 1.0.2
Comparing to
See all releases


Code changes from version 1.0.1 to 1.0.2

app/code/community/BlueAcorn/Optimizely/Block/CustomVariables.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * @package BlueAcorn
4
  * @subpackage Optimizely
5
- * @version 1.0.1
6
  * @author James Bruner
7
  */
8
  class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Template
@@ -19,6 +19,7 @@ class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Templat
19
  protected $_checkout = null;
20
  protected $_homepage = null;
21
  protected $_success = null;
 
22
  protected $_cart = null;
23
  protected $_customer = null;
24
  protected $_pageType = null;
@@ -64,14 +65,30 @@ class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Templat
64
  return $this->_cms = $this->getRequest()->getRequestedRouteName() == 'cms';
65
  }
66
 
 
 
 
 
 
 
 
 
 
 
 
67
  /**
68
  * Check if current page is Checkout
69
  *
70
  * @return bool
71
  */
 
72
  protected function _isCheckout()
73
  {
74
- return $this->_checkout = $this->getRequest()->getRequestedRouteName() == 'checkout';
 
 
 
 
75
  }
76
 
77
  /**
@@ -140,6 +157,9 @@ class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Templat
140
  $attributeSetModel = Mage::getModel("eav/entity_attribute_set");
141
  $attributeSetModel->load($product->getAttributeSetId());
142
  $productPrice = round($product->getMinimalPrice(), 2);
 
 
 
143
  if ($productType == "grouped") {
144
  $aProductIds = $product->getTypeInstance()->getChildrenIds($product->getId());
145
  $prices = array();
@@ -162,14 +182,14 @@ class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Templat
162
  $category = null;
163
  if ($this->_product->getCategory()) {
164
  $category = strtolower($this->_product->getCategory()->getName());
165
- $productVariables .= "'category': '$category'," . self::NEW_LINE;
166
  }
167
 
168
  //add the standard product variables (product type, sku, name, and price)
169
- $productVariables .= self::TABBED_SPACE . "'product_type':'$productType'," . self::NEW_LINE;
170
- $productVariables .= self::TABBED_SPACE . "'product_sku':'$productSku'," . self::NEW_LINE;
171
- $productVariables .= self::TABBED_SPACE . "'product_name':'$productName'," . self::NEW_LINE;
172
- $productVariables .= self::TABBED_SPACE . "'product_price':'$productPrice'," . self::NEW_LINE;
173
 
174
  //Get the value from the custom attributes defined if they exist for current
175
  //product
@@ -186,40 +206,40 @@ class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Templat
186
  if ($attrOneOptionId) {
187
  if (in_array($customAttrOne, $this->_numAttr)) {
188
  if ($attrOneOptionId != 0) {
189
- $productVariables .= self::TABBED_SPACE . "'$customAttrOne': '" . $this->_calcNumberAttr($customAttrOne) . "'," . self::NEW_LINE;
190
  }
191
  } else {
192
- $productVariables .= self::TABBED_SPACE . "'$customAttrOne': '" . $this->_editString($this->_getCustomAttributeValue($customAttrOne)) . "'," . self::NEW_LINE;
193
  }
194
  }
195
 
196
  if ($attrTwoOptionId) {
197
  if (in_array($customAttrTwo, $this->_numAttr)) {
198
  if ($attrTwoOptionId != 0) {
199
- $productVariables .= self::TABBED_SPACE . "'$customAttrTwo': '" . $this->_calcNumberAttr($customAttrTwo) . "'," . self::NEW_LINE;
200
  }
201
  } else {
202
- $productVariables .= self::TABBED_SPACE . "'$customAttrTwo': '" . $this->_editString($this->_getCustomAttributeValue($customAttrTwo)) . "'," . self::NEW_LINE;
203
  }
204
  }
205
 
206
  if ($attrThreeOptionId) {
207
  if (in_array($customAttrThree, $this->_numAttr)) {
208
  if ($attrThreeOptionId != 0) {
209
- $productVariables .= self::TABBED_SPACE . "'$customAttrThree': '" . $this->_calcNumberAttr($customAttrThree) . "'," . self::NEW_LINE;
210
  }
211
  } else {
212
- $productVariables .= self::TABBED_SPACE . "'$customAttrThree': '" . $this->_editString($this->_getCustomAttributeValue($customAttrThree)) . "'," . self::NEW_LINE;
213
  }
214
  }
215
 
216
  if ($attrFourOptionId) {
217
  if (in_array($customAttrFour, $this->_numAttr)) {
218
  if ($attrFourOptionId != 0) {
219
- $productVariables .= self::TABBED_SPACE . "'$customAttrFour': '" . $this->_calcNumberAttr($customAttrFour) . "'," . self::NEW_LINE;
220
  }
221
  } else {
222
- $productVariables .= self::TABBED_SPACE . "'$customAttrFour': '" . $this->_editString($this->_getCustomAttributeValue($customAttrFour)) . "'," . self::NEW_LINE;
223
  }
224
  }
225
 
@@ -380,23 +400,25 @@ class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Templat
380
  {
381
 
382
  $this->_getPageType();
383
- $html .= "<script type='text/javascript'>" . self::NEW_LINE;
384
- $html .= "var optimizely_custom = {" . self::NEW_LINE . self::TABBED_SPACE;
385
- $html .= "'page_type': '$this->_pageType'," . self::NEW_LINE . self::TABBED_SPACE;
 
 
386
  //return custom targeting parameters here based on module config
387
 
388
  //if category
389
  if ($this->_category) {
390
  $categoryVars = $this->_getCategoryVariables();
391
- $html .= "'category': '$categoryVars[name]'," . self::NEW_LINE . self::TABBED_SPACE;
 
392
  }
393
  //if product
394
  if ($this->_product) {
395
  $html .= $this->_getProductVariables();
396
  }
397
 
398
- $html .= "}" . self::NEW_LINE;
399
- $html .= "</script>" . self::NEW_LINE;
400
 
401
 
402
  //if is success page, add the revenue tracking script
@@ -404,8 +426,9 @@ class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Templat
404
  $orderId = $_SESSION['checkout']['last_order_id'];
405
  $order = Mage::getModel('sales/order')->load($orderId);
406
  $revenueInCents = ($order->getGrandTotal() * 100);
407
- $html .= sprintf("<script>%swindow.optimizely = window.optimizely || [];%swindow.optimizely.push(['trackEvent', 'success_page', %s]);%s</script>", self::NEW_LINE . self::TABBED_SPACE, self::NEW_LINE . self::TABBED_SPACE, $revenueInCents, self::NEW_LINE);
408
  }
 
409
 
410
  return $html;
411
  }
@@ -446,6 +469,9 @@ class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Templat
446
  elseif ($this->_isCustomerPage()) {
447
  $this->_pageType = 'customer';
448
  return true;
 
 
 
449
  } else {
450
  return false;
451
  }
2
  /**
3
  * @package BlueAcorn
4
  * @subpackage Optimizely
5
+ * @version 1.0.2
6
  * @author James Bruner
7
  */
8
  class BlueAcorn_Optimizely_Block_CustomVariables extends Mage_Core_Block_Template
19
  protected $_checkout = null;
20
  protected $_homepage = null;
21
  protected $_success = null;
22
+ protected $_search = null;
23
  protected $_cart = null;
24
  protected $_customer = null;
25
  protected $_pageType = null;
65
  return $this->_cms = $this->getRequest()->getRequestedRouteName() == 'cms';
66
  }
67
 
68
+ /**
69
+ * Check if current page is Search
70
+ *
71
+ * @return bool
72
+ */
73
+
74
+ protected function _isSearch()
75
+ {
76
+ return $this->_search = $this->getRequest()->getRequestedRouteName() == 'catalogsearch';
77
+ }
78
+
79
  /**
80
  * Check if current page is Checkout
81
  *
82
  * @return bool
83
  */
84
+
85
  protected function _isCheckout()
86
  {
87
+ if ($this->getRequest()->getRequestedRouteName() == 'checkout' || $this->getRequest()->getRequestedRouteName() == 'onestepcheckout'){
88
+ return $this->_checkout = true;
89
+ } else {
90
+ return $this->_checkout = false;
91
+ }
92
  }
93
 
94
  /**
157
  $attributeSetModel = Mage::getModel("eav/entity_attribute_set");
158
  $attributeSetModel->load($product->getAttributeSetId());
159
  $productPrice = round($product->getMinimalPrice(), 2);
160
+ if ($productPrice == 0){
161
+ $productPrice = round($product->getPrice(),2);
162
+ }
163
  if ($productType == "grouped") {
164
  $aProductIds = $product->getTypeInstance()->getChildrenIds($product->getId());
165
  $prices = array();
182
  $category = null;
183
  if ($this->_product->getCategory()) {
184
  $category = strtolower($this->_product->getCategory()->getName());
185
+ $productVariables .= "window['optimizely'].push(['customTag', 'category', '$category' ]);" . self::NEW_LINE;
186
  }
187
 
188
  //add the standard product variables (product type, sku, name, and price)
189
+ $productVariables .= "window['optimizely'].push(['customTag', 'product_type', '$productType' ]);" . self::NEW_LINE;
190
+ $productVariables .= "window['optimizely'].push(['customTag', 'product_sku', '$productSku' ]);" . self::NEW_LINE;
191
+ $productVariables .= "window['optimizely'].push(['customTag', 'product_name', '$productName' ]);" . self::NEW_LINE;
192
+ $productVariables .= "window['optimizely'].push(['customTag', 'product_price', '$productPrice' ]);" . self::NEW_LINE;
193
 
194
  //Get the value from the custom attributes defined if they exist for current
195
  //product
206
  if ($attrOneOptionId) {
207
  if (in_array($customAttrOne, $this->_numAttr)) {
208
  if ($attrOneOptionId != 0) {
209
+ $productVariables .= "window['optimizely'].push(['customTag', '$customAttrOne', '".$this->_calcNumberAttr($customAttrOne)."' ]);" . self::NEW_LINE;
210
  }
211
  } else {
212
+ $productVariables .= "window['optimizely'].push(['customTag', '$customAttrOne', '". $this->_editString($this->_getCustomAttributeValue($customAttrOne))."' ]);" . self::NEW_LINE;
213
  }
214
  }
215
 
216
  if ($attrTwoOptionId) {
217
  if (in_array($customAttrTwo, $this->_numAttr)) {
218
  if ($attrTwoOptionId != 0) {
219
+ $productVariables .= "window['optimizely'].push(['customTag', '$customAttrTwo', '".$this->_calcNumberAttr($customAttrTwo)."' ]);" . self::NEW_LINE;
220
  }
221
  } else {
222
+ $productVariables .= "window['optimizely'].push(['customTag', '$customAttrTwo', '". $this->_editString($this->_getCustomAttributeValue($customAttrTwo))."' ]);" . self::NEW_LINE;
223
  }
224
  }
225
 
226
  if ($attrThreeOptionId) {
227
  if (in_array($customAttrThree, $this->_numAttr)) {
228
  if ($attrThreeOptionId != 0) {
229
+ $productVariables .= "window['optimizely'].push(['customTag', '$customAttrThree', '".$this->_calcNumberAttr($customAttrThree)."' ]);" . self::NEW_LINE;
230
  }
231
  } else {
232
+ $productVariables .= "window['optimizely'].push(['customTag', '$customAttrThree', '". $this->_editString($this->_getCustomAttributeValue($customAttrThree))."' ]);" . self::NEW_LINE;
233
  }
234
  }
235
 
236
  if ($attrFourOptionId) {
237
  if (in_array($customAttrFour, $this->_numAttr)) {
238
  if ($attrFourOptionId != 0) {
239
+ $productVariables .= "window['optimizely'].push(['customTag', '$customAttrFour', '".$this->_calcNumberAttr($customAttrFour)."' ]);" . self::NEW_LINE;
240
  }
241
  } else {
242
+ $productVariables .= "window['optimizely'].push(['customTag', '$customAttrFour', '". $this->_editString($this->_getCustomAttributeValue($customAttrFour))."' ]);" . self::NEW_LINE;
243
  }
244
  }
245
 
400
  {
401
 
402
  $this->_getPageType();
403
+ $pageType = $this->_editString($this->_pageType);
404
+ $html = "<script>".self::NEW_LINE;
405
+ $html .= "window['optimizely'] = window['optimizely'] || [];" . self::NEW_LINE;
406
+ // $html .= "var optimizely_custom = {" . self::NEW_LINE . self::TABBED_SPACE;
407
+ $html .= "window['optimizely'].push(['customTag', 'page_type', '$pageType' ]);" . self::NEW_LINE;
408
  //return custom targeting parameters here based on module config
409
 
410
  //if category
411
  if ($this->_category) {
412
  $categoryVars = $this->_getCategoryVariables();
413
+ $catName = $this->_editString($categoryVars['name']);
414
+ $html .= "window['optimizely'].push(['customTag', 'category', '$catName' ]);" . self::NEW_LINE;
415
  }
416
  //if product
417
  if ($this->_product) {
418
  $html .= $this->_getProductVariables();
419
  }
420
 
421
+
 
422
 
423
 
424
  //if is success page, add the revenue tracking script
426
  $orderId = $_SESSION['checkout']['last_order_id'];
427
  $order = Mage::getModel('sales/order')->load($orderId);
428
  $revenueInCents = ($order->getGrandTotal() * 100);
429
+ $html .= sprintf("window['optimizely'].push(['trackEvent', 'success_page', %s]);%s", $revenueInCents, self::NEW_LINE);
430
  }
431
+ $html .= "</script>" . self::NEW_LINE;
432
 
433
  return $html;
434
  }
469
  elseif ($this->_isCustomerPage()) {
470
  $this->_pageType = 'customer';
471
  return true;
472
+ } elseif ($this->_isSearch()) {
473
+ $this->_pageType = 'search';
474
+ return true;
475
  } else {
476
  return false;
477
  }
app/code/community/BlueAcorn/Optimizely/Block/System/Config/Explanation.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * @package BlueAcorn
4
  * @subpackage
5
- * @version 1.0.1
6
  * @author James Bruner
7
  */
8
  class BlueAcorn_Optimizely_Block_System_Config_Explanation extends Mage_Adminhtml_Block_System_Config_Form_Field
2
  /**
3
  * @package BlueAcorn
4
  * @subpackage
5
+ * @version 1.0.2
6
  * @author James Bruner
7
  */
8
  class BlueAcorn_Optimizely_Block_System_Config_Explanation extends Mage_Adminhtml_Block_System_Config_Form_Field
app/code/community/BlueAcorn/Optimizely/Block/System/Config/Loginlink.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * @package BlueAcorn
4
  * @subpackage
5
- * @version 1.0.1
6
  * @author James Bruner
7
  */
8
  class BlueAcorn_Optimizely_Block_System_Config_Loginlink extends Mage_Adminhtml_Block_System_Config_Form_Field
2
  /**
3
  * @package BlueAcorn
4
  * @subpackage
5
+ * @version 1.0.2
6
  * @author James Bruner
7
  */
8
  class BlueAcorn_Optimizely_Block_System_Config_Loginlink extends Mage_Adminhtml_Block_System_Config_Form_Field
app/code/community/BlueAcorn/Optimizely/Helper/Data.php CHANGED
@@ -4,7 +4,7 @@
4
  *
5
  * @package BlueAcorn
6
  * @subpackage Optimizely
7
- * @version 1.0.1
8
  * @author James Bruner
9
  */
10
  class BlueAcorn_Optimizely_Helper_Data extends Mage_Core_Helper_Abstract
4
  *
5
  * @package BlueAcorn
6
  * @subpackage Optimizely
7
+ * @version 1.0.2
8
  * @author James Bruner
9
  */
10
  class BlueAcorn_Optimizely_Helper_Data extends Mage_Core_Helper_Abstract
app/code/community/BlueAcorn/Optimizely/Model/Enabledcheck.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * @package BlueAcorn
7
  * @subpackage Optimizely
8
- * @version 1.0.1
9
  * @author James Bruner
10
  */
11
  class BlueAcorn_Optimizely_Model_Enabledcheck extends Mage_Core_Model_Config_Data
5
  *
6
  * @package BlueAcorn
7
  * @subpackage Optimizely
8
+ * @version 1.0.2
9
  * @author James Bruner
10
  */
11
  class BlueAcorn_Optimizely_Model_Enabledcheck extends Mage_Core_Model_Config_Data
app/code/community/BlueAcorn/Optimizely/Model/Entity/Attribute.php CHANGED
@@ -5,7 +5,7 @@
5
  *
6
  * @package BlueAcorn
7
  * @subpackage Optimizely
8
- * @version 1.0.1
9
  * @author James Bruner
10
  */
11
  class BlueAcorn_Optimizely_Model_Entity_Attribute extends Mage_Eav_Model_Entity_Attribute
5
  *
6
  * @package BlueAcorn
7
  * @subpackage Optimizely
8
+ * @version 1.0.2
9
  * @author James Bruner
10
  */
11
  class BlueAcorn_Optimizely_Model_Entity_Attribute extends Mage_Eav_Model_Entity_Attribute
app/code/community/BlueAcorn/Optimizely/doc/changelog.txt CHANGED
@@ -1,2 +1,5 @@
1
  1.0.1
2
- Initial development of module. Added system configuration Javascript variables for products, categories, and page types. Integration of sitewide script, revenue tracking, and page targeting (via optimizely_custom variable).
 
 
 
1
  1.0.1
2
+ Initial development of module. Added system configuration Javascript variables for products, categories, and page types. Integration of sitewide script, revenue tracking, and page targeting (via optimizely_custom variable).
3
+
4
+ 1.0.2
5
+ Added support for new Optimizely custom tag feature and updated previous code to follow new logic. Also added more security to escaped strings and updated a few page types.
app/code/community/BlueAcorn/Optimizely/doc/design.txt CHANGED
@@ -3,7 +3,7 @@
3
  *
4
  * @package BlueAcorn
5
  * @subpackage Optimizely
6
- * @version 1.0.1
7
  * @author James Bruner
8
  */
9
 
3
  *
4
  * @package BlueAcorn
5
  * @subpackage Optimizely
6
+ * @version 1.0.2
7
  * @author James Bruner
8
  */
9
 
app/code/community/BlueAcorn/Optimizely/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <BlueAcorn_Optimizely>
5
- <version>1.0.1</version>
6
  </BlueAcorn_Optimizely>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <BlueAcorn_Optimizely>
5
+ <version>1.0.2</version>
6
  </BlueAcorn_Optimizely>
7
  </modules>
8
  <global>
package.xml CHANGED
@@ -1,18 +1,20 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Blue_Acorn_Optimizely</name>
4
- <version>1.0.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Optimizely by Blue Acorn is an easy-integration module that outputs the necessary frontend JavaScript used by Optimizely to perform conversion tests. Track engagement, clicks, conversions, sign ups, or anything else that matter to you and your business.</summary>
10
  <description>Optimizely by Blue Acorn is an easy-integration module that outputs the necessary frontend JavaScript used by Optimizely to perform conversion tests. Track engagement, clicks, conversions, sign ups, or anything else that matter to you and your business. Optimizely's custom goal tracking provides an endless range of measurable actions that you can define. Just tell Optimizely what to measure, and we will do the rest. With the Optimizely by Blue Acorn module, tracking your revenue, conversion testing, and custom targeting is just a click away. Say goodbye ot technical bottlenecks and hello to actionable data! </description>
11
- <notes>Stable release. Has been tested for bugs, compatibility, and performance on Magento Community Edition 1.6+ and Magento Enterprise Edition 1.11+. This extension has been tested in a live environment, but as always please leave feedback if you run into any issues.</notes>
 
 
12
  <authors><author><name>Kevin Eichelberger</name><user>blueacorn</user><email>kevin@blueacorn.com</email></author><author><name>Robert Henderson</name><user>roberthenderson</user><email>robert@blueacorn.com</email></author><author><name>James Bruner</name><user>jamesbruner</user><email>james@blueacorn.com</email></author><author><name>Amanda Graham</name><user>amanda_graham</user><email>amanda@blueacorn.com</email></author></authors>
13
- <date>2013-06-06</date>
14
- <time>19:05:51</time>
15
- <contents><target name="magecommunity"><dir name="BlueAcorn"><dir name="Optimizely"><dir name="Block"><file name="CustomVariables.php" hash="71d1843ef0955cb07b43e9b24657b954"/><dir name="System"><dir name="Config"><file name="Explanation.php" hash="9cf3eaa26c1144286acab41e98b6df88"/><file name="Loginlink.php" hash="b3186284ad2e60ae0e584b2c805142d3"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="a21cb3b648110d962462240f05babe4e"/></dir><dir name="Model"><file name="DisallowDuplicates.php" hash="f91ee33dd75e8233141a64b54931c498"/><file name="Enabledcheck.php" hash="51b9ee9ee7a1b404e54ea9940170534f"/><dir name="Entity"><file name="Attribute.php" hash="0ebee2094c6185994d74727f083549d7"/></dir></dir><dir name="doc"><file name="changelog.txt" hash="ecd075974660a151635624225c082432"/><file name="design.txt" hash="a2ce6f92d3f07021ebf134509878d892"/><file name="makeTar.txt" hash="ebaa691f85440a473d45e031f89f5166"/></dir><dir name="etc"><file name="adminhtml.xml" hash="22ed1e4e197ebe48499751260389af2a"/><file name="config.xml" hash="e33b3f474fe93fa2743949f81c22fc25"/><file name="system.xml" hash="69e63e3852e03818a80883fe9b57244d"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="blueacorn"><file name="optimizely.xml" hash="c4d61984f69f6c08643f599e750cd41d"/></dir></dir><dir name="template"><dir name="blueacorn"><dir name="optimizely"><file name="customVariables.phtml" hash="701a4e6c7ae0028c08dfe4afeee66ec5"/><file name="sitewideJs.phtml" hash="edb59d3a27bf88d30c1ff1adb138d898"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="BlueAcorn_Optimizely.xml" hash="006a9d4662ba063257eb368d6eb10621"/></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.1.0</min><max>5.4.13</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Blue_Acorn_Optimizely</name>
4
+ <version>1.0.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Optimizely by Blue Acorn is an easy-integration module that outputs the necessary frontend JavaScript used by Optimizely to perform conversion tests. Track engagement, clicks, conversions, sign ups, or anything else that matter to you and your business.</summary>
10
  <description>Optimizely by Blue Acorn is an easy-integration module that outputs the necessary frontend JavaScript used by Optimizely to perform conversion tests. Track engagement, clicks, conversions, sign ups, or anything else that matter to you and your business. Optimizely's custom goal tracking provides an endless range of measurable actions that you can define. Just tell Optimizely what to measure, and we will do the rest. With the Optimizely by Blue Acorn module, tracking your revenue, conversion testing, and custom targeting is just a click away. Say goodbye ot technical bottlenecks and hello to actionable data! </description>
11
+ <notes>Stable release. Has been tested for bugs, compatibility, and performance on Magento Community Edition 1.6+ and Magento Enterprise Edition 1.11+. This extension has been tested in a live environment, but as always please leave feedback if you run into any issues.&#xD;
12
+ &#xD;
13
+ Updated in this version: new support for Optimizely custom tags! Now any page tags available through the Magento module will appear as custom tags in your Optimizely experiment settings!</notes>
14
  <authors><author><name>Kevin Eichelberger</name><user>blueacorn</user><email>kevin@blueacorn.com</email></author><author><name>Robert Henderson</name><user>roberthenderson</user><email>robert@blueacorn.com</email></author><author><name>James Bruner</name><user>jamesbruner</user><email>james@blueacorn.com</email></author><author><name>Amanda Graham</name><user>amanda_graham</user><email>amanda@blueacorn.com</email></author></authors>
15
+ <date>2013-07-02</date>
16
+ <time>17:28:02</time>
17
+ <contents><target name="magecommunity"><dir name="BlueAcorn"><dir name="Optimizely"><dir name="Block"><file name="CustomVariables.php" hash="9ed0e38cda190d6f26ebd487dc60023e"/><dir name="System"><dir name="Config"><file name="Explanation.php" hash="2fa32a375a4d353711d05ee6c5c9a99b"/><file name="Loginlink.php" hash="f45ec496ab3b7742445aa84a84c8b35e"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="9cdc4cc5db75ff0f3ed65e5e319cd0c6"/></dir><dir name="Model"><file name="DisallowDuplicates.php" hash="f91ee33dd75e8233141a64b54931c498"/><file name="Enabledcheck.php" hash="ca62ebc9ed8f8dfccb41fd4a6b497184"/><dir name="Entity"><file name="Attribute.php" hash="e7aa00ea18007a1b6857d3728b149958"/></dir></dir><dir name="doc"><file name="changelog.txt" hash="c9a4ba0fc93361f6389305aa45e93e23"/><file name="design.txt" hash="3e79f0814819a514a4f80d88f156d3f4"/><file name="makeTar.txt" hash="ebaa691f85440a473d45e031f89f5166"/></dir><dir name="etc"><file name="adminhtml.xml" hash="22ed1e4e197ebe48499751260389af2a"/><file name="config.xml" hash="ac7236780a0a49c2bbb877ba60e3ef33"/><file name="system.xml" hash="69e63e3852e03818a80883fe9b57244d"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="blueacorn"><file name="optimizely.xml" hash="c4d61984f69f6c08643f599e750cd41d"/></dir></dir><dir name="template"><dir name="blueacorn"><dir name="optimizely"><file name="customVariables.phtml" hash="701a4e6c7ae0028c08dfe4afeee66ec5"/><file name="sitewideJs.phtml" hash="edb59d3a27bf88d30c1ff1adb138d898"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="BlueAcorn_Optimizely.xml" hash="006a9d4662ba063257eb368d6eb10621"/></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.1.0</min><max>5.4.13</max></php></required></dependencies>
20
  </package>