Extending Saleor: Core Principles for Scaling Commerce
In today’s commerce landscape, businesses need resilient platforms that can evolve with changing demands. That’s exactly the balance we aimed for when building Saleor. By combining a carefully curated, stable core with powerful extensibility mechanisms, Saleor gives you the freedom to craft commerce solutions tailored to your business.
We build Saleor as a composable system with two requirements in mind:
- Core functionalities are carefully selected and reliable.
- Where those core functionalities end, we give you powerful extensibility mechanisms.
This philosophy stands for two distinct layers in Saleor: the reliable core and the extension framework built around it. The following sections will explore how this structure enables you to adapt Saleor to meet your business needs.
You Don’t Modify Saleor
Everything that follows has to be prefaced by this principle: you don’t modify Saleor Core. It’s meant to be consumed as is, whether through Saleor Cloud or self-hosted. This ensures the platform remains stable, easily upgradable with each new version, and provides a consistent experience for all users. By keeping the core intact, Saleor warrants a universal experience where teams can build common patterns, tools, and integrations without the need to maintain custom modifications.
This architecture has a significant consequence: Saleor can be adopted by teams using any technology. Saleor Core is written in Python, but since you will not be interfacing with it directly but through the GraphQL API, you can stick to your favorite programming language.
GraphQL is a universal API communication protocol, so your technology of choice most likely already has tooling for it. This makes GraphQL the perfect base for type-safe web services.
Apps Meet You Where You Are
Instead of modifying Saleor, you extend it with apps.
The most concise definition of an app is: a client authenticated to perform operations in Saleor. A lean client can be created in the Saleor Dashboard without writing a single line of code. All it takes is specifying the app permissions, the subscribed event, and the URL of a service to which it’s meant to relay data.
Complex use cases, such as integrating with a specific payment provider, require a more sophisticated solution. You need to process the payment data to adhere to the required format before being sent to the gateway. You store the payment details in your own database. Maybe you could use a UI to browse the list of captured transactions?
Saleor apps meet your use case in your tech stack. Either by configuring a simple extension in the Dashboard or building a full-fledged web service using the existing tooling, you can leverage its full capabilities.
Extensibility Starts With Domain Modeling
Standard commerce entities like products, categories, and collections handle the basics, but complex business cases quickly outgrow these simple structures.
Saleor goes a step further by utilizing custom attributes, models and structures to extend the standard product structure. Attributes and variants provide flexibility to products, while models and structures enable the modeling of additional entities and relationships. Together, they give you the tools to represent the full complexity of your business within Saleor.
Because this modeling layer remains native, everything is exposed through Saleor’s GraphQL API – ready to query, filter, and display in your storefront or apps.
Everything is Code
In Saleor, every product, order, and operation is accessible through the API, enabling you to build dynamic, programmable commerce flows. Need to generate personalized product recommendations on the fly? Update pricing based on external data? Or orchestrate custom fulfillment logic? With Saleor's API-first approach, everything is code-driven, making it possible to automate, extend, and customize at any scale.
Saleor doesn’t lock you into a platform. It offers a solid core for universal commerce needs and an open, extensible framework that adapts to your business. By combining data modeling, app-based extensibility, and an API-first foundation, Saleor gives you the freedom to build commerce experiences that are truly your own.