Skip to content

Open-source Order Management System for e-commerce

License

Notifications You must be signed in to change notification settings

openoms-org/openoms

Repository files navigation

OpenOMS

License: ELv2 Go Build Discord

Open-source Order Management System for e-commerce.

OpenOMS is a self-hostable, multi-tenant OMS with 430 API endpoints, 124 dashboard pages, and integrations with 8 marketplaces and 8 carriers. Built with Go and Next.js, designed for teams that need full control over their order operations.

Status: Active Development — Looking for beta testers! Join our Discord


Features

Order Management

  • Custom order statuses, custom fields, and tags
  • Order merge and split
  • Kanban board view
  • Barcode scanning (packing station)
  • Automation rules engine (trigger, conditions, actions)
  • Print templates (orders, invoices, shipping labels)
  • CSV import/export
  • Action delays (scheduled automation)

Products and Inventory

  • Product variants and bundles
  • B2B pricing tiers
  • Multi-warehouse stock management
  • Warehouse documents (PZ/WZ/MM)
  • Stocktaking (inventory counts)
  • Product CSV import with preview
  • Product categories with color badges

Marketplace Integrations (8)

Integration Description Status
Allegro OAuth2, full offer management, listing creation, "Wysylam z Allegro" shipments Verified
Amazon SP-API Orders and catalog sync In Development
WooCommerce Bidirectional order and product sync In Development
eBay Order import and listing management In Development
Kaufland Marketplace integration In Development
OLX Listing and order management In Development
Mirakl / Empik Marketplace connector In Development
Erli Polish marketplace integration In Development

Carrier Integrations (8)

Integration Description Status
InPost Paczkomaty (parcel lockers) + courier + webhooks + dispatch orders Verified
DHL Domestic and international shipping In Development
DPD Parcel shipping In Development
GLS Parcel shipping In Development
UPS Domestic and international shipping In Development
Poczta Polska National postal service In Development
Orlen Paczka Parcel lockers In Development
FedEx International shipping In Development

Carrier rate shopping across all providers.

Other Integrations

Integration Description Status
Fakturownia Invoice generation In Development
KSeF Polish national e-invoicing system In Development
Mailchimp Marketing automation In Development
Freshdesk Helpdesk tickets In Development
SMSAPI / Twilio SMS notifications In Development
OpenAI AI product categorization and descriptions Verified
NBP Exchange rates (multi-currency support) Verified

Platform

  • Multi-tenant SaaS with PostgreSQL Row-Level Security
  • 430 REST API endpoints with OpenAPI 3.1 spec (Swagger UI)
  • 124 dashboard pages with dark mode, PWA support, keyboard shortcuts
  • RBAC with custom roles
  • 2FA / TOTP authentication
  • WebSocket real-time updates
  • Outgoing webhooks (HMAC-SHA256 signed)
  • Audit log
  • Self-service returns portal
  • Multi-currency with NBP exchange rates
  • Customer management (CRM)
  • Prometheus metrics (Bearer token auth)
  • Security headers (CSP, X-Frame-Options, HSTS, Referrer-Policy)
  • Kubernetes secrets encryption at rest, audit logging

Tech Stack

Layer Technology
Backend Go 1.25, chi/v5 router, pgx/v5
Frontend Next.js 16, React 19, TypeScript
Styling Tailwind CSS v4, shadcn/ui
State / Data Zustand, React Query, Zod v4
Charts Recharts
Database PostgreSQL 16 (Row-Level Security)
Cache / Queue Redis 7, asynq
Auth Ed25519 JWT, bcrypt, TOTP
API Spec OpenAPI 3.1, Swagger UI
E2E Tests Playwright (21 specs, 119 tests)
CI/CD GitHub Actions (lint, test, security scan, auto-format, Trivy)
Deployment Docker Compose (dev + prod), Helm chart (k3s/k8s)
Monitoring Prometheus metrics (token-protected)

Codebase at a Glance

Metric Count
Go source files 536 (81 test files)
TypeScript / TSX files 308
SQL migrations 64 (128 up/down files)
API endpoints 430
Dashboard pages 124
React components 91
Custom hooks 69
Handlers / Services / Repos 80 / 57 / 40
Background workers 19
Middleware 12
SDK packages 26

Quick Start (Development)

Prerequisites: Go 1.25+, Node.js 22+, Docker, Task

# 1. Clone
git clone https://github.com/openoms-org/openoms.git
cd openoms

# 2. Configure environment
cp .env.example .env

# 3. Start infrastructure, run migrations, seed data
task setup

# 4. Start the API server (port 8080)
task run

# 5. In a second terminal -- start the dashboard (port 3000)
task dev

Verify the API is running:

curl http://localhost:8080/health

Development Commands

task setup       # Full setup: containers + migrations + seed
task up          # Start PostgreSQL + Redis containers
task down        # Stop containers
task run         # Start API server (port 8080)
task dashboard   # Start dashboard dev server (port 3000)
task dev         # Start API server + dashboard in parallel
task migrate     # Run database migrations
task seed        # Load test data
task test        # Run all tests (race detection + coverage)
task lint        # Run golangci-lint on all modules
task fmt         # Format all Go source files
task clean       # Stop containers and remove volumes

Repository Structure

