Home
Softono
s

saleor

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
4

Software by saleor

Saleor
Open Source

Saleor

<div align="center" width="100px"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/76e3079f-696a-4fcd-8658-89739647090b"> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/8477d643-a905-4c63-8ed3-03d0976f6fc3"> <img width="200" alt="saleor-commerce-logo" src="https://user-images.githubusercontent.com/4006792/214636328-8e4f83e8-66cb-4114-a3d8-473eb908b9c3.png"> </picture> </div> <div align="center"> <strong>Commerce that works with your language and stack</strong> </div> <div align="center"> GraphQL native, API-only platform for scalable composable commerce. </div> <br> <div align="center"> Get to know Saleor: <br> <a href="https://saleor.io/cloud/talk-to-us?utm_source=github&utm_medium=readme&utm_campaign=repo_saleor">Talk to a human</a> <span> | </span> <a href="https://cloud.saleor.io/signup?utm_source=github&utm_medium=readme&utm_campaign=repo_saleor">Talk to the API</a> </div> <br> <div align="center"> Join our community: <br> <a href="https://saleor.io/">Website</a> <span> | </span> <a href="https://twitter.com/getsaleor">Twitter</a> <span> | </span> <a href="https://saleor.io/discord">Discord</a> </div> <div align="center"> <a href="https://saleor.io/blog">Blog</a> <span> | </span> <a href="https://saleor.typeform.com/to/JTJK0Nou">Subscribe to newsletter</a> </div> <br> <div align="center"> <a href="https://codecov.io/gh/saleor/saleor" > <img src="https://codecov.io/gh/saleor/saleor/graph/badge.svg?token=qkNcTJ4TmI" alt="Coverage"/> </a> <a href="https://docs.saleor.io/"> <img src="https://img.shields.io/badge/docs-docs.saleor.io-brightgreen.svg" alt="Documentation" /> </a> <a href="https://github.com/astral-sh/ruff"> <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Linted by Ruff"> </a> <a href="https://saleor.io/discord"> <img src="https://img.shields.io/discord/864066819866624010" alt="Discord" > </a> </div> ## Table of Contents - [What makes Saleor special?](#what-makes-saleor-special) - [Why API-only Architecture?](#why-api-only-architecture) - [Features](#features) - [Installation](#installation) - [Documentation](#documentation) - [Saleor Platform](#saleor-platform) - [Storefront](#storefront) - [Dashboard](#dashboard) - [Contributing](#contributing) - [License](#license) ## What makes Saleor special? - **Technology-agnostic** - no monolithic plugin architecture or technology lock-in. - **GraphQL only** - Not afterthought API design or fragmentation across different styles of API. - **Headless and API only** - APIs are the only way to interact, configure, or extend the backend. - **Open source** - a single version of Saleor without feature fragmentation or commercial limitations. - **Cloud native** - battle tested on global brands. - **Native-multichannel** - Per [channel](https://docs.saleor.io/developer/channels/overview) control of pricing, currencies, stock, product, and more. ## Why API-only Architecture? Saleor's API-first extensibility provides powerful tools for developers to extend backend using [webhooks](https://docs.saleor.io/developer/extending/webhooks/overview), attributes, [metadata](https://docs.saleor.io/api-usage/metadata), [apps](https://docs.saleor.io/developer/extending/apps/overview), [subscription queries](https://docs.saleor.io/developer/extending/webhooks/subscription-webhook-payloads), [API extensions](https://docs.saleor.io/developer/extending/webhooks/synchronous-events/overview), [dashboard iframes](https://docs.saleor.io/developer/extending/apps/overview). Compared to traditional plugin architectures (monoliths) it provides the following benefits: - There is less downtime as apps are deployed independently. - Reliability and performance - custom logic is separated from the core. - Simplified upgrade paths - eliminates incompatibility conflicts between extensions. - Technology-agnostic - works with any technology, stack, or language. - Parallel development - easier to collaborate than with a monolithic core. - Simplified debugging - easier to narrow down bugs in independent services. - Scalability - extensions and apps can be scaled independently. ### What are the tradeoffs? If you are a single developer working with a small business that doesn't have high traffic or a critical need for 24/7 availability, using a service-oriented approach might feel more complex compared to the traditional WordPress or Magento approach that provides a language-specific framework, runtime, database schema, aspect-oriented programming, and other tools to a quick start. However, if you deploy on a daily basis, reliability and uptime is critical, you need to collaborate with other developers, or you have non-trivial requirements you might be in the right place. ## Features - **Enterprise ready**: Secure, scalable, and stable. Battle-tested by big brands - **Dashboard**: User-friendly, fast, and productive. (Decoupled project [repo](https://github.com/saleor/saleor-dashboard) ) - **Global by design** Multi-currency, multi-language, multi-warehouse, tutti multi! - **CMS**: Manage product or marketing content. - **Product management**: A rich content model for large and complex catalogs. - **Orders**: Flexible order model, split payments, multi-warehouse, returns, and more. - **Customers**: Order history and preferences. - **Promotion engine**: Sales, vouchers, cart rules, giftcards. - **Payment orchestration**: multi-gateway, extensible payment API, flexible flows. - **Cart**: Advanced payment and tax options, with full control over discounts and promotions. - **Payments**: Flexible API architecture allows integration of any payment method. - **Translations**: Fully translatable catalog. - **SEO**: Unlimited SEO freedom with headless architecture. - **Apps**: Extend dashboard via iframe with any web stack. ![Saleor Dashboard - Modern UI for managing your e-commerce](https://user-images.githubusercontent.com/9268745/224249510-d3c7658e-6d5c-42c5-b4fb-93eaf65a5335.png) ## Installation [See the Saleor docs](https://docs.saleor.io/setup/docker-compose) for step-by-step installation and deployment instructions. For local development without Docker, follow our [Contributing Guide](./CONTRIBUTING.md). Note: The `main` branch is the development version of Saleor and it may be unstable. To use the latest stable version, download it from the [Releases](https://github.com/saleor/saleor/releases/) page or switch to a release tag. The current production-ready version is 3.x and you should use this version for all three components: - Saleor: <https://github.com/saleor/saleor/releases/> - Dashboard: <https://github.com/saleor/saleor-dashboard/releases/> - Storefront: <https://github.com/saleor/react-storefront/releases/> ### Saleor Cloud The fastest way to develop with Saleor is by using developer accounts in [Saleor Cloud](https://cloud.saleor.io). Register [here](https://cloud.saleor.io/register) or install our [CLI tool](https://github.com/saleor/saleor-cli): `npm i -g @saleor/cli` and run the following command: `saleor register` Bootstrap your first [storefront](https://github.com/saleor/react-storefront) with: `saleor storefront create --url {your-saleor-graphql-endpoint}` ## Documentation Saleor documentation is available here: [docs.saleor.io](https://docs.saleor.io) To contribute, please see the [`saleor/saleor-docs` repository](https://github.com/saleor/saleor-docs/). ## Saleor Platform The easiest way to run all components of Saleor (API, storefront, and dashboard) together on your local machine is to use the [saleor-platform](https://github.com/saleor/saleor-platform) project. Go to that repository for instructions on how to use it. [View saleor-platform](https://github.com/saleor/saleor-platform) ## Storefront An open-source storefront example built with Next.js App Router, React.js, TypeScript, GraphQL, and Tailwind CSS. [React Storefront Repository](https://github.com/saleor/storefront) [View Storefront Example](https://storefront.saleor.io/) ## Dashboard For the dashboard, go to the [saleor-dashboard](https://github.com/saleor/saleor-dashboard) repository. ## Contributing We love your contributions and do our best to provide you with mentorship and support. If you are looking for an issue to tackle, take a look at issues labeled [`Good first issue`](https://github.com/saleor/saleor/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+) and [`Help wanted`](https://github.com/saleor/saleor/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22). If nothing grabs your attention, check [our roadmap](https://saleor.io/roadmap) or [start a Discord discussion](https://saleor.io/discord) about a feature you'd like to see. Make sure to read our [Contribution Guidelines](http://docs.saleor.io/developer/community/contributing) before opening a PR or issue. Get more details (e.g., how to run Saleor on your local machine) in our [Contributing Guide](./CONTRIBUTING.md). ## License Disclaimer: Everything you see here is open and free to use as long as you comply with the [license](https://github.com/saleor/saleor/blob/main/LICENSE). There are no hidden charges. We promise to do our best to fix bugs and improve the code. #### Crafted with ❀️ by [Saleor Commerce](https://saleor.io) <[email protected]>

