Complete e-commerce platform bundle for the Unchained Engine
npm install @unchainedshop/platform

Umbrella package for the Unchained Engine. Provides complete platform setup including database initialization, API server, migrations, templates, and runtime configuration.
``bash`
npm install @unchainedshop/platform
`typescript
import { startPlatform } from '@unchainedshop/platform';
import express from 'express';
const app = express();
const { unchainedAPI, graphqlHandler } = await startPlatform({
express: app,
options: {
// Platform options
},
});
// Platform is ready
app.listen(4010);
`
| Export | Description |
|--------|-------------|
| startPlatform | Initialize complete Unchained platform |runMigrations
| | Run database migrations |printRuntimeConfiguration
| | Log registered templates, events, and adapters |
| Export | Description |
|--------|-------------|
| setAccessToken | Set access token for user session |getAccessToken
| | Get current access token |invalidateAccessToken
| | Invalidate/logout access token |
| Export | Description |
|--------|-------------|
| MessageTypes | Available message/notification types |setupTemplates
| | Register message templates |
| Type | Description |
|------|-------------|
| ACCOUNT_ACTION | Account verification, password reset |DELIVERY
| | Delivery notifications |ORDER_CONFIRMATION
| | Order confirmation emails |ORDER_REJECTION
| | Order rejection notifications |QUOTATION_STATUS
| | Quotation status updates |ENROLLMENT_STATUS
| | Subscription status updates |FORWARD_DELIVERY
| | Forward delivery notifications |
`typescript
import express from 'express';
import { startPlatform, MessageTypes } from '@unchainedshop/platform';
const app = express();
const { unchainedAPI, graphqlHandler } = await startPlatform({
express: app,
options: {
modules: {
// Module-specific configuration
},
plugins: [
// Plugin imports
],
},
workQueueConfig: {
// Worker queue configuration
},
});
// Access unchained API
const products = await unchainedAPI.modules.products.findProducts({});
// Start server
app.use('/graphql', graphqlHandler);
app.listen(4010);
`
`typescript`
const platform = await startPlatform({
express: app,
options: {
modules: {
orders: {
// Order module options
},
products: {
// Product module options
},
},
services: {
// Custom services
},
bulkImporter: {
handlers: {
// Custom import handlers
},
},
},
workQueueConfig: {
batchSize: 10,
pollInterval: 1000,
},
context: (defaultResolver) => async (props, req, res) => {
const context = await defaultResolver(props, req, res);
return {
...context,
// Custom context properties
};
},
});
The startPlatform function returns:
| Property | Description |
|----------|-------------|
| unchainedAPI | Complete Unchained core API instance |graphqlHandler
| | GraphQL Yoga server instance for Express/Fastify |db` | MongoDB database instance |
|
EUPL-1.2