Inventory locations
Warehouses and stocking locations. Address-shaped rather than code-shaped. Carries both cancel and inactive, which mean different things - a location can be active but temporarily not stocking. Read-only in this release; creating one has physical inventory consequences.
The object#
| Field | Type | Description |
|---|---|---|
| idread-only | integer | NolaPro id. |
| locationcode | string(20) | The code this resource is keyed by. Matching is case insensitive. |
| companyname | string(35) | Location name. |
| city | string(50) | City of the location address. |
| state | string(20) | State of the location address. |
| inactive | boolean | Temporarily not in use. Distinct from cancel. |
| cancel | boolean | True once cancelled. Cancelled rows stay referenced by history. |
| externalid | string(100) | Your own key for this inventory locations. Scoped to your company. |
| lastchangedateread-only | string | Last modification (lastchangedate). Drives modifiedsince. |
Endpoints#
GET/inventorylocations
200403
List inventory locations.
Requires scope items:read.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
| locationcode | query | string | Partial match, case insensitive. |
| cancel | query | string | Defaults to false. Pass true for cancelled only, or any. |
| modifiedsince | query | string | RFC 3339 UTC timestamp. Returns only records changed since then, including cancelled ones - so cancel defaults to any rather than false when this is used. The response carries _meta.synced_through; store it and send it back next time. |
| externalid | query | string | Exact match on your own key. Scoped to your company. |
| include | query | string | Comma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions. |
When it fails
| Status | Code | Meaning |
|---|---|---|
| 403 | insufficient_scope | Token lacks inventorylocations:read. |
curl \ 'https://acme.nolapro.com/!/api/v2/inventorylocations' \ -H 'Authorization: Bearer $NP_TOKEN'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/inventorylocations'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.get( "https://acme.nolapro.com/!/api/v2/inventorylocations", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/inventorylocations', { method: 'GET', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var res = await http.GetAsync( "https://acme.nolapro.com/!/api/v2/inventorylocations"); res.EnsureSuccessStatusCode();
GET/inventorylocations/{id}
200404
Retrieve one record.
Requires scope items:read.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
| idrequired | path | integer | The record id. |
| include | query | string | Comma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions. |
When it fails
| Status | Code | Meaning |
|---|---|---|
| 404 | not_found | No record with that id. |
curl \ 'https://acme.nolapro.com/!/api/v2/inventorylocations/104' \ -H 'Authorization: Bearer $NP_TOKEN'
$ch = curl_init('https://acme.nolapro.com/!/api/v2/inventorylocations/104'); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('NP_TOKEN')], CURLOPT_RETURNTRANSFER => true, ]); $res = json_decode(curl_exec($ch), true);
import os, requests r = requests.get( "https://acme.nolapro.com/!/api/v2/inventorylocations/104", headers={"Authorization": f"Bearer {os.environ['NP_TOKEN']}"}, ) r.raise_for_status()
const res = await fetch( 'https://acme.nolapro.com/!/api/v2/inventorylocations/104', { method: 'GET', headers: { Authorization: `Bearer ${process.env.NP_TOKEN}` }, } ); const data = await res.json();
using System.Net.Http.Json; var token = Environment.GetEnvironmentVariable("NP_TOKEN"); using var http = new HttpClient(); http.DefaultRequestHeaders.Add("Authorization", "Bearer " + token); var res = await http.GetAsync( "https://acme.nolapro.com/!/api/v2/inventorylocations/104"); res.EnsureSuccessStatusCode();
Response 200
{
"id": 1,
"locationcode": "MAIN",
"companyname": "Main Warehouse",
"city": "Fostoria",
"state": "OH",
"inactive": false,
"cancel": false
}
Unit names →
Units of measure - Each, M, Pound - used on items, invoice lines and order lines. This list is not company scoped.
unitname has no company column, so every company on the install shares one set of units and a change here is visible to all of them immediately.Price levels →
Customer price tiers.