Saleor documentation hosted at https://docs.saleor.io
112
stars
3,806
commits
JavaScript
primary language
Sep 10, 2026
updated
[!NOTE]
- This requires docker or equivalent software to be installed and running on the machine.
- Other editors than VSCode are supported: see the official documentation
Usage:
>dev containers: rebuild and Reopen in Containerhttp://127.0.0.1:5000/ (may take up to a minute to load when opened for the first time)http://127.0.0.1:5000/ (may take a few seconds)More details are available in the official VSCode documentation: https://code.visualstudio.com/docs/devcontainers/containers#_getting-started
Steps:
.devcontainer/ folderdocker-compose up
http://127.0.0.1:5000/ (may take up to a minute to load when opened for the first time)http://127.0.0.1:5000/ (may take a few seconds)node --version
corepack enable
pnpm install
pnpm start
pnpm build
pnpm serve
/docs Main docs content directory./docs/api-reference API reference generated from schema.graphql/docusaurus.config.js Docusaurus configuration file./docusaurus2-graphql-doc-generator GraphQL API Reference plugin code./sidebars.js Sidebar menu structure./static Styling and other static files.Code and response examples should be inside code blocks with proper language:
```graphql
query {
id
name
}
```
```json
{
"errorCode": 400
}
```
Use full path to the file to avoid linking to wrong page.
[Attributes](/developer/attributes.mdx)[Attributes](/attributes)All documentation files use extension:
.mdx - Developer documentation.md - Dashboard documentationIf your page uses custom react components, you are required to use .mdx file extension. Import statement is also required:
## <!-- /docs/developer/export/export-overview.mdx file -->
## title: Exporting Products
import Foo from "@site/components/Foo";
...
<Foo />
For charts we are using Mermaid package.
Edit docs by navigating to docs/ and editing the corresponding document:
docs/doc-to-be-edited.md
---
id: page-needs-edit
title: This Doc Needs To Be Edited
---
Edit me...
For more information about docs, click here
/docs, example docs/newly-created-doc.md:---
id: newly-created-doc
title: This Doc Needs To Be Edited
---
My new content here..
sidebars.js:// Add newly-created-doc to the Getting Started category of docs
{
"docs": {
"Getting Started": [
"quick-start",
"newly-created-doc" // new doc here
],
...
},
...
}
For more information about adding new docs, click here
siteConfig.js:{
headerLinks: [
...
/* you can add docs */
{
type: "doc",
docId: "dashboard/before-you-start",
label: "Dashboard Manual",
position: "left",
},
/* you can add custom pages */
{ page: 'help', label: 'Help' },
/* you can add external links */
{ href: 'https://github.com/facebook/Docusaurus', label: 'GitHub' },
...
],
...
}
For more information about the navigation bar, click here
./pages/en:siteConfig.js to add to the headerLinks element:{
headerLinks: [
...
{ page: 'my-new-custom-page', label: 'My New Custom Page' },
...
],
...
}
For more information about custom pages, click here.
Files in /docs/api-reference folder are generated by @graphql-markdown/docusaurus package. The introduction page is automatically copied from the /template/api-reference.mdx file.
To update the API reference:
schema.graphql locally into the root of the saleor-docs repository by running
curl -O https://raw.githubusercontent.com/saleor/saleor/refs/heads/main/saleor/graphql/schema.graphqlpnpm update-api-referenceThe script behind the scenes does several steps:
.tmp folder.docs folder are being removed and generated references in .tmp folder are moved to the docs.examples folder are being put into corresponding files in the references folder.Tip: To enable autocomplete in VSCode open docs folder in the workspace.
.mdx extension././docs as root path.Don't:
[Attributes](developer/attributes.mdx)
[Attributes](/developer/attributes)
[Attributes](../../attributes)
[Attributes](/docs/developer/attributes)
Do:
[Attributes](/developer/attributes.mdx)
Saleor Docs are using Algolia DocSearch for the website search.
DocSearch crawls the website once a week on Friday and aggregates all the content in an Algolia index. This content is then queried directly from the front-end using the Algolia API.
The website's search results are meticulously ranked to enhance user relevance and experience. A custom ranking function, known as pageRank, is employed for this purpose. The ranking strategy prioritizes various content categories as follows:
metaPageRank: This takes precedence and is determined by a custom meta attribute, providing a top-tier ranking for specific content.
Documentation Pages: General documentation pages are next in line for ranking, excluding those generated based on schema API reference and API storefront.
API Reference Pages: These pages are ranked differently based on the type of operation they represent.
function pageRank(url) {
if (metaPageRank) {
return metaPageRank;
}
if (!/\/api-reference\//.test(url.pathname)) {
// not part of API reference
return "40";
}
if (/\/mutations\//.test(url.pathname)) {
// mutation
return "30";
}
if (/\/queries\//.test(url.pathname)) {
// query
return "20";
}
return "10";
}
For even finer control over search result rankings, you can manually influence the ranking of specified pages by adding a custom meta attribute - rank - to the page. The rank meta is configured to have the highest priority in Algolia.
To assign a custom rank to a particular page, use the following code snippet:
<head>
<meta name="rank" content="50" />
</head>
The main branch is automatically released to docs.saleor.io, which is handled by Vercel.
Run pnpm lint to check for any linting errors on staged (modified) files.
Note that capitalization rules don't work well with front matter so you can ignore error messages located in the top --- section.
In dev mode, Docusaurus serves a debug page with a list of all available routes and config at http://localhost:3000/\_\_docusaurus/debug.
Full documentation can be found on the website.
Create settings.json under .vscode folder with:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "always"
},
"eslint.debug": true,
"eslint.options": {
"extensions": [".js", ".jsx", ".md", ".mdx", ".ts", ".tsx"]
},
"eslint.runtime": "node",
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"markdown",
"mdx"
],
"editor.formatOnSave": true
}
(top 30 of 102)
JavaScript
61.2%
CSS
37.0%
MDX
1.2%
Saleor documentation hosted at https://docs.saleor.io
112
stars
3,806
commits
JavaScript
primary language
Sep 10, 2026
updated
[!NOTE]
- This requires docker or equivalent software to be installed and running on the machine.
- Other editors than VSCode are supported: see the official documentation
Usage:
>dev containers: rebuild and Reopen in Containerhttp://127.0.0.1:5000/ (may take up to a minute to load when opened for the first time)http://127.0.0.1:5000/ (may take a few seconds)More details are available in the official VSCode documentation: https://code.visualstudio.com/docs/devcontainers/containers#_getting-started
Steps:
.devcontainer/ folderdocker-compose up
http://127.0.0.1:5000/ (may take up to a minute to load when opened for the first time)http://127.0.0.1:5000/ (may take a few seconds)node --version
corepack enable
pnpm install
pnpm start
pnpm build
pnpm serve
/docs Main docs content directory./docs/api-reference API reference generated from schema.graphql/docusaurus.config.js Docusaurus configuration file./docusaurus2-graphql-doc-generator GraphQL API Reference plugin code./sidebars.js Sidebar menu structure./static Styling and other static files.Code and response examples should be inside code blocks with proper language:
```graphql
query {
id
name
}
```
```json
{
"errorCode": 400
}
```
Use full path to the file to avoid linking to wrong page.
[Attributes](/developer/attributes.mdx)[Attributes](/attributes)All documentation files use extension:
.mdx - Developer documentation.md - Dashboard documentationIf your page uses custom react components, you are required to use .mdx file extension. Import statement is also required:
## <!-- /docs/developer/export/export-overview.mdx file -->
## title: Exporting Products
import Foo from "@site/components/Foo";
...
<Foo />
For charts we are using Mermaid package.
Edit docs by navigating to docs/ and editing the corresponding document:
docs/doc-to-be-edited.md
---
id: page-needs-edit
title: This Doc Needs To Be Edited
---
Edit me...
For more information about docs, click here
/docs, example docs/newly-created-doc.md:---
id: newly-created-doc
title: This Doc Needs To Be Edited
---
My new content here..
sidebars.js:// Add newly-created-doc to the Getting Started category of docs
{
"docs": {
"Getting Started": [
"quick-start",
"newly-created-doc" // new doc here
],
...
},
...
}
For more information about adding new docs, click here
siteConfig.js:{
headerLinks: [
...
/* you can add docs */
{
type: "doc",
docId: "dashboard/before-you-start",
label: "Dashboard Manual",
position: "left",
},
/* you can add custom pages */
{ page: 'help', label: 'Help' },
/* you can add external links */
{ href: 'https://github.com/facebook/Docusaurus', label: 'GitHub' },
...
],
...
}
For more information about the navigation bar, click here
./pages/en:siteConfig.js to add to the headerLinks element:{
headerLinks: [
...
{ page: 'my-new-custom-page', label: 'My New Custom Page' },
...
],
...
}
For more information about custom pages, click here.
Files in /docs/api-reference folder are generated by @graphql-markdown/docusaurus package. The introduction page is automatically copied from the /template/api-reference.mdx file.
To update the API reference:
schema.graphql locally into the root of the saleor-docs repository by running
curl -O https://raw.githubusercontent.com/saleor/saleor/refs/heads/main/saleor/graphql/schema.graphqlpnpm update-api-referenceThe script behind the scenes does several steps:
.tmp folder.docs folder are being removed and generated references in .tmp folder are moved to the docs.examples folder are being put into corresponding files in the references folder.Tip: To enable autocomplete in VSCode open docs folder in the workspace.
.mdx extension././docs as root path.Don't:
[Attributes](developer/attributes.mdx)
[Attributes](/developer/attributes)
[Attributes](../../attributes)
[Attributes](/docs/developer/attributes)
Do:
[Attributes](/developer/attributes.mdx)
Saleor Docs are using Algolia DocSearch for the website search.
DocSearch crawls the website once a week on Friday and aggregates all the content in an Algolia index. This content is then queried directly from the front-end using the Algolia API.
The website's search results are meticulously ranked to enhance user relevance and experience. A custom ranking function, known as pageRank, is employed for this purpose. The ranking strategy prioritizes various content categories as follows:
metaPageRank: This takes precedence and is determined by a custom meta attribute, providing a top-tier ranking for specific content.
Documentation Pages: General documentation pages are next in line for ranking, excluding those generated based on schema API reference and API storefront.
API Reference Pages: These pages are ranked differently based on the type of operation they represent.
function pageRank(url) {
if (metaPageRank) {
return metaPageRank;
}
if (!/\/api-reference\//.test(url.pathname)) {
// not part of API reference
return "40";
}
if (/\/mutations\//.test(url.pathname)) {
// mutation
return "30";
}
if (/\/queries\//.test(url.pathname)) {
// query
return "20";
}
return "10";
}
For even finer control over search result rankings, you can manually influence the ranking of specified pages by adding a custom meta attribute - rank - to the page. The rank meta is configured to have the highest priority in Algolia.
To assign a custom rank to a particular page, use the following code snippet:
<head>
<meta name="rank" content="50" />
</head>
The main branch is automatically released to docs.saleor.io, which is handled by Vercel.
Run pnpm lint to check for any linting errors on staged (modified) files.
Note that capitalization rules don't work well with front matter so you can ignore error messages located in the top --- section.
In dev mode, Docusaurus serves a debug page with a list of all available routes and config at http://localhost:3000/\_\_docusaurus/debug.
Full documentation can be found on the website.
Create settings.json under .vscode folder with:
{
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "always"
},
"eslint.debug": true,
"eslint.options": {
"extensions": [".js", ".jsx", ".md", ".mdx", ".ts", ".tsx"]
},
"eslint.runtime": "node",
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"markdown",
"mdx"
],
"editor.formatOnSave": true
}
(top 30 of 102)
JavaScript
61.2%
CSS
37.0%
MDX
1.2%