← Blog

Updates,

Managing Environments as Code with Saleor Configurator

Adrian Pilarczyk

Introducing Saleor Configurator, a CLI that allows you to define and provision entire commerce domains through code.

Saleor Configurator header image

Modern commerce stacks require end-to-end automation. Infrastructure is code, deployments are pipelines, integrations are services—and now the same thinking can extend to provisioning your Saleor environment and shaping your commerce domain model.

That’s the idea behind our new tool, which we want to highlight today: Saleor Configurator.

Commerce as Code enables automation at the commerce layer—from bootstrapping your environment to continuously shaping your entire domain model. Instead of piecing things together step by step, you define your environment once in a configuration file. Version it, share it, and apply it anywhere: local, staging, Cloud.

The Gist

YAML
1# config.yml
2
3channels:
4 - name: Channel EU
5 currencyCode: EUR
6 defaultCountry: DE
7 slug: channel-eu
8 isActive: true
9
10productTypes:
11 - name: T-Shirt
12 isShippingRequired: true
13 productAttributes:
14 - name: Size
15 inputType: DROPDOWN
16 values: [S, M, L, XL]
17 - name: Color
18 inputType: SWATCH
19 values: [Red, Blue, Black]

What you’re looking at is a Saleor environment defined in code through Saleor Configurator. That configuration file describes a channel (Channel EU) and a product type (T-Shirt) with its attributes (Size and Color). A couple lines of YAML config that spares you some minutes spent in Saleor Dashboard.

That doesn’t make the Dashboard a bad experience—it’s simply aimed at a different use case. For staff users managing catalogs and making real-time changes, the Dashboard is the right tool. For developers provisioning environments, Configurator makes more sense.

A Single Source of Truth

Take the T-Shirt example above. Behind those few lines of YAML, Configurator is handling three separate operations for you:

  1. Creating a product type
  2. Creating attributes (Size and Color)
  3. Assigning those attributes to the product type

The Dashboard keeps these steps flexible—you can create attributes independently by hand and reuse them later. Configurator, on the other hand, treats the YAML as a source of truth for your instance. That shift enables workflows that would otherwise require hours of manual setup.

Example Use Case

Take an agency that, after years of working with Saleor, has built its own storefront starter—something that can adapt to the schema of any Saleor instance. Spinning up a new project should be as simple as forking the starter and setting a few environment variables. But there’s still one missing piece: the commerce domain itself.

Product types and their attributes, how products are organized into categories and collections, and all the settings that dependencies expect. Without Configurator, this layer has to be recreated manually and documented as a checklist of steps. Through “Commerce as Code”, it becomes a single configuration file that captures the desired state of the system.

BASH
1$ pnpm dlx @saleor/configurator deploy \
2 --url https://new-client.saleor.cloud/graphql/ \
3 --token $TOKEN \
4 --config client-store.yml
5
6🚀 Saleor Configuration Deploy
7
8⏳ Analyzing configuration differences...
9✔ Configuration comparison completed
10
11📊 Deployment Preview:
12 ✅ 6 items to create
13 ⚠️ 7 items to delete
14
15✔ Created channel: channel-eu
16✔ Created product type: T-Shirt
17✔ Created attributes: Size, Color
18✔ Created category: Apparel
19✔ Created collection: Featured Products
20
21✅ Configuration deployed successfully!

Beyond the Basics

Configurator isn’t just about bootstrapping new projects. Once your environment lives in a configuration file, you can start treating it like any other piece of code. Keep different files as reusable “recipes” for demos or client setups. Manage your config in Git to track changes over time. Drop it into your CI/CD pipeline so every environment stays in sync.

It’s all the same philosophy: a composable commerce platform should be fully automatable, from infrastructure all the way up to the domain model. Configurator is how we’re making that possible.

Call Me Maybe?

Configurator is still early, and we’d love to know how you’d like to use it. Give it a spin with:

BASH
1pnpm dlx @saleor/configurator

and pay the docs a visit for more details.

Afterwards, make sure to join us on Discord in the #configurator channel to share your thoughts, opinions, and even your own config recipes. Seeing how different teams structure their environments will help us understand real-world use cases and guide what we build next.

    Get more useful guides, tech insights, and free learning materials by subscribing to our list.
    All human-written!

    By registering you agree to our Privacy Policy.
    The form is protected by reCAPTCHA - Privacy Policy and Terms of Service.