Vendor ID in Purchase Orders not matching to Vendors

Hello -

When I query vendor ID from purchase orders, I have noticed that the ID provided doesn’t match any of the IDs provided when querying from vendors. Is there another table that I should be using instead?

Thanks,
rubix3

Hi @rubix3!
If you use the purchase_orders query, the field returned on vendor_id should look something like this:

"vendor_id": "VmVuZG0yOjE1MRU1Mg=="

And the reason for this is that we turn the ID’s to UUID, which makes them opaque and lot different than the ones you are used to getting from the REST API ( legacy_id ).

On the other hand, when you use the vendors query you should be able to see the info on every vendor, including the following:

“id”: “VmVuZG0yOjE1MRU1Mg==”,
“legacy_id”: 150511,
“name”: “Vendor Name”,

From where you could get the id and the legacy_id.

We plan on deprecating the legacy_ids someday, so we can make our API much more secure, but we still don’t have established a date for this.

I hope this helps clarify!
Thanks
Tom

Hello @tomasw -

Thank you for the prompt feedback! I am understanding the differences between legacy id and the new id field, which I am able to query from as in your example above. The dilemma that I am running into is that the id field returned for vendor ID in purchase orders does not match any values that are in vendors.

Here is an example ID (this vendor ID is repeated several times for purchase orders):

