Skip to main content

Products Catalog

The Products catalog provides tools for managing product catalogs, variants, and customer orders for retail and e-commerce.

Key resources

Resource (TypeScript)Resource (Python)Purpose
client.productsclient.productsCategories and products
client.productVariantsProduct variations (size, color)
client.productVariantAxesDefine variation axes
client.productOrdersclient.product_ordersCustomer orders

How it fits together

A category groups products; each product is priced by one or more variants, and each variant is described by axis values (Size, Color, Material). An order captures items — each line referencing a variant — plus pricing, shipping, and fulfillment.

Product catalog structureA category groups products. Each product is priced by variants, described by variant axes. An order captures items referencing variants. Stock status can be in_stock, low_stock, or out_of_stock.groupspriced byCategorygroupingProductthe itemVariantSKU · priceOrderitems · shippingVariant axesSize · Color · MaterialSTOCK STATUSin_stocklow_stockout_of_stock
  • A category groups products for display.
  • A product is an item; in the TypeScript SDK it requires at least one variant for pricing.
  • A variant is a variation of a product, described by axis values (for example Size: 'Large', Color: 'Black').
  • A variant axis defines the dimensions of variation (Size, Color, Material).
  • An order captures items (each referencing a variantId), pricing, shipping, and fulfillment.

How an order works

A customer browses the catalog, chooses a specific variant, and places an order — which then moves through the fulfillment lifecycle.

Product order flow and lifecycleFour steps: browse, choose variant, place order, confirm. Fulfillment lifecycle: pending, confirmed, preparing, ready, completed. Delivery adds out_for_delivery; returns set returned.Browsethe catalogChoose variantsize · colorPlace orderitems & shippingConfirm& fulfillORDER LIFECYCLEpendingconfirmedpreparingreadycompletedDelivery adds an out_for_delivery step; returns set the order to returned.

Why it matters

  • For the catalog — model a product once with variants and axes; the same data powers your web storefront and grounds the AI agent that answers product questions and takes orders.
  • For ordering — orders capture the exact variant, axis values, and price at order time, so records stay accurate even when the catalog changes.
  • For fulfillment — explicit stock status and a clear order lifecycle (with delivery and return branches) keep inventory, operations, and the customer aligned.

SDK parity matrix

The table below shows which operations the SDK example guides demonstrate for each language. Where a cell is , the guide does not include an example for that language.

AreaOperationsTypeScriptPython
Categoriescreate, get, list, update, delete, batch
Productscreate, get, list, update, delete, batch
Productsget by SKU
Variant axescreate, get, get by name, list, update, delete, batch
Product variantscreate, get, get by SKU, get default, update, delete, batch
Orderscreate, get
Ordersget by customer
Orderslist, update, update status, cancel, delete
note

A key shape difference between the guides: the TypeScript product create embeds a required variants array, while the Python product create sets stock_quantity / track_inventory on the product and does not pass variants. Each page below shows each SDK exactly as its guide does.

Status models

EnumValues
OrderStatuspending, confirmed, preparing, ready, out_for_delivery, completed, cancelled, returned
PaymentStatuspending, paid, partial, failed, refunded
VariantAxisTypeTEXT, SWATCH
Stock statusin_stock, low_stock, out_of_stock

Pages