Bug in the order API: "requires_shipping" is set to true for a product that's set to false

When a product variant is set to “requires_shipping”: false, one would assume that the order line_item associtated with that variant would honor the setting and set its “requires_shipping” attribute to false, but that is definitely not the case.

Here is an example

Product JSON snippet
{
  "product": {
   "variants": [
      {
        "id": 12345,
        "product_id": 6789,
        "title": "Default Title",
        "requires_shipping": false
      }
    ]
  }
}

Order Snippet including the ^ product as a line_item:

{
  "order": {
    "line_items": [
      {
        "id": 11111,
        "variant_id": 12345,
        "title": "Replacement Plan",
        "quantity": 1,
        "product_id": 6789,
        "requires_shipping": true,
        "name": "Replacement Plan"
      }
    ]
  }
}

Would appreciate it if this could be fixed as soon as possible.

Thanks.

Hey there,

I’m not able to replicate this behaviour when I create an order via the API.

Could you link me to an example product/order where you’re able to consistently replicate this?

I just noticed this problem as well. It seems like it started happening sometime in the last few months because I’m sure it used to work correctly.

The api docs say that “requires_shipping” is deprecated, but I can’t find when this happened, or what the alternative is.

I may have spoke too soon. It doesn’t look like this is happening to me after all. My point about the field being deprecated still stands, however.