# Configure a store Create a store whose publications, prices, and stock can be verified independently. This guide uses one distribution channel, one price channel, and one supply channel for a small lamp catalog. The names are examples, not required Thor conventions. ## Before you begin Use a trusted [Admin connection](/getting-started/connect) with permission to manage stores and channels. Check for existing configuration first. If suitable channels already exist, retain their IDs and skip their creation. Read [Stores and channels](/concepts/markets/stores-and-channels) if you are deciding what several stores should share. ## 1. Create the channels Run this operation for each required channel: Admin API ```graphql mutation CreateChannel($input: ChannelCreateInput!) { channelCreate(input: $input) { channel { id name slug status flags } errors { __typename ... on UserError { message } } } } ``` Variables ```json { "input": { "name": "Web catalog", "slug": "web-catalog", "status": "ACTIVE", "flags": [ "DISTRIBUTION" ] } } ``` Create Web prices with slug `web-prices` and flag `PRICE`. Create Main stock with slug `main-stock` and flag `SUPPLY`. Keep the returned IDs by responsibility. A slug conflict is a reason to inspect an existing channel, not to keep generating new slugs. ## 2. Connect the store Admin API ```graphql mutation CreateStore($input: StoreCreateInput!) { storeCreate(input: $input) { store { id name distributionChannels(first: 10) { nodes { id flags } } priceChannels(first: 10) { nodes { id flags } } supplyChannels(first: 10) { nodes { id flags } } } errors { __typename ... on UserError { message } } } } ``` Variables ```json { "input": { "name": "Example web store", "distributionChannels": [ "" ], "priceChannels": [ "" ], "supplyChannels": [ "" ], "defaultPriceRoundingMode": "TO_EVEN", "defaultTaxRoundingMode": "TO_EVEN" } } ``` Replace every placeholder with a returned channel ID. The rounding values are an explicit example; select the policy appropriate for your project. Store creation does not create currency prices or publish products. ## 3. Verify the configuration Confirm the response includes exactly the intended channel relationships and no business errors. Keep a small configuration record containing the project slug, store ID, and three channel IDs. Use that same record in subsequent catalog and storefront steps. If a channel is rejected, check its flag, status, and project before retrying. If Storefront later returns no products, continue through publication and commercial setup rather than creating another store. Next, [Create and publish a product](/guides/catalog/create-product).