Stock Locations

Stock locations contain the inventory of the SKUs that are being sold. The stock location's address is the "from" address on the shipping labels.

The stock location object

A stock location object is returned as part of the response body of each successful create, list, retrieve or update API call. The following table contains the list of all its fields along with their type, description and example values.
Object fields:
name
string
The stock location's internal name.
Example:
Primary warehouse
label_format
string
The shipping label format for this stock location. Can be one of 'PDF', 'ZPL', 'EPL2' or 'PNG'
Example:
PDF
id
integer
Unique identifier for the resource.
Example:
1234
created_at
datetime
Time at which the resource was created.
Example:
2018-01-01T12:00:00.000Z
updated_at
datetime
Time at which the resource was last updated.
Example:
2018-01-01T12:00:00.000Z
reference
string
A string that you can use to add your own identifier to the resource. This can be useful for intergrating the resource to an external system, like an ERP, a marketing tool or a CRM.
Example:
ANYREFEFERNCE
metadata
object
Set of key-value pairs that you can attach to the resource. This can be useful for storing additional information about the resource in a structured format.
Example:
{"foo":"bar"}
relationship (N:1)
The stock location's phisical address, used as the shipping addresses "from" address.
relationship (1:N)
The associated stock levels.
relationship (1:N)
The items stocked in this location.

Create a stock location

To create a new stock location, send a POST request to the /api/stock_locations endpoint, passing the resource arguments in the request body. The following table contains the list of all the possible arguments, along with their type, description and examples values. All the arguments marked as required must be present in the request.
Arguments:
name
required
The stock location's internal name.
Example:
Primary warehouse
label_format
optional, default is 'PDF'
The shipping label format for this stock location. Can be one of 'PDF', 'ZPL', 'EPL2' or 'PNG'
Example:
PDF
reference
optional
A string that you can use to add your own identifier to the resource. This can be useful for intergrating the resource to an external system, like an ERP, a marketing tool or a CRM.
Example:
ANYREFEFERNCE
metadata
optional
Set of key-value pairs that you can attach to the resource. This can be useful for storing additional information about the resource in a structured format.
Example:
#
required
The stock location's phisical address, used as the shipping addresses "from" address.
Example request:
POST /api/stock_locations HTTP/1.1
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  "data": {
    "type": "stock_locations",
    "attributes": {
      "name": "Primary warehouse"
    },
    "relationships": {
      "address": {
        "data": {
          "type": "addresses",
          "id": "1234"
        }
      }
    }
  }
}
Example response: 201 Created
HTTP/1.1 201 Created
Content-Type: application/vnd.api+json

{
  "data": {
    "id": "1234",
    "type": "stock_locations",
    "links": {
      "self": "https://your-brand.commercelayer.io/api/stock_locations/1234"
    },
    "attributes": {
      "name": "Primary warehouse",
      "label_format": "PDF",
      "id": "1234",
      "created_at": "2018-01-01T12:00:00.000Z",
      "updated_at": "2018-01-01T12:00:00.000Z",
      "reference": "ANYREFEFERNCE",
      "metadata": {
        "foo": "bar"
      }
    },
    "relationships": {
      "address": {
        "links": {
          "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/address",
          "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/address"
        }
      },
      "stock_levels": {
        "links": {
          "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/stock_levels",
          "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/stock_levels"
        }
      },
      "stock_items": {
        "links": {
          "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/stock_items",
          "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/stock_items"
        }
      }
    },
    "meta": {
      "mode": "test"
    }
  }
}

List all stock locations

To fetch a collection of stock locations, send a GET request to the /api/stock_locations endpoint.

Example request:
GET /api/stock_locations HTTP/1.1
Accept: application/vnd.api+json
Example response: 200 OK
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
  "data": [
    {
      "id": "1234",
      "type": "stock_locations",
      "links": {
        "self": "https://your-brand.commercelayer.io/api/stock_locations/1234"
      },
      "attributes": {
        "name": "Primary warehouse",
        "label_format": "PDF",
        "id": "1234",
        "created_at": "2018-01-01T12:00:00.000Z",
        "updated_at": "2018-01-01T12:00:00.000Z",
        "reference": "ANYREFEFERNCE",
        "metadata": {
          "foo": "bar"
        }
      },
      "relationships": {
        "address": {
          "links": {
            "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/address",
            "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/address"
          }
        },
        "stock_levels": {
          "links": {
            "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/stock_levels",
            "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/stock_levels"
          }
        },
        "stock_items": {
          "links": {
            "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/stock_items",
            "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/stock_items"
          }
        }
      },
      "meta": {
        "mode": "test"
      }
    },
    {
      "other": "... 24 stock_locations (first page)"
    }
  ],
  "meta": {
    "record_count": 125,
    "page_count": 5
  },
  "links": {
    "first": "/api/stock_locations?page[number]=1&page[size]=25",
    "prev": "/api/stock_locations?page[number]=2&page[size]=25",
    "next": "/api/stock_locations?page[number]=4&page[size]=25",
    "last": "/api/stock_locations?page[number]=5&page[size]=25"
  }
}
Available filters
idreferenceidscreated_at_fromcreated_at_toupdated_at_fromupdated_at_to
Sortable attributes
idcreated_atupdated_atreference

