Skip to main content
← Back to plugins
Shipmate

Shipmate

Synchronize orders with the Shipmate platform

Version1.6.0
Compatibility>=2.2.0
CategoryShipping
Last updatedFeb 5, 2026

Official documentation here

Create shipments in Shipmate on every order placed, to automate your order fulfillment process.

Getting started

  1. Add the plugin to your vendure-config.ts
Ts
  1. Compile the admin UI to include the Shipmate configuration page
  2. Log in to your Shipmate account.
  3. Note down your API key from Profile > Settings > API Keys
  4. Create two webhooks. One with trigger Tracking Status updates to Collected and one with Tracking Status updates to Delivered, pointing to url https://<your Vendure server>/shipmate. Set JSON as format. This will make sure your Vendure Order is synced when the shipment is being Shipped or Delivered.
  5. Start Vendure, log in, and navigate to Settings > Shipmate
  6. Fill in your API Key, username and password. The plugin will authenticate as the given user when creating shipments.
  7. 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.
  8. Click 'Save'

Test the plugin

  1. Place a test order.
Changelog
  • Upgraded to Vendure 3.5.3
  • Documentation update
  • Updated official documentation URL
  • Upgrade to Vendure to 3.3.2
  • Update Vendure to 3.1.1
  • Include catch-unknown dependency
  • Hydrate sensible relations before passing order into shouldSendOrder
  • Add ShipmatePluginConfig.shouldSendOrder (#498)
  • Don't throw erros from /shipmate endpoint (#509)
  • Divide by 100 when passing OrderLine.proratedUnitPriceWithTax to Items.item_value
  • Log warning when failed to cancel a shipment in Shipmate
  • Update compatibility range (#480)
  • Slice all string fields in Shipmate payload to 40 characters
  • Cancel and Recreate Shipment when Order is modified
  • Updated Vendure to 2.2.6
  • Don't throw errors when an order doesn't exist, but log and return. This can happen because shipments are also manually created in Shipmate.
  • Removed unused @Index(), because a unique constraint was already present
  • Removed unused custom field order.shipmateReference
  • Exporting plugin, services and entities in the main package
  • Correctly copy admin UI files to dist
  • Initial setup of the plugin.