# How Thor fits together Thor Commerce provides the commerce data and APIs behind a storefront or business application. You build the experience; Thor manages products, contextual prices, inventory, customers, carts, and orders. The same catalog can support consumer sales, customer-group pricing, and multiple markets without creating a separate product for every buying context. ## Problems Thor helps you solve | You need to | Use Thor to | Your application handles | | --- | --- | --- | | Sell the same item in several markets | Connect stores to catalog, price, and supply channels | Market selection, routing, and presentation | | Sell different sizes or finishes | Model variants with their own SKU, price, and availability | Option selectors and product pages | | Offer customer-specific prices | Associate customers with groups and scope prices to those groups | Sign-in and the buying experience | | Keep checkout amounts consistent | Resolve cart prices, discounts, shipping, tax, and totals | Render returned values and handle required buyer actions | | Process purchases | Keep order, payment, and fulfillment records | Operational workflows and external system integration | | Extend the platform | Add typed custom data, receive webhooks, or build an app | Integration-specific behavior | ## One project, two APIs A **project** contains the commerce resources for your integration. Use credentials and resource IDs from that same project. A **store** selects the selling context inside the project; it is not a separate API endpoint. The [Admin API](/api/admin-graphql) is for trusted management integrations and embedded apps. Use it to prepare the catalog and operate the business. The [Storefront API](/api/storefront-graphql) is for product discovery, customer accounts, carts, and checkout. Admin credentials belong on the server. ## From catalog to order 1. Configure a store and the channels it uses. 2. Create a product and its sellable variants. 3. Add prices and inventory, then activate and publish the intended items. 4. Request products in the shopper's store, currency, country, and customer context. 5. Add a selected variant to a cart with matching context. 6. Complete hosted or custom checkout and retain the resulting order ID. 7. Handle payment and fulfillment as separate operational workflows. A product can exist in Admin while being unavailable to a buyer. Use [catalog visibility](/concepts/catalog/publication) to distinguish publication, price, and stock problems. ## Decide where to start Use the [Next.js storefront guide](/guides/storefront/nextjs) to customize a working buying experience. Use [Configure a store](/guides/catalog/configure-store) when you are preparing an empty project. Use [Build an embedded app](/guides/apps/getting-started) when your feature belongs in the Thor dashboard. For a service that synchronizes another system, start with [catalog synchronization](/guides/integrations/catalog-sync).