## File: README.md
[Documentation](https://evershop.io/docs/development/getting-started/introduction) |
[Demo](https://demo.evershop.io/)
## Introduction
EverShop is a modern, TypeScript-first eCommerce platform built with GraphQL and React. Designed for developers, it offers essential commerce features in a modular, fully customizable architecture—perfect for building tailored shopping experiences with confidence and speed.
## Installation Using Docker
You can get started with EverShop in minutes by using the Docker image. The Docker image is a great way to get started with EverShop without having to worry about installing dependencies or configuring your environment.
```bash
curl -sSL https://raw.githubusercontent.com/evershopcommerce/evershop/main/docker-compose.yml > docker-compose.yml
docker compose up -d
```
For the full installation guide, please refer to our [Installation guide](https://evershop.io/docs/development/getting-started/installation-guide).
## Documentation
- [Installation guide](https://evershop.io/docs/development/getting-started/installation-guide).
- [Extension development](https://evershop.io/docs/development/module/create-your-first-extension).
- [Theme development](https://evershop.io/docs/development/theme/theme-overview).
## Demo
Explore our demo store.
**Demo user:**
Email: demo@evershop.io
Password: 123456
## Support
If you like my work, feel free to:
- ⭐ this repository. It helps.
- [][tweet] about EverShop. Thank you!
[tweet]: https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2Fevershopcommerce%2Fevershop&text=Awesome%20React%20Ecommerce%20Project&hashtags=react,ecommerce,expressjs,graphql
## Contributing
EverShop is an open-source project. We are committed to a fully transparent development process and appreciate highly any contributions. Whether you are helping us fix bugs, proposing new features, improving our documentation or spreading the word - we would love to have you as part of the EverShop community.
### Ask a question about EverShop
You can ask questions, and participate in discussions about EverShop-related topics in the EverShop Discord channel.
[](https://discord.gg/GSzt7dt7RM)
### Create a bug report
If you see an error message or run into an issue, please [create bug report](https://github.com/evershopcommerce/evershop/issues/new). This effort is valued and it will help all EverShop users.
### Submit a feature request
If you have an idea, or you're missing a capability that would make development easier and more robust, please [Submit feature request](https://github.com/evershopcommerce/evershop/issues/new).
If a similar feature request already exists, don't forget to leave a "+1".
If you add some more information such as your thoughts and vision about the feature, your comments will be embraced warmly :)
Please refer to our [Contribution Guidelines](./CONTRIBUTING.md) and [Code of Conduct](./CODE_OF_CONDUCT.md).
## 🚀 The Future of EverShop
EverShop is seeing rapid organic growth and strong adoption from the developer community. We are now scaling our operations and building **EverShop Cloud**.
If you are a strategic investor interested in the future of Node.js commerce and our mission to set a new standard for modern eCommerce, we’d love to share our vision and roadmap with you.
📩 **Get in touch:** support@evershop.io
## License
[GPL-3.0 License](https://github.com/evershopcommerce/evershop/blob/main/LICENSE)
---
## File: packages/postgres-query-builder/README.md
# PostgreSQL query builder for Node
A PostgreSQL query builder for NodeJS.
## Installation
```javascript
npm install @evershop/postgres-query-builder
```
## Usage guide
It implements async/await.
### Simple select
```javascript
const { select } = require('@evershop/postgres-query-builder');
const products = await select('*')
.from('product')
.where('product_id', '>', 1)
.execute(pool);
```
### More complex where
```javascript
const { select } = require('@evershop/postgres-query-builder');
const products = await select('*')
.from('product')
.where('product_id', '>', 1)
.and('sku', 'LIKE', 'sku')
.execute(pool);
```
### Event more complex where
```javascript
const { select } = require('@evershop/postgres-query-builder');
const query = select('*').from('product');
query.where('product_id', '>', 1).and('sku', 'LIKE', 'sku');
query.orWhere('price', '>', 100);
const products = await query.execute(pool);
```
### Join table
```javascript
const { select } = require('@evershop/postgres-query-builder');
const query = select('*').from('product');
query.leftJoin('price').on('product.`product_id`', '=', 'price.`product_id`');
query.where('product_id', '>', 1).and('sku', 'LIKE', 'sku');
query.andWhere('price', '>', 100);
const products = await query.execute(pool);
```
### Insert&update
| user_id | name | email | phone | status |
| --- | --- | --- | --- | --- |
| 1 | David | emai@email.com | 123456 | 1 |
````javascript
```javascript
const {insert} = require('@evershop/postgres-query-builder')
const query = insert("user")
.given({name: "David", email: "email@email.com", "phone": "123456", status: 1, notExistedColumn: "This will not be a part of the query"});
await query.execute(pool);
````
```javascript
const { update } = require('@evershop/postgres-query-builder');
const query = update('user')
.given({
name: 'David',
email: 'email@email.com',
phone: '123456',
status: 1,
notExistedColumn: 'This will not be a part of query'
})
.where('user_id', '=', 1);
await query.execute(pool);
```
### Working with transaction
```javascript
const { Pool } = require('pg');
const {
insert,
getConnection,
startTransaction,
commit,
rollback
} = require('@evershop/postgres-query-builder');
const pool = new Pool(connectionSetting);
// Create a connection from the pool
const connection = await getConnection(pool);
// Start a transaction
await startTransaction(connection);
try {
await insert('user')
.given({
name: 'David',
email: 'email@email.com',
phone: '123456',
status: 1,
notExistedColumn: 'This will not be a part of the query'
})
.execute(connection);
await commit(connection);
} catch (e) {
await rollback(connection);
}
```
## Security
All user provided data will be escaped.
---
## File: packages/evershop/README.md
[Documentation](https://evershop.io/docs/development/getting-started/introduction) |
[Demo](https://demo.evershop.io/)
## Introduction
EverShop is a modern, TypeScript-first eCommerce platform built with GraphQL and React. Designed for developers, it offers essential commerce features in a modular, fully customizable architecture—perfect for building tailored shopping experiences with confidence and speed.
## Installation Using Docker
You can get started with EverShop in minutes by using the Docker image. The Docker image is a great way to get started with EverShop without having to worry about installing dependencies or configuring your environment.
```bash
curl -sSL https://raw.githubusercontent.com/evershopcommerce/evershop/main/docker-compose.yml > docker-compose.yml
docker-compose up -d
```
For the full installation guide, please refer to our [Installation guide](https://evershop.io/docs/development/getting-started/installation-guide).
## Documentation
- [Installation guide](https://evershop.io/docs/development/getting-started/installation-guide).
- [Extension development](https://evershop.io/docs/development/module/create-your-first-extension).
- [Theme development](https://evershop.io/docs/development/theme/theme-overview).
## Demo
Explore our demo store.
**Demo user:**
Email: demo@evershop.io
Password: 123456
## Support
If you like my work, feel free to:
- ⭐ this repository. It helps.
- [][tweet] about EverShop. Thank you!
[tweet]: https://twitter.com/intent/tweet?url=https%3A%2F%2Fgithub.com%2Fevershopcommerce%2Fevershop&text=Awesome%20React%20Ecommerce%20Project&hashtags=react,ecommerce,expressjs,graphql
## Contributing
EverShop is an open-source project. We are committed to a fully transparent development process and appreciate highly any contributions. Whether you are helping us fix bugs, proposing new features, improving our documentation or spreading the word - we would love to have you as part of the EverShop community.
### Ask a question about EverShop
You can ask questions, and participate in discussions about EverShop-related topics in the EverShop Discord channel.
[](https://discord.gg/GSzt7dt7RM)
### Create a bug report
If you see an error message or run into an issue, please [create bug report](https://github.com/evershopcommerce/evershop/issues/new). This effort is valued and it will help all EverShop users.
### Submit a feature request
If you have an idea, or you're missing a capability that would make development easier and more robust, please [Submit feature request](https://github.com/evershopcommerce/evershop/issues/new).
If a similar feature request already exists, don't forget to leave a "+1".
If you add some more information such as your thoughts and vision about the feature, your comments will be embraced warmly :)
Please refer to our [Contribution Guidelines](./CONTRIBUTING.md) and [Code of Conduct](./CODE_OF_CONDUCT.md).
## License
[GPL-3.0 License](https://github.com/evershopcommerce/evershop/blob/main/LICENSE)
---
## File: packages/create-evershop-app/sample/extensions/sample/Readme.md
# Sample Extension
This is a sample extension for Evershop. It demonstrates how to build a simple extension for your Evershop store.
## Enable/Disable the extension
To enable the extension, modify the configuration file `config/default.json` and set the `enabled` property to `true`:
```json
{
"system": {
"extensions": [
{
"name": "sample",
"resolve": "extensions/sample",
"enabled": true
}
]
}
}
```
> **Warning**
> Enable/disable the extension requires running the command `npm run build` again.