Ce que l'API Purolator vous donne vraiment
Purolator est le transporteur strictement canadien qui concurrence Postes Canada pour le volume terrestre domestique. Si vous expédiez à l'intérieur du Canada, palettes B2B, colis B2C, ou tout entre les deux, Purolator est sur votre shortlist. L'API Purolator est la façon dont votre ERP parle à ce transporteur sans que personne re-saisisse une expédition dans le portail web de Purolator.
L'API expose quatre opérations qui comptent pour Odoo : devis tarifaires (combien coûtera cette expédition ?), création d'étiquette (donne-moi un PDF de l'étiquette et le numéro de suivi), planification de collecte (envoie un chauffeur à mon entrepôt demain à 14 h) et requêtes de suivi (où est l'expédition 329028123 maintenant ?). Toutes les quatre sont des endpoints SOAP sous Shipping Web Services v1 hérité, avec des équivalents REST en déploiement depuis 2024 pour Estimate et Ship.
Ce guide est écrit par Octura Solutions, partenaire Officiel Odoo Ready qui a livré des intégrations Purolator pour des grossistes, manufacturiers et marques DTC canadiens sur Odoo 15 à 19. Les patrons ci-dessous proviennent de ces déploiements, pas des exemples du portail développeur Purolator (corrects mais spartiates et qui ne disent pas ce qu'il faut câbler côté Odoo).
Pourquoi intégrer Purolator dans Odoo (et pas juste imprimer manuellement)
Les petits expéditeurs peuvent survivre avec le portail web de Purolator : se connecter, taper la destination, cliquer "créer étiquette", imprimer, expédier, terminé. Ça casse à trois seuils :
- 20 expéditions par jour. Re-saisir chaque commande prend environ 3 minutes par étiquette en incluant le copier-coller de l'adresse, soit une heure de travail pleine par jour brûlée. À ce stade, une intégration API ponctuelle se rembourse en trois semaines de coût de main-d'œuvre.
- Rate shopping multi-transporteurs. À la minute où vous voulez "le moins cher entre Purolator / FedEx / UPS pour chaque expédition", le devis manuel devient impossible, le personnel d'entrepôt n'a pas le temps de vérifier trois portails par commande. La seule réponse viable est une requête tarifaire automatique au moment de la confirmation de commande.
- Conformité B2B des détaillants. Loblaws, Sobeys, Walmart Canada, Costco Canada exigent tous une étiquette palette SSCC qui relie à votre avis d'expédition préalable EDI 856. Le portail Purolator n'émet pas le SSCC dans le bon format, l'API si (avec les bons paramètres).
Sous ces seuils, l'usage manuel du portail convient. Au-dessus, le coût d'intégration (typiquement 8 000-15 000 $CA pour une configuration Purolator seul, 18 000-30 000 $CA quand on l'empile avec FedEx + UPS rate shopping) se rembourse en 2-4 mois grâce au travail économisé et aux amendes de conformité évitées.
Configuration : des identifiants production à la première étiquette Odoo
La configuration se déroule en trois phases qui se chevauchent.
Phase 1 : obtenir les identifiants production de Purolator
Demandez l'accès API via votre gestionnaire de compte Purolator (pas le portail développeur, le formulaire là n'émet que des clés sandbox). Vous devrez leur envoyer : votre numéro de compte de facturation (BAN), la prévision de volume pour l'année 1 et le nom du fournisseur d'intégration (Octura, dans nos déploiements). L'approbation prend 5-10 jours ouvrables et produit une paire Production Key + Production Password liée à ce BAN. Les clés sandbox arrivent dans la journée.
Phase 2 : configurer la fiche transporteur Odoo
Dans Odoo, créez une fiche delivery.carrier de type "Purolator" (vous pourriez avoir besoin d'une petite extension de provider sur mesure ; les providers de transporteur livrés avec Odoo couvrent FedEx, UPS, DHL, USPS, Postes Canada et quelques transporteurs UE, mais pas Purolator nativement). La fiche stocke la Production Key, le BAN, le type de service par défaut (Purolator Ground est standard pour le B2B ; Purolator Express pour le B2C) et l'adresse d'expédition qui s'imprime comme "ship from" sur chaque étiquette.
Phase 3 : câbler les appels API dans le flux commande à expédition
Trois crochets s'insèrent dans le flux Odoo existant :
- À la confirmation de commande : un appel devis tarifaire renvoie le coût d'expédition, qui atterrit sur la commande de vente en tant que ligne d'expédition, le client est donc facturé le chiffre temps réel, pas une estimation fixe d'une grille de tarifs.
- À la validation du picking de stock : un appel de création d'étiquette renvoie le PDF + numéro de suivi, attaché à la fiche picking. L'entrepôt imprime depuis le picking, pas de connexion au portail.
- Cron horaire : un appel de requête de suivi récupère les événements en direct pour chaque expédition dont le statut n'est pas encore "Livrée". Les événements se postent dans le chatter de la commande de vente, le service client les voit en ligne.
Le flux complet commande à suivi une fois intégré
Une fois les trois crochets câblés, voici ce qui se passe sur une expédition B2B canadienne typique :
- Étape 1, confirmation de commande. Le client place une commande de palette de 40 kg de Toronto à Halifax. Odoo appelle l'endpoint Estimate de Purolator avec les dimensions + poids + destination. Purolator renvoie 87,50 $CA pour Purolator Ground (3 jours) et 148 $CA pour Purolator Express (jour suivant). Odoo écrit les deux tarifs sur la commande, le portail client présente celui que le client a choisi au paiement.
- Étape 2, picking entrepôt + étiquette. L'entrepôt confirme que le picking est complet dans Odoo. Un bouton sur la fiche picking appelle l'endpoint Ship de Purolator avec les poids et dimensions des lignes. Purolator renvoie une étiquette PDF + un numéro de suivi (ex. 329028123). L'étiquette s'imprime sur la zebra d'entrepôt, le numéro de suivi atterrit sur la fiche picking.
- Étape 3, notification de suivi au client. Un second crochet post-Ship publie le numéro de suivi dans le chatter de la commande et déclenche un gabarit d'e-mail Odoo avec l'URL de suivi Purolator. Le client reçoit l'e-mail dans les 30 secondes suivant l'impression.
- Étape 4, mises à jour de suivi en direct. Le cron horaire récupère les événements Purolator pour le numéro de suivi. "Ramassé Toronto 16 h 15", "En transit Montréal 23 h 02", "En livraison Halifax 7 h 30", "Livré 11 h 14". Chaque événement se poste dans le chatter de la commande. Le service client n'a jamais à se connecter au portail Purolator pour répondre à "où est mon colis".
- Étape 5, rapprochement. En fin de semaine, Odoo récupère un rapport de facturation Purolator (endpoint séparé) et rapproche les frais par expédition avec les devis tarifaires de l'étape 1. Les écarts supérieurs à 5 % sont signalés pour revue AP, généralement causés par une reclassification de poids côté Purolator (l'entrepôt a dit 38 kg, la balance Purolator a lu 41 kg, vous êtes facturé pour 41).
Cinq pièges rencontrés en production sur les intégrations Purolator + Odoo
1. Les adresses sandbox ne sont pas validées comme en production. Un code postal de Toronto qui marche en sandbox peut échouer en production avec "Adresse non desservie". Faites toujours un test de production sur 5 expéditions avant la mise en service.
2. La validation de zone de service est asymétrique. Purolator Ground atteint chaque code postal canadien, mais Purolator Express n'en atteint qu'environ 90 %. La surcharge zone éloignée apparaît dans le devis, mais seulement si vous appelez le bon endpoint, le service "Express Cheque" saute cette vérification et votre entrepôt reçoit la facture surcharge trois semaines plus tard.
3. L'API SOAP a un timeout de 30 secondes que l'API REST n'a pas. Si vous demandez par lot 50 devis en un appel sur SOAP, vous allez timer out. Soit fractionner à 10 par appel, soit migrer vers l'endpoint REST Estimate qui gère des lots jusqu'à 100.
4. La planification de collecte est par compte, pas par expédition. Appeler SchedulePickup une fois par jour pour "toutes les étiquettes générées depuis 8 h" fonctionne ; l'appeler par étiquette crée des fiches de collecte en doublon et déclenche le limiteur anti-abus de Purolator.
5. Les événements de suivi ne sont pas temps réel. L'API de suivi Purolator se met à jour environ toutes les 30-60 minutes, pas à chaque scan de code-barres. Si votre service client ou votre client a besoin de granularité sub-minute, il vous faut un autre transporteur ou un sous-compte sur le palier enterprise de Purolator (qui coûte plus cher).
Besoin d'aide pour câbler tout ça ?
Octura construit des intégrations Purolator dans le cadre de configurations d'expédition Odoo plus larges, mono-transporteur (Purolator seul, typique PME canadienne) ou rate shopping multi-transporteurs (Purolator + FedEx + UPS + Postes Canada, typique DTC transfrontalier). Engagement typique : 2-4 semaines du kickoff à la première étiquette imprimée en production. Combinez-le avec notre guide d'intégration EDI si vous expédiez vers des détaillants canadiens, l'étiquette SSCC qui sort de Purolator est ce qui alimente votre avis d'expédition préalable EDI 856.
Réserver une revue Purolator + Odoo gratuite de 30 minQuestions fréquentes
Les questions que les lecteurs nous posent le plus souvent sur ce sujet.
Qu'est-ce que l'API Purolator ?
Un ensemble d'endpoints SOAP et REST qui permettent à votre ERP de demander des tarifs d'expédition, créer des étiquettes, planifier des collectes et récupérer des événements de suivi auprès de Purolator sans que personne ne se connecte au portail du transporteur. Le Shipping Web Services v1 hérité est SOAP ; les nouveaux endpoints Estimate et Ship sont REST et se déploient progressivement depuis 2024.
Qu'est-ce qu'une clé de production Purolator ?
La clé de production est la paire d'identifiants (Production Key + Production Password) que Purolator émet à votre entreprise après la demande d'accès production. Vous obtenez aussi une Development Key pour tester contre le sandbox Purolator avant le trafic en direct. Les deux sont liées à un numéro de compte de facturation (BAN) spécifique et requises à chaque appel d'API.
Comment Purolator se compare-t-il à FedEx, UPS, DHL et Postes Canada ?
Purolator domine le sol B2B inter-canadien (plus rapide que Postes Canada Expedited, moins cher qu'UPS Canada en domestique). FedEx et UPS gagnent sur le transfrontalier vers les États-Unis. DHL est le choix international. Un atelier Odoo canadien sérieux intègre habituellement deux ou trois de ces transporteurs : Purolator pour le domestique, plus un transporteur transfrontalier.
Qu'est-ce qu'un connecteur PWS pour Odoo ?
PWS signifie « Purolator Web Services ». Le connecteur PWS est le nom générique pour tout module Odoo qui enveloppe l'API Purolator. L'Odoo Apps Store en liste quelques-uns ; nous construisons typiquement un module sur mesure léger à la place, car ceux du marché traînent derrière l'API et ne supportent pas bien la combo SSCC + Estimate-REST.
Odoo supporte-t-il Purolator nativement ?
Non, les providers de livraison natifs d'Odoo couvrent FedEx, UPS, DHL, USPS, Postes Canada et quelques transporteurs UE mais pas Purolator. Une petite extension de provider delivery.carrier sur mesure enveloppe l'API Purolator et s'insère dans le flux standard commande à picking à facture d'Odoo.
Combien de temps prend une intégration Purolator + Odoo ?
Pour une configuration Purolator seul avec devis tarifaires, étiquettes, collecte et suivi, 2 à 4 semaines du kickoff à la première étiquette en production. Pour le rate shopping multi-transporteurs (Purolator + FedEx + UPS + Postes Canada), 4 à 8 semaines. L'essentiel du temps va au mapping des services transporteur sur les types de produits Odoo et aux tests en ligne contre le sandbox de production Purolator.
Combien coûte une intégration Purolator + Odoo ?
Engagement typique à prix fixe : 8 000 à 15 000 $CA pour Purolator seul, 18 000 à 30 000 $CA quand on l'empile avec FedEx, UPS et Postes Canada en rate shopping. Le retour sur investissement est de 2 à 4 mois à 20+ expéditions/jour grâce au travail économisé en ne re-saisissant pas chaque étiquette dans le portail Purolator.
Purolator peut-il imprimer des étiquettes SSCC pour la conformité B2B ?
Oui, l'endpoint Ship accepte un champ SSCC qui imprime le code-barres palette de 18 chiffres sur l'étiquette. C'est ce qui relie la palette physique à l'avis d'expédition préalable EDI 856 que Loblaws, Sobeys, Walmart Canada et Costco Canada exigent tous pour la réception B2B. Si vous expédiez vers des détaillants canadiens, il vous faut Purolator et un connecteur EDI qui fonctionnent ensemble.
Comment fonctionne le rate shopping multi-transporteurs dans Odoo ?
Un petit module sur mesure greffé sur Odoo appelle les API Purolator + FedEx + UPS + Postes Canada en parallèle pour chaque expédition à la confirmation de commande. Le moins cher (ou le plus rapide, selon le choix du client au paiement) gagne, atterrit sur la commande de vente comme ligne d'expédition, et le reste du flux se poursuit avec le transporteur gagnant. Odoo natif ne fait pas de rate shopping, on greffe cette logique.
Octura construit-il des intégrations Purolator ?
Oui. Nous construisons des intégrations Purolator + Odoo dans le cadre de configurations d'expédition canadiennes plus larges, y compris la variante rate shopping multi-transporteurs. Les engagements sont à prix fixe après une découverte de 1 à 2 jours, calendrier typique 2 à 8 semaines selon le périmètre.