StateSet iCommerce Language Bindings
StateSet iCommerce ships language bindings so you can run the embedded engine in your stack without changing how your team builds. The Rust core is the source of truth; each binding wraps the same embedded accessors.Coverage
Bindings are not all at the same maturity. Pick with that in mind.Node and Python are the primary consumer surfaces and are held to a parity gate in CI. The
remaining bindings are generated from the same definitions but cover less of the surface.
Domain coverage
The Node and Python bindings reach the complete accessor surface, including domains that were previously core-only: Customer balances โ gift cards, loyalty (programs, accounts, points, rewards), store credits. Storefront โ product reviews (withgetSummary returning average, total, and per-star
distribution), wishlists (nested items with product, variant, quantity, priority, note),
customer segments (rules and memberships).
Commerce core โ customers with address books, products with variants and lifecycle
(activate/archive), and the full RMA return workflow: mark received, complete, cancel, add
tracking, and list by order, customer, or pending.
Finance and operations โ see Finance & Accounting
for the GL, AP, AR, fixed-asset, and revenue-recognition surface.
Infrastructure โ activity logs, channels, companies, units of measure, shipping zones,
stock snapshots, print stations, integration and field mappings, payment obligations,
purgatory, topology snapshots, vendor returns, fraud, search config, EDI documents,
prepayments, vendor credits, price schedules and levels, transfer orders, production batches,
supplier SKUs, inbound shipments, and ERC-8004 (identity, reputation, validation).
update_return is intentionally not exposed as a single tool โ its UpdateReturn input is
complex and unbound. The status-transition methods cover the practical paths.Money precision
The Rust core represents every monetary amount as an exact base-10 decimal (rust_decimal::Decimal). The engine, the HTTP DTOs, and the newer binding domains preserve
that: money crosses the FFI boundary as an exact decimal string such as "30.01".
"-10.00").