Channels
Understanding channel platforms and channels in Openship
Openship uses a two-tier system for connecting to fulfillment providers: Channel Platforms (templates) and Channels (instances). Understanding this distinction is crucial for setting up your fulfillment network correctly.
Channel Platform Architecture
Channel Platform contains all the fulfillment logic and function mappings (createPurchaseFunction, searchProductsFunction, etc.) that define how to interact with the fulfillment provider.
Channel Instances contain only the connection details (domain, accessToken) and reference the platform for all functionality. Multiple channels can use the same platform template.
Channel Platforms vs Channels
Channel Platforms (Templates)
A Channel Platform is a reusable template that defines how Openship integrates with a specific type of fulfillment provider. Think of it as a blueprint or configuration preset for purchase and fulfillment operations.
What Channel Platforms contain:
- Integration function mappings (which code to run for different operations)
- OAuth credentials for app-based installations
- Default settings for the fulfillment provider type
Examples of Channel Platforms:
- Shopify Platform - Template for purchasing from Shopify stores
- 3PL Platform - Template for warehouse/3PL providers
- Supplier Platform - Template for direct supplier integrations
- Demo Platform - Template for testing custom fulfillment integrations
- Custom Platform - Template with HTTP endpoints for custom fulfillment systems
Channels (Instances)
A Channel is an actual connection to a specific fulfillment provider or supplier account. It uses a Channel Platform template but contains the unique credentials and settings for that particular provider.
What Channels contain:
- Reference to which Channel Platform to use
- Provider-specific credentials (domain, access token, API keys)
- Channel name and metadata
- Custom configuration overrides
Examples of Channels:
- "Main Supplier" - Uses Shopify Platform, connects to
supplier.myshopify.com
- "3PL Warehouse" - Uses 3PL Platform, connects to warehouse API
- "Demo Channel" - Uses Demo Platform for testing
How Channels Work
Create Channel Platform (Template)
First, you create a Channel Platform that defines the fulfillment integration method:
Channel Platform: "Shopify Fulfillment Platform"
├── searchProductsFunction: "shopify"
├── getProductFunction: "shopify"
├── createPurchaseFunction: "shopify"
├── createWebhookFunction: "shopify"
└── createTrackingWebhookHandler: "shopify"
All function values point to the built-in Shopify channel integration (/integrations/channel/shopify.ts
).
Create Channels (Instances)
Then, you create individual channels that use this platform:
Channel: "Supplier A" Channel: "Supplier B"
├── Platform: Shopify Platform ├── Platform: Shopify Platform
├── Domain: supplier-a.myshopify.com├── Domain: supplier-b.myshopify.com
├── Access Token: abc123... ├── Access Token: xyz789...
└── Name: "Supplier A" └── Name: "Supplier B"
Both channels use the same integration logic (Shopify Platform) but connect to different suppliers with different credentials.
Function Execution
When Openship needs to create a purchase in "Supplier A":
- Lookup: Find channel's platform → "Shopify Platform"
- Check function:
createPurchaseFunction
= "shopify" - Import: Load
/integrations/channel/shopify.ts
- Execute: Call
createPurchaseFunction()
with channel's credentials - Connect: Make API calls to
supplier-a.myshopify.com
to create purchase order
Platform Types
Built-in Platform Presets
Openship comes with preset templates for popular fulfillment platforms:
- Shopify - Purchase from Shopify stores (dropshipping suppliers)
- BigCommerce - Purchase from BigCommerce stores
- WooCommerce - Purchase from WordPress/WooCommerce suppliers
- Demo - Testing platform with sample fulfillment data
When you select a preset, all function values are automatically filled with the appropriate integration name.
Custom HTTP Platforms
You can also create platforms that use HTTP endpoints instead of built-in integrations:
Channel Platform: "My 3PL Platform"
├── searchProductsFunction: "https://my-3pl.com/api/search-products"
├── getProductFunction: "https://my-3pl.com/api/get-product"
├── createPurchaseFunction: "https://my-3pl.com/api/create-purchase"
└── createWebhookFunction: "https://my-3pl.com/api/create-webhook"
This allows integration with any fulfillment system that can provide HTTP endpoints matching Openship's interface.
Channel Operations
Product Search and Selection
Channels provide products that can be purchased for fulfillment:
- Search Products - Browse available inventory from the fulfillment provider
- Get Product Details - Retrieve pricing, availability, and specifications
- Match Products - Link shop products to channel products for automated purchasing
Purchase Creation
When orders come in from shops, channels handle purchase fulfillment:
- Create Purchase Orders - Automatically place orders with suppliers/3PLs
- Handle Special Requirements - Custom logic for different product types
- Generate Invoices - Create purchase documentation
Tracking and Updates
Channels provide real-time fulfillment updates:
- Webhook Handlers - Receive shipping notifications from providers
- Tracking Updates - Forward tracking information to customers
- Status Changes - Handle cancellations and modifications
Typical Workflow
Step 1: Create Channel Platform
- Go to Channel Platforms page
- Click "Create Platform"
- Choose a preset (Shopify, 3PL, etc.) or create custom
- Configure OAuth credentials (if needed)
- Save the platform template
Step 2: Create Channels
- Go to Channels page
- Select your Channel Platform
- Click "Create Channel"
- Enter channel-specific details:
- Channel name
- Provider domain/endpoint
- Access credentials
- Save the channel instance
Step 3: Product Matching
- Go to Matches page
- Select shop products to fulfill
- Search channel products for fulfillment options
- Create matches linking shop products to channel products
Step 4: Automation
Now your channels can automatically:
- Receive orders from matched shop products
- Create purchases with the fulfillment provider
- Update tracking when items ship
- Handle cancellations and modifications
Benefits of This System
Reusability
Create one Shopify channel platform, use it for multiple suppliers without reconfiguring integration settings.
Flexibility
Mix built-in integrations with custom HTTP endpoints. Use Shopify for some suppliers, custom APIs for 3PLs.
Maintainability
Update integration logic in the platform template, and all channels using that platform inherit the changes.
Testing
Use demo platforms for testing fulfillment workflows without affecting real suppliers.
Scalability
Easily add new fulfillment providers by creating new channel platforms and instances.
Getting Started
For Built-in Platforms
- Create a platform using a preset (e.g., "Shopify Platform")
- Connect channels to that platform with supplier credentials
- Start matching products and enabling automation
For Custom Integrations
- Deploy HTTP endpoints following our custom channel guide
- Create a custom platform pointing to your endpoints
- Connect channels using your custom platform
- Test the integration with our demo endpoints first
For Testing
- Create a "Demo Platform" using the demo preset
- Add demo channels with sample test data
- Practice workflows before connecting real suppliers
Working with 3PLs
- Understand your 3PL's API capabilities
- Create custom HTTP platform matching their interface
- Set up webhook endpoints for tracking updates
- Test purchase creation and tracking flows
Dropshipping Setup
- Use Shopify platform for supplier stores
- Create channels for each supplier
- Match your shop products to supplier products
- Enable automatic purchase creation
The channel platform system gives you maximum flexibility in building your fulfillment network. Whether you're working with a single supplier or managing complex 3PL relationships, the platform-first approach scales with your business needs.