Why do some Shopify Rest API orders not have any client_details (ip address, user agent, etc)?

rw3iss
Shopify Partner
17 0 6
Hello,

We are building an app that utilizes the Shopify API to pull store orders from, and then correlate them with specific user information for clients that use our app's service. This includes matching the only identifying information that we have (ie. IP address) with other events we obtain from the store's frontend.

However, we notice that many of the Shopify orders we pull from the API do not contain any identifying user information, in the REST order's client_details property, ie. browser_ip or user_agent. For example:
client_details: {
    accept_language: null,
    browser_height: null,
    browser_ip: null,
    browser_width: null,
    session_hash: null,
    user_agent: null
}

Would you be able to tell us why these may be empty for some  of the orders coming from the API?
We also have webhooks enabled, and we receive the webhook call for a purchase, which passes the order data as well, and this data also usually does not contain the client information.

Are these special orders, or is the identifying information omitted for some reason?

We notice that some of the orders DO have client information, but in many cases (almost half or more sometimes), the orders are "empty", without client information. They only include the basic order details (billing, shipping, items, totals, etc).

Would anyone be able to tell us why the client information is missing in many of the orders?

Thank you for any help.
Reply 1 (1)

jkinson
Shopify Partner
3 0 0

These are probably Draft Orders. It makes sense because Draft Orders are created by the merchant (or an app). The client or browser details of the customer won't be available using this process.