Print Trail fulfilment for Medusa v2: orders sent automatically, stock levels synced and tracking sent back to Medusa.
is a Medusa v2 plugin that connects a Medusa store to the Print Trail API for automated order fulfilment of books and printed products.
Website: printtrail.com. Guide: docs.printtrail.com/integrations/medusa.
The order page: each Print Trail fulfilment with its tracking, and the order's Print Trail timeline.
Settings → Print Trail: the connection and the webhook.
In the store:
There are two blocks because Medusa passes a plugin's options only to the modules inside it, and a fulfilment provider is registered under the Fulfillment Module instead. reads the credentials once, so both blocks get the same values.
Setting replaces Medusa's default list, so keep the manual provider listed or the store's manual shipping options stop working. If the store already has an entry, add the Print Trail provider to it.
The plugin reads the three credentials itself; the other three are the names the config above passes through. Changing any of them later needs a restart.
npx medusa db:migrateThey create the plugin's tables and its link to orders. Then start Medusa, or restart it if it's running, so it reads the variables.
Variants are matched to Print Trail by SKU. Where Print Trail's SKU differs, set it in the Print Trail panel on the variant page.
Before taking live orders, cancel any open test orders (the plugin sends open orders with Print Trail lines from the last 7 days), and switch payments and Print Trail credentials to live together.
Guide: docs.printtrail.com/integrations/medusa, for setting the plugin up and using it day to day.
Reference: docs.printtrail.com/integrations/medusa-reference, for every option, rate cards, pre-orders, notifications, the workflows and hooks, events, jobs, API routes and troubleshooting.
Changelog, with each release's upgrade notes.
Contributing: developing and testing the plugin.
Problems and requests: GitHub issues.
The plugin is licensed under the PolyForm Shield License 1.0.0. The full terms are in , which ships with the package. In short, you can use it for anything except competing with it:
The noncompete makes it a source-available licence, not an open-source one. This is a summary; the terms in decide.
npm install medusa-plugin-print-trail1import { printTrailOptionsFromEnv } from "medusa-plugin-print-trail/config"2
3const printTrail = printTrailOptionsFromEnv()4
5module.exports = defineConfig({6 // …7 plugins: [{8 resolve: "medusa-plugin-print-trail",9 options: {10 ...printTrail,11 backendUrl: process.env.MEDUSA_BACKEND_URL,12 adminUrl: process.env.MEDUSA_ADMIN_URL,13 notifications: { adminEmail: process.env.PRINT_TRAIL_ADMIN_EMAIL },14 },15 }],16 modules: [{17 resolve: "@medusajs/medusa/fulfillment",18 options: {19 providers: [20 { resolve: "@medusajs/medusa/fulfillment-manual", id: "manual" },21 {22 resolve: "medusa-plugin-print-trail/providers/print-trail",23 id: "print-trail",24 options: printTrail,25 },26 ],27 },28 }],29})