> ## Documentation Index
> Fetch the complete documentation index at: https://spreecommerce.org/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Spree Fits Your Architecture

> Spree is the commerce layer in the middle of the systems you already run — ERP, PIM, DAM, WMS, PSP, tax engines, search and identity connect through provider contracts, not forks.

Most mid-size and enterprise merchants do not start from zero. They run an ERP that owns stock, a PIM that owns product data, a DAM that owns media, a warehouse system that ships boxes, and a payment provider with years of history. Replacing all of that to adopt a commerce platform is not a migration — it is a rebuild nobody asked for.

Spree takes the opposite position: **it is the system of record for what the shopper sees, and your existing systems stay the system of record for what is true.** Content, prices and stock sync in and render from Spree's own copy; live calls to your systems happen only at decision moments — pricing a line, adding to cart, taking a stock hold, completing an order.

```mermaid theme={"theme":"night-owl"}
flowchart LR
    PIM[PIM] --> S
    ERP[ERP] --> S
    DAM[DAM] --> S
    subgraph S[Spree — commerce layer]
        API[Store & Admin APIs]
    end
    S --> WMS[WMS / carriers]
    S --> PSP[PSP]
    S --> TAX[Tax engine]
    S --> IDP[Identity provider]
    S --> APM[Observability / APM]
```

## The provider contracts

Every connection point is a documented contract with a default implementation that uses Spree's own data — a store that connects nothing works exactly as before.

| Your system | Spree contract | Guide |
| - | - | - |
| ERP (stock levels) | Inventory provider | [Connect your ERP](/docs/developer/providers/erp) |
| PIM (product data, prices) | Pricing provider + data feeds | [Connect your PIM](/docs/developer/providers/pim) |
| DAM (media) | Externally hosted media | [Product media & DAM](/docs/developer/providers/dam) |
| WMS / 3PL / carriers | Fulfillment provider | [Shipping & WMS](/docs/developer/providers/fulfillment) |
| Carrier rate shopping | Delivery rate provider | [Custom delivery rates](/docs/developer/how-to/custom-delivery-rate-provider) |
| PSP | Payment gateway | [Custom payment method](/docs/developer/how-to/custom-payment-method) |
| Seller payouts | Payout provider | [Seller payouts](/docs/developer/providers/payouts) |
| Tax engine | Tax provider | [Avalara](/docs/integrations/tax/avalara) |
| Search | Search provider | [Custom search provider](/docs/developer/how-to/custom-search-provider) |
| Identity provider (SSO) | OpenID Connect | [Identity & SSO](/docs/developer/providers/sso) |
| APM / observability | OpenTelemetry | [Observability](/docs/developer/providers/observability) |

## Credentials live in one place

Provider credentials are managed through Spree integrations — one admin surface for connecting external services, with secrets stored as masked preferences and connections verified before activation. Provider gems ship an integration class; there are no per-provider credential screens or environment-variable contracts for per-store services.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.