“data”: {
“purchase_orders”: {
“request_id”: “5e3970b22ec451a9a9187ac8”,
“data”: {
“edges”: [
{
“node”: {
“id”: “UHVyY2hhc2VPcmRlcjozNTY1MjM=”,
“legacy_id”: 356523,
“vendor_id”: “VmVuZG9yOjA=”
}
},

The results below are the list of IDs that are available when I query vendors, which does not include the result from above. They are all in a different format as well (longer character value and 2 equal signs).

My apologies if the response is a little long or if I am not understanding clearly. Please let me know your thoughts when you have a chance.

Thanks,
rubix3

shiphero_id
VmVuZG9yOjE1MTUxNg==
VmVuZG9yOjE1MTU4NQ==
VmVuZG9yOjE1MTUyMw==
VmVuZG9yOjE1MTU2OA==
VmVuZG9yOjE1MTU0Mg==
VmVuZG9yOjE1MTQ5NA==
VmVuZG9yOjE1MTUzNQ==
VmVuZG9yOjE2Njk5Nw==
VmVuZG9yOjE1MTUwMw==
VmVuZG9yOjE1MTU2Ng==
VmVuZG9yOjE1MTUyNQ==
VmVuZG9yOjE1MTU3NQ==
VmVuZG9yOjE1MTEwMQ==
VmVuZG9yOjE1MTU4Nw==
VmVuZG9yOjE2NTk4NA==
VmVuZG9yOjE1MTU1Mg==
VmVuZG9yOjE1MTUzOQ==
VmVuZG9yOjE1NzYwMA==
VmVuZG9yOjE1OTgxNw==
VmVuZG9yOjE2NzE2OQ==
VmVuZG9yOjE1MTEwMA==
VmVuZG9yOjE1MTU4MQ==
VmVuZG9yOjE1MTU2NA==
VmVuZG9yOjE1NzYwMw==
VmVuZG9yOjE1NzU5OQ==
VmVuZG9yOjE1MTUwNw==
VmVuZG9yOjE2NzUwNg==
VmVuZG9yOjE1MTUwNA==
VmVuZG9yOjE1MTUxNw==
VmVuZG9yOjE1MTU0MA==
VmVuZG9yOjE1MTUxNQ==
VmVuZG9yOjE1MTUzMQ==
VmVuZG9yOjE1MTUzNA==
VmVuZG9yOjE2Mjc3Nw==
VmVuZG9yOjE1MTU1MQ==
VmVuZG9yOjE2ODAwMg==
VmVuZG9yOjE1NzYwMQ==
VmVuZG9yOjE1MTUzMg==
VmVuZG9yOjE1MTUzMA==
VmVuZG9yOjE1MTUwOQ==
VmVuZG9yOjE1MTU2Mg==
VmVuZG9yOjE1MTU1OQ==
VmVuZG9yOjE1MTUyMA==
VmVuZG9yOjE1MTQ5Mw==
VmVuZG9yOjE1MTUyNg==
VmVuZG9yOjE2NDkzNQ==
VmVuZG9yOjE1MTU3Mw==
VmVuZG9yOjE1MTUxMA==
VmVuZG9yOjE1MTQ5OA==
VmVuZG9yOjE1MTQ5NQ==
VmVuZG9yOjE1MTUwMA==
VmVuZG9yOjE1MTQ5Ng==
VmVuZG9yOjE1MTU3NA==
VmVuZG9yOjE2NjA4OA==
VmVuZG9yOjE1MTUyNw==
VmVuZG9yOjE1MTUzMw==
VmVuZG9yOjE2Njk5NQ==
VmVuZG9yOjE1MTU2MA==
VmVuZG9yOjE1NjE5MA==
VmVuZG9yOjE1MTU4NA==
VmVuZG9yOjE1MTU0Nw==
VmVuZG9yOjE1NzU5MQ==
VmVuZG9yOjE1ODQ4NA==
VmVuZG9yOjE1MTUyOA==
VmVuZG9yOjE1MTU5Mg==
VmVuZG9yOjE1MTUyMQ==
VmVuZG9yOjE1MTUyNA==
VmVuZG9yOjE1MTU3OA==
VmVuZG9yOjE1MTEwMg==
VmVuZG9yOjE1NDQzNA==
VmVuZG9yOjE1MTU0MQ==
VmVuZG9yOjE1NzU5OA==
VmVuZG9yOjE1MTU1MA==
VmVuZG9yOjE1NjIwNw==
VmVuZG9yOjE1NzU5Mg==
VmVuZG9yOjE1MTU2MQ==
VmVuZG9yOjE1MTU4Mw==
VmVuZG9yOjE1MTU5NA==
VmVuZG9yOjE1MTU0NA==
VmVuZG9yOjE1MTU4Ng==
VmVuZG9yOjE2OTgzMQ==
VmVuZG9yOjE1MTU4Mg==
VmVuZG9yOjE1MTU2NQ==
VmVuZG9yOjE1MTYwMA==
VmVuZG9yOjE1MTUwMQ==
VmVuZG9yOjE2ODAwNQ==
VmVuZG9yOjE2OTgyNg==
VmVuZG9yOjE1MTU3Nw==
VmVuZG9yOjE1NzU5NA==
VmVuZG9yOjE1MTU4MA==
VmVuZG9yOjE1MTU5NQ==
VmVuZG9yOjE1MTU4OQ==
VmVuZG9yOjE1MjUwMw==
VmVuZG9yOjE1MTU1Ng==
VmVuZG9yOjE2ODAwNg==
VmVuZG9yOjE2ODAwMw==
VmVuZG9yOjE1MTUwNg==
VmVuZG9yOjE1MTUxMw==
VmVuZG9yOjE1NDc5NQ==
VmVuZG9yOjE1MTU1NQ==
VmVuZG9yOjE1MTU5Ng==
VmVuZG9yOjE1MTY1NQ==
VmVuZG9yOjE1MTUyMg==
VmVuZG9yOjE1MTU0OA==
VmVuZG9yOjE1MTU5MA==
VmVuZG9yOjE1MTY0OQ==
VmVuZG9yOjE1NDYwOA==
VmVuZG9yOjE2Njk5OA==
VmVuZG9yOjE1MTU5Mw==
VmVuZG9yOjE2NDkzNA==
VmVuZG9yOjE1NzU5Mw==
VmVuZG9yOjE1MTU3OQ==
VmVuZG9yOjE1MTExMg==
VmVuZG9yOjE1MTExNA==
VmVuZG9yOjE1MTU5Nw==
VmVuZG9yOjE1MTUyOQ==
VmVuZG9yOjE2NjA4Mw==
VmVuZG9yOjE1MTU0NQ==
VmVuZG9yOjE1NzU5MA==
VmVuZG9yOjE1MTQ5OQ==
VmVuZG9yOjE1MTU0OQ==
VmVuZG9yOjE1NDQzNQ==
VmVuZG9yOjE1NDQzNg==
VmVuZG9yOjE1MTUxMQ==
VmVuZG9yOjE1MTU0Mw==
VmVuZG9yOjE1MTU1NA==
VmVuZG9yOjE1MTU0Ng==
VmVuZG9yOjE2OTgyNQ==
VmVuZG9yOjE1MTU4OA==
VmVuZG9yOjE2OTg1OQ==
VmVuZG9yOjE1MTYwMw==

Hello @tomasw - Any update?

Hi @rubix3 !

I apologize for the delay in my response.

What I could find is that “vendor_id”: “VmVuZG9yOjA=” is equal to “vendor_id”: “0”, which usually happens in cases where the vendor is selected as ALL when creating the PO at https://app.shiphero.com/dashboard/purchase-orders/add or when there are multiple vendors in the PO.

How did you create those POs? was it through the UI or did you used a mutation?
Also, did you create them on the 3PL account or the 3PL’s Client account?

As a possible workaround is to get the vendor_id from the line_items section, as there might be line items from different vendors in that PO.

For example you could use a mutation like this:

query {
  purchase_order(id: "356523") {
    request_id
    complexity
    data {
      id
      legacy_id
      po_number
      account_id
      warehouse_id
      created_at
      po_date
      date_closed
      packing_note
      fulfillment_status
      line_items(first: 10) {
        edges {
          node {
            id
            legacy_id
            account_id
            warehouse_id
            vendor_id
            sku
            vendor_sku
            product_id
            quantity
            quantity_received
            quantity_rejected
          }
        }
      }
    }
  }
}

For which you’ll be able to see the vendor_id for each line item.

Please let me know if this doesn’t work for you, or if you have any insight on the questions above so I can look deeper into it.
Thanks again!
Tom

Hello @tomasw -

My apologies for the delay. This was setup by our client so I will have to investigate the issue and see if that was the case. I am able to see a vendor name when looking in their dashboard for each PO, in which currently I am just periodically extracting that data and joining it for reporting.

I will provide an update once I can get a better answer as to the way it was setup.

Thanks,
rubix3

1 Like