Skip to main content

REST API: Stores (Warehouses)

How to list, retrieve, and manage stores and their inventories

Gustavo Vera avatar
Written by Gustavo Vera
Updated over 3 weeks ago

1. Store Management

This article explains how to manage stores (warehouses) in tSpoonLab — create, retrieve, update, and link components and locations.


1.1 REST API: Login

To make API calls, you must first authenticate via a login request.
The login returns a token, which must be included in every subsequent request.

Example (cURL)

[email protected] password=XXXXXXX  url=https://app.tspoonlab.com/recipes/api authenticate="username=$username&password=$password"  echo -n 'rememberme:' > rememberme.txt curl -v --data "$authenticate" "$url/login" >> rememberme.txt

Use the token in all following calls:

curl -X PUT -v -H "$(cat rememberme.txt)" "$url/integration/call"

1.2 Select a Cost Center / Restaurant

Most requests relate to a specific cost center (usually a restaurant).

To retrieve cost centers and their IDs, see:
REST API: Get a list of cost centers

Add the idOrderCenter value to your headers:

echo -n 'order:351583444167656299610202XXXXXXXXXXXX' >> rememberme.txt

Headers example

rememberme:aGVucnkudXBzYWxsLmRAZXXXXXXXXXXXXXXXXXX order:351583444167656299610202XXXXXXXXXXXX

1.3 Retrieve all Stores

Endpoint

GET https://app.tspoonlab.com/recipes/api/listStoresPaged

Query params

  • start (int, required) – first row index

  • rows (int, required) – number of rows to return

  • filter (string, optional) – text filter by name or code

Response

class StoreEntry {  String id;  String descr;  boolean defecte; }

Fields

  • id: store ID

  • descr: store name

  • defecte: true if it’s the default store


1.4 Retrieve a Store

Endpoint

GET https://app.tspoonlab.com/recipes/api/store/{idStore}/inventory/{idInventory}/components/num/{numComponents}

Parameters

  • idStore: store identifier

  • idInventory: inventory ID (null = last inventory)

  • numComponents: number of components to return

Response

class Store {  String id;  String descr;  String comment;  List<StoreComponent> listComponent; }  class StoreComponent {  String id;  String descr;  String idComponent;  String idUse;  String use;  String unit;  String idUnit;  Double quantityInventory;  Double quantityInput;  Double quantityOutput;  Double quantityDesviation; }

To retrieve more components:

GET https://app.tspoonlab.com/recipes/api/store/{idStore}/inventory/{idInventory}/components/paged

With params:

  • start, rows, filter (optional)

Returns a list of StoreComponent.


1.5 Create a Store

Endpoint

POST https://app.tspoonlab.com/recipes/api/store

Body

class NewStore {  String descr;              // Store name  String comment;            // Comment  boolean defaultReception;  // Default reception store  boolean defaultProduction; // Default production store  boolean defaultExpedition; // Default expedition store }

1.6 Delete a Store

Endpoint

DELETE https://app.tspoonlab.com/recipes/api/store/{idStore}

Deleting a store also removes all its inventories.


1.7 Add Components to a Store

Endpoint

PUT https://app.tspoonlab.com/recipes/api/store/{idStore}/components

Body

class NewStoreComponentsWrapper {  List<NewStoreComponent> components; }  class NewStoreComponent {  String id;          // null when adding new  String idComponent; // component ID  String idUse;       // cut or subproduct ID }

1.8 Remove a Component from a Store

Endpoint

DELETE https://app.tspoonlab.com/recipes/api/store/{idStore}/component/{idStoreComponent}

1.9 List Store Locations

Endpoint

GET https://app.tspoonlab.com/recipes/api/store/{idStore}/locations

Response

class StoreLocation {  String id;  String descr;  Integer countStoreComponents;  String comment; }

1.10 Create a Location

Endpoint

POST https://app.tspoonlab.com/recipes/api/store/{idStore}/location

Body

class NewStoreLocation {  String descr;  String comment; }

Response

class IdWrapper { String id; }

1.11 Delete a Location

Endpoint

DELETE https://app.tspoonlab.com/recipes/api/store/{idStore}/location/{idStoreLocation}

1.12 List Components in a Location

Endpoint

GET https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents

Response

class StoreLocationStoreComponent {  String id;  String descr;  String idComponent;  String idUse;  String use; }

1.13 Add Components to a Location

Endpoint

POST https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents/add

Body

class NewStoreLocationStoreComponentsWrapper {  List<NewStoreLocationStoreComponent> storeComponents; }  class NewStoreLocationStoreComponent {  String id;              // null when adding  String idStoreComponent; }

1.14 Remove Components from a Location

Endpoint

POST https://app.tspoonlab.com/recipes/api/storeLocation/{idStoreLocation}/storeComponents/delete

Body

class NewStoreLocationStoreComponentsWrapper {  List<NewStoreLocationStoreComponent> storeComponents; }  class NewStoreLocationStoreComponent {  String id;              // ID to delete  String idStoreComponent; }

1.15 Move Components between Stores

Endpoint

PUT https://app.tspoonlab.com/recipes/api/store/{idStore}/components/move/some/{idStoreDest}

Parameters

  • idStore: source store

  • idStoreDest: destination store

Body

class NewListIds {  List<String> listIds; // IDs of store components to move }

1.16 List All Inventories

Endpoint

GET https://app.tspoonlab.com/recipes/api/listInventoriesPaged

Query params

  • start, rows (int, required) – pagination

  • filter (string, optional)

  • year, month (int, optional) – filter by date

Response

class EntityBaseDate {  String id;           // Inventory ID  String descr;        // Store name  String idAux;        // Store ID  Integer year;  Integer month;  Date dateGenerated;  // Inventory date }

Results are sorted by dateGenerated (descending).


1.17 Get the Total Value of an Inventory

Endpoint

GET https://app.tspoonlab.com/recipes/api/inventory/{idInventory}/total

Response

class DoubleWrapper { Double value; } // inventory valuation

1.18 Retrieve Component Quantities in an Inventory

Endpoint

GET https://app.tspoonlab.com/recipes/api/inventory/{idInventory}/components/paged?start=0&rows=50

Query params

  • start, rows (required)

  • filter (optional)

Response

class StoreComponent {  String id;         // inventory line ID  String descr;      // product name  String idComponent;  Double quantity;   // counted quantity  Double cost;       // cost per count }

Notes

  • All endpoints require valid headers:

    • rememberme (token)

    • order (cost center ID)

  • Use HTTPS for all calls.

  • Deleting a store also removes its inventories and related records.

  • For performance, always use pagination when retrieving store components.

Did this answer your question?