Skip to main content

Installation

npm install @spree/sdk
# or
yarn add @spree/sdk
# or
pnpm add @spree/sdk

Quick Start

import { createClient } from '@spree/sdk';

// Initialize the client
const client = createClient({
  baseUrl: 'https://api.mystore.com',
  publishableKey: 'spree_pk_xxx',   // Store API
});

// Browse products (Store API)
const products = await client.products.list({
  limit: 10,
  expand: ['variants', 'images'],
});

// Get a single product
const product = await client.products.get('spree-tote');

// Authentication
const { token, user } = await client.auth.login({
  email: 'customer@example.com',
  password: 'password123',
});

// Create a cart and add items
const cart = await client.cart.create();
await client.orders.lineItems.create(cart.id, {
  variant_id: 'var_abc123',
  quantity: 2,
}, { orderToken: cart.token });

// Checkout flow
await client.orders.next(cart.id, { orderToken: cart.token });
await client.orders.complete(cart.id, { orderToken: cart.token });

Nested Resources

The SDK uses a resource builder pattern for nested resources:
Parent ResourceNested ResourceAvailable Methods
orderslineItemscreate, update, delete
orderspaymentslist, get, create
orderspaymentMethodslist
orderspaymentSessionscreate, get, update, complete
ordersshipmentslist, update
orderscouponCodesapply, remove
customeraddresseslist, get, create, update, delete, markAsDefault
customercreditCardslist, get, delete
customergiftCardslist, get
customerorderslist
customerpaymentSetupSessionscreate, get, complete
categoriesproductslist
wishlistsitemscreate, update, delete
// Nested resources follow the pattern: client.parent.nested.method(parentId, ...)
await client.orders.lineItems.create(orderId, params, options);
await client.orders.payments.list(orderId, options);
await client.orders.shipments.update(orderId, shipmentId, params, options);
await client.customer.addresses.list({}, options);
await client.categories.products.list(categoryId, params, options);
await client.wishlists.items.create(wishlistId, params, options);