When a WooCommerce order is placed and automatically/manually routed to a warehouse location using our integration, that assignment can be used with external integrations if needed when querying an order - due to our seamless integration with the WooCommerce REST API.
Once a location has been added in our integration, it will be assigned an ID. This is the ID that is used in the background when we assign/route an order to a specific location.
A location is assigned to an order on a per-line item basis - and this can be managed within the order in the WooCommerce Admin within each line item, like the example above.
Querying orders over REST API
wp-json/wc/v3/orders
When using the default WooCommerce REST API to query orders, we include a warehouse ID designation in two places in the existing/default WooCommerce API response for each order:
Full WooCommerce API Response Example: https://myworks.d.pr/oj2iqR
- Inside a top-level variable called warehouse:
"warehouse": "204",
Inside each line_item value, inside the meta_data variable, as the key _order_item_wh. (Helpful for line items split to different locations in a single order)
"line_items": [
{
"id": 31,
"name": "Blue T-Shirt",
"product_id": 43,
"variation_id": 0,
"quantity": 1,
"subtotal": "9.00",
"subtotal_tax": "0.72",
"total": "9.00",
"total_tax": "0.72",
"taxes": [
{
"id": 1,
"total": "0.72",
"subtotal": "0.72"
}
],
"meta_data": [
{
"id": 21643,
"key": "_order_item_wh",
"value": "204"
}
Querying orders over REST API - and filtering by warehouse
wp-json/wc/v3/orders?status=processing&warehouse=204
When using the default WooCommerce REST API to query orders, a filter by warehouse can also be added to only return orders assigned to a specific warehouse - per the example above.