multi-channel fulfillment at scale
See the codeOpenship is an order router that connects the places where you're selling to the places where you're fulfilling. It automatically routes orders from your sales channels to your fulfillment partners, giving you complete control over your order flow.
| Dashboard | os.openship.org |
| User | os@openship.org |
| Password | k54f5JaPI1gXze9IWD0%f!Sg@YQ*@ACyBv2 |
Openship is part of a suite of open-source tools designed to provide a modern, flexible alternatives to proprietary commerce platforms like Shopify, Toast, MindBody, etc.
Our vision is to build a modular, high-performance commerce infrastructure that gives businesses complete ownership of their data and customer experience.
Shops represent your online stores where your customers place orders (e.g. Shopify, WooCommerce, eBay, Amazon). Once connected, new orders can be routed to Openship to be fulfilled.
Channels represent destinations where your orders can be routed and fulfilled. A channel could be an existing platform like your supplier's Shopify shop or a 3PL fulfillment service. It could also be something very simple like adding a row to a Google Sheet or sending an email with the order details.
Links represent a connection between a shop and a channel. Once linked, new shop orders are forwarded to the linked channel for fulfillment.
For finer control over the fulfillment process, matches can be created on the product level. Matches represent a connection between your shop products and your channel products. When a match is created between a shop product and channel product, Openship will automatically process that order.
openship/
├── app/ # Next.js App Router
│ ├── dashboard/ # Admin interface
│ ├── (storefront)/ # Customer-facing pages
│ └── api/ # API endpoints and webhooks
├── features/
│ ├── keystone/ # Backend models and GraphQL schema
│ ├── platform/ # Admin platform components
│ ├── storefront/ # Frontend components and screens
│ └── integrations/ # Shop and channel integrations
└── components/ # Shared UI components
Clone and install dependencies:
git clone https://github.com/openship-org/openship.git
cd openship
npm install
Configure environment variables:
cp .env.example .env
Update .env with your configuration:
# Required - Database Connection
DATABASE_URL="postgresql://username:password@localhost:5432/openship"
# Required - Session Security (must be at least 32 characters)
SESSION_SECRET="your-very-long-session-secret-key-here-32-chars-minimum"
# Optional - SMTP configuration for email notifications
SMTP_FROM="no-reply@yourdomain.com"
SMTP_HOST="your-smtp-host"
SMTP_PASSWORD="your-smtp-password"
SMTP_PORT="587"
SMTP_USER="your-smtp-user"
# Optional - Shop Integrations
SHOPIFY_APP_KEY="your-shopify-app-key"
SHOPIFY_APP_SECRET="your-shopify-app-secret"
# Optional - Channel Integrations
SHIPPO_API_KEY="shippo_test_..."
Start development server:
npm run dev
This will:
Access the application:
Create your first admin user:
On first visit to the dashboard, you'll be prompted to create an admin user account at /init
Connect your first shop and channel: After creating your admin account, start by connecting a shop (where orders come from) and a channel (where orders are fulfilled)
npm run dev - Build Keystone + migrate + start Next.js dev servernpm run build - Build Keystone + migrate + build Next.js for productionnpm run migrate:gen - Generate and apply new database migrationsnpm run migrate - Deploy existing migrations to databasenpm run lint - Run ESLintFor comprehensive technical documentation, see docs.openship.org/docs/openship/ecommerce which covers:
Openship is production-ready and can be deployed to:
We welcome contributions! Please see our contributing guidelines for details on:
Built on top of next-keystone-starter
692 followers · starred Sep 2022
259 followers · starred Sep 2022
343 followers · starred Sep 2022
397 followers · starred Sep 2022
multi-channel fulfillment at scale
See the codeOpenship is an order router that connects the places where you're selling to the places where you're fulfilling. It automatically routes orders from your sales channels to your fulfillment partners, giving you complete control over your order flow.
| Dashboard | os.openship.org |
| User | os@openship.org |
| Password | k54f5JaPI1gXze9IWD0%f!Sg@YQ*@ACyBv2 |
Openship is part of a suite of open-source tools designed to provide a modern, flexible alternatives to proprietary commerce platforms like Shopify, Toast, MindBody, etc.
Our vision is to build a modular, high-performance commerce infrastructure that gives businesses complete ownership of their data and customer experience.
Shops represent your online stores where your customers place orders (e.g. Shopify, WooCommerce, eBay, Amazon). Once connected, new orders can be routed to Openship to be fulfilled.
Channels represent destinations where your orders can be routed and fulfilled. A channel could be an existing platform like your supplier's Shopify shop or a 3PL fulfillment service. It could also be something very simple like adding a row to a Google Sheet or sending an email with the order details.
Links represent a connection between a shop and a channel. Once linked, new shop orders are forwarded to the linked channel for fulfillment.
For finer control over the fulfillment process, matches can be created on the product level. Matches represent a connection between your shop products and your channel products. When a match is created between a shop product and channel product, Openship will automatically process that order.
openship/
├── app/ # Next.js App Router
│ ├── dashboard/ # Admin interface
│ ├── (storefront)/ # Customer-facing pages
│ └── api/ # API endpoints and webhooks
├── features/
│ ├── keystone/ # Backend models and GraphQL schema
│ ├── platform/ # Admin platform components
│ ├── storefront/ # Frontend components and screens
│ └── integrations/ # Shop and channel integrations
└── components/ # Shared UI components
Clone and install dependencies:
git clone https://github.com/openship-org/openship.git
cd openship
npm install
Configure environment variables:
cp .env.example .env
Update .env with your configuration:
# Required - Database Connection
DATABASE_URL="postgresql://username:password@localhost:5432/openship"
# Required - Session Security (must be at least 32 characters)
SESSION_SECRET="your-very-long-session-secret-key-here-32-chars-minimum"
# Optional - SMTP configuration for email notifications
SMTP_FROM="no-reply@yourdomain.com"
SMTP_HOST="your-smtp-host"
SMTP_PASSWORD="your-smtp-password"
SMTP_PORT="587"
SMTP_USER="your-smtp-user"
# Optional - Shop Integrations
SHOPIFY_APP_KEY="your-shopify-app-key"
SHOPIFY_APP_SECRET="your-shopify-app-secret"
# Optional - Channel Integrations
SHIPPO_API_KEY="shippo_test_..."
Start development server:
npm run dev
This will:
Access the application:
Create your first admin user:
On first visit to the dashboard, you'll be prompted to create an admin user account at /init
Connect your first shop and channel: After creating your admin account, start by connecting a shop (where orders come from) and a channel (where orders are fulfilled)
npm run dev - Build Keystone + migrate + start Next.js dev servernpm run build - Build Keystone + migrate + build Next.js for productionnpm run migrate:gen - Generate and apply new database migrationsnpm run migrate - Deploy existing migrations to databasenpm run lint - Run ESLintFor comprehensive technical documentation, see docs.openship.org/docs/openship/ecommerce which covers:
Openship is production-ready and can be deployed to:
We welcome contributions! Please see our contributing guidelines for details on:
Built on top of next-keystone-starter
692 followers · starred Sep 2022
259 followers · starred Sep 2022
343 followers · starred Sep 2022
397 followers · starred Sep 2022