Locations

Locations are specific places in your warehouses where you can place products. When you manage your locations consequently, it speeds up your operations.

You can manage your locations with these endpoints. You can use locations to link to products.

Containers

Containers are a type of locations. Both can contain stock and behave the same way. In the web interface they are shown in their own way, but in the API they are the same.

Locations of the type "location" can be nested, and you can choose your own name. Locations of the type "container" only have 1 dimension, have an incremental number as name and don't have a fixed location in the warehouse.

Attributes

Name Type Required Description
idlocation integer generated Unique Picqer reference
idwarehouse integer required Linked to resource Warehouse
type string optional "location" or "container"
idlocation_type* integer optional Linked to resource LocationType, will be linked to default value if empty
parent_idlocation* integer optional Linked to resource Location, for nested locations
name string required Name of location
remarks string optional Remarks for the location
unlink_on_empty* boolean optional If true, products will be unlinked from this location if their stock reaches 0 (default: false)
is_bulk_location* boolean optional If true, location will be used for bulk stock (default: false)

* These attributes are only returned when type is "location".

Get locations

By default, only locations with the type "location" are returned. Use the type filter to get containers.

GET https://example.picqer.com/api/v1/locations
HTTP/1.1 200 OK [ { "idlocation": 1, "idwarehouse": 13, "parent_idlocation": null, "type": "location", "name": "A", "remarks": null, "unlink_on_empty": false, "location_type": { "idlocation_type": 2, "name": "Standaard", "default": true, "color": "#0000f0" }, "is_bulk_location": false }, { "idlocation": 2, "idwarehouse": 13, "type": "container", "name": "Container 1", "remarks": null } ]
This endpoint uses pagination.

Filters

You can filter the locations with the following parameters. Add these filters as querystring parameters to the URL.

By default, only locations of type "location" are returned.

Attribute Description Example
type Return only locations of the "location" or "container" type (default: "location") container
idwarehouse Only get locations for this warehouse 13
name Search for a specific location name A.B.12 / Container 1
idlocation_type* Only get locations from this type 2
only_available* If true, only get locations that do not have any products linked yet true

* Not in use when "container" objects are requested.

Get single location

In case of type "location":

GET https://example.picqer.com/api/v1/locations/{idlocation}
HTTP/1.1 200 OK { "idlocation": 14, "idwarehouse": 13, "parent_idlocation": 13, "type": "location", "name": "A.05.12", "remarks": null, "unlink_on_empty": false, "location_type": { "idlocation_type": 2, "name": "Standaard", "default": true, "color": "#0000f0" } }

In case of type "container":

GET https://example.picqer.com/api/v1/locations/{idlocation}
HTTP/1.1 200 OK { "idlocation": 2, "idwarehouse": 13, "type": "container", "name": "Container 2", "remarks": null } }

Create new location

In case of type "location":

POST https://example.picqer.com/api/v1/locations
{ "name": "G.12.22", "idwarehouse": 13 }
HTTP/1.1 201 Created { "idlocation": 1511, "idwarehouse": 13, "parent_idlocation": null, "name": "G.12.22", "remarks": null, "unlink_on_empty": null, "location_type": { "idlocation_type": 2, "name": "Standaard", "default": true, "color": "#0000f0" } }

You can also create a location with the param auto_link_to_parent set to 1. This will look for a obvious parent in your naming, and link to the parent if it exists, or otherwise create the parent. So the endpoint is https://example.picqer.com/api/v1/locations?auto_link_to_parent=1

In case of type "container":

POST https://example.picqer.com/api/v1/locations
{ "idwarehouse": 13 "type": "container" }
HTTP/1.1 201 Created { "idlocation": 1511, "idwarehouse": 13, "type": "container", "name": "Container 3", "remarks": null }

Update location

PUT https://example.picqer.com/api/v1/locations/{idlocation}
{ "name": "A.33.33", "remarks": "Forward-pick location.", }
HTTP/1.1 200 OK { "idlocation": 1511, "idwarehouse": 13, "parent_idlocation": null, "name": "A.33.33", "remarks": "Forward-pick location.", "unlink_on_empty": null, "location_type": { "idlocation_type": 2, "name": "Standaard", "default": true, "color": "#0000f0" } }

Delete location

Location can only be deleted if there are no products linked.

DELETE https://example.picqer.com/api/v1/locations/{idlocation}
HTTP/1.1 204 No Content

Get products on location

This gives you the products (with or without stock) that are currently linked to this location.

GET https://example.picqer.com/api/v1/locations/{idlocation}/products
HTTP/1.1 200 OK [ { "idproduct": 1105339, "productcode": "AB519042", "name": "Mars Blue Wide-Format", "price": 506.89, "image_url": "https://example.org\/b18f\/thumbnail-100-100-0-0-50.jpg", "stock": { "idwarehouse": 13, "stock": 22, "reserved": 28, "reservedbackorders": 6, "reservedpicklists": 22, "reservedallocations": 0, "freestock": -6 }, } ]
This endpoint uses pagination.

If the location is a container we also show the "intent" for the product in the container. This is the location we suggest as a destination for a product in a container.

There is currently only 1 type of intent, namely "to_location".

GET https://example.picqer.com/api/v1/locations/{idlocation}/products
HTTP/1.1 200 OK [ { "idproduct": 1105339, "productcode": "AB519042", "name": "Mars Blue Wide-Format", "price": 506.89, "image_url": "https://example.org\/b18f\/thumbnail-100-100-0-0-50.jpg", "stock": { "idwarehouse": 13, "stock": 22, "reserved": 28, "reservedbackorders": 6, "reservedpicklists": 22, "reservedallocations": 0, "freestock": -6 }, "intent": { "type": "to_location", "idlocation": 1182 } } ]
This endpoint uses pagination.

Change the intent location for a product in a container

Intents can only be changed for products in a container.

PUT https://example.picqer.com/api/v1/locations/{idlocation}/products/{idproduct}/intent
{ "idlocation": 1184, }
HTTP/1.1 200 OK { "idlocation": 1184, }

Link products to locations

This is documented on the product endpoint page.

Read more Tags