Retrieve a stock location

To fetch a single stock location, send a GET request to the /api/stock_locations/{{id}} endpoint, where {{id}} is the id of the resource that you want to retrieve.
Example request:
GET /api/stock_locations/1234 HTTP/1.1
Accept: application/vnd.api+json
Example response: 200 OK
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
  "data": {
    "id": "1234",
    "type": "stock_locations",
    "links": {
      "self": "https://your-brand.commercelayer.io/api/stock_locations/1234"
    },
    "attributes": {
      "name": "Primary warehouse",
      "label_format": "PDF",
      "id": "1234",
      "created_at": "2018-01-01T12:00:00.000Z",
      "updated_at": "2018-01-01T12:00:00.000Z",
      "reference": "ANYREFEFERNCE",
      "metadata": {
        "foo": "bar"
      }
    },
    "relationships": {
      "address": {
        "links": {
          "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/address",
          "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/address"
        }
      },
      "stock_levels": {
        "links": {
          "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/stock_levels",
          "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/stock_levels"
        }
      },
      "stock_items": {
        "links": {
          "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/stock_items",
          "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/stock_items"
        }
      }
    },
    "meta": {
      "mode": "test"
    }
  }
}

Update a stock location

To update an existing stock location, send a PATCH request to the /api/stock_locations/{{id}} endpoint, where {{id}} is the id of the resource that you want to update. The following table contains the list of all the possible arguments that you can pass with the request body, along with their type, description and examples values. Please note that all arguments are optional.
Arguments:
name
optional
The stock location's internal name.
Example:
Primary warehouse
label_format
optional
The shipping label format for this stock location. Can be one of 'PDF', 'ZPL', 'EPL2' or 'PNG'
Example:
PDF
reference
optional
A string that you can use to add your own identifier to the resource. This can be useful for intergrating the resource to an external system, like an ERP, a marketing tool or a CRM.
Example:
ANYREFEFERNCE
metadata
optional
Set of key-value pairs that you can attach to the resource. This can be useful for storing additional information about the resource in a structured format.
Example:
#
optional
The stock location's phisical address, used as the shipping addresses "from" address.
Example request:
PATCH /api/stock_locations/1234 HTTP/1.1
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  "data": {
    "type": "stock_locations",
    "id": 1234,
    "attributes": {
      "name": "Primary warehouse"
    },
    "relationships": {
    }
  }
}
Example response: 200 OK
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
  "data": {
    "id": "1234",
    "type": "stock_locations",
    "links": {
      "self": "https://your-brand.commercelayer.io/api/stock_locations/1234"
    },
    "attributes": {
      "name": "Primary warehouse",
      "label_format": "PDF",
      "id": "1234",
      "created_at": "2018-01-01T12:00:00.000Z",
      "updated_at": "2018-01-01T12:00:00.000Z",
      "reference": "ANYREFEFERNCE",
      "metadata": {
        "foo": "bar"
      }
    },
    "relationships": {
      "address": {
        "links": {
          "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/address",
          "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/address"
        }
      },
      "stock_levels": {
        "links": {
          "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/stock_levels",
          "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/stock_levels"
        }
      },
      "stock_items": {
        "links": {
          "self": "https://your-brand.commercelayer.io/api/stock_locations/1234/relationships/stock_items",
          "related": "https://your-brand.commercelayer.io/api/stock_locations/1234/stock_items"
        }
      }
    },
    "meta": {
      "mode": "test"
    }
  }
}

Delete a stock location

To delete a stock location, send a DELETE request to the /api/stock_locations/{{id}} endpoint, where {{id}} is the id of the resource that you want to delete.
Example request:
DELETE /api/stock_locations/1234 HTTP/1.1
Accept: application/vnd.api+json
Example response: 204 No Content
HTTP/1.1 204 No Content

Get our machine-readable JSON schema that follows the OpenAPI Specification (formerly Swagger).

Get our Postman collection in one click and start making real calls to Commerce Layer API in minutes.

Get in touch with our support team if you have any questions or want to learn more about Commerce Layer.