SummerClientStore · Inherits: RefCounted · Access: Summer.client.store
Browse the current Game store and request trusted checkout.
Lists immutable platform items and Sparks display prices through the trusted Player Host. Browsing requires the advertised player.store.read@1 capability and does not require joining a multiplayer session. Checkout additionally requires player.store.checkout@1. The application-owned Host displays the authoritative cart and handles approval. The Game cannot approve a purchase. A retained facade cannot follow a new authenticated binding after shutdown/reinitialization: acquire it again from the current client. Released facades expose no current checkout facts and refuse new operations.
Host capabilities named here: player.store.read@1, player.store.checkout@1
Properties
Methods
check_browse_readiness
player.store.read@1 prerequisites also used by list_items(). The SummerResult includes a code and diagnostic message. invalid_lifecycle requires initialization or rebinding after an identity change; unavailable describes a missing execution/Host capability or unavailable Host. Does not submit, activate a provider, reserve capacity or guarantee later success. Arguments, in-flight page limits and transport results remain the operation’s responsibility. C# exposes CheckBrowseReadiness().
Returns: SummerResult
check_checkout_readiness
player.store.checkout@1 grants and durable outcome event support used by request_checkout(). Readiness is independent of browsing and existing pending purchases. A known terminal outcome event-stream failure makes new checkout creation unavailable until the authenticated binding is restored. invalid_lifecycle requires initialization or rebinding after an identity change; unavailable describes missing prerequisites. The result includes a diagnostic message. No request, approval, acknowledgment or provider activation occurs. A successful check does not validate a cart, reserve capacity, approve a purchase or guarantee success. Recovery of existing outcomes continues independently of permission to create a new purchase. Every deliberate checkout call still creates a new identity: never retry an unknown purchase through another call. C# exposes CheckCheckoutReadiness().
Returns: SummerResult
has_pending_checkouts
get_pending_checkout_request_ids() is nonempty. Includes requests without a quote, canceled or dropped observation handles, and recovered pending or manual-review outcomes. Terminal outcomes and definite no-effect refusals are not pending. This queries existing retained facts without submitting, polling, retrying, or acknowledging anything. False describes this binding’s local knowledge, not a guarantee that durable recovery is complete.
For a checkout panel, connect checkout_status_changed synchronously, then render get_checkout_statuses() and query this method. Re-query after requesting checkout, on operation completion, and in each status callback instead of retaining another pending-ID or version map for rendering. Rendering should tolerate duplicate facts; side effects still require identity-based deduplication. Operation completion should display a creation failure only when no authoritative status exists and SummerCheckoutOperation.is_outcome_unknown() is false. Preserve canonical terminal status messages rather than overwriting them with a generic operation failure. Closing a panel disconnects observation and never cancels a purchase.
Returns: bool
list_items
limit items (1 to 100). Pass the previous operation’s SummerStoreItemsOperation.next_cursor to request another page. An empty cursor starts browsing. Completion is deferred; inspect the operation result before reading items. A second request while one is in flight fails with operation_in_progress. Cancellation discards the page and drains the old request before another may start. Game code supplies no Game ID, buyer identity, credentials, or prices.
Returns:
SummerStoreItemsOperation
Returns at once. Wait for the result with var result: SummerResult = await op.get_result_or_completed_signal(); see SummerOperation.
request_checkout
Returns:
SummerCheckoutOperation
Returns at once. Wait for the result with var result: SummerResult = await op.get_result_or_completed_signal(); see SummerOperation.
get_checkout_statuses
checkout_status_changed before inspecting retained state. Enumeration does not acknowledge delivery. Unobserved terminal outcomes remain durable in the Host/backend and locally retained; new requests are refused when the bounded retention capacity is full.
Returns: SummerCheckoutStatus[]
get_pending_checkout_request_ids
Signals
checkout_status_changed
What is live on the platform today: platform capability status. Check availability at runtime before you offer a feature.

