How to fulfill a line item on an order with the python SDK?

Arian_Solberg
New Member
6 0 0

I'm trying to fulfill a line item on an order with the python API but I'm getting an error. I'm trying to do this:

xxxx is the line_item ID and yyyy is the order_id

line_items =[{"id": xxxx}]
new_fulfillment = shopify.Fulfillment()
new_fulfillment.order_id = "yyyy"
new_fulfillment.line_items = line_items
new_fulfillment.save()

 

However at this point I get an error

pyactiveresource.connection.ResourceNotFound: Not Found: https://postrgram.myshopify.com/admin/orders//fulfillments.json

 

It looks like the order_id is not getting into the endpoint URL correctly. What am I missing here?

Replies 2 (2)
Hammad_Khalid
Shopify Staff
21 0 1

Hi Arian, 

The following should work: 

order = shopify.Order.find(XXXXXX)
new_fulfillment = shopify.Fulfillment({'order_id': order.id, 'line_items': order.line_items})
new_fulfillment.save()

Note that you are passing in the line_items themselves, and not their IDs. 

Good luck!

Hammad 

Vinh
Excursionist
11 0 2

Update in 2021, location_id is mandatory for the fulfillment. This is my sample code to do it

order = shopify.Order.find(1234567890)
location = shopify.Location.find()[0]
new_fulfillment = shopify.Fulfillment({'order_id': order.id,
                                       'line_items': order.line_items,
                                       'location_id': location.id})
new_fulfillment.save()