TypeScript/Node.js SDK (ESM) for the ePages Now REST API. Supports products, orders, and customers. Requires Node.js 22+.
This project is not affiliated with, endorsed by, or connected to ePages GmbH.
npm install epages-rest-nodeimport { EpagesClient } from "epages-rest-node";
const client = new EpagesClient({
host: "www.meinshop.de",
shop: "DemoShop",
token: "your-bearer-token",
// Optional: default locale and currency for products and orders (per-call params override these)
locale: "de_DE",
currency: "EUR",
});From the repo root after npm install and npm run build:
EPAGES_HOST=www.yourshop.de EPAGES_SHOP=YourShop EPAGES_TOKEN=your-token node examples/usage.mjsSee examples/usage.mjs for a full runnable script (products list/get, orders list, customers list, and low-level request("GET", "locales")).
// List products (with optional locale, currency, pagination, sort, filters)
const list = await client.products.list({
locale: "de_DE",
currency: "EUR",
page: 1,
resultsPerPage: 10,
sort: "name",
direction: "asc",
});
// Get single product
const product = await client.products.get("52F221E0-36F6-DC4E-384A-AC1504050C04", {
locale: "de_DE",
currency: "EUR",
});
// Create product
const created = await client.products.create(
{ productNumber: "SKU-001", name: "My Product", price: 9.99 },
{ locale: "de_DE", currency: "EUR" }
);
// Update product (JSON Patch)
await client.products.patch(
productId,
[{ op: "replace", path: "/name", value: "New Name" }],
{ locale: "de_DE", currency: "EUR" }
);
// Delete product
await client.products.delete(productId);// List orders
const orders = await client.orders.list({
locale: "de_DE",
page: 1,
resultsPerPage: 20,
paidOn: true,
});
// Get single order
const order = await client.orders.get(orderId, { locale: "de_DE" });// List customers
const customers = await client.customers.list({ page: 1, resultsPerPage: 20 });
// Get single customer
const customer = await client.customers.get(customerId);
// Create customer
const created = await client.customers.create({ email: "customer@example.com", ... });
// Update customer (JSON Patch)
await client.customers.patch(customerId, [
{ op: "replace", path: "/billingAddress", value: { ... } },
]);For endpoints not covered by the method-based API (e.g. carts, categories, locales):
const data = await client.request("GET", "locales");
const shop = await client.request("GET", "");ConfigurationError— missing or invalidhost,shop, ortoken.TooManyRequestsError— API returned 429 (rate limit exceeded).ApiError— other non-2xx response; hasstatusandbody.
This SDK was developed using the ePages developer documentation (source: epages-docs). A subset of the API reference (REST only, trimmed for SDK use) is included in this repo under docs/:
- REST API docs (
docs/rest/) — editorial content under CC BY 4.0. - RAML API definitions and schemas (
docs/raml/) — under MIT (per epages-docs: “all other content”).
This project is not affiliated with ePages GmbH.
MIT