{
  "version": "2",
  "generatedAt": "2026-11-03T22:49:39.280Z",
  "listing": {
    "slug": "saleor--saleor",
    "name": "Saleor",
    "tagline": "Headless GraphQL commerce API; the Builder hosts a read-only MCP for products, orders, and customers.",
    "shortTagline": "Headless GraphQL commerce API",
    "description": "API-only commerce core written in Python. Everything (catalog, channels, checkout, orders, promotions) is driven through one GraphQL API; there is no bundled storefront. Saleor publishes saleor-mcp, hosted at mcp.saleor.app, which lets an agent read products, orders, and customers but runs no mutations.",
    "capabilities": [
      "adaptable",
      "operable"
    ],
    "vertical": "ecommerce",
    "alternativeTo": [
      "Shopify",
      "commercetools"
    ],
    "shape": "business-app",
    "formFactor": "api",
    "executionModel": "deterministic",
    "provenance": "human-written",
    "codeStack": {
      "languages": [
        "Python"
      ],
      "frameworks": [
        "Django",
        "GraphQL (Ariadne)"
      ],
      "packageManager": null,
      "database": [
        "PostgreSQL"
      ],
      "hostingTarget": [
        "Docker",
        "Saleor Cloud"
      ]
    },
    "modelStack": null,
    "repos": [
      {
        "url": "https://github.com/saleor/saleor",
        "owner": "saleor",
        "name": "saleor",
        "license": "BSD-3-Clause",
        "stars": 23287,
        "lastCommit": "2026-09-02"
      }
    ],
    "interface": {
      "kind": "mcp",
      "url": "https://mcp.saleor.app/",
      "official": true,
      "hosted": "both"
    },
    "operability": "official",
    "recommendedWrapper": null,
    "reach": [
      {
        "job": "Read products and catalog",
        "reachable": true,
        "evidence": "saleor-mcp README: fetch data about products; token needs MANAGE_PRODUCTS"
      },
      {
        "job": "Read orders",
        "reachable": true,
        "evidence": "saleor-mcp README: fetch data about orders; token needs MANAGE_ORDERS"
      },
      {
        "job": "Read customers",
        "reachable": true,
        "evidence": "saleor-mcp README: fetch data about customers"
      },
      {
        "job": "Create and update products",
        "reachable": false,
        "evidence": "saleor-mcp README: 'The MCP is read-only - it doesn't trigger any mutations'; use the GraphQL API"
      },
      {
        "job": "Fulfil, cancel, or refund orders",
        "reachable": false,
        "evidence": "read-only MCP; GraphQL mutations only"
      },
      {
        "job": "Run a checkout",
        "reachable": false,
        "evidence": "read-only MCP; checkout mutations live in the GraphQL API"
      },
      {
        "job": "Manage promotions and vouchers",
        "reachable": false,
        "evidence": "read-only MCP"
      },
      {
        "job": "Configure channels, warehouses, shipping",
        "reachable": false,
        "evidence": "read-only MCP"
      },
      {
        "job": "Install apps and webhooks",
        "reachable": false,
        "evidence": "read-only MCP"
      }
    ],
    "editions": [
      {
        "name": "Saleor OSS",
        "price": null,
        "open": true,
        "distributions": [
          {
            "kind": "source",
            "url": "https://github.com/saleor/saleor",
            "command": ""
          },
          {
            "kind": "container",
            "url": "https://github.com/saleor/saleor-platform",
            "command": "docker compose up"
          }
        ]
      },
      {
        "name": "Saleor Cloud Sandbox",
        "price": null,
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://cloud.saleor.io/signup",
            "command": ""
          }
        ]
      },
      {
        "name": "Saleor Cloud Select",
        "price": {
          "amount": 1599,
          "currency": "USD",
          "period": "month"
        },
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://saleor.io/pricing",
            "command": ""
          }
        ]
      },
      {
        "name": "Saleor Cloud Volume",
        "price": {
          "amount": 3999,
          "currency": "USD",
          "period": "month"
        },
        "open": false,
        "distributions": [
          {
            "kind": "hosted",
            "url": "https://saleor.io/pricing",
            "command": ""
          }
        ]
      }
    ],
    "skills": {
      "kind": "contributor",
      "paths": [
        ".claude/skills/*/SKILL.md"
      ],
      "install": null,
      "note": "Repo tooling for Saleor contributors: Django migrations, GraphQL API changes, commits, PR checklist."
    },
    "customization": {
      "summary": "Run the core from Docker with .env; the named env vars cover secrets, database/cache/broker URLs, email, and the dashboard origin. Store behavior (channels, pricing, shipping) is configured through the API or dashboard, not files. Adapting to a real shop also means pulling or building a separate storefront, which is why this is not config-only.",
      "envVars": [
        "SECRET_KEY",
        "CACHE_URL",
        "CELERY_BROKER_URL",
        "DASHBOARD_URL",
        "DEFAULT_FROM_EMAIL",
        "EMAIL_URL",
        "HTTP_IP_FILTER_ALLOW_LOOPBACK_IPS"
      ],
      "configFiles": [
        ".env"
      ],
      "promptFiles": [],
      "effort": "light-edit",
      "editCount": 8
    },
    "useWhen": [
      "I want a commerce backend I can talk to only through GraphQL, and I will build or pull my own storefront",
      "my agent needs to read catalog and order data from a Saleor Cloud store without being able to change anything"
    ],
    "accounts": [
      "Saleor Cloud (hosted editions only)"
    ],
    "active": true,
    "lastActivity": "2026-09-02",
    "gotchas": [
      "No storefront in this repo; saleor/storefront is a separate Next.js project",
      "The hosted MCP at mcp.saleor.app only connects to *.saleor.cloud instances; self-hosters run saleor-mcp themselves",
      "The MCP is read-only and needs a token with MANAGE_PRODUCTS and MANAGE_ORDERS"
    ],
    "fit": {
      "adaptable": 2,
      "operable": 2
    },
    "evidence": {
      "formFactor": "README: 'Headless and API only - APIs are the only way to interact'",
      "executionModel": "no model dependency in the core; deterministic commerce engine",
      "operability": "saleor/saleor-mcp under the same GitHub org, hosted at mcp.saleor.app",
      "effort": ".env.example names 7 vars; storefront must be added separately",
      "editions": "saleor.io/pricing: OSS free, Sandbox free non-commercial, Select $1,599/mo, Volume $3,999/mo, Enterprise custom",
      "active": "pushedAt 2026-09-02; saleor-mcp pushed 2026-09-01"
    },
    "confidence": {
      "formFactor": 0.95,
      "executionModel": 0.95,
      "operability": 0.95,
      "effort": 0.7,
      "reach": 0.85,
      "editions": 0.85
    },
    "openQuestions": [
      "Which Saleor Cloud plans include MCP access",
      "Exact tool names exposed by saleor-mcp (README describes scope, not names)"
    ],
    "sources": [
      {
        "url": "https://github.com/saleor/saleor",
        "foundBy": "sourcing:ecommerce:github"
      },
      {
        "url": "https://github.com/saleor/saleor-mcp",
        "foundBy": "sourcing:ecommerce:github"
      },
      {
        "url": "https://saleor.io/pricing",
        "foundBy": "analysis"
      }
    ],
    "research": {
      "stage": "verified",
      "verdict": "unverified",
      "reason": "Official but read-only MCP makes Reach partial; core is real and active; adaptable surface is env-only plus a separate storefront.",
      "disputed": []
    },
    "url": "apps/saleor--saleor.html",
    "coverage": "partial",
    "paid": true,
    "source": "research/verified/saleor--saleor.json"
  }
}
