diff --git a/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite.xml b/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite.xml
new file mode 100644
index 0000000000000000000000000000000000000000..aaf71dd52f6fdfb4860f8648658e7f28e7772e83
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Zuite" module="Products.Zelenium.zuite"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>erp5_web_e5g_ecommerce_ui_zuite</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerceBasicNavigation.xml b/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerceBasicNavigation.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f6065d7f5ce86a39764652edd71f2bcdc040ca74
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerceBasicNavigation.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <unicode encoding="cdata"><![CDATA[
+
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+      xmlns:metal="http://xml.zope.org/namespaces/metal">\n
+<head>\n
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n
+<title>Test EG5 ecommerce UI</title>\n
+</head>\n
+<body>\n
+<table cellpadding="1" cellspacing="1" border="1">\n
+<thead>\n
+<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr>\n
+</thead><tbody>\n
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />\n
+\n
+<!-- Clean Up -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerce_PreferenceReset</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>assertTextPresent</td>\n
+  <td>Reset Successfully.</td>\n
+  <td></td>\n
+</tr>\n
+<!-- create sample data -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerce_CreateDataSample</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>assertTextPresent</td>\n
+  <td>Created Successfully</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Initialize -->\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/e5g_ecommerce/</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>E-COMMERCE</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyText</td>\n
+  <td>//span[@data-i18n="E-COMMERCE"]</td>\n
+  <td>E-COMMERCE</td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Super Product</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyText</td>\n
+  <td>//h2</td>\n
+  <td>Super Product 0</td>\n
+</tr>\n
+\n
+\n
+</tbody>\n
+</table>\n
+</body>\n
+</html>
+
+]]></unicode> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>testE5gEcommerceBasicNavigation</string> </value>
+        </item>
+        <item>
+            <key> <string>output_encoding</string> </key>
+            <value> <string>utf-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <unicode></unicode> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerce_CreateDataSample.xml b/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerce_CreateDataSample.xml
new file mode 100644
index 0000000000000000000000000000000000000000..34a9d6611bc690a8cabd9c23b04dca077169b6be
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerce_CreateDataSample.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>portal =  context.getPortalObject()\n
+\n
+"""Delete objects we are about to create """\n
+for i in range(start, start + num):\n
+  if getattr(portal.product_module, \'product_\' + str(i), None) is not None:\n
+    portal.product_module.deleteContent(\'product_\' + str(i))\n
+\n
+"""Create objects with given parameters"""\n
+for i in range(start, start + num):\n
+  portal.product_module.newContent(id = \'product_\' + str(i), title = \'Super Product %d\' % i, portal_type=\'Product\')\n
+\n
+return \'Created Successfully.\'\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>start = 0, num = 1</string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>testE5gEcommerce_CreateDataSample</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Create Objects</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerce_PreferenceReset.xml b/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerce_PreferenceReset.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0cbdf3f61f910ac4c60464b0e765afcfbb392874
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/PathTemplateItem/portal_tests/erp5_web_e5g_ecommerce_ui_zuite/testE5gEcommerce_PreferenceReset.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_container</string> </key>
+                                <value> <string>container</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_context</string> </key>
+                                <value> <string>context</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_m_self</string> </key>
+                                <value> <string>script</string> </value>
+                            </item>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_body</string> </key>
+            <value> <string>"""Reset everything for the test"""\n
+\n
+pref = getattr(context.portal_preferences, "erp5_ui_test_preference", None)\n
+if pref is None:\n
+  pref = context.portal_preferences.newContent(id="erp5_ui_test_preference", portal_type="Preference")\n
+pref.setPreferredListboxViewModeLineCount(None)\n
+pref.setPreferredListboxListModeLineCount(10)\n
+if pref.getPreferenceState() == \'disabled\':\n
+  pref.enable()\n
+else:\n
+  context.portal_caches.clearAllCache()\n
+\n
+return \'Reset Successfully.\'\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>testE5gEcommerce_PreferenceReset</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Reset Everything</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_ecommerce_test/TestTemplateItem/portal_components/test.erp5.testE5gEcommerce.py b/bt5/erp5_web_ecommerce_test/TestTemplateItem/portal_components/test.erp5.testE5gEcommerce.py
new file mode 100644
index 0000000000000000000000000000000000000000..6487d16dfa8fc748ec1c8f0554a5897cb57cbae2
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/TestTemplateItem/portal_components/test.erp5.testE5gEcommerce.py
@@ -0,0 +1,48 @@
+##############################################################################
+#
+# Copyright (c) 2011 Nexedi SARL and Contributors. All Rights Reserved.
+#                     Kazuhiko <kazuhiko@nexedi.com>
+#                     Rafael Monnerat <rafael@nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+import unittest
+
+from Products.ERP5Type.tests.ERP5TypeFunctionalTestCase import ERP5TypeFunctionalTestCase
+
+class TestZeleniumCore(ERP5TypeFunctionalTestCase):
+  foreground = 0
+  run_only = "erp5_web_e5g_ecommerce_ui_zuite"
+  
+  def getBusinessTemplateList(self):
+    return (
+      'erp5_web_renderjs_ui',
+      'erp5_web_renderjs_ui_test',
+      'erp5_ui_test_core',
+      'erp5_web_ecommerce'
+      )
+
+def test_suite():
+  suite = unittest.TestSuite()
+  suite.addTest(unittest.makeSuite(TestZeleniumCore))
+  return suite
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/TestTemplateItem/portal_components/test.erp5.testE5gEcommerce.xml b/bt5/erp5_web_ecommerce_test/TestTemplateItem/portal_components/test.erp5.testE5gEcommerce.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3590504ebda9c9750965fd0247876f2a35dc2929
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/TestTemplateItem/portal_components/test.erp5.testE5gEcommerce.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Test Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_recorded_property_dict</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>testE5gEcommerce</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>test.erp5.testE5gEcommerce</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Test Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
+    </pickle>
+    <pickle>
+      <tuple>
+        <none/>
+        <list>
+          <dictionary>
+            <item>
+                <key> <string>action</string> </key>
+                <value>
+                  <none/>
+                </value>
+            </item>
+            <item>
+                <key> <string>validation_state</string> </key>
+                <value> <string>draft</string> </value>
+            </item>
+          </dictionary>
+        </list>
+      </tuple>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_ecommerce_test/bt/dependency_list b/bt5/erp5_web_ecommerce_test/bt/dependency_list
new file mode 100644
index 0000000000000000000000000000000000000000..f0b867b59ff9ba7de7e71482a6fe7943c7d76e4c
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/dependency_list
@@ -0,0 +1,2 @@
+erp5_web_ecommerce
+erp5_ui_test_core
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/bt/description b/bt5/erp5_web_ecommerce_test/bt/description
new file mode 100644
index 0000000000000000000000000000000000000000..e35a42891c1a0acf81efe89eb4c8210499cbd996
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/description
@@ -0,0 +1 @@
+e5g ecommerce User Interface Tests
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/bt/license b/bt5/erp5_web_ecommerce_test/bt/license
new file mode 100644
index 0000000000000000000000000000000000000000..3a3e12bcad97e4b3bdd6a8bb499fd23a4bcb0819
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/license
@@ -0,0 +1 @@
+GPL
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/bt/template_format_version b/bt5/erp5_web_ecommerce_test/bt/template_format_version
new file mode 100644
index 0000000000000000000000000000000000000000..56a6051ca2b02b04ef92d5150c9ef600403cb1de
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/template_format_version
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/bt/template_keep_last_workflow_history_only_path_list b/bt5/erp5_web_ecommerce_test/bt/template_keep_last_workflow_history_only_path_list
new file mode 100644
index 0000000000000000000000000000000000000000..e9290e0d14d06014ee3d3c28f8b169fac91c8403
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/template_keep_last_workflow_history_only_path_list
@@ -0,0 +1,2 @@
+portal_tests/erp5_web_e5g_ecommerce_ui_zuite
+portal_tests/erp5_web_e5g_ecommerce_ui_zuite/*
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/bt/template_keep_workflow_path_list b/bt5/erp5_web_ecommerce_test/bt/template_keep_workflow_path_list
new file mode 100644
index 0000000000000000000000000000000000000000..e9290e0d14d06014ee3d3c28f8b169fac91c8403
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/template_keep_workflow_path_list
@@ -0,0 +1,2 @@
+portal_tests/erp5_web_e5g_ecommerce_ui_zuite
+portal_tests/erp5_web_e5g_ecommerce_ui_zuite/*
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/bt/template_path_list b/bt5/erp5_web_ecommerce_test/bt/template_path_list
new file mode 100644
index 0000000000000000000000000000000000000000..e9290e0d14d06014ee3d3c28f8b169fac91c8403
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/template_path_list
@@ -0,0 +1,2 @@
+portal_tests/erp5_web_e5g_ecommerce_ui_zuite
+portal_tests/erp5_web_e5g_ecommerce_ui_zuite/*
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/bt/template_test_id_list b/bt5/erp5_web_ecommerce_test/bt/template_test_id_list
new file mode 100644
index 0000000000000000000000000000000000000000..36e8ffc66e82005f7054b8b5563a636526900d3e
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/template_test_id_list
@@ -0,0 +1 @@
+test.erp5.testE5gEcommerce
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/bt/title b/bt5/erp5_web_ecommerce_test/bt/title
new file mode 100644
index 0000000000000000000000000000000000000000..08e2cc0165d4840a00986706681304fb4e15978a
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/title
@@ -0,0 +1 @@
+erp5_web_ecommerce_test
\ No newline at end of file
diff --git a/bt5/erp5_web_ecommerce_test/bt/version b/bt5/erp5_web_ecommerce_test/bt/version
new file mode 100644
index 0000000000000000000000000000000000000000..ceab6e11ece0bcec917c12e11d350946f085d549
--- /dev/null
+++ b/bt5/erp5_web_ecommerce_test/bt/version
@@ -0,0 +1 @@
+0.1
\ No newline at end of file