openoms/
├── apps/
│   ├── api-server/              # Go backend (ELv2)
│   │   ├── cmd/server/          # Entrypoint
│   │   ├── internal/            # Handlers, services, repositories, workers
│   │   └── migrations/          # 64 migrations (128 SQL files)
│   └── dashboard/               # Next.js frontend (ELv2)
│       └── src/
├── packages/                    # 26 standalone SDK libraries (MIT)
├── deploy/
│   └── helm/openoms/          # Helm chart for k3s/k8s
├── docs/
│   └── system-documentation.md
├── docker-compose.dev.yml
├── docker-compose.prod.yml
├── Taskfile.yml
├── .github/workflows/
│   ├── ci.yml                 # Lint, test, security scan, auto-format
│   └── release.yml            # CI/CD workflow that builds Docker images
└── .env.example

SDK Packages

All packages are independently usable Go libraries, licensed under MIT.

Package Wraps
allegro-go-sdk Allegro REST API (OAuth2, offers, orders, deliveries)
amazon-sp-sdk Amazon Selling Partner API
woocommerce-go-sdk WooCommerce REST API
ebay-go-sdk eBay Browse / Sell APIs
kaufland-go-sdk Kaufland Marketplace API
olx-go-sdk OLX Partner API
mirakl-go-sdk Mirakl Marketplace Platform API
erli-go-sdk Erli Marketplace API
inpost-go-sdk InPost ShipX API (shipments, points, tracking)
dhl-go-sdk DHL Parcel API
dpd-go-sdk DPD Web Services
gls-go-sdk GLS Web API
ups-go-sdk UPS Shipping / Tracking APIs
poczta-polska-go-sdk Poczta Polska e-Nadawca API
orlen-paczka-go-sdk Orlen Paczka API
fedex-go-sdk FedEx Ship / Track APIs
fakturownia-go-sdk Fakturownia Invoicing API
ksef-go-sdk KSeF (Polish National e-Invoicing System)
smsapi-go-sdk SMSAPI SMS Gateway
order-engine Order state machine and domain events
iof-parser IOF product feed parser

Documentation

Full system documentation is available at docs/system-documentation.md.

The API server exposes an interactive OpenAPI 3.1 specification via Swagger UI at /swagger/ when running.


Deployment

Docker Compose (Production)

cp .env.example .env
# Edit .env with production values (strong secrets, real credentials)

docker-compose -f docker-compose.prod.yml up -d --build

The production compose file includes PostgreSQL, Redis, automatic database migrations, the API server, and the Next.js dashboard. All services include health checks and restart policies.

Kubernetes (Helm)

A Helm chart is provided for k3s/k8s deployments:

helm upgrade --install openoms deploy/helm/openoms \
  -n openoms \
  --set apiServer.image.tag=latest \
  --set dashboard.image.tag=latest \
  --set migration.image.tag=latest

The CI/CD pipeline (.github/workflows/release.yml) builds Docker images, scans them with Trivy, and deploys to k3s via Helm on push to main.

Infrastructure Requirements

  • PostgreSQL 16+
  • Redis 7+
  • Reverse proxy (nginx / Caddy / Traefik / ingress-nginx) for TLS termination

The Docker images are stateless and can be deployed behind a load balancer or on single-node setups like k3s.


Roadmap

Done

  • Allegro integration (OAuth2, offers, orders, "Wysylam z Allegro" shipments)
  • InPost integration (Paczkomaty, courier, label generation, tracking, webhooks)
  • Dashboard with Kanban board, dark mode, and PWA support
  • Order, product, and customer management
  • Automation rules engine (triggers, conditions, actions, delays)
  • Packing station with barcode scanner
  • Reports and CSV export
  • 2FA/TOTP, RBAC with custom roles

In Progress (code written, needs production testing)

  • 7 additional carriers (DHL, DPD, GLS, UPS, Poczta Polska, Orlen Paczka, FedEx)
  • 10 marketplaces (Amazon, eBay, WooCommerce, Kaufland, OLX, Empik, Erli, Shoper, PrestaShop, Shopify)
  • Repricing engine (4 pricing strategies)
  • Multi-warehouse with PZ/WZ/MM documents
  • Invoicing (Fakturownia, inFakt, wFirma) + KSeF e-invoicing
  • Product variants and bundles
  • Multi-currency (NBP exchange rates)

Planned

  • Public SaaS (hosted version)
  • Mobile application
  • Plugin/extension marketplace
  • Customer self-service portal

Community

We're looking for beta testers — Polish e-commerce sellers who want to try OpenOMS on real orders. Join Discord for details.


Contributing

Contributions are welcome. See CONTRIBUTING.md for full details.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Run tests (task test) and linting (task lint)
  4. Open a pull request against main

Please open an issue first for large changes or new features.


CI/CD

This project uses a two-repository deployment model:

  • Public repo (openoms-org/openoms): Builds Docker images on every push to main, pushes to GHCR, runs Trivy security scans
  • Enterprise repo (private): Deploys to production via Helm with environment-specific values overlay

Docker images are public on GHCR:

  • ghcr.io/openoms-org/openoms-api
  • ghcr.io/openoms-org/openoms-dashboard
  • ghcr.io/openoms-org/openoms-migrate

License


Built in Poland. Open by default.

About

Open-source Order Management System for e-commerce

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors