- context = dict(context or {}, pricelist=request.registry['website'].ecommerce_get_pricelist_id(cr, uid, None, context=context))
-
- values = {
- 'int': int,
- 'suggested_products': prod_obj.browse(cr, uid, suggested_products, context),
- }
- return request.website.render("website_sale.mycart", values)
-
- @http.route(['/shop/add_cart'], type='http', auth="public", methods=['POST'], website=True, multilang=True)
- def add_cart(self, product_id, remove=None, **kw):
- request.registry['website']._ecommerce_add_product_to_cart(request.cr, request.uid,
- product_id=int(product_id),
- context=request.context)
- return request.redirect("/shop/mycart")
-
- @http.route(['/shop/change_cart/<int:order_line_id>'], type='http', auth="public", website=True, multilang=True)
- def add_cart_order_line(self, order_line_id=None, remove=None, **kw):
- request.registry['website']._ecommerce_add_product_to_cart(request.cr, request.uid,
- order_line_id=order_line_id, number=(remove and -1 or 1),
- context=request.context)
- return request.redirect("/shop/mycart")
-
- @http.route(['/shop/add_cart_json'], type='json', auth="public", website=True, multilang=True)
- def add_cart_json(self, product_id=None, order_line_id=None, remove=None):
- quantity = request.registry['website']._ecommerce_add_product_to_cart(request.cr, request.uid,
- product_id=product_id, order_line_id=order_line_id, number=(remove and -1 or 1),
- context=request.context)
- order = self.get_order()
- return [quantity,
- order.get_number_of_products(),
- order.amount_total,
- request.website._render("website_sale.total", {'website_sale_order': order})]
+ @http.route(['/shop/cart/update'], type='http', auth="public", methods=['POST'], website=True)
+ def cart_update(self, product_id, add_qty=1, set_qty=0, **kw):
+ cr, uid, context = request.cr, request.uid, request.context
+ request.website.sale_get_order(force_create=1)._cart_update(product_id=int(product_id), add_qty=float(add_qty), set_qty=float(set_qty))
+ return request.redirect("/shop/cart")
+
+ @http.route(['/shop/cart/update_json'], type='json', auth="public", methods=['POST'], website=True)
+ def cart_update_json(self, product_id, line_id, add_qty=None, set_qty=None, display=True):
+ order = request.website.sale_get_order(force_create=1)
+ value = order._cart_update(product_id=product_id, line_id=line_id, add_qty=add_qty, set_qty=set_qty)
+ if not display:
+ return None
+ value['cart_quantity'] = order.cart_quantity
+ value['website_sale.total'] = request.website._render("website_sale.total", {
+ 'website_sale_order': request.website.sale_get_order()
+ })
+ return value