Skip to main content
  1. All Posts/

shoper-ts

eCommerce TypeScript

Shoper REST API TypeScript client

Installation

npm i shoper-ts

Example

import { Client, AuthMethod } from "shoper-ts";

const shoper_client = new Client({
  shop_url: "https://sklep9999999.shoparena.pl",
  auth: {
    method: AuthMethod.UserPassword,
    username: "user-with-api-access",
    password: "pass",
  },
});

// Get a single product
const single_product = await shoper_client.get("products", 123);

// Get all products
const all_products = await shoper_client.list("products");

// Update product
await shoper_client.update("products", 123, {
  translations: {
    "pl_PL": {
      name: "Foo Bar Deluxe"
    }
  }
});

// Insert product
await shoper_client.insert("products", {
  category_id: 1,
  translations: {
    "pl_PL": {
      name: "Foo Bar Deluxe",
      active: true
    }
  }
  // more fields go here...
});

// Lazily iterate products with stock level >= 10, sorted from latest to oldest
for await (const product of shoper_client.iterate("products", {
  sort: "edit_date desc",
  filters: {
    "stock.stock": {
      ">=": 10,
    },
  },
})) {
  console.log(product);
  if (some_condition) {
    break; // you can stop iterating at any time
  }
}

// Get categories tree
const categories_tree = await shoper_client.get("categories-tree");

Supported resources

This client supports all resources listed in Shoper REST API docs (at the time of writing). The API exposes some additional resources, but because they are undocumented, this client doesn’t support them.

Type checking

The client currently only checks if you are calling a valid resource/method. Only resource names are typed, otherwise everything you pass to or receive from is of any type.
See official REST API docs for examples and resource schemas.

Development

You can generate a fresh list of resources to be pasted into src/resources.ts using generate-resources.js script. Go to Shoper REST API docs, open your browser’s dev tools, inspect the ul element REST API -> Resources, and execute the script in the console.