# Catalog visibility A product existing in Admin does not mean it is visible or purchasable in every store. Treat visibility, price, and stock as separate checks. This page is the diagnostic reference; [Create and publish a product](/guides/catalog/create-product) contains the setup mutations. ## Check the buyer's context first Keep the exact project, store, price channel, currency, country, locale, and customer identity used by the failing request. A successful response from another context does not prove that the original context is configured. ## Follow the dependency order | Check | What to verify | | --- | --- | | Store | The request uses the intended store and channel relationships | | Product status | The product is `ACTIVE` | | Variant status | The intended variant is `ACTIVE` | | Product publication | The product is published in the store's distribution context | | Variant publication | That variant has its own applicable publication | | Timing | Publication and purchase-availability timestamps have arrived | | Price | An eligible price matches the requested commercial context | | Availability | The returned variant is available for purchase under its stock policy | A product can be visible while no variant has a usable price or current purchase availability. Do not turn every such state into Product not found. ## Publication has two dates `publishedAt` controls publication timing. `availableForPurchaseAt` controls purchase-availability timing. Use ISO 8601 timestamps with an explicit timezone. A scheduled date in the future can explain why a correctly configured item is not yet live. Product and variant publications are independent. Publishing the product does not implicitly publish all its variants. Use the distribution channel for publication, the price channel for price records, and the supply channel for inventory. ## Confirm through Storefront After correcting the failing condition, repeat the same Storefront request. Verify the specific variant ID, price, and `availableForPurchase` result before adding it to a cart. If Admin changes are not yet reflected, retry the read with a limit; do not create duplicate records to force the result. See [Prices and price selection](/concepts/pricing/prices), [Stock and availability](/concepts/inventory/availability), and [Your first order](/getting-started/first-order).