Colissimo
Enable Colissimo shipping with tracking
medusa-colissimo
Colissimo fulfillment provider for MedusaJS v2.
Supported Delivery Options
Option ID Product Code Description Copy to clipboardcolissimo-domicile Copy to clipboardDOM Home delivery Copy to clipboardcolissimo-domicile-signature Copy to clipboardDOS Home delivery with signature Copy to clipboardcolissimo-relay-point Copy to clipboardA2P Relay point delivery Copy to clipboardcolissimo-return Copy to clipboardCORE Return shipment (optional)
Installation
1pnpm add medusa-colissimo
Configuration
Environment Variables
1234567COLISSIMO_CONTRACT_NUMBER=your_contract_numberCOLISSIMO_PASSWORD=your_passwordBUSINESS_NAME="Your Company"BUSINESS_STREET="123 Rue Example"BUSINESS_CITY="Paris"BUSINESS_POSTCODE="75001"
Get your credentials from Colissimo Box.
Medusa Config
1234567891011121314151617181920// medusa-config.tsmodule.exports = defineConfig({// Register plugin for API routes and admin extensionsplugins: [{resolve: "medusa-colissimo",options: {},},],// Register fulfillment providermodules: [{resolve: "@medusajs/medusa/fulfillment",options: {providers: [{resolve: "medusa-colissimo/providers/colissimo",id: "colissimo",options: {contractNumber: process.env.COLISSIMO_CONTRACT_NUMBER,
Admin Widgets
Two widgets are included for the order details page:
Fulfillment Form (sidebar) - Select items, set weight manually if needed, create fulfillment.
Fulfillment Display (after details) - Shows tracking number, delivery type, download/print label buttons.
Manual Weight
Products should have weights defined on their variants (in grams). If not, or if you need to override after weighing the package, check "Saisir le poids manuellement" and enter the weight in grams.
API Endpoints
Widget Token
1GET /store/colissimo/widget-token
Returns a token for the Colissimo frontend widget (valid 30 minutes).
Search Relay Points
1234567POST /store/colissimo/relay-points{"zipCode": "75001","city": "Paris","countryCode": "FR"}
Get Relay Point
1GET /store/colissimo/relay-points/:id?zipCode=75001
Frontend Integration
For relay point delivery, store the selected point ID in the shipping address metadata:
12345678await medusa.carts.update(cartId, {shipping_address: {// ... address fieldsmetadata: {relay_point_id: selectedPoint.id,},},});
Colissimo Widget
You can use the official Colissimo widget for relay point selection:
1234567891011121314151617// Get token from your backendconst { token } = await fetch('/store/colissimo/widget-token').then(r => r.json());// Initialize widget (requires jQuery and Mapbox GL)$('#widget-container').frameColissimoOpen({URLColissimo: 'https://ws.colissimo.fr',callBackFrame: 'onPointSelected',ceCountry: 'FR',ceZipCode: customerZipCode,ceTown: customerCity,token: token});function onPointSelected(point) {// point.identifiant is the relay point ID$('#widget-container').frameColissimoClose();}
Limitations
- Label cancellation is not supported by Colissimo API. Cancel manually in Colissimo Box.
- Max weight: 30kg
- Optimized for France. International shipping may need additional setup.
Development
123pnpm installpnpm buildpnpm test
License
MIT


