Skip to content

Commit

Permalink
Merge branch 'saleor:main' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
iamleson98 authored Apr 20, 2024
2 parents 0ee7d82 + d3fa53c commit 57a2784
Show file tree
Hide file tree
Showing 186 changed files with 9,516 additions and 2,331 deletions.
2 changes: 1 addition & 1 deletion .devcontainer/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ services:
build:
context: ..
dockerfile: .devcontainer/Dockerfile
command: /bin/sh -c "while sleep 1000; do :; done"
command: sleep infinity
env_file:
- common.env
- backend.env
Expand Down
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ repos:
exclude_types: [svg]

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.3.3
rev: v0.3.4
hooks:
- id: ruff
- id: ruff-format
Expand All @@ -24,12 +24,12 @@ repos:
exclude: tests/

- repo: https://github.com/fpgmaas/deptry.git
rev: "0.14.0"
rev: "0.15.0"
hooks:
- id: deptry

- repo: https://github.com/returntocorp/semgrep
rev: v1.64.0
rev: v1.66.2
hooks:
- id: semgrep
language_version: python3.9
Expand Down
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,18 @@ All notable, unreleased changes to this project will be documented in this file.
### Breaking changes

### GraphQL API

- Add `translatableContent` to all translation types; add translated object id to all translatable content types - #15617 by @zedzior
- Add a `taxConfiguration` to a `Channel` - #15610 by @Air-t
- Deprecate the `taxTypes` query - #15802 by @maarcingebala

### Saleor Apps

### Other changes
- Remove `prefetched_for_webhook` to legacy payload generators - #15369 by @AjmalPonneth
- Don't raise InsufficientStock for track_inventory=False variants #15475 by @carlosa54
- DB performance improvements in attribute dataloaders - #15474 by @AjmalPonneth
- Calculate order promotions in draft orders - #15459 by @zedzior
- Prevent name overwriting of Product Variants when Updating Product Types - #15670 by @teddyondieki

# 3.19.0

Expand Down Expand Up @@ -57,6 +60,7 @@ All notable, unreleased changes to this project will be documented in this file.
- Added new input `AppInput.identifier`.
- Added new parameter `identifier` for `create_app` command.
- When `taxAppId` is provided for `TaxConfiguration` do not allow to finalize `checkoutComplete` or `draftOrderComplete` mutations if Tax App or Avatax plugin didn't respond.
- Add `unique_type` to `OrderLineDiscount` and `CheckoutLineDiscount` models - #15774 by @zedzior

# 3.18.0

Expand Down
73 changes: 46 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@
</div>

<div align="center">
<strong>Customer-centric e-commerce on a modern stack</strong>
<strong>Commerce that works with your language and stack</strong>
</div>

<div align="center">
A headless, GraphQL commerce platform delivering ultra-fast, dynamic, personalized shopping experiences.<br/>Beautiful online stores, anywhere, on any device.
GraphQL native, API-only platform for scalable composable commerce.
</div>

<br>

<div align="center">
Join our active, engaged community: <br>
Join our community: <br>
<a href="https://saleor.io/">Website</a>
<span> | </span>
<a href="https://twitter.com/getsaleor">Twitter</a>
Expand All @@ -29,7 +29,7 @@
</div>

<div align="center">
<a href="https://saleor.io/blog/">Blog</a>
<a href="https://saleor.io/blog">Blog</a>
<span> | </span>
<a href="https://saleor.typeform.com/to/JTJK0Nou">Subscribe to newsletter</a>
</div>
Expand Down Expand Up @@ -60,29 +60,55 @@

## What makes Saleor special?

Saleor is a rapidly-growing open-source e-commerce platform that serves high-volume companies. Designed from the ground up to be extensible, headless, and composable.
- **Technology-agnostic** - no monolithic plugin architecture or technology lock-in.

Learn more about [architecture](https://docs.saleor.io/docs/3.x/overview/architecture).
- **GraphQL only** - Not afterthought API design or fragmentation across different styles of API.

## Features
- **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/docs/3.x/developer/channels) 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/docs/3.x/developer/extending/webhooks/overview), attributes, [metadata](https://docs.saleor.io/docs/3.x/api-usage/metadata), [apps](https://docs.saleor.io/docs/3.x/developer/extending/apps/overview), [subscription queries](https://docs.saleor.io/docs/3.x/developer/extending/webhooks/subscription-webhook-payloads), [API extensions](https://docs.saleor.io/docs/3.x/developer/extending/webhooks/synchronous-events/overview), [dashboard iframes](https://docs.saleor.io/docs/3.x/developer/extending/apps/overview).

Compared to traditional plugin architectures (monoliths) it provides the following benefits:

- **Headless / API first**: Build mobile apps, custom storefronts, POS, automation, etc
- **Extensible**: Build anything with webhooks, apps, metadata, and attributes
- [**App Store**](https://github.com/saleor/apps): Leverage a collection of built-in integrations
- **GraphQL API**: Get many resources in a single request and [more](https://graphql.org/)
- **Multichannel**: Per channel control of pricing, currencies, stock, product, and more
* 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
- **CMS**: Content is king, that's why we have a kingdom built-in
- **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!
- **Orders**: A comprehensive system for orders, dispatch, and refunds
- **Cart**: Advanced payment and tax options, with full control over discounts and promotions
- **Payments**: Flexible API architecture allows integration of any payment method
- **SEO**: Packed with features that get stores to a wider audience
- **Cloud**: Optimized for deployments using Docker
- **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 is free and always will be.
Help us out… If you love free stuff and great software, give us a star! 🌟

![Saleor Dashboard - Modern UI for managing your e-commerce](https://user-images.githubusercontent.com/9268745/224249510-d3c7658e-6d5c-42c5-b4fb-93eaf65a5335.png)

Expand Down Expand Up @@ -146,13 +172,6 @@ If nothing grabs your attention, check [our roadmap](https://github.com/orgs/sal

Get more details in our [Contributing Guide](https://docs.saleor.io/docs/developer/community/contributing).

## Your feedback

Do you use Saleor as an e-commerce platform?
Fill out this short survey and help us grow. It will take just a minute, but means a lot!

[Take a survey](https://mirumee.typeform.com/to/sOIJbJ)

## 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/master/LICENSE). There are no hidden charges. We promise to do our best to fix bugs and improve the code.
Expand Down
Loading

0 comments on commit 57a2784

Please sign in to comment.