Getting deprecated call header with simple order creation

Topic summary

Deprecated warning header appears when creating orders via the Admin REST API (orders.json) even with minimal payloads, across 2022-04 to 2023-04.

Key observations:

  • Using a customer object (customer.id) and line_items with quantity triggers X-Shopify-API-Deprecated-Reason. Orders are created correctly, but the header appears.
  • Using customer_id removes the header for some, but reportedly does not attach the customer to the order. Setting most line_item properties (e.g., quantity, fulfillment_status) triggers the header; only variant_id + price sometimes avoids it.

Shopify staff response:

  • The warning is expected because the REST response includes a deprecated LineItem.fulfillment_service field (per the linked changelog). It’s returned to all clients regardless of request payload.
  • No timeline to remove the warning. Suggested workaround: use the Admin GraphQL API to request only needed fields and avoid deprecated ones in responses.

Outstanding concerns:

  • Developer questions the usefulness of flagging deprecations based on response fields they can’t control and the resulting admin banner.
  • Reports that customer_id not setting the customer remain unaddressed.

Status: Ongoing; no fix yet for REST. GraphQL recommended as a mitigation.

Summarized with AI on January 26. AI used: gpt-5.

Hello @wriffle

To avoid this warning, you can update your request to use the “customer_id” property instead. The following is an example of a valid order creation request that does not generate a warning:

{
  "order": {
    "customer_id": CUSTOMER_ID_REDACTED,
    "line_items": [
      {
        "variant_id": VARIANT_ID_REDACTED,
        "quantity": 1
      }
    ]
  }
}

The shopify team is aware of it, and they must be working on a fix. In the meantime, you can avoid the warning by using the “customer_id” property instead of the “customer” property.