Skip to main content
This page covers three SDK namespaces: the server-side Management API, the Pages API, and the Components API.

Management API (Server-side Only)

The sdk.management namespace provides server-side operations for analytics, inventory management, order management, and data export. These methods require a secretKey in the SDK configuration.
Management methods must only be called from a server-side environment (Node.js, SSR, API routes). They will fail without a secretKey.
const sdk = createStorefrontSDK({
  publicKey: process.env.RMZ_PUBLIC_KEY!,
  secretKey: process.env.RMZ_SECRET_KEY!, // required for management
  apiUrl: 'https://front.rmz.gg/api',
});

management.getAnalytics(params?)

Retrieve store analytics data.
const analytics = await sdk.management.getAnalytics({
  start_date: '2024-01-01',
  end_date: '2024-12-31',
  metrics: ['sales', 'customers', 'revenue']
});
Parameters:
FieldTypeDescription
start_datestringStart date (YYYY-MM-DD)
end_datestringEnd date (YYYY-MM-DD)
metricsstring[]Metrics to include: sales, customers, revenue

management.updateInventory(data)

Update product inventory.
await sdk.management.updateInventory({
  product_id: 123,
  quantity: 50,
  operation: 'set' // 'set', 'add', or 'subtract'
});
Parameters:
FieldTypeDescription
product_idnumberProduct ID
quantitynumberQuantity value
operationstringOne of 'set', 'add', 'subtract'
Returns: { success: boolean }

management.getOrders(params?)

Get orders with server-side filters (more powerful than customer-facing order listing).
const { data: orders, pagination } = await sdk.management.getOrders({
  page: 1,
  per_page: 50,
  status: 'completed',
  date_from: '2024-01-01',
  date_to: '2024-12-31'
});
Parameters:
FieldTypeDescription
pagenumberPage number
per_pagenumberOrders per page
statusstringFilter by status
date_fromstringStart date filter
date_tostringEnd date filter
Returns: { data: Order[]; pagination?: Pagination }

management.exportCustomers(params?)

Export customer data.
const data = await sdk.management.exportCustomers({
  format: 'csv',
  date_from: '2024-01-01'
});
Parameters:
FieldTypeDescription
formatstringExport format: 'csv' or 'json'
date_fromstringFilter customers created after this date
date_tostringFilter customers created before this date

management.getWebhookData(params?)

Retrieve webhook event data.
const events = await sdk.management.getWebhookData({
  type: 'order_created',
  limit: 100
});

Pages API

The sdk.pages namespace retrieves static pages configured in the store (e.g., About Us, Terms, Privacy Policy).

pages.getAll()

Get all published pages.
const pages = await sdk.pages.getAll();
Returns: Page[]

pages.getByUrl(url)

Get a specific page by its URL slug.
const page = await sdk.pages.getByUrl('about-us');
console.log(page.title);
console.log(page.content); // HTML content
Returns: Page
interface Page {
  id: number;
  title: string;
  url: string;
  content: string;
  meta_title?: string;
  meta_description?: string;
  is_active: boolean;
}

Components API

The sdk.components namespace retrieves homepage components configured by the store owner (featured sections, promotional blocks, etc.).

components.getAll()

Get all homepage components.
const components = await sdk.components.getAll();

components.getById(id)

Get a specific component by ID.
const component = await sdk.components.getById(5);

components.getProducts(id, params?)

Get the products associated with a component.
const { data: products, pagination } = await sdk.components.getProducts(5, {
  page: 1,
  per_page: 12
});

Example: Server-side Analytics Dashboard

// In a Next.js API route or server action
import { createStorefrontSDK } from 'rmz-storefront-sdk';

const sdk = createStorefrontSDK({
  publicKey: process.env.RMZ_PUBLIC_KEY!,
  secretKey: process.env.RMZ_SECRET_KEY!,
});

export async function GET() {
  const [analytics, orders] = await Promise.all([
    sdk.management.getAnalytics({
      start_date: '2024-01-01',
      end_date: '2024-12-31',
      metrics: ['sales', 'revenue'],
    }),
    sdk.management.getOrders({ per_page: 10, status: 'completed' }),
  ]);

  return Response.json({ analytics, recentOrders: orders.data });
}