Openship order routing

Shop, channel, product-match, order, and fulfillment coordination from source you control.

Source · Getting started

Openship connects the places where orders originate with the places that fulfill them. A shop is an order source. A channel is a fulfillment destination. Links connect shops to channels, and matches map a shop item to a channel item before an order is placed downstream.

The repository contains shop-to-channel routing and Shopify/Openfront adapters.

Architecture and data

Openship uses the same Next.js, Keystone, GraphQL, Prisma and PostgreSQL application base as Openfront. Its active graph is smaller and routing-specific: users/roles/API keys, shop and channel platforms, shops and channels, orders/line/cart items, shop/channel items, matches, links and tracking details. Ownership is directly User-scoped; there is no organization or workspace tenant graph.

Provider-specific behavior belongs behind shop and channel platform handlers. Openship stores its routing and match state; connected commerce or fulfillment platforms remain authoritative for their own products, orders and tracking records.

Main workflow

  1. Configure a shop platform and shop with scoped credentials.
  2. Configure a channel platform and fulfillment channel.
  3. Link the shop to the channel.
  4. Search both product catalogs and create a match.
  5. Import or select a shop order.
  6. Convert matched lines into channel purchases.
  7. record tracking, cancellation, fulfillment or error state from the channel boundary.

Idempotency, signature verification, credential isolation, retries and reconciliation need to be proved for each adapter.

Routing at a glance

Bike Central#BC-24592
Water BottleSKU: 52139803
Bike PumpSKU: 72384762
Supplier #1#VB-30134
Water BottleSKU: 81310291
Supplier #2#TS-72139
Bike PumpSKU: 92346793

Shops

A Shop is one user-owned order source. Its ShopPlatform selects product, order, update, and webhook handlers. The shop holds connection-specific identity and credentials.

Bike Central#BC-24592
Water BottleSKU: 52139803
Bike PumpSKU: 72384762

See Shops for the current adapter and credential limitations.

Channels

A Channel is one user-owned fulfillment destination. Its ChannelPlatform selects catalog, purchase, cancellation, webhook, and tracking handlers. Creating a Channel row does not establish a working provider connection.

Supplier #1#VB-30134
Water BottleSKU: 81310291
Supplier #2#TS-72139
Bike PumpSKU: 92346793
Warehouse #1#WH1-42352
Road BikeSKU: 32432943
TiresSKU: 93443781

See Channels for compiled adapters, custom execution, and reconciliation requirements.

A Link connects one owned shop to one owned channel and supplies the routing relationship used for order work.

Bike Central#BC-24591
Road BikeSKU: 32432943
TiresSKU: 93443781
Warehouse #1#WH1-42352
Road BikeSKU: 32432943
TiresSKU: 93443781

Matches

A Match maps one exact shop product/variant to one exact channel product/variant. Routing uses that mapping to decide which destination item can fulfill a source line. Operators can replace a match without changing the source catalog, but historical order/purchase identities should not drift when the current mapping changes.

Bike Central#BC-24592
Water BottleSKU: 52139803
Bike PumpSKU: 72384762
Supplier #1#VB-30134
Water BottleSKU: 81310291
Supplier #2#TS-72139
Bike PumpSKU: 92346793

Openfront relationship

Openfront products can be shop sources for Openship, but Openship is not the Openfront storefront or payment system. It coordinates order routing across independently operated systems.

On this page