diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py
index 41d1ebdb6accb3b6bd389d608c0c54491dfcbd24..a2a766b5136b72d0127aafd784f5e5a59cf347e4 100644
--- a/addons/website_sale/controllers/main.py
+++ b/addons/website_sale/controllers/main.py
@@ -210,6 +210,8 @@ class website_sale(http.Controller):
             context['pricelist'] = int(self.get_pricelist())
             product = request.registry.get('product.template').browse(request.cr, request.uid, int(product), context=context)
 
+        variants = [(p.id, map(int, p.attribute_value_ids), p.price) for p in product.product_variant_ids]
+
         values = {
             'search': search,
             'category': category,
@@ -220,6 +222,7 @@ class website_sale(http.Controller):
             'category_list': category_list,
             'main_object': product,
             'product': product,
+            'variants': variants,
         }
         return request.website.render("website_sale.product", values)
 
diff --git a/addons/website_sale/models/product.py b/addons/website_sale/models/product.py
index 93c9ae8036a23e2b610070f572d988103b9c5c03..17a0943fa384ad8c14b8883ee72adb8f3556e3d5 100644
--- a/addons/website_sale/models/product.py
+++ b/addons/website_sale/models/product.py
@@ -112,13 +112,6 @@ class product_template(osv.Model):
             res[product.id] = "/shop/product/%s" % (product.id,)
         return res
 
-    def _get_available_variant_ids(self, cr, uid, ids, name, arg, context=None):
-        result = dict.fromkeys(ids, [])
-        for obj in self.browse(cr, uid, ids, context=context):
-            for p in obj.product_variant_ids:
-                result[obj.id].append([p.id, map(int,p.attribute_value_ids), p.price])
-        return result
-
     _columns = {
         # TODO FIXME tde: when website_mail/mail_thread.py inheritance work -> this field won't be necessary
         'website_message_ids': fields.one2many(
@@ -137,7 +130,6 @@ class product_template(osv.Model):
         'website_style_ids': fields.many2many('product.style', string='Styles'),
         'website_sequence': fields.integer('Sequence', help="Determine the display order in the Website E-commerce"),
         'website_url': fields.function(_website_url, string="Website url", type="char"),
-        'available_variant_ids': fields.function(_get_available_variant_ids, string='Available Variants'),
         'public_categ_ids': fields.many2many('product.public.category', string='Public Category', help="Those categories are used to group similar products for e-commerce."),
     }
 
diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 256eab53d66dd58a2b4d68d48fdedfdb4f2683a6..8811f6c90f9cc4418029d432ba68e94d50fd3ff1 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -432,7 +432,7 @@
 
 <template id="product_variants" inherit_id="website_sale.product" optional="enabled" name="Product Variants">
   <xpath expr="//form[@action='/shop/cart/update']" position="replace">
-    <form action="/shop/cart/update" class="js_add_cart_variants" method="POST" t-att-data-attribute_value_ids="product.available_variant_ids">
+    <form action="/shop/cart/update" class="js_add_cart_variants" method="POST" t-att-data-attribute_value_ids="variants">
         <input type="hidden" name="product_id" t-att-value="int(product.product_variant_ids[0]) if len(product.product_variant_ids) == 1 else '0'"/>
         <ul class="nav nav-pills nav-stacked">
             <t t-foreach="product.attribute_line_ids" t-as="variant_id">