[IMP] website_sale: improve policy of what is an abandoned cart

Now, an abandonned cart is:
    - a draft quotation
    - in a sales channel with type = website
    - with a customer set (not public user)
    - created more than one hour ago

- removed from_website filter in search view of website sale, added domain in view for display website side sale
- use proper filter for display 'Orders' and 'Orders to Invoice' in dashboard

this commit closes #17383 task-745391
This commit is contained in:
Rohan Patel
2017-06-20 10:00:12 +02:00
committed by Jeremy Kersten
parent 30783c7a43
commit 477666d3da
2 changed files with 9 additions and 10 deletions
@@ -88,6 +88,7 @@ class WebsiteSaleBackend(WebsiteBackend):
order_carts_abandoned_count=request.env['sale.order'].search_count(sale_order_domain + [
('state', '=', 'draft'),
('order_line', '!=', 'False'),
('partner_id', '!=', request.env.ref('base.public_partner').id),
('date_order', '<=', fields.Datetime.to_string(datetime.now() - timedelta(hours=1))),
]),
payment_to_capture_count=request.env['payment.transaction'].search_count([
+8 -10
View File
@@ -7,8 +7,6 @@
<field name="arch" type="xml">
<search>
<filter string="Confirmed Orders" name="order_confirmed" domain="[('state', 'in', ('sale', 'done'))]"/>
<separator/>
<filter string="From Website" name="from_website" domain="[('team_id.team_type', '=', 'website')]"/>
</search>
</field>
</record>
@@ -29,8 +27,8 @@
<field name="name">Orders</field>
<field name="res_model">sale.order</field>
<field name="view_mode">tree,form</field>
<field name="domain">[]</field>
<field name="context">{'show_sale': True, 'search_default_confirm_order': 1, 'search_default_from_website': 1}</field>
<field name="domain">[('team_id.team_type', '=', 'website')]</field>
<field name="context">{'show_sale': True, 'search_default_order_confirmed': 1}</field>
<field name="search_view_id" ref="view_sales_order_filter_ecommerce"/>
<field name="help">You don't have any confirmed order from the website.</field>
</record>
@@ -39,8 +37,8 @@
<field name="name">Unpaid Orders</field>
<field name="res_model">sale.order</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state', '=', 'sent')]</field>
<field name="context">{'show_sale': True, 'search_default_from_website': 1, 'create': False}</field>
<field name="domain">[('state', '=', 'sent'), ('team_id.team_type', '=', 'website')]</field>
<field name="context">{'show_sale': True, 'create': False}</field>
<field name="search_view_id" ref="view_sales_order_filter_ecommerce"/>
<field name="help">You don't have any unpaid order from the website.</field>
</record>
@@ -49,8 +47,8 @@
<field name="name">Abandoned Carts</field>
<field name="res_model">sale.order</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state', '=', 'draft'), ('order_line', '!=', False), ('date_order', '&lt;=', (context_today() - datetime.timedelta(hours=1)).strftime('%Y-%m-%d'))]</field>
<field name="context">{'show_sale': True, 'search_default_from_website': 1, 'create': False}</field>
<field name="domain">[('state', '=', 'draft'), ('order_line', '!=', False), ('partner_id','!=', context.get('public_partner_id')), ('team_id.team_type', '=', 'website'), ('date_order', '&lt;=', (datetime.datetime.utcnow() - datetime.timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S'))]</field>
<field name="context" eval="{'show_sale': True, 'create': False, 'public_partner_id': ref('base.public_partner')}"/>
<field name="search_view_id" ref="view_sales_order_filter_ecommerce"/>
<field name="help" type="xml">
<p>Find here all the abandoned carts, i.e. the carts generated by your website's visitors more than one hour ago and not confirmed.</p>
@@ -61,8 +59,8 @@
<field name="name">Orders To Invoice</field>
<field name="res_model">sale.order</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('state', 'in', ('sale', 'done')), ('invoice_status', '=', 'to invoice')]</field>
<field name="context">{'show_sale': True, 'search_default_from_website': 1}</field>
<field name="domain">[('state', 'in', ('sale', 'done')), ('invoice_status', '=', 'to invoice'), ('team_id.team_type', '=', 'website')]</field>
<field name="context">{'show_sale': True, 'search_default_order_confirmed': 1}</field>
<field name="search_view_id" ref="view_sales_order_filter_ecommerce"/>
<field name="help">You don't have any order from the website.</field>
</record>