Mark an order as fulfilled in Shopify

Based on data from another API, I’d like to update the fulfilment status of specific orders in Shopify (and more specifically change it from Unfulfilled to Fulfilled).
The Send to Shopify step doesn’t account for this situation.

Can someone confirm that the correct way to do this then is to use the Send to an API and create a Private App in Shopify, similar to what is described here Mark as paid orders from the excel sheet &/or here Add new products to shopify from CSV - #5 by Massimo_Coppola?

Hi @Sophie_Gallet,

That’s correct. To update the fulfillment statuses of your Shopify orders, use our “Send to an API” step. Here’s a video walkthrough on how to do that.

You can generate your API credentials by creating a new private app in your Shopify store. Once generated, copy your API key and password as your respective username and password in the authentication settings.

Here’s the base URL to make your request to:
POST /admin/api/2021-01/orders/{Order: Id}/fulfillments.json

This is the request I had in my body:

{
  "fulfillment": {
   "location_id": 40640774281,
    "tracking_urls": ["{Tracking URL}"],
    "line_items": [
      {
        "id": {Line Items: Id}
      }
     ],
    "notify_customer": false
  }
}

Let me know if you have additional questions or need help configuring this step.

Thanks!
Daniel

2 Likes

I really appreciate the fast and detailed answer, thank you Daniel!

1 Like

I am having the following error whenever I execute the Api call. Any ideas?

{
  "errors": {
    "base": [
      "Line items are already fulfilled"
    ]
  }
}

Hi @collinson,

This means that the line items in your order are already fulfilled and no further updates can be made. When making a request to the API, we’ll want to ensure we’re updating line items that have not been fulfilled.

To do this, try using a “Filter rows” step after importing your orders with line items. Set the filter to Keep rows where Line Items: Fulfillment Status is not equal to fulfilled.