API for pick status?

We were wondering if it was possible for API information to be pulled for an orders pick status. (Like whether it is in a tote or not) We are trying to setup a customer service chat bot and we are trying to make it possible for customers to cancel their orders but only if the pick status for that order is ‘not picked’. This will be very helpful ability to us, is this a possibility?

Hi @AmericanTall,
Welcome, Luca! We do not have the tote status for orders available through the Public API. I can put in a feature request for it, where the idea can be reviewed. Let me know if you would like me to do that or if there is another way you would like to approach this.

That would be perfect! I feel like this will be very beneficial, not only us but a lot of other companies as well. Thanks!

The is a request for this!

1 Like

Also curious, is it possible to put order on hold through API calls? Is this something that is a current feature request as well?

Yes, that you can do now. For instance, if you wanted to engage an operator hold …

mutation{
  order_update_holds(data:{
    order_id:"*Xorder id hereX*"
    operator_hold:true
  }){
    request_id
    complexity
    
  }
}

1 Like

Good news @AmericanTall ! Hi Luca, you can now see the tote information in the LineItem query

query{
order(id: "[order id here]") {
    request_id
    complexity
    data {
      id
      line_items {
        edges {
          node {
            id
            tote_picks {tote_id, current}
          }
        }
      }
    }
  }
}

Current should return a 1 or 0 to show if it is currently in a tote.

Is it possible to see what time an item was placed in tote or when an order was picked complete? we are trying to follow up on orders that are aging in tote and not shipped, but currently we know of no way to check without clicking into individual orders.

Hello @pbrw

There is no way to get returned all orders sitting in a tote automatically. This would require something built on your end.

You could use the Tote Complete Webhook to record all orders that are currently sitting in a tote. But you would need, for example, the Shipment Update Webhook or the Tote Cleared Webhook to remove those that were shipped or returned to the bin from your records.

Another thing you can do is query orders and check which line items are sitting in totes:

query{
  orders(fulfillment_status:"" order_date_from:""){
    request_id
    complexity
    data(first:10){
      edges{
        node{
          legacy_id
          order_number
          line_items(first:5){
            edges{
              node{
                sku
                quantity
                tote_picks{
                  created_at
                  tote_id
                  current
                  picked_quantity
                }
              }
            }
          }          
        }
      }      
    }
  }
}
  • I used fulfillment_status as a filter to leave out already fulfilled orders and order_date_from to leave out really old orders.
  • line_items.tote_picks.current will tell you if the line item is currently sitting in the tote. In this case, it will return a 1. If the order was shipped or the tote cleared, this value will be 0.

Please let me know if you have further questions.

Kind regards,
TomasFD

Hi Tomas. I cant find any documentation on the “line_item.tote_picks”. Are there any other fields available? If so, can you list all the available fields?

Hello @bbarrett!

You can find our full schema if you follow this link: Schema – Developer Resources | ShipHero. You can also navigate to it from our documentation using the righter most link in the top menu.

Once in it, you can search it using ctrl+f or navigate it using the left menu. Here is what you can see for TotePicks:

Have a great day!
TomasFD