From 649a070bb3787a92260f163d84b2d0f9d941cba4 Mon Sep 17 00:00:00 2001
From: Ivan Tyagov <ivan@nexedi.com>
Date: Wed, 17 Jan 2007 15:03:31 +0000
Subject: [PATCH] Switched from tempory OrderLine storage to plain pickable
 dictionary for shopping cart items. Implemented various cart widgets and
 customer forms.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@12122 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 ...ml => ERP5Ecommerce_addToShoppingCart.xml} |   69 +-
 .../ERP5Ecommerce_addToShoppingCartWidget.xml |   85 +
 .../ERP5Ecommerce_createCustomerAccount.xml   |   32 +-
 ...mmerce_createSaleOrderFromShoppingCart.xml |   25 +-
 ... ERP5Ecommerce_deleteShoppingCartItem.xml} |   31 +-
 .../ERP5Ecommerce_getShoppingCart.xml         |   31 +-
 .../ERP5Ecommerce_getShoppingCartItemList.xml |    6 +-
 ...Ecommerce_getTotalPriceForShoppingCart.xml |   17 +-
 .../ERP5Ecommerce_isValidCreditCardNumber.xml |  162 ++
 .../ERP5Ecommerce_logged_in.xml               |   94 +
 .../ERP5Ecommerce_loginStatusWidget.xml       |   41 +-
 .../erp5_ecommerce/ERP5Ecommerce_logout.xml   |  286 ++
 .../ERP5Ecommerce_newCustomerAccountForm.xml  |   18 +-
 .../my_bank_account_holder_name.xml}          |   76 +-
 .../my_bank_account_number.xml                |  287 ++
 .../my_bank_code.xml                          |  265 ++
 .../my_default_email_text.xml                 |    2 +-
 .../my_stop_date.xml                          | 2308 +++++++++++++++++
 .../ERP5Ecommerce_newShoppingCart.xml         |   28 +-
 ...commerce_renderSaleOrderAsShoppingCart.xml |   48 +-
 .../ERP5Ecommerce_shoppingCartWidget.xml      |   24 +-
 ...merForm.xml => ERP5Ecommerce_thankyou.xml} |   35 +-
 .../ERP5Ecommerce_thankyou/my_thankyou.xml    |  149 ++
 ...l => ERP5Ecommerce_updateShoppingCart.xml} |   44 +-
 .../erp5_ecommerce/Product_viewAsShop.xml     |    2 +-
 .../Product_viewAsShop/my_buy_button.xml      |  193 +-
 .../Product_viewAsShop/my_price.xml           |  287 ++
 .../SaleOrder_confirmShopping.xml             |   57 +-
 .../SaleOrder_finalizeShopping.xml            |  318 +++
 .../erp5_ecommerce/SaleOrder_viewAsWeb.xml    |    4 +-
 .../shopping_item_list.xml                    |  500 ----
 .../SaleOrder_viewAsWeb/submit.xml            |  169 ++
 .../SaleOrder_viewAsWebConfirm.xml            |  144 +
 .../shopping_cart.xml                         |  307 +++
 .../SaleOrder_viewAsWebConfirm/submit.xml     |  169 ++
 35 files changed, 5370 insertions(+), 943 deletions(-)
 rename bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/{Product_addToShoppingCart.xml => ERP5Ecommerce_addToShoppingCart.xml} (76%)
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_addToShoppingCartWidget.xml
 rename bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/{SaleOrder_deleteShoppingCartItem.xml => ERP5Ecommerce_deleteShoppingCartItem.xml} (88%)
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_isValidCreditCardNumber.xml
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_logged_in.xml
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_logout.xml
 rename bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/{Product_viewAsShop/my_buy_quantity.xml => ERP5Ecommerce_newCustomerAccountForm/my_bank_account_holder_name.xml} (88%)
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_account_number.xml
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_code.xml
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_stop_date.xml
 rename bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/{ERP5Ecommerce_newCustomerForm.xml => ERP5Ecommerce_thankyou.xml} (73%)
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_thankyou/my_thankyou.xml
 rename bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/{SaleOrder_update.xml => ERP5Ecommerce_updateShoppingCart.xml} (88%)
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_price.xml
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_finalizeShopping.xml
 delete mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb/shopping_item_list.xml
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb/submit.xml
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm.xml
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm/shopping_cart.xml
 create mode 100644 bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm/submit.xml

diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_addToShoppingCart.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_addToShoppingCart.xml
similarity index 76%
rename from bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_addToShoppingCart.xml
rename to bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_addToShoppingCart.xml
index 75bb4c5b27..b2747ce140 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_addToShoppingCart.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_addToShoppingCart.xml
@@ -70,36 +70,40 @@
             <key> <string>_body</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-from Products.ERP5Type.Document import newTempOrderLine\n
