The second quarter has been even busier than Q1. We had to split our updates into 2.
This is what’s coming in this first part:
HOLD FILTERS IN ORDERS QUERY
We added the 4 types of hold as separate filters to the orders query. Now you can filter by or all of them. However, if you use more than one, these will work as AND, not as OR.
query {
orders (
fraud_hold: boolean
address_hold: boolean
payment_hold: boolean
operator_hold: boolean
) {
data {
edges {
node {
legacy_id
}
}
}
}
}
GENERATE LABEL WEBHOOK NOW HAS INSURANCE DATA
You will now receive 2 new fields in the payload:
"order_insurance": boolean,
"order_insurance_amount": float
PRODUCT PACKER NOTE FIELD IN PRODUCT/S QUERY
In Q1 we added the possibility to add a packer note at the product level. But we missed that field in the query. Now it’s here (It will also work in the product
query):
query{
products{
data{
edges{
node{
packer_note
}
}
}
}
}
SHIP DATE FIELD IN PURCHASE ORDER/S QUERY
We added the ship_date
field to the pruchase_order
and purchase_orders
queries:
query{
purchase_orders{
data{
edges{
node{
ship_date
}
}
}
}
}
DATE CLOSED FILTERS IN PURCHASE ORDERS QUERY
You can now filter purchase_orders
by the date they were set as closed:
query{
purchase_orders(date_closed_from:"" date_closed_to:""){
data{
edges{
node{
legacy_id
}
}
}
}
}
LOCATIONS EDGE IN THE EXPIRATION LOTS QUERY
expiration_lots
now lets you query which bins the lot is assigned to.
query {
expiration_lots{
data(first: 10) {
edges {
node {
name
locations(first: 10) {
edges {
node {
id
legacy_id
account_id
warehouse_id
type{
id
legacy_id
account_id
name
daily_storage_cost
}
name
zone
pickable
sellable
is_cart
pick_priority
dimensions{
weight
height
width
length
}
temperature
last_counted
created_at
}
}
}
}
}
}
}
}
PRODUCT CASES
We added query and update functionality to product cases. Creation is on its way!
- Works in
product
andproducts
queries
query{
product{
data{
cases{
id
legacy_id
case_barcode
case_quantity
}
}
}
}
- Update: You need to pass the affected SKU. The identifier for the case is the barcode, and what you can update is the quantity for that barcode.
mutation{
product_update(data:{
sku:"sku"
cases:[{
case_barcode:"half dozen"
case_quantity:6
},{
case_barcode:"dozen"
case_quantity:12
}]
}){
request_id
complexity
product{
created_at
}
}
}
PACKAGE NUMBER AND TOTAL PACKAGES IN SHIPMENT/S QUERY
As the title says, both fields can now be queried. The package number is inside the shipping label and reflects the same package number as the UI. The total_packages
field will only reflect valid labels (voided labels are not accounted for)
query{
shipments{
data{
edges{
node{
total_packages
shipping_labels{
package_number
}
}
}
}
}
}
PARCELVIEW URL IN SHIPMENT/S QUERY
The URL to the snapshot of the package is now available in the API running the following query:
query {
shipments {
data {
edges {
node {
shipping_labels {
parcelview_url
}
}
}
}
}
}
ACTIVE FIELD IN PRODUCT/S HAS BEEN DEPRECATED
The correct field to query for this information is:
query{
product{
data{
warehouse_products{
active
}
}
}
}
-
warehouse_products
can be queried insideproduct
,products
, or on its own.
RMA LABEL FIELDS MOVED/DEPRECATED
We moved all dimension fields to the dimension object and updated the type to string for consistency with the shipping labels. Cost was also updated to string type for consistency.
query{
return(id:""){
data{
labels{
cost
height (deprecated)
width (deprecated)
length (deprecated)
weight (deprecated)
dimensions{
height
width
length
weight
}
}
}
}
}
ACCOUNT ID IN INVENTORY CHANGES
The field shows the account_id
associated with the token making the call. This was ok for brands, but 3PLs saw their own account ID instead of the customer the SKU belongs to. This behavior has been corrected for 3PLs, and they will now see which customer account is affected by each change.
query{
inventory_changes{
data{
edges{
node{
account_id
}
}
}
}
}
INVENTORY TRANSFER
We added the inventory transfer mutation. This mutation will work as if you were doing a remove from one bin and addition to another.
mutation{
inventory_transfer(data:{
customer_account_id:"string" //(optional, for 3pl)
sku:"string"
warehouse_id:"string"
location_from_id:"string"
location_to_id:"string"
quantity:int
reason:"string"
}){
complexity
request_id
ok
}
}