diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py
index 8a2c1edba93..90cd93b3125 100644
--- a/addons/website_sale/controllers/main.py
+++ b/addons/website_sale/controllers/main.py
@@ -685,8 +685,50 @@ class website_sale(http.Controller):
request.session['sale_last_order_id'] = order.id
request.website.sale_get_order(update_pricelist=True, context=context)
+
+ extra_step = registry['ir.model.data'].xmlid_to_object(cr, uid, 'website_sale.extra_info_option', raise_if_not_found=True)
+ if extra_step.active:
+ return request.redirect("/shop/extra_info")
+
return request.redirect("/shop/payment")
+ #------------------------------------------------------
+ # Extra step
+ #------------------------------------------------------
+ @http.route(['/shop/extra_info'], type='http', auth="public", website=True)
+ def extra_info(self, **post):
+ cr, uid, context, registry = request.cr, request.uid, request.context, request.registry
+
+ # Check that this option is activated
+ extra_step = registry['ir.model.data'].xmlid_to_object(cr, uid, 'website_sale.extra_info_option', raise_if_not_found=True)
+ if not extra_step.active:
+ return request.redirect("/shop/payment")
+
+ # check that cart is valid
+ order = request.website.sale_get_order(context=context)
+ redirection = self.checkout_redirection(order)
+ if redirection:
+ return redirection
+
+ # if form posted
+ if 'post_values' in post:
+ values = {}
+ for field_name, field_value in post.items():
+ if field_name in request.registry['sale.order']._fields and field_name.startswith('x_'):
+ values[field_name] = field_value
+ if values:
+ order.write(values)
+ return request.redirect("/shop/payment")
+
+ values = {
+ 'website_sale_order': order
+ }
+
+ sale_order_obj = request.registry.get('sale.order')
+ values.update(sale_order_obj._get_website_data(cr, uid, order, context))
+
+ return request.website.render("website_sale.extra_info", values)
+
#------------------------------------------------------
# Payment
#------------------------------------------------------
diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 21576e24f37..00ac8389237 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -611,7 +611,7 @@
+
+
+
+
@@ -1020,7 +1087,7 @@