Repository
OCA/sale-workflow · module folder · Try on Runboat
Module version
1.1.1
Category
Sales Management
Folder size
0.91 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/sale-workflow
Last tracking update
2026-08-07 09:06:23
Authors
Camptocamp, Akretion, Odoo Community Association (OCA), Sodexis
Maintainers
Camptocamp, Akretion, Odoo Community Association (OCA), Sodexis
Committers
JordiMForgeFlow, Aungkokolin1997, Weblate, OCA-git-bot, oca-ci, JasminSForgeFlow
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
sale_automatic_workflow_job
Description
Create workflows with more or less automatization and apply it on sales
orders.

A workflow can:

- Apply default values:
  - Shipping Policy (Deliver each product when available or Deliver all
    products at once)
  - Set the invoice's date to the sale order's date
  - Set a sales team
- Apply automatic actions:
  - Validate the order (only if paid, always, never)
  - Send order confirmation mail (only when order confirmed)
  - Create an invoice
  - Validate the invoice
  - Confirm the picking

This module is used by Magentoerpconnect and Prestashoperpconnect. It is
well suited for other E-Commerce connectors as well.

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
sale_order_view_form sale_automatic_workflow.sale_order.view_form sale.order form Inherits sale.view_order_form
sale_workflow_process_view_form sale.order.form.automatic.inherit sale.workflow.process form New
sale_workflow_process_view_tree sale_automic_workflow.sale_workflow_process.view_list sale.workflow.process list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (4)

New fields (1)
  • workflow_process_id Many2one → sale.workflow.process
    comodel_name='sale.workflow.process' copy=False string='Sale Workflow Process'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • run(self)
    @api.model
    Must be called from ir.cron
  • run_with_workflow(self, sale_workflow)
    @api.model

New fields (2)
  • all_qty_delivered Boolean
    compute='_compute_all_qty_delivered' store=True string='All quantities delivered'
  • workflow_process_id Many2one → sale.workflow.process
    comodel_name='sale.workflow.process' copy=False ondelete='restrict' string='Automatic Workflow'
Public methods (1)
  • write(self, vals)

New fields (23)
  • create_invoice Boolean
  • create_invoice_filter_domain Text
    related='create_invoice_filter_id.domain' string='Create Invoice Filter Domain'
  • create_invoice_filter_id Many2one → ir.filters
    default=<expr> string='Create Invoice Filter' args: 'ir.filters'
  • invoice_date_is_order_date Boolean
    help="When checked, the invoice date will be the same than the order's date" string='Force Invoice Date'
  • invoice_service_delivery Boolean
    help='If this box is checked, when the first invoice is created The service sale order lines will be included and will be marked as delivered' string='Invoice Service on delivery'
  • name Char
    required=True
  • order_filter_domain Text
    related='order_filter_id.domain' string='Order Filter Domain'
  • order_filter_id Many2one → ir.filters
    default=<expr> args: 'ir.filters'
  • payment_filter_domain Text
    related='payment_filter_id.domain'
  • payment_filter_id Many2one → ir.filters
    comodel_name='ir.filters' default=<expr> string='Register Payment Invoice Filter'
  • property_journal_id Many2one → account.journal
    comodel_name='account.journal' company_dependent=True domain="[('type', '=', 'sale')]" help='Set default journal to use on invoice' string='Sales Journal'
  • property_payment_journal_id Many2one → account.journal
    comodel_name='account.journal' company_dependent=True domain="[('type', 'in', ('bank', 'cash'))]" help='Set default journal to use on payment' string='Payment Journal'
  • register_payment Boolean
  • sale_done Boolean
  • sale_done_filter_domain Text
    related='sale_done_filter_id.domain' string='Sale Done Filter Domain'
  • sale_done_filter_id Many2one → ir.filters
    default=<expr> string='Sale Done Filter' args: 'ir.filters'
  • send_order_confirmation_mail Boolean
    help='When checked, after order confirmation, a confirmation email will be sent (if not already sent).'
  • team_id Many2one → crm.team
    comodel_name='crm.team' string='Sales Team'
  • validate_invoice Boolean
  • validate_invoice_filter_domain Text
    related='validate_invoice_filter_id.domain' string='Validate Invoice Filter Domain'
  • validate_invoice_filter_id Many2one → ir.filters
    default=<expr> string='Validate Invoice Filter' args: 'ir.filters'
  • validate_order Boolean
  • warning Text
    help='If set, displays the message when an userselects the process on a sale order' translate=True args: 'Warning Message'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…