-\n
-request = context.REQUEST\n
-product = context\n
-quantity = request.get(\'field_my_buy_quantity\', 1)\n
+quantity = int(context.REQUEST.get(\'field_my_buy_quantity\', 1))\n
 shopping_cart = context.ERP5Ecommerce_getShoppingCart()\n
 \n
+if product is None:\n
+  product = context\n
+\n
 ## check if we don\'t have already such a product in cart\n
 line_found=False\n
-for order_line in shopping_cart.objectValues():\n
-  if order_line.getObject().getResource() == product.getRelativeUrl():\n
-    new_quantity = order_line.getQuantity()+int(quantity)\n
+for order_line in shopping_cart:\n
+  if order_line[\'resource\'] == product.getRelativeUrl():\n
+    new_quantity = order_line[\'quantity\'] + int(quantity)\n
     if new_quantity<=0:\n
-      shopping_cart.deleteContent(order_line.getId())\n
+      ## remove items with zero quantity\n
+      del shopping_cart[indexof(order_line)]\n
     else:\n
-      order_line.setQuantity(new_quantity)\n
+      order_line[\'quantity\'] = new_quantity\n
     line_found=True\n
     break\n
 \n
 if line_found == False:\n
   ## new Product, add to shopping cart\n
-  my_orderline= shopping_cart.newContent(portal_type=\'Sale Order Line\', \\\n
-                                         title = product.getTitle(), \\\n
-                                         resource = product.getRelativeUrl(), \\\n
-                                         quantity=quantity)\n
+  tmp = {}\n
+  tmp[\'resource\'] = product.getRelativeUrl()\n
+  tmp[\'quantity\'] = quantity\n
+  shopping_cart.append(tmp)\n
+\n
+## update back cache so we have consistent results between cache plugins\n
+context.ERP5Ecommerce_getShoppingCart(action=\'update\', \\\n
+                                      new_shopping_cart = shopping_cart)\n
 \n
-redirect_url = request.get(\'HTTP_REFERER\', context.absolute_url())\n
-redirect_url = redirect_url.split(\'?\')[0]\n
-#redirect_url = context.getWebSectionValue().absolute_url()\n
-request.RESPONSE.redirect("%s?portal_status_message=Added to cart." %redirect_url)\n
+translateString = context.Base_translateString\n
+context.Base_redirect(\'view\', \\\n
+                      editable_mode=True, \\\n
+                      keep_items={\'portal_status_message\': translateString("Added to cart.", mapping = dict())})\n
 
 
 ]]></string> </value>
@@ -118,7 +122,7 @@ request.RESPONSE.redirect("%s?portal_status_message=Added to cart." %redirect_ur
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string></string> </value>
+            <value> <string>product=None</string> </value>
         </item>
         <item>
             <key> <string>errors</string> </key>
@@ -138,30 +142,31 @@ request.RESPONSE.redirect("%s?portal_status_message=Added to cart." %redirect_ur
                   <dictionary>
                     <item>
                         <key> <string>co_argcount</string> </key>
-                        <value> <int>0</int> </value>
+                        <value> <int>1</int> </value>
                     </item>
                     <item>
                         <key> <string>co_varnames</string> </key>
                         <value>
                           <tuple>
-                            <string>Products.ERP5Type.Document</string>
-                            <string>newTempOrderLine</string>
+                            <string>product</string>
+                            <string>int</string>
                             <string>_getattr_</string>
                             <string>context</string>
-                            <string>request</string>
-                            <string>product</string>
                             <string>quantity</string>
                             <string>shopping_cart</string>
+                            <string>None</string>
                             <string>False</string>
                             <string>line_found</string>
                             <string>_getiter_</string>
                             <string>order_line</string>
-                            <string>int</string>
+                            <string>_getitem_</string>
                             <string>new_quantity</string>
+                            <string>_write_</string>
+                            <string>indexof</string>
                             <string>True</string>
-                            <string>my_orderline</string>
-                            <string>redirect_url</string>
-                            <string>_getitem_</string>
+                            <string>tmp</string>
+                            <string>translateString</string>
+                            <string>dict</string>
                           </tuple>
                         </value>
                     </item>
@@ -173,16 +178,18 @@ request.RESPONSE.redirect("%s?portal_status_message=Added to cart." %redirect_ur
         <item>
             <key> <string>func_defaults</string> </key>
             <value>
-              <none/>
+              <tuple>
+                <none/>
+              </tuple>
             </value>
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>Product_addToShoppingCart</string> </value>
+            <value> <string>ERP5Ecommerce_addToShoppingCart</string> </value>
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Add product to shopping cart</string> </value>
+            <value> <string>Add resource to shopping cart</string> </value>
         </item>
         <item>
             <key> <string>warnings</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_addToShoppingCartWidget.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_addToShoppingCartWidget.xml
new file mode 100644
index 0000000000..bb5793f6c7
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_addToShoppingCartWidget.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PageTemplates.ZopePageTemplate</string>
+          <string>ZopePageTemplate</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </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_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> <string encoding="cdata"><![CDATA[
+
+<form action="">\n
+<select name="field_my_buy_quantity">\n
+  <tal:block tal:repeat="index python: range(1,31)">\n
+    <option tal:content="index" tal:attributes="value index"/>\n
+  </tal:block>\n
+</select>\n
+\n
+<input type="submit"\n
+       class="save"\n
+       name="ERP5Ecommerce_addToShoppingCart:method" \n
+       value="Add to Shopping Cart"/>\n
+</form>
+
+]]></string> </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>ERP5Ecommerce_addToShoppingCartWidget</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Add to cart button widget</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_createCustomerAccount.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_createCustomerAccount.xml
index 3ef360877c..db28033879 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_createCustomerAccount.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_createCustomerAccount.xml
@@ -70,18 +70,27 @@
             <key> <string>_body</string> </key>
             <value> <string>from Products.Formulator.Errors import FormValidationError\n
 \n
-form = context.getWebSectionValue().ERP5Ecommerce_newCustomerAccountForm\n
+form = context.ERP5Ecommerce_newCustomerAccountForm\n
 request = context.REQUEST\n
 form_kw = request.form\n
 person_kw = {}\n
 field_prefix = \'field_my_\'\n
+translateString = context.Base_translateString\n
 \n
 for key in form_kw.keys():\n
   if key.startswith(field_prefix):\n
     person_kw[key.replace(field_prefix, \'\')] = form_kw[key]\n
+person_kw[\'career_role\'] = \'internal\'\n
 \n
+## get credit card account details\n
+bank_kw = {}\n
+for key in (\'bank_code\', \'bank_account_holder_name\', \'bank_account_number\',):\n
+  bank_kw[key] = person_kw.pop(key)\n
+bank_kw[\'stop_date\'] = \'%s/%s/%s\' %(request.get(\'subfield_field_my_stop_date_year\', \'\'), \\\n
+                                    request.get(\'subfield_field_my_stop_date_month\', \'\'), \\\n
+                                    request.get(\'subfield_field_my_stop_date_month\', \'\') )\n
 try:\n
-  form.validate_all_to_request(request)\n
+  kw = form.validate_all_to_request(request)\n
   validated = True\n
 except FormValidationError, validation_errors:\n
   validated = False\n
@@ -94,10 +103,18 @@ person_module = context.person_module\n
 person = person_module.newContent(portal_type=\'Person\', **person_kw)\n
 person.validate()\n
 \n
-## TODO: create an assignment\n
-return \n
+## save credit card information\n
+credit_card = person.newContent(portal_type=\'Credit Card\')\n
+credit_card.edit(**bank_kw)\n
 \n
-context.REQUEST.RESPONSE.redirect(context.WebSite_getDocumentUrl()+"/person-created")\n
+person.immediateReindexObject()\n
+\n
+context.Base_redirect(\'ERP5Ecommerce_logged_in\', \\\n
+                      editable_mode=False, \\\n
+                      keep_items={\'portal_status_message\': translateString("Your account was created.", mapping = dict()),\n
+                                  \'came_from\': context.absolute_url(),\n
+                                  \'__ac_name\': person_kw[\'reference\'],\n
+                                  \'__ac_password\': person_kw[\'password\']})\n
 </string> </value>
         </item>
         <item>
@@ -158,10 +175,13 @@ context.REQUEST.RESPONSE.redirect(context.WebSite_getDocumentUrl()+"/person-crea
                             <string>form_kw</string>
                             <string>person_kw</string>
                             <string>field_prefix</string>
+                            <string>translateString</string>
                             <string>_getiter_</string>
                             <string>key</string>
                             <string>_getitem_</string>
                             <string>_write_</string>
+                            <string>bank_kw</string>
+                            <string>kw</string>
                             <string>True</string>
                             <string>validated</string>
                             <string>validation_errors</string>
@@ -169,6 +189,8 @@ context.REQUEST.RESPONSE.redirect(context.WebSite_getDocumentUrl()+"/person-crea
                             <string>person_module</string>
                             <string>_apply_</string>
                             <string>person</string>
+                            <string>credit_card</string>
+                            <string>dict</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_createSaleOrderFromShoppingCart.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_createSaleOrderFromShoppingCart.xml
index 4a1a68d838..c482f88821 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_createSaleOrderFromShoppingCart.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_createSaleOrderFromShoppingCart.xml
@@ -68,15 +68,22 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>order_module = context.getDefaultModule(\'Sale Order\')\n
+            <value> <string>user_id = context.portal_membership.getAuthenticatedMember().getId()\n
+user_list = context.person_module.portal_catalog(reference=user_id, \\\n
+                                                 portal_type="Person")\n
+user_object = user_list[0].getObject()\n
+\n
+order_module = context.getPortalObject().sale_order_module\n
 sale_order = order_module.newContent(portal_type=\'Sale Order\')\n
+sale_order.setDestination(user_object.getRelativeUrl())\n
 \n
-for order_line in shopping_cart.objectValues():\n
+for order_line in shopping_cart:\n
+  resource = context.restrictedTraverse(order_line[\'resource\'])\n
   sale_order.newContent(portal_type = \'Sale Order Line\',\n
-                        resource = order_line.getResource(),\n
-                        quantity = order_line.getQuantity(),\n
-                        title = order_line.getTitle())\n
-\n
+                        resource = order_line[\'resource\'],\n
+                        quantity = order_line[\'quantity\'],\n
+                        price = resource.getPrice(),\n
+                        title = resource.getTitle())\n
 return sale_order\n
 </string> </value>
         </item>
@@ -100,6 +107,7 @@ return sale_order\n
             <key> <string>_proxy_roles</string> </key>
             <value>
               <tuple>
+                <string>Assignor</string>
                 <string>Manager</string>
               </tuple>
             </value>
@@ -131,10 +139,15 @@ return sale_order\n
                             <string>shopping_cart</string>
                             <string>_getattr_</string>
                             <string>context</string>
+                            <string>user_id</string>
+                            <string>user_list</string>
+                            <string>_getitem_</string>
+                            <string>user_object</string>
                             <string>order_module</string>
                             <string>sale_order</string>
                             <string>_getiter_</string>
                             <string>order_line</string>
+                            <string>resource</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_deleteShoppingCartItem.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_deleteShoppingCartItem.xml
similarity index 88%
rename from bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_deleteShoppingCartItem.xml
rename to bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_deleteShoppingCartItem.xml
index e2998e62fe..cd8af004e3 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_deleteShoppingCartItem.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_deleteShoppingCartItem.xml
@@ -204,17 +204,24 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>request = context.REQUEST\n
-website = context.getWebSiteValue()\n
-shopping_cart = context.ERP5Ecommerce_getShoppingCart()\n
+            <value> <string>translateString = context.Base_translateString\n
+shopping_cart_items = context.ERP5Ecommerce_getShoppingCartItemList()\n
+shopping_cart = shopping_cart_items\n
+order_line_id = int(field_my_order_line_id)\n
+\n
 if field_my_order_line_id is not None:\n
-  shopping_cart.manage_delObjects(field_my_order_line_id)\n
+  del shopping_cart_items[order_line_id]\n
   portal_status_message = "Successfully removed from shopping cart."\n
 else:\n
   portal_status_message = "Please select an item."\n
 \n
-redirect_url = website.SaleOrder_viewAsWeb.absolute_url()\n
-request.RESPONSE.redirect(redirect_url + \'?portal_status_message=%s\' %portal_status_message)\n
+## update back cache so we have consistent results between cache plugins\n
+context.ERP5Ecommerce_getShoppingCart(action=\'update\', \\\n
+                                      new_shopping_cart = shopping_cart)\n
+\n
+context.Base_redirect(\'SaleOrder_viewAsWeb\', \\\n
+                      editable_mode=True, \\\n
+                      keep_items={\'portal_status_message\': translateString(portal_status_message, mapping = dict())})\n
 </string> </value>
         </item>
         <item>
@@ -269,12 +276,16 @@ request.RESPONSE.redirect(redirect_url + \'?portal_status_message=%s\' %portal_s
                             <string>field_my_order_line_id</string>
                             <string>_getattr_</string>
                             <string>context</string>
-                            <string>request</string>
-                            <string>website</string>
+                            <string>translateString</string>
+                            <string>shopping_cart_items</string>
                             <string>shopping_cart</string>
+                            <string>int</string>
+                            <string>order_line_id</string>
                             <string>None</string>
+                            <string>_write_</string>
                             <string>portal_status_message</string>
-                            <string>redirect_url</string>
+                            <string>True</string>
+                            <string>dict</string>
                           </tuple>
                         </value>
                     </item>
@@ -293,7 +304,7 @@ request.RESPONSE.redirect(redirect_url + \'?portal_status_message=%s\' %portal_s
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>SaleOrder_deleteShoppingCartItem</string> </value>
+            <value> <string>ERP5Ecommerce_deleteShoppingCartItem</string> </value>
         </item>
         <item>
             <key> <string>title</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getShoppingCart.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getShoppingCart.xml
index 0c79ae6d1d..7a3c99e2d3 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getShoppingCart.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getShoppingCart.xml
@@ -73,26 +73,29 @@ from DateTime import DateTime\n
 \n
 now = DateTime()\n
 request = context.REQUEST\n
-session_id = request.get(\'session_id\', None)\n
-expire_timeout_days = 7\n
+expire_timeout_days = 90\n
 cache_factory = \'erp5_session_cache\'\n
+session_id = request.get(\'session_id\', None)\n
 \n
 if session_id is None:\n
   ## first call so generate session_id and send back via cookie\n
-  session_id = context.ERP5Ecommerce_generateSessionID(max_long=10)\n
+  session_id = context.ERP5Ecommerce_generateSessionID(max_long=20)\n
   request.RESPONSE.setCookie(\'session_id\', session_id, expires=(now +expire_timeout_days).fCommon(), path=\'/\')\n
 \n
-\n
 cache_method = CachingMethod(callable_object = context.ERP5Ecommerce_newShoppingCart, \\\n
                              id = session_id, \\\n
                              cache_factory=cache_factory)\n
-if reset:\n
+if action==\'reset\':\n
   ## reset cart \n
   cache_method.delete(id=session_id, cache_factory=cache_factory)\n
-  return \n
+elif action==\'update\':\n
+  ## update back to cache\n
+  pass\n
+  #cache_method.delete(id=session_id, cache_factory=cache_factory)\n
+  #cache_method(value=new_shopping_cart)\n
 else:\n
   ## take order for this session\n
-  shopping_cart = cache_method()\n
+  shopping_cart = cache_method(value=[])\n
   return shopping_cart\n
 </string> </value>
         </item>
@@ -110,7 +113,7 @@ else:\n
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string>reset = False</string> </value>
+            <value> <string>action = \'\', new_shopping_cart=None</string> </value>
         </item>
         <item>
             <key> <string>errors</string> </key>
@@ -130,13 +133,14 @@ else:\n
                   <dictionary>
                     <item>
                         <key> <string>co_argcount</string> </key>
-                        <value> <int>1</int> </value>
+                        <value> <int>2</int> </value>
                     </item>
                     <item>
                         <key> <string>co_varnames</string> </key>
                         <value>
                           <tuple>
-                            <string>reset</string>
+                            <string>action</string>
+                            <string>new_shopping_cart</string>
                             <string>Products.ERP5Type.Cache</string>
                             <string>CachingMethod</string>
                             <string>DateTime</string>
@@ -144,10 +148,10 @@ else:\n
                             <string>_getattr_</string>
                             <string>context</string>
                             <string>request</string>
-                            <string>None</string>
-                            <string>session_id</string>
                             <string>expire_timeout_days</string>
                             <string>cache_factory</string>
+                            <string>None</string>
+                            <string>session_id</string>
                             <string>cache_method</string>
                             <string>shopping_cart</string>
                           </tuple>
@@ -162,7 +166,8 @@ else:\n
             <key> <string>func_defaults</string> </key>
             <value>
               <tuple>
-                <int>0</int>
+                <string></string>
+                <none/>
               </tuple>
             </value>
         </item>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getShoppingCartItemList.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getShoppingCartItemList.xml
index 929015dc4a..aa9e1bbe9e 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getShoppingCartItemList.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getShoppingCartItemList.xml
@@ -68,8 +68,7 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>shopping_cart = context.ERP5Ecommerce_getShoppingCart()\n
-return shopping_cart.objectValues(\'ERP5 Order Line\')\n
+            <value> <string>return context.ERP5Ecommerce_getShoppingCart()\n
 </string> </value>
         </item>
         <item>
@@ -115,7 +114,6 @@ return shopping_cart.objectValues(\'ERP5 Order Line\')\n
                             <string>kw</string>
                             <string>_getattr_</string>
                             <string>context</string>
-                            <string>shopping_cart</string>
                           </tuple>
                         </value>
                     </item>
@@ -136,7 +134,7 @@ return shopping_cart.objectValues(\'ERP5 Order Line\')\n
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Getshopping cart items</string> </value>
+            <value> <string>Get shopping cart items</string> </value>
         </item>
         <item>
             <key> <string>warnings</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getTotalPriceForShoppingCart.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getTotalPriceForShoppingCart.xml
index eb960021e9..c4c3f9c7fd 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getTotalPriceForShoppingCart.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_getTotalPriceForShoppingCart.xml
@@ -68,15 +68,11 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>""" Why can\'t we use getTotalPrice on temporary Order object? """\n
-total = 0.0\n
+            <value> <string>total = 0.0\n
 shopping_cart = context.ERP5Ecommerce_getShoppingCart()\n
-for order_line in shopping_cart.objectValues():\n
-  try:\n
-    total += order_line.getPrice() * order_line.getTotalQuantity()\n
-  except RuntimeError:\n
-    ## why this happens is a mistery ?\n
-    pass\n
+for order_line in shopping_cart:\n
+  resource = context.restrictedTraverse(order_line[\'resource\'])\n
+  total += resource.getPrice() * order_line[\'quantity\']\n
 return str(total)\n
 </string> </value>
         </item>
@@ -134,7 +130,8 @@ return str(total)\n
                             <string>shopping_cart</string>
                             <string>_getiter_</string>
                             <string>order_line</string>
-                            <string>RuntimeError</string>
+                            <string>_getitem_</string>
+                            <string>resource</string>
                             <string>str</string>
                           </tuple>
                         </value>
@@ -156,7 +153,7 @@ return str(total)\n
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Calculate total price of items in shopping cart</string> </value>
+            <value> <string>Calculate total price for items in shopping cart</string> </value>
         </item>
         <item>
             <key> <string>warnings</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_isValidCreditCardNumber.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_isValidCreditCardNumber.xml
new file mode 100644
index 0000000000..66710c04d9
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_isValidCreditCardNumber.xml
@@ -0,0 +1,162 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PythonScripts.PythonScript</string>
+          <string>PythonScript</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Python_magic</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </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>credit_card = request.get(\'field_my_bank_account_number\', \'\')\n
+if credit_card == \'\':\n
+  return False\n
+else:\n
+  ## validate it to an external system, using also card holder name\n
+  return True\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string>editor, request</string> </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>2</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>editor</string>
+                            <string>request</string>
+                            <string>_getattr_</string>
+                            <string>credit_card</string>
+                            <string>False</string>
+                            <string>True</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Ecommerce_isValidCreditCardNumber</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Is valid credit card number specified?</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_logged_in.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_logged_in.xml
new file mode 100644
index 0000000000..bea23ad7d0
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_logged_in.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PageTemplates.ZopePageTemplate</string>
+          <string>ZopePageTemplate</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </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_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string encoding="cdata"><![CDATA[
+
+<tal:block tal:condition="here/portal_skins/updateSkinCookie | nothing"\n
+           tal:define="dummy here/setupCurrentSkin;" />\n
+<tal:block tal:define="response request/RESPONSE;\n
+                       mtool here/portal_membership;\n
+                       isAnon mtool/isAnonymousUser|nothing;">\n
+  <tal:block tal:condition="isAnon">\n
+    <tal:block tal:define="dummy python: response.expireCookie(\'__ac\', path=\'/\');\n
+                           url python: \'%s?portal_status_message=%s\' % (request.get(\'came_from\'), here.getPortalObject().Localizer.translate(\'ui\', \'Login+and/or+password+is+incorrect.\'));\n
+                           dummy python: response.redirect(url);"/>\n
+  </tal:block>\n
+  <tal:block tal:condition="not: isAnon">\n
+    <tal:block tal:define="came_from python: request.get(\'came_from\') or here.portal_url() + \'/view\';\n
+                           dummy python: response.redirect(came_from);" />\n
+  </tal:block>\n
+</tal:block>
+
+]]></string> </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>ERP5Ecommerce_logged_in</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Login Handler</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_loginStatusWidget.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_loginStatusWidget.xml
index 1d4207d868..a32274dfa7 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_loginStatusWidget.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_loginStatusWidget.xml
@@ -48,10 +48,41 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-  <legend>\n
-    <span tal:content="here/portal_membership/getAuthenticatedMember"/> \n
-  </legend>\n
-
+<tal:block tal:define="isAnon here/portal_membership/isAnonymousUser">\n
+\n
+  <tal:block tal:condition="isAnon">\n
+   <h4>You\'re not logged in.</h4>\n
+   I have an account:\n
+   <form action="">\n
+     <table>\n
+       <tr>\n
+         <td>Username:</td>\n
+         <td><input name="__ac_name" size="10" tal:attributes="value python: request.get(\'__ac_name\') or \'\'"/></td>\n
+       </tr>\n
+       <tr>\n
+         <td>Password:</td>\n
+         <td><input type="password" name="__ac_password" size="10"/></td>\n
+       </tr>\n
+       <tr>\n
+         <td><input type="hidden" name="came_from" tal:attributes="value here/absolute_url"/>\n
+             <input type="hidden" name="__ac_persistent" value="1"/>\n
+             <input type="submit" value="Login" name="ERP5Ecommerce_logged_in:method"/>\n
+         </td>\n
+       </tr>\n
+     </table>\n
+   </form>\n
+   \n
+   <a href="ERP5Ecommerce_newCustomerAccountForm?editable_mode=1"> I want to create an account</a>\n
+   <br/>\n
+\n
+  </tal:block>\n
+\n
+  <tal:block tal:condition="not: isAnon">\n
+    <h4>Hello, <span tal:replace="here/portal_membership/getAuthenticatedMember"/></h4>\n
+    <a href="ERP5Ecommerce_logout"> Log out</a><br/>\n
+  </tal:block>\n
+\n
+</tal:block>
 
 ]]></string> </value>
         </item>
@@ -69,7 +100,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Render login status</string> </value>
+            <value> <string>Login status widget</string> </value>
         </item>
       </dictionary>
     </pickle>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_logout.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_logout.xml
new file mode 100644
index 0000000000..1223c7a726
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_logout.xml
@@ -0,0 +1,286 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PythonScripts.PythonScript</string>
+          <string>PythonScript</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Python_magic</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_Access_contents_information_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_bindings_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_cache_settings_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_permissions_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Copy_or_Move_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Delete_objects_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Manage_WebDAV_Locks_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Manage_properties_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Take_ownership_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Undo_changes_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_management_screens_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_WebDAV_Lock_items_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_WebDAV_Unlock_items_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_WebDAV_access_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </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>REQUEST = context.REQUEST\n
+if REQUEST.has_key(\'portal_skin\'):\n
+   context.portal_skins.clearSkinCookie()\n
+\n
+REQUEST.RESPONSE.expireCookie(\'__ac\', path=\'/\')\n
+\n
+translateString = context.Base_translateString\n
+context.Base_redirect(\'view\', \\\n
+                      editable_mode=False, \\\n
+                      keep_items={\'portal_status_message\': translateString("You have been logged out.", mapping = dict())})\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>_proxy_roles</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>0</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>REQUEST</string>
+                            <string>translateString</string>
+                            <string>False</string>
+                            <string>dict</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ERP5Ecommerce_logout</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Logout handler</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm.xml
index 6b1bdbf8c7..6c3e1428cd 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm.xml
@@ -65,7 +65,6 @@
                 <string>right</string>
                 <string>center</string>
                 <string>bottom</string>
-                <string>hidden</string>
               </list>
             </value>
         </item>
@@ -82,13 +81,13 @@
                 <item>
                     <key>                 <string>center</string> </key>
                     <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key>                 <string>hidden</string> </key>
-                    <value>
-                      <list/>
+                      <list>
+                        <string>my_bank_account_holder_name</string>
+                        <string>my_bank_account_number</string>
+                        <string>my_bank_code</string>
+                        <string>my_stop_date</string>
+                        <string>submit_register</string>
+                      </list>
                     </value>
                 </item>
                 <item>
@@ -108,7 +107,6 @@
                         <string>my_reference</string>
                         <string>my_password</string>
                         <string>password_confirm</string>
-                        <string>submit_register</string>
                       </list>
                     </value>
                 </item>
@@ -147,7 +145,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Register new customer account</string> </value>
+            <value> <string>New customer account</string> </value>
         </item>
         <item>
             <key> <string>unicode_mode</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_buy_quantity.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_account_holder_name.xml
similarity index 88%
rename from bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_buy_quantity.xml
rename to bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_account_holder_name.xml
index 56efe9455a..c80e8bfbdb 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_buy_quantity.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_account_holder_name.xml
@@ -5,7 +5,7 @@
       <tuple>
         <tuple>
           <string>Products.Formulator.StandardFields</string>
-          <string>IntegerField</string>
+          <string>StringField</string>
         </tuple>
         <none/>
       </tuple>
@@ -14,7 +14,7 @@
       <dictionary>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>my_buy_quantity</string> </value>
+            <value> <string>my_bank_account_holder_name</string> </value>
         </item>
         <item>
             <key> <string>message_values</string> </key>
@@ -24,18 +24,14 @@
                     <key> <string>external_validator_failed</string> </key>
                     <value> <string>The input failed the external validator.</string> </value>
                 </item>
-                <item>
-                    <key> <string>integer_out_of_range</string> </key>
-                    <value> <string>The integer you entered was out of range.</string> </value>
-                </item>
-                <item>
-                    <key> <string>not_integer</string> </key>
-                    <value> <string>You did not enter an integer.</string> </value>
-                </item>
                 <item>
                     <key> <string>required_not_found</string> </key>
                     <value> <string>Input is required but no input given.</string> </value>
                 </item>
+                <item>
+                    <key> <string>too_long</string> </key>
+                    <value> <string>Too much input was given.</string> </value>
+                </item>
               </dictionary>
             </value>
         </item>
@@ -75,10 +71,6 @@
                     <key> <string>enabled</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>end</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>external_validator</string> </key>
                     <value> <string></string> </value>
@@ -92,17 +84,25 @@
                     <value> <string></string> </value>
                 </item>
                 <item>
-                    <key> <string>required</string> </key>
+                    <key> <string>max_length</string> </key>
                     <value> <string></string> </value>
                 </item>
                 <item>
-                    <key> <string>start</string> </key>
+                    <key> <string>required</string> </key>
                     <value> <string></string> </value>
                 </item>
                 <item>
                     <key> <string>title</string> </key>
                     <value> <string></string> </value>
                 </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
                 <item>
                     <key> <string>whitespace_preserve</string> </key>
                     <value> <string></string> </value>
@@ -146,10 +146,6 @@
                     <key> <string>enabled</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>end</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>external_validator</string> </key>
                     <value> <string></string> </value>
@@ -163,17 +159,25 @@
                     <value> <string></string> </value>
                 </item>
                 <item>
-                    <key> <string>required</string> </key>
+                    <key> <string>max_length</string> </key>
                     <value> <string></string> </value>
                 </item>
                 <item>
-                    <key> <string>start</string> </key>
+                    <key> <string>required</string> </key>
                     <value> <string></string> </value>
                 </item>
                 <item>
                     <key> <string>title</string> </key>
                     <value> <string></string> </value>
                 </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
                 <item>
                     <key> <string>whitespace_preserve</string> </key>
                     <value> <string></string> </value>
@@ -195,7 +199,7 @@
                 </item>
                 <item>
                     <key> <string>default</string> </key>
-                    <value> <string>1</string> </value>
+                    <value> <string></string> </value>
                 </item>
                 <item>
                     <key> <string>description</string> </key>
@@ -207,7 +211,7 @@
                 </item>
                 <item>
                     <key> <string>display_width</string> </key>
-                    <value> <int>3</int> </value>
+                    <value> <int>20</int> </value>
                 </item>
                 <item>
                     <key> <string>editable</string> </key>
@@ -215,11 +219,7 @@
                 </item>
                 <item>
                     <key> <string>enabled</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>end</string> </key>
-                    <value> <string></string> </value>
+                    <value> <int>1</int> </value>
                 </item>
                 <item>
                     <key> <string>external_validator</string> </key>
@@ -234,16 +234,24 @@
                     <value> <int>0</int> </value>
                 </item>
                 <item>
-                    <key> <string>required</string> </key>
-                    <value> <int>0</int> </value>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
                 </item>
                 <item>
-                    <key> <string>start</string> </key>
-                    <value> <string></string> </value>
+                    <key> <string>required</string> </key>
+                    <value> <int>1</int> </value>
                 </item>
                 <item>
                     <key> <string>title</string> </key>
-                    <value> <string>Quantity</string> </value>
+                    <value> <string>Cardholder Name</string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
                 </item>
                 <item>
                     <key> <string>whitespace_preserve</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_account_number.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_account_number.xml
new file mode 100644
index 0000000000..921b183458
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_account_number.xml
@@ -0,0 +1,287 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>StringField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>my_bank_account_number</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>too_long</string> </key>
+                    <value> <string>Too much input was given.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <int>20</int> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Card number</string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.MethodField</string>
+          <string>Method</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>method_name</string> </key>
+            <value> <string>ERP5Ecommerce_isValidCreditCardNumber</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_code.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_code.xml
new file mode 100644
index 0000000000..3ca0056f54
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_bank_code.xml
@@ -0,0 +1,265 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>RadioField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>my_bank_code</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>unknown_selection</string> </key>
+                    <value> <string>You selected an item that was not in the list.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>orientation</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>orientation</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>Visa</string>
+                          <string>Visa</string>
+                        </tuple>
+                        <tuple>
+                          <string>Master</string>
+                          <string>Master</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>orientation</string> </key>
+                    <value> <string>vertical</string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Credit card type</string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_default_email_text.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_default_email_text.xml
index 0f753f3424..e30fe84e17 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_default_email_text.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_default_email_text.xml
@@ -243,7 +243,7 @@
                 </item>
                 <item>
                     <key> <string>required</string> </key>
-                    <value> <int>0</int> </value>
+                    <value> <int>1</int> </value>
                 </item>
                 <item>
                     <key> <string>title</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_stop_date.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_stop_date.xml
new file mode 100644
index 0000000000..12c399e35d
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerAccountForm/my_stop_date.xml
@@ -0,0 +1,2308 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>DateTimeField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>my_stop_date</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>datetime_out_of_range</string> </key>
+                    <value> <string>The date and time you entered were out of range.</string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>not_datetime</string> </key>
+                    <value> <string>You did not enter a valid date and time.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>allow_empty_time</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>ampm_time_style</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>date_only</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>date_separator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default_now</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>end_datetime</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden_day_is_last_day</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hide_day</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>input_order</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>input_style</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>start_datetime</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>time_separator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>sub_form</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>allow_empty_time</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>ampm_time_style</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>date_only</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>date_separator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default_now</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>end_datetime</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden_day_is_last_day</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hide_day</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>input_order</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>input_style</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>start_datetime</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>time_separator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>allow_empty_time</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>ampm_time_style</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>date_only</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>date_separator</string> </key>
+                    <value> <string>/</string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <none/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>default_now</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>end_datetime</string> </key>
+                    <value>
+                      <none/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden_day_is_last_day</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>hide_day</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>input_order</string> </key>
+                    <value> <string>ymd</string> </value>
+                </item>
+                <item>
+                    <key> <string>input_style</string> </key>
+                    <value> <string>list</string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>start_datetime</string> </key>
+                    <value>
+                      <none/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>time_separator</string> </key>
+                    <value> <string>:</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Credit card expire date</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.Form</string>
+          <string>BasicForm</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>fields</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>ampm</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>day</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>hour</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>minute</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAY=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>month</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAc=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>year</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAg=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>Default</string>
+                <string>date</string>
+                <string>time</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>Default</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>date</string> </key>
+                    <value>
+                      <list>
+                        <string>year</string>
+                        <string>month</string>
+                        <string>day</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>time</string> </key>
+                    <value>
+                      <list>
+                        <string>hour</string>
+                        <string>minute</string>
+                        <string>ampm</string>
+                      </list>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>ISO-8859-1</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Basic Form</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>ListField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>ampm</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>unknown_selection</string> </key>
+                    <value> <string>You selected an item that was not in the list.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string>am</string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>am</string>
+                          <string>am</string>
+                        </tuple>
+                        <tuple>
+                          <string>pm</string>
+                          <string>pm</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>am/pm</string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>ListField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>day</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>unknown_selection</string> </key>
+                    <value> <string>You selected an item that was not in the list.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>-</string>
+<string></string>
+                        </tuple>
+                        <tuple>
+                          <string>01</string>
+                          <string>01</string>
+                        </tuple>
+                        <tuple>
+                          <string>02</string>
+                          <string>02</string>
+                        </tuple>
+                        <tuple>
+                          <string>03</string>
+                          <string>03</string>
+                        </tuple>
+                        <tuple>
+                          <string>04</string>
+                          <string>04</string>
+                        </tuple>
+                        <tuple>
+                          <string>05</string>
+                          <string>05</string>
+                        </tuple>
+                        <tuple>
+                          <string>06</string>
+                          <string>06</string>
+                        </tuple>
+                        <tuple>
+                          <string>07</string>
+                          <string>07</string>
+                        </tuple>
+                        <tuple>
+                          <string>08</string>
+                          <string>08</string>
+                        </tuple>
+                        <tuple>
+                          <string>09</string>
+                          <string>09</string>
+                        </tuple>
+                        <tuple>
+                          <string>10</string>
+                          <string>10</string>
+                        </tuple>
+                        <tuple>
+                          <string>11</string>
+                          <string>11</string>
+                        </tuple>
+                        <tuple>
+                          <string>12</string>
+                          <string>12</string>
+                        </tuple>
+                        <tuple>
+                          <string>13</string>
+                          <string>13</string>
+                        </tuple>
+                        <tuple>
+                          <string>14</string>
+                          <string>14</string>
+                        </tuple>
+                        <tuple>
+                          <string>15</string>
+                          <string>15</string>
+                        </tuple>
+                        <tuple>
+                          <string>16</string>
+                          <string>16</string>
+                        </tuple>
+                        <tuple>
+                          <string>17</string>
+                          <string>17</string>
+                        </tuple>
+                        <tuple>
+                          <string>18</string>
+                          <string>18</string>
+                        </tuple>
+                        <tuple>
+                          <string>19</string>
+                          <string>19</string>
+                        </tuple>
+                        <tuple>
+                          <string>20</string>
+                          <string>20</string>
+                        </tuple>
+                        <tuple>
+                          <string>21</string>
+                          <string>21</string>
+                        </tuple>
+                        <tuple>
+                          <string>22</string>
+                          <string>22</string>
+                        </tuple>
+                        <tuple>
+                          <string>23</string>
+                          <string>23</string>
+                        </tuple>
+                        <tuple>
+                          <string>24</string>
+                          <string>24</string>
+                        </tuple>
+                        <tuple>
+                          <string>25</string>
+                          <string>25</string>
+                        </tuple>
+                        <tuple>
+                          <string>26</string>
+                          <string>26</string>
+                        </tuple>
+                        <tuple>
+                          <string>27</string>
+                          <string>27</string>
+                        </tuple>
+                        <tuple>
+                          <string>28</string>
+                          <string>28</string>
+                        </tuple>
+                        <tuple>
+                          <string>29</string>
+                          <string>29</string>
+                        </tuple>
+                        <tuple>
+                          <string>30</string>
+                          <string>30</string>
+                        </tuple>
+                        <tuple>
+                          <string>31</string>
+                          <string>31</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Day</string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>IntegerField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>hour</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>integer_out_of_range</string> </key>
+                    <value> <string>The integer you entered was out of range.</string> </value>
+                </item>
+                <item>
+                    <key> <string>not_integer</string> </key>
+                    <value> <string>You did not enter an integer.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>end</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>start</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>end</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>start</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <int>2</int> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <int>2</int> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>end</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>start</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Hour</string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="6" aka="AAAAAAAAAAY=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>IntegerField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>minute</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>integer_out_of_range</string> </key>
+                    <value> <string>The integer you entered was out of range.</string> </value>
+                </item>
+                <item>
+                    <key> <string>not_integer</string> </key>
+                    <value> <string>You did not enter an integer.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>end</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>start</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>end</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>start</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <int>2</int> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <int>2</int> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>end</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>start</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Minute</string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="7" aka="AAAAAAAAAAc=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>ListField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>month</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>unknown_selection</string> </key>
+                    <value> <string>You selected an item that was not in the list.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>-</string>
+<string></string>
+                        </tuple>
+                        <tuple>
+                          <string>01</string>
+                          <string>01</string>
+                        </tuple>
+                        <tuple>
+                          <string>02</string>
+                          <string>02</string>
+                        </tuple>
+                        <tuple>
+                          <string>03</string>
+                          <string>03</string>
+                        </tuple>
+                        <tuple>
+                          <string>04</string>
+                          <string>04</string>
+                        </tuple>
+                        <tuple>
+                          <string>05</string>
+                          <string>05</string>
+                        </tuple>
+                        <tuple>
+                          <string>06</string>
+                          <string>06</string>
+                        </tuple>
+                        <tuple>
+                          <string>07</string>
+                          <string>07</string>
+                        </tuple>
+                        <tuple>
+                          <string>08</string>
+                          <string>08</string>
+                        </tuple>
+                        <tuple>
+                          <string>09</string>
+                          <string>09</string>
+                        </tuple>
+                        <tuple>
+                          <string>10</string>
+                          <string>10</string>
+                        </tuple>
+                        <tuple>
+                          <string>11</string>
+                          <string>11</string>
+                        </tuple>
+                        <tuple>
+                          <string>12</string>
+                          <string>12</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Month</string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="8" aka="AAAAAAAAAAg=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>ListField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>year</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>unknown_selection</string> </key>
+                    <value> <string>You selected an item that was not in the list.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAk=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra_item</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>first_item</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>items</string> </key>
+                    <value>
+                      <list>
+                        <tuple>
+                          <string>-</string>
+<string></string>
+                        </tuple>
+                        <tuple>
+                          <string>2000</string>
+                          <string>2000</string>
+                        </tuple>
+                        <tuple>
+                          <string>2001</string>
+                          <string>2001</string>
+                        </tuple>
+                        <tuple>
+                          <string>2002</string>
+                          <string>2002</string>
+                        </tuple>
+                        <tuple>
+                          <string>2003</string>
+                          <string>2003</string>
+                        </tuple>
+                        <tuple>
+                          <string>2004</string>
+                          <string>2004</string>
+                        </tuple>
+                        <tuple>
+                          <string>2005</string>
+                          <string>2005</string>
+                        </tuple>
+                        <tuple>
+                          <string>2006</string>
+                          <string>2006</string>
+                        </tuple>
+                        <tuple>
+                          <string>2007</string>
+                          <string>2007</string>
+                        </tuple>
+                        <tuple>
+                          <string>2008</string>
+                          <string>2008</string>
+                        </tuple>
+                        <tuple>
+                          <string>2009</string>
+                          <string>2009</string>
+                        </tuple>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>size</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Year</string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="9" aka="AAAAAAAAAAk=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.MethodField</string>
+          <string>BoundMethod</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>method_name</string> </key>
+            <value> <string>override_year_items</string> </value>
+        </item>
+        <item>
+            <key> <string>object</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAE=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newShoppingCart.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newShoppingCart.xml
index f5e6fa9df4..619e7fe917 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newShoppingCart.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newShoppingCart.xml
@@ -68,12 +68,7 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>from Products.ERP5Type.Document import newTempOrder\n
-request = context.REQUEST\n
-session_id = request.get(\'session_id\', None)\n
-\n
-order = newTempOrder(context.getPortalObject(), id = session_id, title = \'order\')\n
-return order\n
+            <value> <string>return value\n
 </string> </value>
         </item>
         <item>
@@ -90,7 +85,15 @@ return order\n
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string></string> </value>
+            <value> <string>value</string> </value>
+        </item>
+        <item>
+            <key> <string>_proxy_roles</string> </key>
+            <value>
+              <tuple>
+                <string>Manager</string>
+              </tuple>
+            </value>
         </item>
         <item>
             <key> <string>errors</string> </key>
@@ -110,20 +113,13 @@ return order\n
                   <dictionary>
                     <item>
                         <key> <string>co_argcount</string> </key>
-                        <value> <int>0</int> </value>
+                        <value> <int>1</int> </value>
                     </item>
                     <item>
                         <key> <string>co_varnames</string> </key>
                         <value>
                           <tuple>
-                            <string>Products.ERP5Type.Document</string>
-                            <string>newTempOrder</string>
-                            <string>_getattr_</string>
-                            <string>context</string>
-                            <string>request</string>
-                            <string>None</string>
-                            <string>session_id</string>
-                            <string>order</string>
+                            <string>value</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_renderSaleOrderAsShoppingCart.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_renderSaleOrderAsShoppingCart.xml
index ed9bcc0c71..4eb3a469dd 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_renderSaleOrderAsShoppingCart.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_renderSaleOrderAsShoppingCart.xml
@@ -48,12 +48,14 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<div>\n
 <tal:block tal:define="shopping_cart_items here/ERP5Ecommerce_getShoppingCartItemList;\n
                        empty_cart python: len(shopping_cart_items)==0;\n
-                       website here/getWebSiteValue;">\n
- \n
-  <p tal:condition = "empty_cart"> Your shopping cart is empty. </p>\n
+                       website here/getWebSiteValue;\n
+                       confirm_mode python: bool(options.get(\'confirm_mode\', False))">\n
+\n
+  <tal:block tal:condition = "empty_cart"> \n
+    <h3>Your shopping cart is empty.</h3>\n
+  </tal:block>\n
 \n
   <form action="" tal:condition = "not: empty_cart">\n
   <table>\n
@@ -64,16 +66,17 @@
     </thead>\n
     <tbody>  \n
       <tal:block tal:repeat="order_line shopping_cart_items">\n
-      <tr tal:define="resource python: website.restrictedTraverse(order_line.getResource());\n
-                      quantity python: int(order_line.getTotalQuantity());\n
+      <tr tal:define="resource python: website.restrictedTraverse(order_line[\'resource\']);\n
+                      quantity python: int(order_line[\'quantity\']);\n
                       price    python: resource.getPrice();\n
-                      order_line_id order_line/getId;\n
+                      order_line_id python: shopping_cart_items.index(order_line);\n
            global     currency python: here.restrictedTraverse(resource.getSupplyLinePriceCurrency()).getTitle()"> \n
          <td>\n
            <a href="" tal:attributes="href resource/absolute_url">\n
-             <b tal:content="order_line/getTitle"/> <br/>\n
-             <a tal:attributes="href python: \'%s?field_my_order_line_id=%s\' \n
-                                              %(website.SaleOrder_deleteShoppingCartItem.absolute_url(), \n
+             <b tal:content="resource/getTitle"/> <br/>\n
+             <a  tal:condition="not: confirm_mode"\n
+                 tal:attributes="href python: \'%s?field_my_order_line_id=%s\' \n
+                                              %(website.ERP5Ecommerce_deleteShoppingCartItem.absolute_url(), \n
                                                 order_line_id)"> \n
               Delete \n
              </a>\n
@@ -83,36 +86,27 @@
            <span tal:replace="price"/> <span tal:replace="currency"/>\n
          </td>\n
          <td>\n
-           <input type="input" \n
+           <input tal:condition="not: confirm_mode"\n
+                  type="input" \n
                   name="field_my_buy_quantity"\n
                   size="2"\n
                   tal:attributes ="value quantity"/>\n
+           <span tal:condition="confirm_mode" tal:content="quantity"/>\n
          </td>\n
       </tr>\n
     </tal:block>\n
-    <tr>\n
-      <td></td>\n
-      <td></td>\n
-      <td>\n
-        <br/>\n
-        <input type="submit" name="SaleOrder_update:method" value="Update"/>\n
-      </td>\n
     </tbody>\n
   </table>\n
   </form>\n
 \n
   <tal:block tal:condition = "not: empty_cart">\n
-    <br/><br/>\n
+    <br/>\n
     <b>Total price: <span tal:replace="python: here.ERP5Ecommerce_getTotalPriceForShoppingCart()"/> \n
        <span tal:replace="currency"/>\n
-    </b> <br/>\n
-    <form action="">\n
-      <input type="submit" value="Proceed to checkout" name="SaleOrder_confirmShopping:method">\n
-    </form> \n
-\n
+    </b> \n
+    <br/>\n
   </tal:block>\n
-</tal:block>\n
-</div>
+</tal:block>
 
 ]]></string> </value>
         </item>
@@ -130,7 +124,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Render custom cart content</string> </value>
+            <value> <string>Soppingcart content widget</string> </value>
         </item>
       </dictionary>
     </pickle>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_shoppingCartWidget.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_shoppingCartWidget.xml
index 717d16b3be..289760c778 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_shoppingCartWidget.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_shoppingCartWidget.xml
@@ -48,21 +48,18 @@
             <key> <string>_text</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-<div>\n
 <tal:block tal:define="shopping_cart_items here/ERP5Ecommerce_getShoppingCartItemList;\n
                        empty_cart python: len(shopping_cart_items)==0;\n
                        website here/getWebSiteValue;">\n
-\n
-  <legend>My shopping cart</legend>\n
 \n
   <ul tal:repeat="order_line shopping_cart_items">\n
-    <li tal:define="resource python: website.restrictedTraverse(order_line.getResource());\n
-                    quantity python: int(order_line.getTotalQuantity());\n
+    <li tal:define="resource python: website.restrictedTraverse(order_line[\'resource\']);\n
+                    quantity python: int(order_line[\'quantity\']);\n
                     price    python: resource.getPrice();\n
          global     currency python: here.restrictedTraverse(resource.getSupplyLinePriceCurrency()).getTitle()"> \n
 \n
        <a href="" tal:attributes="href resource/absolute_url">\n
-         <b tal:content="order_line/getTitle"/> \n
+         <b tal:content="resource/getTitle"/> \n
        </a>\n
        <br/>\n
        Price: <span tal:replace="price"/> <span tal:replace="currency"/>\n
@@ -75,15 +72,12 @@
     <br/>\n
     <b>Total price: <span tal:replace="python: here.ERP5Ecommerce_getTotalPriceForShoppingCart()"/> \n
        <span tal:replace="currency"/>\n
-    </b>\n
-\n
-    <input type="submit" value="View Shopping Cart" name="SaleOrder_viewAsWeb:method"/>\n
-\n
-    <input type="submit" value="Proceed to checkout" name="SaleOrder_confirmShopping:method"/>\n
-\n
+    </b><br/>\n
+    <a href="SaleOrder_viewAsWeb?editable_mode=1">Edit Shopping Cart</a><br/>\n
+    <a href="SaleOrder_confirmShopping?editable_mode=1">Proceed to checkout</a>\n
   </tal:block>\n
-</tal:block>\n
-</div>
+\n
+</tal:block>
 
 ]]></string> </value>
         </item>
@@ -101,7 +95,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Render cart portlet</string> </value>
+            <value> <string>Mini shopping cart widget</string> </value>
         </item>
       </dictionary>
     </pickle>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerForm.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_thankyou.xml
similarity index 73%
rename from bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerForm.xml
rename to bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_thankyou.xml
index 6ae7161113..f269163fd7 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_newCustomerForm.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_thankyou.xml
@@ -65,7 +65,6 @@
                 <string>right</string>
                 <string>center</string>
                 <string>bottom</string>
-                <string>hidden</string>
               </list>
             </value>
         </item>
@@ -74,45 +73,27 @@
             <value>
               <dictionary>
                 <item>
-                    <key>                 <string>bottom</string> </key>
+                    <key> <string>bottom</string> </key>
                     <value>
                       <list/>
                     </value>
                 </item>
                 <item>
-                    <key>                 <string>center</string> </key>
+                    <key> <string>center</string> </key>
                     <value>
                       <list/>
                     </value>
                 </item>
                 <item>
-                    <key>                 <string>hidden</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key>                 <string>left</string> </key>
+                    <key> <string>left</string> </key>
                     <value>
                       <list>
-                        <string>Title</string>
-                        <string>first_name</string>
-                        <string>last_name</string>
-                        <string>email</string>
-                        <string>telephone</string>
-                        <string>fax</string>
-                        <string>address</string>
-                        <string>zip</string>
-                        <string>city</string>
-                        <string>country</string>
-                        <string>password</string>
-                        <string>repeat_password</string>
-                        <string>submit_register</string>
+                        <string>my_thankyou</string>
                       </list>
                     </value>
                 </item>
                 <item>
-                    <key>                 <string>right</string> </key>
+                    <key> <string>right</string> </key>
                     <value>
                       <list/>
                     </value>
@@ -122,7 +103,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>ERP5Ecommerce_newCustomerForm</string> </value>
+            <value> <string>ERP5Ecommerce_thankyou</string> </value>
         </item>
         <item>
             <key> <string>method</string> </key>
@@ -130,7 +111,7 @@
         </item>
         <item>
             <key> <string>name</string> </key>
-            <value> <string>newCustomerForm</string> </value>
+            <value> <string>Product_view</string> </value>
         </item>
         <item>
             <key> <string>pt</string> </key>
@@ -146,7 +127,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Register New Customer</string> </value>
+            <value> <string>Thank you</string> </value>
         </item>
         <item>
             <key> <string>unicode_mode</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_thankyou/my_thankyou.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_thankyou/my_thankyou.xml
new file mode 100644
index 0000000000..ebdc418887
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_thankyou/my_thankyou.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>LabelField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>my_thankyou</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string encoding="cdata"><![CDATA[
+
+<h3>Thank you for using our online shop! Your order will be processed now.</h3>
+
+]]></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Thank you</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_update.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_updateShoppingCart.xml
similarity index 88%
rename from bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_update.xml
rename to bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_updateShoppingCart.xml
index 3ef4bd7278..0add2bab0f 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_update.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/ERP5Ecommerce_updateShoppingCart.xml
@@ -206,11 +206,10 @@
             <key> <string>_body</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-request = context.REQUEST\n
-website = context.getWebSiteValue()\n
-\n
+translateString = context.Base_translateString\n
 shopping_cart_items = context.ERP5Ecommerce_getShoppingCartItemList()\n
-quantity = request.get(\'field_my_buy_quantity\', None)\n
+shopping_cart = shopping_cart_items\n
+quantity = field_my_buy_quantity \n
 \n
 ## when we have one item in shoppping cart we get \n
 ## quantity as a string rather as a list\n
@@ -221,15 +220,19 @@ counter = 0\n
 for order_line in shopping_cart_items:\n
   new_quantity = int(quantity[counter])\n
   if new_quantity>=1:\n
-    order_line.setQuantity(new_quantity)\n
+    order_line[\'quantity\'] = new_quantity\n
   else:\n
     ## remove it from shopping cart\n
-    shopping_cart = context.ERP5Ecommerce_getShoppingCart()\n
-    shopping_cart.manage_delObjects(order_line.getId())\n
+    del shopping_cart_items[counter]\n
   counter += 1\n
 \n
-redirect_url = website.SaleOrder_viewAsWeb.absolute_url()\n
-request.RESPONSE.redirect(redirect_url + \'?portal_status_message=Your cart content was updated.\')\n
+## update back cache so we have consistent results between cache plugins\n
+context.ERP5Ecommerce_getShoppingCart(action=\'update\', \\\n
+                                      new_shopping_cart = shopping_cart)\n
+\n
+context.Base_redirect(\'SaleOrder_viewAsWeb\', \\\n
+                      editable_mode=True, \\\n
+                      keep_items={\'portal_status_message\': translateString("Your cart content updated.", mapping = dict())})\n
 
 
 ]]></string> </value>
@@ -248,7 +251,7 @@ request.RESPONSE.redirect(redirect_url + \'?portal_status_message=Your cart cont
         </item>
         <item>
             <key> <string>_params</string> </key>
-            <value> <string></string> </value>
+            <value> <string>field_my_buy_quantity=None</string> </value>
         </item>
         <item>
             <key> <string>_proxy_roles</string> </key>
@@ -277,18 +280,18 @@ request.RESPONSE.redirect(redirect_url + \'?portal_status_message=Your cart cont
                   <dictionary>
                     <item>
                         <key> <string>co_argcount</string> </key>
-                        <value> <int>0</int> </value>
+                        <value> <int>1</int> </value>
                     </item>
                     <item>
                         <key> <string>co_varnames</string> </key>
                         <value>
                           <tuple>
+                            <string>field_my_buy_quantity</string>
                             <string>_getattr_</string>
                             <string>context</string>
-                            <string>request</string>
-                            <string>website</string>
+                            <string>translateString</string>
                             <string>shopping_cart_items</string>
-                            <string>None</string>
+                            <string>shopping_cart</string>
                             <string>quantity</string>
                             <string>isinstance</string>
                             <string>str</string>
@@ -298,8 +301,9 @@ request.RESPONSE.redirect(redirect_url + \'?portal_status_message=Your cart cont
                             <string>int</string>
                             <string>_getitem_</string>
                             <string>new_quantity</string>
-                            <string>shopping_cart</string>
-                            <string>redirect_url</string>
+                            <string>_write_</string>
+                            <string>True</string>
+                            <string>dict</string>
                           </tuple>
                         </value>
                     </item>
@@ -311,16 +315,18 @@ request.RESPONSE.redirect(redirect_url + \'?portal_status_message=Your cart cont
         <item>
             <key> <string>func_defaults</string> </key>
             <value>
-              <none/>
+              <tuple>
+                <none/>
+              </tuple>
             </value>
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>SaleOrder_update</string> </value>
+            <value> <string>ERP5Ecommerce_updateShoppingCart</string> </value>
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Update Sale Order</string> </value>
+            <value> <string>Update shopping cart</string> </value>
         </item>
         <item>
             <key> <string>warnings</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop.xml
index 731d0e9700..b8e0c4d8ce 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop.xml
@@ -90,8 +90,8 @@
                       <list>
                         <string>my_title</string>
                         <string>my_description</string>
+                        <string>my_price</string>
                         <string>my_buy_button</string>
-                        <string>my_buy_quantity</string>
                       </list>
                     </value>
                 </item>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_buy_button.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_buy_button.xml
index 13a2196f95..4d3997561c 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_buy_button.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_buy_button.xml
@@ -4,8 +4,8 @@
     <pickle>
       <tuple>
         <tuple>
-          <string>Products.ERP5Form.EditorField</string>
-          <string>EditorField</string>
+          <string>Products.Formulator.StandardFields</string>
+          <string>LabelField</string>
         </tuple>
         <none/>
       </tuple>
@@ -19,38 +19,13 @@
         <item>
             <key> <string>message_values</string> </key>
             <value>
-              <dictionary>
-                <item>
-                    <key> <string>external_validator_failed</string> </key>
-                    <value> <string>The input failed the external validator.</string> </value>
-                </item>
-                <item>
-                    <key> <string>line_too_long</string> </key>
-                    <value> <string>A line was too long.</string> </value>
-                </item>
-                <item>
-                    <key> <string>required_not_found</string> </key>
-                    <value> <string>Input is required but no input given.</string> </value>
-                </item>
-                <item>
-                    <key> <string>too_long</string> </key>
-                    <value> <string>You entered too many characters.</string> </value>
-                </item>
-                <item>
-                    <key> <string>too_many_lines</string> </key>
-                    <value> <string>You entered too many lines.</string> </value>
-                </item>
-              </dictionary>
+              <dictionary/>
             </value>
         </item>
         <item>
             <key> <string>overrides</string> </key>
             <value>
               <dictionary>
-                <item>
-                    <key> <string>alternate_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>css_class</string> </key>
                     <value> <string></string> </value>
@@ -71,54 +46,18 @@
                     <key> <string>enabled</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>external_validator</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>extra</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>height</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>hidden</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>max_length</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>max_linelength</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>max_lines</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>required</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>title</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>unicode</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>whitespace_preserve</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>width</string> </key>
-                    <value> <string></string> </value>
-                </item>
               </dictionary>
             </value>
         </item>
@@ -126,17 +65,15 @@
             <key> <string>tales</string> </key>
             <value>
               <dictionary>
-                <item>
-                    <key> <string>alternate_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>css_class</string> </key>
                     <value> <string></string> </value>
                 </item>
                 <item>
                     <key> <string>default</string> </key>
-                    <value> <string></string> </value>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
                 </item>
                 <item>
                     <key> <string>description</string> </key>
@@ -150,54 +87,18 @@
                     <key> <string>enabled</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>external_validator</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>extra</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>height</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>hidden</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>max_length</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>max_linelength</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>max_lines</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>required</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>title</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>unicode</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>whitespace_preserve</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>width</string> </key>
-                    <value> <string></string> </value>
-                </item>
               </dictionary>
             </value>
         </item>
@@ -205,36 +106,13 @@
             <key> <string>values</string> </key>
             <value>
               <dictionary>
-                <item>
-                    <key> <string>alternate_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>css_class</string> </key>
                     <value> <string></string> </value>
                 </item>
                 <item>
                     <key> <string>default</string> </key>
-                    <value> <string encoding="cdata"><![CDATA[
-
-<select name="field_my_buy_quantity" >\n
-<option value="1">1 </option>\n
-<option\n
-value="2">2 </option>\n
-<option\n
-value="3">3 </option>\n
-<option\n
-value="4">4 </option>\n
-<option\n
-value="5">5 </option>\n
-<option\n
-value="6">6 </option>\n
-</select>\n
-<button type="submit"\n
-class="save" title="Confirm"\n
-name="Product_addToShoppingCart:method">Add to Shopping Cart</button>
-
-]]></string> </value>
+                    <value> <string></string> </value>
                 </item>
                 <item>
                     <key> <string>description</string> </key>
@@ -242,64 +120,47 @@ name="Product_addToShoppingCart:method">Add to Shopping Cart</button>
                 </item>
                 <item>
                     <key> <string>editable</string> </key>
-                    <value> <int>0</int> </value>
+                    <value> <int>1</int> </value>
                 </item>
                 <item>
                     <key> <string>enabled</string> </key>
                     <value> <int>1</int> </value>
                 </item>
-                <item>
-                    <key> <string>external_validator</string> </key>
-                    <value> <string></string> </value>
-                </item>
                 <item>
                     <key> <string>extra</string> </key>
                     <value> <string></string> </value>
                 </item>
-                <item>
-                    <key> <string>height</string> </key>
-                    <value> <int>50</int> </value>
-                </item>
                 <item>
                     <key> <string>hidden</string> </key>
                     <value> <int>0</int> </value>
                 </item>
-                <item>
-                    <key> <string>max_length</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>max_linelength</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>max_lines</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>required</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
                 <item>
                     <key> <string>title</string> </key>
                     <value> <string>Add to cart</string> </value>
                 </item>
-                <item>
-                    <key> <string>unicode</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>whitespace_preserve</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>width</string> </key>
-                    <value> <int>40</int> </value>
-                </item>
               </dictionary>
             </value>
         </item>
       </dictionary>
     </pickle>
   </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.TALESField</string>
+          <string>TALESMethod</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>here/ERP5Ecommerce_addToShoppingCartWidget</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
 </ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_price.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_price.xml
new file mode 100644
index 0000000000..b066eb9461
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/Product_viewAsShop/my_price.xml
@@ -0,0 +1,287 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.StandardFields</string>
+          <string>StringField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>my_price</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>too_long</string> </key>
+                    <value> <string>Too much input was given.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_maxwidth</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>display_width</string> </key>
+                    <value> <int>20</int> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Price</string> </value>
+                </item>
+                <item>
+                    <key> <string>truncate</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.TALESField</string>
+          <string>TALESMethod</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: \'%s %s\' %(here.getPrice(), here.restrictedTraverse(here.getSupplyLinePriceCurrency()).getTitle())</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_confirmShopping.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_confirmShopping.xml
index 616d139d59..c23e7dc0f1 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_confirmShopping.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_confirmShopping.xml
@@ -204,41 +204,21 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string encoding="cdata"><![CDATA[
-
-user_id = context.portal_membership.getAuthenticatedMember().getId()\n
-request = context.REQUEST\n
-website = context.getWebSiteValue()\n
+            <value> <string>request = context.REQUEST\n
+isAnon = context.portal_membership.isAnonymousUser()\n
+translateString = context.Base_translateString\n
 \n
-## determine customer if not such create an account\n
-if context.portal_membership.isAnonymousUser():\n
-  redirect_url = website.ERP5Ecommerce_newCustomerAccountForm.absolute_url()\n
-  request.RESPONSE.redirect(redirect_url + \'?editable_mode=1&portal_status_message=You need to create an account.\')\n
+if isAnon:\n
+  ## create first an account for user\n
+  context.Base_redirect(\'ERP5Ecommerce_newCustomerAccountForm\', \\\n
+                      editable_mode=True, \\\n
+                      keep_items={\'portal_status_message\': translateString("You need to create an account. If you already have please use it to login.", mapping = dict())})\n
   return\n
-\n
-#context.debug(context.portal_membership.isAnonymousUser())\n
-\n
-shopping_cart = context.ERP5Ecommerce_getShoppingCart()\n
-\n
-sale_order = context.ERP5Ecommerce_createSaleOrderFromShoppingCart(shopping_cart)\n
-context.debug("aaaaaaaaaaaaaaaa")\n
-\n
-## clean up shopping cart\n
-context.ERP5Ecommerce_getShoppingCart(reset=True)\n
-\n
-return \n
-\n
-## set as sale order owner\n
-shopping_cart_persistent.setDestination("person_module/"+user_id_number)\n
-\n
-\n
-## redirect\n
-redirect_url=context.REQUEST[\'HTTP_REFERER\']\n
-redirect_url=redirect_url[:redirect_url.index("/portal_sessions/shoppingcart")]+"/thank-you"\n
-context.REQUEST.RESPONSE.redirect(redirect_url)\n
-
-
-]]></string> </value>
+else:\n
+  ## redirect to final confirmation form\n
+  context.Base_redirect(\'SaleOrder_viewAsWebConfirm\',\n
+                        editable_mode=True)\n
+</string> </value>
         </item>
         <item>
             <key> <string>_code</string> </key>
@@ -291,16 +271,11 @@ context.REQUEST.RESPONSE.redirect(redirect_url)\n
                           <tuple>
                             <string>_getattr_</string>
                             <string>context</string>
-                            <string>user_id</string>
                             <string>request</string>
-                            <string>website</string>
-                            <string>redirect_url</string>
-                            <string>shopping_cart</string>
-                            <string>sale_order</string>
+                            <string>isAnon</string>
+                            <string>translateString</string>
                             <string>True</string>
-                            <string>shopping_cart_persistent</string>
-                            <string>user_id_number</string>
-                            <string>_getitem_</string>
+                            <string>dict</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_finalizeShopping.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_finalizeShopping.xml
new file mode 100644
index 0000000000..3aa0b150c1
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_finalizeShopping.xml
@@ -0,0 +1,318 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.PythonScripts.PythonScript</string>
+          <string>PythonScript</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>Python_magic</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>Script_magic</string> </key>
+            <value> <int>3</int> </value>
+        </item>
+        <item>
+            <key> <string>_Change_Python_Scripts_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_bindings_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_cache_settings_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_permissions_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Change_proxy_roles_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Copy_or_Move_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Delete_objects_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Manage_WebDAV_Locks_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Manage_properties_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Take_ownership_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_Undo_changes_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_History_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_View_management_screens_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_WebDAV_Lock_items_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_WebDAV_Unlock_items_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>_WebDAV_access_Permission</string> </key>
+            <value>
+              <list>
+                <string>Manager</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </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>request = context.REQUEST\n
+isAnon = context.portal_membership.isAnonymousUser()\n
+translateString = context.Base_translateString\n
+\n
+if isAnon:\n
+  ## create first an account for user\n
+  context.Base_redirect(\'ERP5Ecommerce_newCustomerAccountForm\', \\\n
+                      editable_mode=True, \\\n
+                      keep_items={\'portal_status_message\': translateString("You need to create an account.", mapping = dict())})\n
+  return\n
+\n
+shopping_cart = context.ERP5Ecommerce_getShoppingCart()\n
+sale_order = context.ERP5Ecommerce_createSaleOrderFromShoppingCart(shopping_cart)\n
+\n
+## clean up shopping cart\n
+context.ERP5Ecommerce_getShoppingCart(action=\'reset\')\n
+\n
+context.Base_redirect(\'ERP5Ecommerce_thankyou\', \\\n
+                      editable_mode=False)\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_code</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_filepath</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>_proxy_roles</string> </key>
+            <value>
+              <tuple>
+                <string>Assignor</string>
+                <string>Manager</string>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>errors</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_code</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>co_argcount</string> </key>
+                        <value> <int>0</int> </value>
+                    </item>
+                    <item>
+                        <key> <string>co_varnames</string> </key>
+                        <value>
+                          <tuple>
+                            <string>_getattr_</string>
+                            <string>context</string>
+                            <string>request</string>
+                            <string>isAnon</string>
+                            <string>translateString</string>
+                            <string>True</string>
+                            <string>dict</string>
+                            <string>shopping_cart</string>
+                            <string>sale_order</string>
+                            <string>False</string>
+                          </tuple>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>func_defaults</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>SaleOrder_finalizeShopping</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Finalize order</string> </value>
+        </item>
+        <item>
+            <key> <string>warnings</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb.xml
index 7d56b1cf64..4a1a64a9bf 100644
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb.xml
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb.xml
@@ -89,7 +89,7 @@
                     <value>
                       <list>
                         <string>shopping_cart</string>
-                        <string>shopping_item_list</string>
+                        <string>submit</string>
                       </list>
                     </value>
                 </item>
@@ -128,7 +128,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Shopping cart details</string> </value>
+            <value> <string>Edit shopping cart</string> </value>
         </item>
         <item>
             <key> <string>unicode_mode</string> </key>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb/shopping_item_list.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb/shopping_item_list.xml
deleted file mode 100644
index 524643de94..0000000000
--- a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb/shopping_item_list.xml
+++ /dev/null
@@ -1,500 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <tuple>
-        <tuple>
-          <string>Products.ERP5Form.ListBox</string>
-          <string>ListBox</string>
-        </tuple>
-        <none/>
-      </tuple>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>shopping_item_list</string> </value>
-        </item>
-        <item>
-            <key> <string>message_values</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>external_validator_failed</string> </key>
-                    <value> <string>The input failed the external validator.</string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>overrides</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>all_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>alternate_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>count_method</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>css_class</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>default_params</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>description</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>domain_root_list</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>domain_tree</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>editable</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>editable_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>enabled</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>external_validator</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>global_attributes</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>hidden</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>lines</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>list_action</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>list_method</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>meta_types</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>page_template</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>portal_types</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>report_root_list</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>report_tree</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>search</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>search_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>select</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>selection_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>sort</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>sort_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>stat_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>stat_method</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>url_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>tales</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>all_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>alternate_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>count_method</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>css_class</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>default_params</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>description</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>domain_root_list</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>domain_tree</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>editable</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>editable_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>enabled</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>external_validator</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>global_attributes</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>hidden</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>lines</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>list_action</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>list_method</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>meta_types</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>page_template</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>portal_types</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>report_root_list</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>report_tree</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>search</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>search_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>select</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>selection_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>sort</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>sort_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>stat_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>stat_method</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>url_columns</string> </key>
-                    <value> <string></string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>values</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>all_columns</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>alternate_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>columns</string> </key>
-                    <value>
-                      <list>
-                        <tuple>
-                          <string>title</string>
-                          <string>title</string>
-                        </tuple>
-                        <tuple>
-                          <string>description</string>
-                          <string>description</string>
-                        </tuple>
-                        <tuple>
-                          <string>price</string>
-                          <string>price</string>
-                        </tuple>
-                        <tuple>
-                          <string>quantity</string>
-                          <string>quantity</string>
-                        </tuple>
-                      </list>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>count_method</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>css_class</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>default_params</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>description</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>domain_root_list</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>domain_tree</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>editable</string> </key>
-                    <value> <int>1</int> </value>
-                </item>
-                <item>
-                    <key> <string>editable_columns</string> </key>
-                    <value>
-                      <list>
-                        <tuple>
-                          <string>Quantity</string>
-                          <string>quantity</string>
-                        </tuple>
-                      </list>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>enabled</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>external_validator</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>global_attributes</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>hidden</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>lines</string> </key>
-                    <value> <int>20</int> </value>
-                </item>
-                <item>
-                    <key> <string>list_action</string> </key>
-                    <value> <string>list</string> </value>
-                </item>
-                <item>
-                    <key> <string>list_method</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>meta_types</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>page_template</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>portal_types</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>report_root_list</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>report_tree</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>search</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>search_columns</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>select</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>selection_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>sort</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>sort_columns</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>stat_columns</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>stat_method</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string>shopping_item_list</string> </value>
-                </item>
-                <item>
-                    <key> <string>url_columns</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb/submit.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb/submit.xml
new file mode 100644
index 0000000000..2f352620ac
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWeb/submit.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.ERP5Form.InputButtonField</string>
+          <string>InputButtonField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>submit</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string>hiddenLabel</string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string>Update</string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>name</string> </key>
+                    <value> <string>ERP5Ecommerce_updateShoppingCart:method</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Submit</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm.xml
new file mode 100644
index 0000000000..dbe0b81a9f
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.ERP5Form.Form</string>
+          <string>ERP5Form</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </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/>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>action</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>enctype</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>group_list</string> </key>
+            <value>
+              <list>
+                <string>left</string>
+                <string>right</string>
+                <string>center</string>
+                <string>bottom</string>
+              </list>
+            </value>
+        </item>
+        <item>
+            <key> <string>groups</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>bottom</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>center</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>left</string> </key>
+                    <value>
+                      <list>
+                        <string>shopping_cart</string>
+                        <string>submit</string>
+                      </list>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>right</string> </key>
+                    <value>
+                      <list/>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>SaleOrder_viewAsWebConfirm</string> </value>
+        </item>
+        <item>
+            <key> <string>method</string> </key>
+            <value> <string>POST</string> </value>
+        </item>
+        <item>
+            <key> <string>name</string> </key>
+            <value> <string>Product_view</string> </value>
+        </item>
+        <item>
+            <key> <string>pt</string> </key>
+            <value> <string>form_view</string> </value>
+        </item>
+        <item>
+            <key> <string>row_length</string> </key>
+            <value> <int>4</int> </value>
+        </item>
+        <item>
+            <key> <string>stored_encoding</string> </key>
+            <value> <string>UTF-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string>Confirm order</string> </value>
+        </item>
+        <item>
+            <key> <string>unicode_mode</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>update_action</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm/shopping_cart.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm/shopping_cart.xml
new file mode 100644
index 0000000000..2b653f1e9e
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm/shopping_cart.xml
@@ -0,0 +1,307 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.ERP5Form.EditorField</string>
+          <string>EditorField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>shopping_cart</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>external_validator_failed</string> </key>
+                    <value> <string>The input failed the external validator.</string> </value>
+                </item>
+                <item>
+                    <key> <string>line_too_long</string> </key>
+                    <value> <string>A line was too long.</string> </value>
+                </item>
+                <item>
+                    <key> <string>required_not_found</string> </key>
+                    <value> <string>Input is required but no input given.</string> </value>
+                </item>
+                <item>
+                    <key> <string>too_long</string> </key>
+                    <value> <string>You entered too many characters.</string> </value>
+                </item>
+                <item>
+                    <key> <string>too_many_lines</string> </key>
+                    <value> <string>You entered too many lines.</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+                    </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string>adminToolbox</string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>external_validator</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>height</string> </key>
+                    <value> <int>5</int> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>max_length</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_linelength</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>max_lines</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>required</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Shopping cart</string> </value>
+                </item>
+                <item>
+                    <key> <string>unicode</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>whitespace_preserve</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>width</string> </key>
+                    <value> <int>40</int> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.Formulator.TALESField</string>
+          <string>TALESMethod</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_text</string> </key>
+            <value> <string>python: here.ERP5Ecommerce_renderSaleOrderAsShoppingCart(confirm_mode=1)</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm/submit.xml b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm/submit.xml
new file mode 100644
index 0000000000..7ee49d8c67
--- /dev/null
+++ b/bt5/erp5_ecommerce/SkinTemplateItem/portal_skins/erp5_ecommerce/SaleOrder_viewAsWebConfirm/submit.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Products.ERP5Form.InputButtonField</string>
+          <string>InputButtonField</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>submit</string> </value>
+        </item>
+        <item>
+            <key> <string>message_values</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+        <item>
+            <key> <string>overrides</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>tales</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string></string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>values</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>alternate_name</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>css_class</string> </key>
+                    <value> <string>hiddenLabel</string> </value>
+                </item>
+                <item>
+                    <key> <string>default</string> </key>
+                    <value> <string>Buy</string> </value>
+                </item>
+                <item>
+                    <key> <string>description</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>editable</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>enabled</string> </key>
+                    <value> <int>1</int> </value>
+                </item>
+                <item>
+                    <key> <string>extra</string> </key>
+                    <value> <string></string> </value>
+                </item>
+                <item>
+                    <key> <string>hidden</string> </key>
+                    <value> <int>0</int> </value>
+                </item>
+                <item>
+                    <key> <string>name</string> </key>
+                    <value> <string>SaleOrder_finalizeShopping:method</string> </value>
+                </item>
+                <item>
+                    <key> <string>title</string> </key>
+                    <value> <string>Submit</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
-- 
2.30.9