Developer Tools E-commerce Platforms
23K Github Stars
storefront
Open Source

storefront

Official theme for WooCommerce

Web Development Frontend Templates WordPress Themes & Plugins
1K Github Stars
saleor-dashboard
Open Source

saleor-dashboard

<img width="1920" height="1080" alt="Saleor Dashboard 25/26" src="https://github.com/user-attachments/assets/c9705611-2729-4e65-ae35-22081f03c569" /> <div align="center"> <h1>Saleor Dashboard</h1> </div> <div align="center"> <p>A GraphQL-powered, single-page dashboard application for <a href="https://github.com/saleor/saleor">Saleor</a>.</p> </div> <div align="center"> Get to know Saleor: <br> <a href="https://saleor.io/cloud/talk-to-us?utm_source=github&utm_medium=readme&utm_campaign=repo_dashboard">Talk to a human</a> <span> | </span> <a href="https://cloud.saleor.io/signup?utm_source=github&utm_medium=readme&utm_campaign=repo_dashboard">Talk to the API</a> </div> <br> <div align="center"> <a href="https://saleor.io/">🏠 Website</a> <span> β€’ </span> <a href="https://docs.saleor.io/">πŸ“š Docs</a> <span> β€’ </span> <a href="https://saleor.io/blog/">πŸ“° Blog</a> <span> β€’ </span> <a href="https://twitter.com/getsaleor">🐦 Twitter</a> <span> β€’ </span> <a href="https://saleor.io/discord">πŸ’¬ Discord</a> </div> <div align="center"> <span> β€’ </span> <a href="https://githubbox.com/saleor/saleor-dashboard">πŸ”Ž Explore Code</a> </div> ## Prerequisites - Node.js v24 - A running instance of [Saleor](https://github.com/saleor/saleor/) - PNPM package manager - preferably installed via [corepack](https://pnpm.io/installation#using-corepack) ## Development 1. Clone the repository: ```bash git clone https://github.com/saleor/saleor-dashboard.git ``` 2. Enter the project directory: ```bash cd saleor-dashboard ``` 3. Install the dependencies: ```bash pnpm install ``` 4. Configure the env vars as described in [docs/configuration.md](docs/configuration.md). 5. Start the development server with: ```bash pnpm run dev ``` > Note: > If you see CORS errors, check [CORS configuration](https://docs.saleor.io/setup/configuration#allowed_client_hosts) of your Saleor instance or CORS settings in the Cloud Console. ## Docs - [Configuration βš™οΈ](docs/configuration.md) - [Error tracking ⚠️](docs/error-tracking.md) - [Running tests 🏁](docs/running-tests.md) - [Usage with Docker 🐳](docs/docker.md) - [Sentry adapter πŸ—Ό](docs/sentry-adapter.md) - [Deployment 🌐](docs/deployment.md) - [Developing with stable and staging Saleor graphql.schema](docs/multi-schema.md)

