Localization & Currency
Pass locale and currency headers with any request. For full details, see the Localization reference.Error Handling
Custom Fetch
You can provide a custom fetch implementation:Monetary Amounts
All monetary values in the API are returned as strings (e.g.,"29.99", "0.0"), not numbers. This preserves decimal precision and avoids floating-point rounding issues.
Order, LineItem, Fulfillment, Payment, GiftCard, Price, etc.
TypeScript Support
The SDK includes full TypeScript support with generated types from the API serializers:Available Types
All types are exported as unprefixed names (e.g.,Product, Order). Legacy Store* prefixed aliases (e.g., StoreProduct) are still available for backward compatibility.
Core Types
Product- Product dataVariant- Variant dataCart- Cart data (usescart_prefixed IDs)Order- Completed order data (usesor_prefixed IDs)LineItem- Line item in cartCategory- CategoryCountry- Country with statesState- State/provinceAddress- Customer addressCustomer- Customer profileMarket- Market configuration (currency, locales, countries)
Commerce Types
Payment- Payment recordPaymentMethod- Payment methodPaymentSession- Provider-agnostic payment sessionFulfillment- Fulfillment recordDeliveryRate- Delivery rate optionDeliveryMethod- Delivery methodCreditCard- Saved credit cardGiftCard- Gift cardDiscount- Discount applied to a cart or order
Product Types
Media- Product media (images, videos)Price- Price dataOptionType- Option type (e.g., Size, Color)OptionValue- Option value (e.g., Small, Red)DigitalLink- Digital download linkMetafield- Custom metafield data
Wishlist Types
Wishlist- WishlistWishlistItem- Wishlist item
Client Types
Client- Main client interfaceStoreClient- Store API client classClientConfig- Client configurationRequestOptions- Per-request optionsRetryConfig- Retry behavior configuration
Utility Types
PaginatedResponse<T>- Paginated API responseListResponse<T>- List API responseAuthTokens- JWT tokens from loginAddressParams- Address input parametersUpdateCartParams- Cart update parametersCreatePaymentParams- Direct payment creation parametersCreatePaymentSessionParams- Payment session creation parametersUpdatePaymentSessionParams- Payment session update parametersCompletePaymentSessionParams- Payment session completion parametersProductFiltersResponse- Product filters responseCheckoutRequirement- Checkout requirement ({ step, field, message })
Extending Types
All generated SDK types are TypeScriptinterfaces, which means you can extend them via declaration merging when you customize API serializers on the backend.
Example: Adding a Brand to Products
If you’ve customized theProductSerializer in your app to include a brand_id attribute:
brand_id is available on every Product across your app — no type casting needed:
Extending Zod Schemas
If you use the SDK’s Zod schemas for runtime validation, extend them with.extend():
Declaration merging only affects TypeScript types (compile-time). Zod schemas perform runtime validation and must be extended separately if you need validation of custom fields.

