This question has been flagged

Ive created some delivery methods which I want to assign to my sale order records. Manually this can be done by clicking on "Add Shipping" button from sale order create view. but How can I do this using ORM? I know I can create a sale record object using record = self.env['sale.order'].create({}). How can I assign a delivery method to it?

Avatar
Discard
Best Answer

if you have just one shipping method you can create Shipping method in data.xml folder with( noupdate="1") option and then you can use it in your create function like this

data.xml file :

<record id="record_in_xml_id" model="delivery.carrier">

            <field name="name"></field>

            <field name="type"></field>

            all necessary fields 

        </record>


in python file 

shipping_id = self.env.ref('module_name.record_in_xml_id')

sale_order_obj.create({

            all necessary fields 

    'shipping_id' : shipping_id.id
})

Avatar
Discard
Author

I don't want to create a shipping method manually. Odoo already has a shipping method and it can be added to the sale order using the 'Add Shipping' button. I want to do this process using odoo ORM and assign a shipping method to an existing sale order object. any ideas?

Best Answer

Hello, 

Maybe my answer to another question would help?

https://www.odoo.com/forum/help-1/odoov13-how-to-assign-a-delivery-carrier-object-to-a-sale-order-object-using-orm-179786#answer-180349

Wait, you are the same person... Never mind.

Thanks, 

Avatar
Discard