# Install this plugin
npm install @pinelab/vendure-plugin-shipmate
Vendure Shipmate Plugin
Create shipments in Shipmate on every order placed, to automate your order fulfillment process.
Getting started
- Add the plugin to your
vendure-config.ts
import { ShipmatePlugin } from '@pinelab/vendure-plugin-shipmate';
...
plugins: [
ShipmatePlugin.init({
apiUrl: 'https://api.shipmate.co.uk/v1.2', // Or https://api-staging.shipmate.co.uk/v1.2 for the testing environment
shouldSendOrder: function ( ctx: RequestContext, order: Order): Promise<boolean> | boolean {
// Sample implementation that only sends orders with less than 5 items to Shipmate
return order.totalQuantity < 5;
}
}),
AdminUiPlugin.init({
port: 3002,
route: 'admin',
app: compileUiExtensions({
outputPath: path.join(__dirname, '__admin-ui'),
extensions: [
ShipmatePlugin.ui
... // your other plugin UI extensions
],
}),
}),
... // your other plugins
]
- Compile the admin UI to include the Shipmate configuration page
- Log in to your Shipmate account.
- Note down your API key from Profile > Settings > API Keys
- Create two webhooks. One with trigger
Tracking Status updates to Collected
and one withTracking Status updates to Delivered
, pointing to urlhttps://<your Vendure server>/shipmate
. SetJSON
as format. This will make sure your Vendure Order is synced when the shipment is being Shipped or Delivered. - Start Vendure, log in, and navigate to Settings > Shipmate
- Fill in your API Key, username and password. The plugin will authenticate as the given user when creating shipments.
- Fill in both Auth tokens from the created webhooks that were created in Shipmate. You can find it on the webhook detail screen. The plugin uses this token to validate if incoming events are really from Shipmate.
- Click 'Save'
Test the plugin
- Place a test order.