This question has been flagged
2 Replies
12685 Views

I want to validate order before finalize sale through odoo website. If order is not validated based on some conditions I want to show a warning message. What is the approach to show the warning message on website? 
Note: Warning is not on address form validation but right before finalize sale.

Avatar
Discard
Best Answer
# Set Valid/invalid flag to show/hide warning
@http.route(['/shop/cart'], type='http', auth="public", website=True)
def cart(self, **post):
order = request.website.sale_get_order()

valid = True
if :
valid = False

values = {
'website_sale_order': order,
'compute_currency': compute_currency,
'suggested_products': [],
'valid':valid,
}
return request.render("website_sale.cart", values)
# fallback to "/shop/cart" if order not valid
@http.route(['/shop/checkout'], type='http', auth="public", website=True)
def checkout(self, **post):
order = request.website.sale_get_order()
if order.company_id.sale_freight_warning == 's' and len(set([line.product_id.has_frete for line in order.order_line if line.product_id])) > 1:
return request.redirect("/shop/cart")
else:
return super(CorreiosL10nBrWebsiteSale, self).checkout(**post)

<!-- Add warning on website cart page -->
<template id="payment" inherit_id="website_sale.cart">
<xpath expr="//h1" position="after">
<t t-if="not valid">
<div class="alert alert-danger">
<strong>Wraning!</strong>
You can't buy product with freight &amp; no freight together.
</div>
</t>
</xpath>
</template>
Avatar
Discard