Storefront
This guide will help you set up a Saleor storefront in your local environment.
The storefront is a Next.js application. However, the Checkout page can be extracted from any React application as it is designed to be a standalone component.
Install project
Clone repo and install dependencies
git clone https://github.com/saleor/storefront.git saleor-storefront
cd saleor-storefront
pnpm iCopy variables
Copy environment variables from .env.example to .env:
cp .env.example .envAdd backend URL
Use a free test project at Saleor Cloud to start quickly with the backend. Alternatively, you can run Saleor locally using Docker.
# Add backend address
# Make sure to add slash at the end:
NEXT_PUBLIC_SALEOR_API_URL=https://{your_domain}.saleor.cloud/graphql/
# Local example
# NEXT_PUBLIC_SALEOR_API_URL=http://localhost:8000/graphql/Run project
Run the development server.
pnpm run devEdit a product
- Find any product page in the storefront
- Go to the dashboard of your Saleor instance and change that product information, such as name, price, or description.
- Refresh the product page in the storefront; notice that information has not changed due to Next.js caching.
- Visit
http://{your-host}/api/draft(e.g. http://localhost:3000/api/draft) to see the changes. This endpoint bypasses the cache by setting a special next.js cookie.
Edit a query
- In
src/graphqlfolder, find a query you want to edit. For example add fieldisAvailabletoProductDetails.graphql. - Generate types and queries by running the following command:
This would update types and queries for the new field, which we will use in the next step.
pnpm run generateUpdate product page
- Open
src/app/[channel]/[main]/Products/[slug].tsxfile. - You will be able now to render the newly added field
isAvailablein the product page. Notice that the new field can be autocompleted by Typescript.
export default async function Page(){
// ...
const isAvailable = data.product.isAvailable;
// ...
}Next steps:
Follow API guide to learn how to interact with the Saleor API.