An unofficial TypeScript client library for the XL Automaten API.
You can use this library to access the API in an easy and type-safe way.
Just install it with your favorite package manager:
yarn add xl-automaten-api
pnpm add xl-automaten-api
npm install xl-automaten-api
The package should work in the browser and Node.js versions 18 and up.
You need an API token for nearly all operations. You can get one by calling the login
function:
const { token } = await login({
email,
password,
})
console.log("Your token is", token)
The token is typically valid for 1 hour.
You can create a new pickup code that can be used to pick up an order:
const pickup = await createPickup({
pickup: {
code: "code-that-will-be-used-to-pickup-the-order",
valid_from: new Date(),
valid_until: new Date(Date.now() + 1000 * 60 * 60 * 24),
mastermoduleId: 99,
},
token: "your-token",
})
console.log(pickup)
To get information about an existing pickup, use the getPickup
function:
const pickup = await getPickup({
code: "code-of-an-existing-pickup",
token: "your-token",
})
console.log(pickup)
// With getPickup, you can also get the items included in the pickup:
console.log(pickup.items)
To delete an existing pickup, use the deletePickup
function:
const pickup = await createPickup({
pickup: {
code: "any-string-you-want",
valid_from: new Date(),
valid_until: new Date(Date.now() + 1000 * 60 * 60 * 24),
mastermoduleId: 99,
},
token: "your-token",
})
console.log(pickup)
You can also create articles (createArticle
) and add them to a pickup with createPickupItem
. This library also
includes functions for accessing machines
(e.g., createMachine
), mastermodules
(getMastermodules
), trays
,
positions
, categories
, and suppliers
. The source code includes comments with examples for these endpoints.
There is no public API documentation for the XL Automaten API. This package is based on reverse engineering the API and emailing the people from XL Automaten.
I am still figuring out how everything works, so the API is not yet stable. I will update the README once I have enough confidence in the correctness of this package.
Most endpoints are documented in TypeScript in the src/helpers/convert*.ts files.
This package uses the fetch
API, which is only supported in Node.js 18 and up. If you need to use an older version of
Node.js, you can use node-fetch
. It will be detected and used automatically if your node does not provide a native
fetch. The Options object supports passing a custom fetch function. You can also try to pass node-fetch
there.
To run the tests for this package, you need to have credentials for XL Automaten. Put these credentials into the
src/tests/login.ts
file. Now you can run yarn test
to run the tests.