TIP: You can type at any time to perform a new search.
Sale Dropshipping
sale_dropshipping · OCA/sale-workflow
Security findings
Migration considerations
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.osv` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Imports from the old `openerp.tools.translate` namespace: renamed to `odoo` since Odoo 10.0. migration-openerp-import · source
- Uses the old workflow engine (base.workflow / `trg_validate`): removed in Odoo 11.0, must be rewritten as state-field transitions. migration-workflow · source
ir_ui_view_purchase_to_sale— For a target of Odoo 17.0+: view 'ir_ui_view_purchase_to_sale' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · sourceprocurement_order— Class 'procurement_order' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourceprocurement_order— Class 'procurement_order' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceproduct_product— Class 'product_product' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourceproduct_product— Class 'product_product' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceproduct_supplierinfo— Class 'product_supplierinfo' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourceproduct_supplierinfo— Class 'product_supplierinfo' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourcepurchase_order— Class 'purchase_order' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourcepurchase_order— Class 'purchase_order' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourcepurchase_order— Class 'purchase_order' declares `_defaults` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourcepurchase_order_line— Class 'purchase_order_line' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourcepurchase_order_line— Class 'purchase_order_line' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourcesale_order— Class 'sale_order' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourcesale_order_line— Class 'sale_order_line' still inherits from the old-style `orm.Model` API: rewrite it against `models.Model`/`models.TransientModel`/`models.AbstractModel` - the old `osv`/`orm` API was removed entirely in modern Odoo. migration-old-api-base · sourcesale_order_line— Class 'sale_order_line' declares `_columns` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourcesale_order_line— Class 'sale_order_line' declares `_defaults` as a plain dict: old-style field/default declarations, replace with `fields.X(...)` class attributes and `default=`. migration-old-style-fields · sourceview_order_form_sale_flow— For a target of Odoo 17.0+: view 'view_order_form_sale_flow' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/sale-workflow · module folder · Try on Runboat
- Module version
- 1.1.1
- Category
- Generic Modules/Purchase
- Folder size
- 0.12 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/sale-workflow
- Last tracking update
- 2026-08-07 07:17:44
- Authors
- Akretion, Odoo Community Association (OCA)
- Maintainers
- Akretion, Odoo Community Association (OCA)
- Committers
- Pedro M. Baeza, Denis Roussel
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
Makes it better to deal with purchases with known sale schemes, specially the following case: 1) normal 2) direct delivery (also called drop shipping) 3) direct invoice 4) direct delivery and direct invoice See the attached diagram in images/purchase_to_sale.png to see the difference between those flows. In all those specific MTO (by opposition of MTS) cases, it will link the sale order line and the purchase order lines together. A good idea might be to use this module with the mrp_jit module if you want MTO flows to be automatically dealt with right at the sale order validation. You can also tell if product suppliers accept drop shipping or not. If they accept it and if sale order line has more products than the virtual quantity available, then it selects drop shipping by default. In the out going product list view, you can filter in or out drop shipping picking. TODO: eventually it might be interesting to do a chained move from supplier to internal location and from internal location to customer instead of supplier o customer directly. This would enable moves to properly generate accounting moves in the stock journal for better tracking.
Code Analysis
Views touched (6)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
ir_ui_view_purchase_to_sale |
ir_ui_view_purchase_to_sale | purchase.order | form | Inherits purchase.purchase_order_form |
ir_ui_view_purchase_to_sale_purchase |
ir_ui_view_purchase_to_sale_purchase | purchase.order | search | Inherits purchase.view_purchase_order_filter |
ir_ui_view_purchase_to_sale_stock |
ir_ui_view_purchase_to_sale_stock | stock.picking | search | Inherits stock.view_picking_out_search |
product_supplierinfo_form_view_partner_direct_delivery_form |
product.supplierinfo.form.direct_delivery.inherit | product.supplierinfo | form | Inherits product.product_supplierinfo_form_view |
product_supplierinfo_tree_view_partner_direct_delivery_tree |
product.supplierinfo.tree.direct_delivery.inherit | product.supplierinfo | tree | Inherits product.product_supplierinfo_tree_view |
view_order_form_sale_flow |
view_order_form_sale_flow | sale.order | form | Inherits sale.view_order_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (7)
New fields (0)
No new fields.
Public methods (1)-
create_procurement_purchase_order(self, cr, uid, procurement, po_vals, line_vals, context=None)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (2)-
action_picking_create(self, cr, uid, ids, context=None) -
sale_flow_change(self, cr, uid, ids, sale_flow, sale_id, warehouse_id, context=None)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (1)-
action_button_confirm(self, cr, uid, ids, context=None)
New fields (0)
No new fields.
Public methods (2)-
onchange_sale_flow(self, cr, uid, ids, sale_flow, product_id, context=None)Change type to make_to_order when sale_flow is direct_delivery -
product_id_change(self, cr, uid, ids, pricelist, product, qty=0, uom=False, qty_uos=0, uos=False, name='', partner_id=False, lang=False, update_tax=True, date_order=False, packaging=False, fiscal_position=False, flag=False, context=None)
Loading…
Loading…
Loading…