Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.rmz.gg/llms.txt

Use this file to discover all available pages before exploring further.

The sdk.cart namespace manages the shopping cart. Cart operations work for both authenticated customers and guest visitors. The SDK automatically handles cart token management — tokens are extracted from API responses and sent with subsequent requests via the X-Cart-Token header.

Methods

cart.get()

Retrieve the current cart contents.
const cart = await sdk.cart.get();
console.log(cart.items);   // CartItem[]
console.log(cart.total);   // number
console.log(cart.currency); // string
Returns: Cart
interface Cart {
  items: CartItem[];
  count: number;
  subtotal: number;
  total: number;
  currency: string;
}

interface CartItem {
  id: number;
  product_id: number;
  product: Product;
  quantity: number;
  price: number;
  total: number;
}

cart.addItem(productId, quantity?, options?)

Add a product to the cart.
// Add 1 unit
const cart = await sdk.cart.addItem(productId);

// Add 2 units with custom fields
const cart = await sdk.cart.addItem(productId, 2, {
  fields: { color: 'red', size: 'L' },
  notice: 'Gift wrap please'
});
Parameters:
FieldTypeDefaultDescription
productIdnumberProduct ID to add
quantitynumber1Quantity to add
options.fieldsRecord<string, any>Custom product fields (variants, options)
options.noticestringSpecial instructions or notes
Returns: Cart

cart.updateItem(itemId, quantity)

Update the quantity of a cart item.
await sdk.cart.updateItem(itemId, 3);
Parameters:
FieldTypeDescription
itemIdstringCart item ID
quantitynumberNew quantity
Returns: Cart

cart.removeItem(itemId)

Remove an item from the cart.
await sdk.cart.removeItem(itemId);
Returns: Cart

cart.clear()

Remove all items from the cart and clear the stored cart token.
await sdk.cart.clear();
Returns: void

cart.getCount()

Get the number of items in the cart without fetching the full cart.
const count = await sdk.cart.getCount();
// 3
Returns: number

cart.applyCoupon(code)

Apply a discount coupon to the cart.
const cart = await sdk.cart.applyCoupon('DISCOUNT10');
Parameters:
FieldTypeDescription
codestringCoupon code
Returns: Cart
If the coupon is invalid or expired, the API returns an error. Wrap this call in a try/catch to display the error message to the customer.

cart.removeCoupon()

Remove the currently applied coupon.
const cart = await sdk.cart.removeCoupon();
Returns: Cart

cart.validate()

Check whether the current cart contents are valid for checkout (e.g., all items in stock, no conflicts).
const validation = await sdk.cart.validate();
if (!validation.valid) {
  console.error('Cart issues:', validation.errors);
}
Returns:
{ valid: boolean; errors?: string[] }

cart.getSummary()

Get the cart totals breakdown without fetching individual items.
const summary = await sdk.cart.getSummary();
// { subtotal: 100, tax: 15, shipping: 0, discount: 10, total: 105 }
Returns:
{
  subtotal: number;
  tax: number;
  shipping: number;
  discount: number;
  total: number;
}

Cart Token Management

The SDK manages cart tokens automatically, but you can also control them manually:
// Set a cart token (e.g., restored from localStorage)
sdk.setCartToken('cart_abc123');

// Read the current cart token
const token = sdk.getCartToken();

// Clear the cart token
sdk.setCartToken(null);
For guest users, persist the cart token in localStorage so the cart survives page reloads:
// After any cart operation
const token = sdk.getCartToken();
if (token) localStorage.setItem('rmz_cart_token', token);

// On app initialization
const saved = localStorage.getItem('rmz_cart_token');
if (saved) sdk.setCartToken(saved);

Example: Add to Cart Flow

try {
  const cart = await sdk.cart.addItem(product.id, quantity, {
    fields: selectedOptions,
  });

  // Cart token is automatically stored by the SDK
  console.log(`Cart now has ${cart.count} items, total: ${cart.total} ${cart.currency}`);
} catch (error) {
  // Handle errors (out of stock, invalid product, etc.)
  console.error('Failed to add item:', error.message);
}