Frontend Templates E-commerce Platforms
1K Github Stars
saleor-docs
Open Source

saleor-docs

<div align="center" width="100px"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/76e3079f-696a-4fcd-8658-89739647090b"> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/8477d643-a905-4c63-8ed3-03d0976f6fc3"> <img width="200" alt="saleor-commerce-logo" src="https://user-images.githubusercontent.com/4006792/214636328-8e4f83e8-66cb-4114-a3d8-473eb908b9c3.png"> </picture> </div> <div align="center"> <strong>Commerce that works with your language and stack</strong> </div> <div align="center"> GraphQL native, API-only platform for scalable composable commerce. </div> <br> <div align="center"> Get to know Saleor: <br> <a href="https://saleor.typeform.com/talk-with-us?utm_source=github&utm_medium=readme&utm_campaign=repo_saleor-docs">Talk to a human</a> <span> | </span> <a href="https://cloud.saleor.io/signup?utm_source=github&utm_medium=readme&utm_campaign=repo_saleor-docs">Talk to the API</a> </div> <br> <div align="center"> Join our community: <br> <a href="https://saleor.io/">Website</a> <span> | </span> <a href="https://twitter.com/getsaleor">X/Twitter</a> <span> | </span> <a href="https://saleor.io/discord">Discord</a> </div> <div align="center"> <a href="https://saleor.io/blog">Blog</a> <span> | </span> <a href="https://saleor.typeform.com/to/JTJK0Nou">Subscribe to newsletter</a> </div> <br> # Saleor Documentation - Documentation: [https://docs.saleor.io](https://docs.saleor.io) - Project homepage: [https://saleor.io](https://saleor.io) - Saleor Core source code: [https://github.com/saleor/saleor](https://github.com/saleor/saleor) - Saleor Dashboard source code: [https://github.com/saleor/saleor-dashboard](https://github.com/saleor/saleor-dashboard) - Saleor React Storefront source code: [https://github.com/saleor/react-storefront](https://github.com/saleor/react-storefront) # What's In This Document - Installation - [Using DevContainers for VSCode (Recommended)](#using-devcontainers-for-vscode-recommended) - [Using Docker](#using-docker) - [Using Node & NPM](#using-node--npm) - [Directory Structure](#directory-structure) - [Editing Content](#editing-content) - [Adding Content](#adding-content) - [Full Documentation](#full-docusaurus-documentation) # Installation ## Using DevContainers for VSCode (Recommended) > [!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](https://containers.dev/supporting) Usage: 1. Install the [Dev Containers extension for VSCode](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) 2. Press F1 then run the command: `>dev containers: rebuild and Reopen in Container` 3. Once started, it should open a new VSCode workspace which should allow you to perform remote coding (against the container) 4. Go to `http://127.0.0.1:5000/` (may take up to a minute to load when opened for the first time) 5. When editing the code in VSCode, changes will reflect at `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_ ## Using Docker Steps: 1. Go under `.devcontainer/` folder 2. Run: ```bash docker-compose up ``` 3. Visit `http://127.0.0.1:5000/` (may take up to a minute to load when opened for the first time) 4. Any changes made to the files will reflect at `http://127.0.0.1:5000/` (may take a few seconds) ## Using Node & NPM 1. Make sure you are using Node in version 20+: ```sh node --version ``` 2. Install project dependencies: ```sh npm install ``` 3. Run your dev server: ```sh npm start ``` # Production Build 1. Build project: ```sh npm run build ``` 2. Testing build local: ```sh npm run serve ``` # Editing Content ## Directory Structure - `/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. ## Formatting ### Code formatting Code and response examples should be inside code blocks with proper language: ````md ```graphql query { id name } ``` ```` ````md ```json { "errorCode": 400 } ``` ```` ### Lining pages Use full path to the file to avoid linking to wrong page. - :white_check_mark: Example of good link: `[Attributes](/developer/attributes.mdx)` - :stop_sign: Avoid: `[Attributes](/attributes)` ### Using custom React components All documentation files use extension: - `.mdx` - Developer documentation - `.md` - Dashboard documentation If your page uses custom react components, you are required to use `.mdx` file extension. Import statement is also required: ```mdx ## <!-- /docs/developer/export/export-overview.mdx file --> ## title: Exporting Products import Foo from "@site/components/Foo"; ... <Foo /> ``` For charts we are using [Mermaid](http://mermaid-js.github.io/mermaid/) package. ## Editing an existing docs page Edit docs by navigating to `docs/` and editing the corresponding document: `docs/doc-to-be-edited.md` ```markdown --- id: page-needs-edit title: This Doc Needs To Be Edited --- Edit me... ``` For more information about docs, click [here](https://docusaurus.io/docs/en/navigation) # Adding Content ## Adding a new docs page to an existing sidebar 1. Create the doc as a new markdown file in `/docs`, example `docs/newly-created-doc.md`: ```md --- id: newly-created-doc title: This Doc Needs To Be Edited --- My new content here.. ``` 1. Refer to that doc's ID in an existing sidebar in `sidebars.js`: ```javascript // 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](https://docusaurus.io/docs/en/navigation) ## Adding items to your site's top navigation bar 1. Add links to docs, custom pages or external links by editing the headerLinks field of `siteConfig.js`: ```javascript { 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](https://docusaurus.io/docs/en/navigation) ## Adding custom pages 1. Docusaurus uses React components to build pages. The components are saved as .js files in `./pages/en`: 1. If you want your page to show up in your navigation header, you will need to update `siteConfig.js` to add to the `headerLinks` element: ```javascript { headerLinks: [ ... { page: 'my-new-custom-page', label: 'My New Custom Page' }, ... ], ... } ``` For more information about custom pages, click [here](https://docusaurus.io/docs/en/custom-pages). # Updating the API Reference 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. ## Updating To update the API reference: 1. Get `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.graphql` 1. Run `npm run update-api-reference` The script behind the scenes does several steps: 1. The api-reference is generated in `.tmp` folder. 1. The highlighting script makes additional improvements in the generated docs. It makes the Saleor version and required permissions more visible. 1. The current references from `docs` folder are being removed and generated references in `.tmp` folder are moved to the `docs`. 1. The code examples are being injected. The code examples from the `examples` folder are being put into corresponding files in the references folder. # Creating links Tip: To enable autocomplete in VSCode open `docs` folder in the workspace. - Use only absolute paths, which is easier to maintain when moving files around or requires global search and replace. - Use the `.mdx` extension. - Start paths with `/`. - Don't use `/docs` as root path. Don't: `[Attributes](developer/attributes.mdx)` `[Attributes](/developer/attributes)` `[Attributes](../../attributes)` `[Attributes](/docs/developer/attributes)` Do: `[Attributes](/developer/attributes.mdx)` # Search Saleor Docs are using Algolia DocSearch for the website search. ### Crawl interval 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. ### Ranking strategy 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: 1. `metaPageRank`: This takes precedence and is determined by a custom meta attribute, providing a top-tier ranking for specific content. 1. `Documentation Pages`: General documentation pages are next in line for ranking, excluding those generated based on schema API reference and API storefront. 1. `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"; } ``` ### Manual Ranking Control 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> ``` # Deployment The main branch is automatically released to [docs.saleor.io](https://docs.saleor.io/), which is handled by [Vercel](https://vercel.com/saleorcommerce/saleor-docs/settings/domains). # Linting Run `npm run 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. # Debugging In dev mode, Docusaurus serves a debug page with a list of all available routes and config at http://localhost:3000/\_\_docusaurus/debug. # Full Docusaurus Documentation Full documentation can be found on the [website](https://docusaurus.io/). # Resources for technical writers [Communicating with precision](https://pressbooks.bccampus.ca/technicalwriting/chapter/communicatingprecision/) [Avoid redundancy](https://web.uvic.ca/~gkblank/wordiness.html) ### Recommended VSCode settings Create `settings.json` under `.vscode` folder with: ```json { "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 } ``` ### Recommended VSCode extensions: - [MDX](https://marketplace.visualstudio.com/items?itemName=unifiedjs.vscode-mdx) - [Eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - [Prettier - Code formatter](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)

E-commerce Platforms Documentation
112 Github Stars