# Thor Commerce > Public documentation for building storefronts, Admin integrations, and embedded apps with Thor Commerce. ## Read this first This is an index, not a full API schema. The guide links below return plain Markdown; each also links to its rendered web page. Start with the concept for behavior and the task guide for implementation. Use the selected API reference for exact fields, inputs, enum values, permissions, and error types. Do not infer Storefront capabilities from Admin types or invent resource IDs. Project endpoints, credentials, and resource IDs must belong to the same environment. Keep Admin credentials, app client secrets, and customer tokens on the server. Use money in its returned currency and minor-unit representation. Inspect transport, GraphQL, and payload errors; reconcile uncertain writes before retrying. Use test data and obtain authorization before changing live commerce data. A valid schema example does not establish a successful business operation in a configured project. ## API reference - [Admin API](https://docs.thorcommerce.io/api/admin-graphql): Trusted management operations and embedded-app commerce data. - [Storefront API](https://docs.thorcommerce.io/api/storefront-graphql): Buyer-facing catalog, customer, cart, and checkout operations. ## Get started - [Get started with Thor](https://docs.thorcommerce.io/markdown/getting-started): Choose a practical path from commerce configuration to a working storefront, integration, or app. [Web page](https://docs.thorcommerce.io/getting-started) - [Make your first Admin API request](https://docs.thorcommerce.io/markdown/getting-started/admin-quickstart): Read products and create a draft product using a trusted Admin connection. [Web page](https://docs.thorcommerce.io/getting-started/admin-quickstart) - [Connect to a project](https://docs.thorcommerce.io/markdown/getting-started/connect): Configure the endpoint and credential boundary before sending commerce requests. [Web page](https://docs.thorcommerce.io/getting-started/connect) - [From product to first order](https://docs.thorcommerce.io/markdown/getting-started/first-order): Connect existing catalog setup to a cart, test checkout, and a verified Admin order. [Web page](https://docs.thorcommerce.io/getting-started/first-order) - [How Thor fits together](https://docs.thorcommerce.io/markdown/getting-started/platform): Understand what Thor manages, what your application owns, and how one catalog serves different buying experiences. [Web page](https://docs.thorcommerce.io/getting-started/platform) - [Make your first Storefront API request](https://docs.thorcommerce.io/markdown/getting-started/storefront-quickstart): Read a prepared catalog and create a cart with matching store and price context. [Web page](https://docs.thorcommerce.io/getting-started/storefront-quickstart) ## Commerce concepts - [Commerce concepts](https://docs.thorcommerce.io/markdown/concepts): Find the Thor behavior and modeling decisions behind each implementation guide. [Web page](https://docs.thorcommerce.io/concepts) - [Authentication and project routing](https://docs.thorcommerce.io/markdown/concepts/api/authentication): Keep project access, Admin permissions, and customer identity separate. [Web page](https://docs.thorcommerce.io/concepts/api/authentication) - [Cart predicate language](https://docs.thorcommerce.io/markdown/concepts/cart-predicate-language): Write cart eligibility and line-target conditions with the correct fields and null handling. [Web page](https://docs.thorcommerce.io/concepts/cart-predicate-language) - [Attributes and attribute values](https://docs.thorcommerce.io/markdown/concepts/catalog/attributes): Use reusable attributes for variant options and consistent catalog filtering. [Web page](https://docs.thorcommerce.io/concepts/catalog/attributes) - [Categories](https://docs.thorcommerce.io/markdown/concepts/catalog/categories): Use category trees for durable storefront navigation. [Web page](https://docs.thorcommerce.io/concepts/catalog/categories) - [Collections](https://docs.thorcommerce.io/markdown/concepts/catalog/collections): Curate product groups without changing the category hierarchy. [Web page](https://docs.thorcommerce.io/concepts/catalog/collections) - [Product media](https://docs.thorcommerce.io/markdown/concepts/catalog/media): Manage variant images separately from their presentation in a storefront. [Web page](https://docs.thorcommerce.io/concepts/catalog/media) - [Products and variants](https://docs.thorcommerce.io/markdown/concepts/catalog/products-and-variants): Choose product and variant boundaries that keep content, purchasing, and fulfillment consistent. [Web page](https://docs.thorcommerce.io/concepts/catalog/products-and-variants) - [Catalog visibility](https://docs.thorcommerce.io/markdown/concepts/catalog/publication): Diagnose product visibility, contextual prices, and purchase availability in the right order. [Web page](https://docs.thorcommerce.io/concepts/catalog/publication) - [Cart calculation and totals](https://docs.thorcommerce.io/markdown/concepts/checkout/calculation): Use authoritative cart amounts when prices, discounts, shipping, and tax change. [Web page](https://docs.thorcommerce.io/concepts/checkout/calculation) - [Carts and line items](https://docs.thorcommerce.io/markdown/concepts/checkout/carts): Understand cart identity, line identity, context, and the transition to an order. [Web page](https://docs.thorcommerce.io/concepts/checkout/carts) - [Checkout and order placement](https://docs.thorcommerce.io/markdown/concepts/checkout/order-placement): Understand the order result and recover from an uncertain completion response. [Web page](https://docs.thorcommerce.io/concepts/checkout/order-placement) - [Payments and transactions](https://docs.thorcommerce.io/markdown/concepts/checkout/payments): Separate gateway configuration, checkout sessions, payment records, and financial actions. [Web page](https://docs.thorcommerce.io/concepts/checkout/payments) - [Shipping options](https://docs.thorcommerce.io/markdown/concepts/checkout/shipping): Model delivery coverage and rates, then offer only the options returned for the cart. [Web page](https://docs.thorcommerce.io/concepts/checkout/shipping) - [Metafields and metadata](https://docs.thorcommerce.io/markdown/concepts/custom-data/metafields): Choose typed custom fields or integration bookkeeping without duplicating native commerce data. [Web page](https://docs.thorcommerce.io/concepts/custom-data/metafields) - [Customers and customer groups](https://docs.thorcommerce.io/markdown/concepts/customers/customer-model): Separate customer profiles, sign-in, and commercial group membership. [Web page](https://docs.thorcommerce.io/concepts/customers/customer-model) - [Discounts](https://docs.thorcommerce.io/markdown/concepts/discounts): Choose catalog sale prices or cart promotions, then follow the appropriate configuration guide. [Web page](https://docs.thorcommerce.io/concepts/discounts) - [Cart discounts and targets](https://docs.thorcommerce.io/markdown/concepts/discounts/cart-discounts): Separate which carts qualify from which amounts receive the reduction. [Web page](https://docs.thorcommerce.io/concepts/discounts/cart-discounts) - [Discount codes, groups, and combination](https://docs.thorcommerce.io/markdown/concepts/discounts/codes-and-combination): Connect codes to promotions and make overlapping offers predictable. [Web page](https://docs.thorcommerce.io/concepts/discounts/codes-and-combination) - [Product discounts](https://docs.thorcommerce.io/markdown/concepts/discounts/product-discounts): Target eligible variant price records for catalog-level sale pricing. [Web page](https://docs.thorcommerce.io/concepts/discounts/product-discounts) - [GraphQL basics](https://docs.thorcommerce.io/markdown/concepts/graphql-basics): Use named operations, variables, fragments, nullability, and typed results in Thor clients. [Web page](https://docs.thorcommerce.io/concepts/graphql-basics) - [Allocation and inventory lifecycle](https://docs.thorcommerce.io/markdown/concepts/inventory/allocation): Understand the relationship between carts, order allocations, and fulfillment. [Web page](https://docs.thorcommerce.io/concepts/inventory/allocation) - [Stock and availability](https://docs.thorcommerce.io/markdown/concepts/inventory/availability): Distinguish recorded inventory from whether a buyer can purchase a variant. [Web page](https://docs.thorcommerce.io/concepts/inventory/availability) - [Locales and translations](https://docs.thorcommerce.io/markdown/concepts/localization/translations): Localize catalog content while keeping product identity and market pricing independent. [Web page](https://docs.thorcommerce.io/concepts/localization/translations) - [Stores and channels](https://docs.thorcommerce.io/markdown/concepts/markets/stores-and-channels): Separate selling context, publication, prices, and stock without duplicating products. [Web page](https://docs.thorcommerce.io/concepts/markets/stores-and-channels) - [Errors and retries](https://docs.thorcommerce.io/markdown/concepts/operations/errors-and-retries): Classify failures and reconcile uncertain writes before deciding whether to retry. [Web page](https://docs.thorcommerce.io/concepts/operations/errors-and-retries) - [Draft orders](https://docs.thorcommerce.io/markdown/concepts/orders/draft-orders): Use editable administrator-assisted purchases for quotes and operational sales. [Web page](https://docs.thorcommerce.io/concepts/orders/draft-orders) - [Fulfillments](https://docs.thorcommerce.io/markdown/concepts/orders/fulfillments): Record partial shipments with order-line quantities, tracking, and shipment status. [Web page](https://docs.thorcommerce.io/concepts/orders/fulfillments) - [Orders and order lifecycle](https://docs.thorcommerce.io/markdown/concepts/orders/orders): Use separate order, payment, and shipment states to operate purchases correctly. [Web page](https://docs.thorcommerce.io/concepts/orders/orders) - [Pagination](https://docs.thorcommerce.io/markdown/concepts/pagination): Read cursor connections without mixing filters, ordering, or storefront contexts. [Web page](https://docs.thorcommerce.io/concepts/pagination) - [Predicate language](https://docs.thorcommerce.io/markdown/concepts/predicate-language): Write boolean eligibility rules in the correct cart, line-item, or product-price context. [Web page](https://docs.thorcommerce.io/concepts/predicate-language) - [Money and rounding](https://docs.thorcommerce.io/markdown/concepts/pricing/money): Format currency amounts without assuming every currency has two decimal places. [Web page](https://docs.thorcommerce.io/concepts/pricing/money) - [Prices and price selection](https://docs.thorcommerce.io/markdown/concepts/pricing/prices): Model market and customer prices and use the selected amount throughout the buying experience. [Web page](https://docs.thorcommerce.io/concepts/pricing/prices) - [Taxes](https://docs.thorcommerce.io/markdown/concepts/pricing/tax): Understand inclusive and exclusive amounts and the context needed for calculated tax. [Web page](https://docs.thorcommerce.io/concepts/pricing/tax) - [Product predicate language](https://docs.thorcommerce.io/markdown/concepts/product-predicate-language): Target variant price records with supported product-discount fields. [Web page](https://docs.thorcommerce.io/concepts/product-predicate-language) - [Search query language](https://docs.thorcommerce.io/markdown/concepts/query-language): Compose resource search expressions and use each operation as the source of supported filters. [Web page](https://docs.thorcommerce.io/concepts/query-language) - [Storefront request context](https://docs.thorcommerce.io/markdown/concepts/storefront/request-context): Keep market, identity, and cache context consistent from catalog discovery to checkout. [Web page](https://docs.thorcommerce.io/concepts/storefront/request-context) - [Typed IDs](https://docs.thorcommerce.io/markdown/concepts/typed-ids): Keep Thor resource identities opaque and distinguish IDs used by dependent operations. [Web page](https://docs.thorcommerce.io/concepts/typed-ids) ## Implementation guides - [Developer guides](https://docs.thorcommerce.io/markdown/guides): Choose a verified Thor workflow for catalog setup, storefronts, apps, or operations. [Web page](https://docs.thorcommerce.io/guides) - [Build with an AI agent](https://docs.thorcommerce.io/markdown/guides/ai-agents): Give a coding agent a bounded Thor task, readable sources, and concrete verification criteria. [Web page](https://docs.thorcommerce.io/guides/ai-agents) - [App authentication and sessions](https://docs.thorcommerce.io/markdown/guides/apps/authentication): Authenticate protected handlers once and preserve durable sessions, boundaries, and verified webhook handling. [Web page](https://docs.thorcommerce.io/guides/apps/authentication) - [Build an embedded app](https://docs.thorcommerce.io/markdown/guides/apps/getting-started): Start from the React Router app template and build a protected dashboard feature. [Web page](https://docs.thorcommerce.io/guides/apps/getting-started) - [Add a protected app page](https://docs.thorcommerce.io/markdown/guides/apps/protected-page): Create a React Router loader that authenticates, queries Admin, and handles failed product reads. [Web page](https://docs.thorcommerce.io/guides/apps/protected-page) - [Configure prices, inventory, and tax](https://docs.thorcommerce.io/markdown/guides/catalog/configure-commerce): Add a contextual variant price and stock entry, then verify the cart amount. [Web page](https://docs.thorcommerce.io/guides/catalog/configure-commerce) - [Configure a store](https://docs.thorcommerce.io/markdown/guides/catalog/configure-store): Create distribution, price, and supply channels and connect them to a store. [Web page](https://docs.thorcommerce.io/guides/catalog/configure-store) - [Create and publish a product](https://docs.thorcommerce.io/markdown/guides/catalog/create-product): Create a product and variant, configure commercial data, and verify public availability. [Web page](https://docs.thorcommerce.io/guides/catalog/create-product) - [Add custom data](https://docs.thorcommerce.io/markdown/guides/catalog/custom-data): Define an integer product metafield, assign its value, and verify its public visibility. [Web page](https://docs.thorcommerce.io/guides/catalog/custom-data) - [Organize a catalog](https://docs.thorcommerce.io/markdown/guides/catalog/organize-catalog): Create a category and collection, assign a product, and verify storefront discovery. [Web page](https://docs.thorcommerce.io/guides/catalog/organize-catalog) - [Translate catalog content](https://docs.thorcommerce.io/markdown/guides/catalog/translate-content): Configure a locale and write product translations with the public translation input. [Web page](https://docs.thorcommerce.io/guides/catalog/translate-content) - [Run bulk operations and import/export jobs](https://docs.thorcommerce.io/markdown/guides/integrations/bulk-and-jobs): Choose between cursor reads, bounded mutations, and asynchronous file workflows. [Web page](https://docs.thorcommerce.io/guides/integrations/bulk-and-jobs) - [Synchronize an external catalog](https://docs.thorcommerce.io/markdown/guides/integrations/catalog-sync): Use stable identities, field ownership, bounded writes, and reconciliation to keep catalogs aligned. [Web page](https://docs.thorcommerce.io/guides/integrations/catalog-sync) - [Receive and verify webhooks](https://docs.thorcommerce.io/markdown/guides/integrations/webhooks): Verify signed event bodies, persist an idempotent inbox, and process deliveries reliably. [Web page](https://docs.thorcommerce.io/guides/integrations/webhooks) - [Create a discount campaign](https://docs.thorcommerce.io/markdown/guides/operations/discount-campaign): Create a code-backed EUR 10 cart promotion, connect its resources, and verify qualification. [Web page](https://docs.thorcommerce.io/guides/operations/discount-campaign) - [Create and place a draft order](https://docs.thorcommerce.io/markdown/guides/operations/draft-order): Prepare an administrator-assisted purchase, add a variant, and place the reviewed order. [Web page](https://docs.thorcommerce.io/guides/operations/draft-order) - [Fulfill an order](https://docs.thorcommerce.io/markdown/guides/operations/fulfill-order): Read remaining quantities, create a partial shipment, and verify its fulfillment record. [Web page](https://docs.thorcommerce.io/guides/operations/fulfill-order) - [Capture, cancel, and refund payments](https://docs.thorcommerce.io/markdown/guides/operations/manage-payments): Choose a supported action from current gateway and payment state and verify its outcome. [Web page](https://docs.thorcommerce.io/guides/operations/manage-payments) - [Build a cart and checkout](https://docs.thorcommerce.io/markdown/guides/storefront/cart-and-checkout): Implement cart edits and choose hosted or custom checkout with explicit state recovery. [Web page](https://docs.thorcommerce.io/guides/storefront/cart-and-checkout) - [Add customer accounts](https://docs.thorcommerce.io/markdown/guides/storefront/customer-accounts): Implement registration, sign-in, token refresh, and cart reconciliation for authenticated buyers. [Web page](https://docs.thorcommerce.io/guides/storefront/customer-accounts) - [Recover from storefront errors](https://docs.thorcommerce.io/markdown/guides/storefront/error-recovery): Turn API failure classes into useful buyer actions without duplicating purchases. [Web page](https://docs.thorcommerce.io/guides/storefront/error-recovery) - [Configure and render facets](https://docs.thorcommerce.io/markdown/guides/storefront/facets): Configure catalog filters once and render their returned names, fields, and values in a storefront. [Web page](https://docs.thorcommerce.io/guides/storefront/facets) - [Deliver responsive product images](https://docs.thorcommerce.io/markdown/guides/storefront/images): Build image URLs from returned media and request sizes appropriate to the layout. [Web page](https://docs.thorcommerce.io/guides/storefront/images) - [Build with the Next.js storefront](https://docs.thorcommerce.io/markdown/guides/storefront/nextjs): Run the reference storefront with your own project and customize its typed commerce flows. [Web page](https://docs.thorcommerce.io/guides/storefront/nextjs) - [Build product listing and detail pages](https://docs.thorcommerce.io/markdown/guides/storefront/product-pages): Query a contextual product grid, select real variants, and handle commercial empty states. [Web page](https://docs.thorcommerce.io/guides/storefront/product-pages) - [Add search and filters](https://docs.thorcommerce.io/markdown/guides/storefront/search-and-filters): Keep search, filters, sorting, and pagination in reproducible storefront state. [Web page](https://docs.thorcommerce.io/guides/storefront/search-and-filters)