All posts
Functional4 min read

Integrating Shipping Carriers and Real-Time Rates in Odoo

Connect Odoo to FedEx, UPS, DHL, and other carriers to get real-time shipping rates at checkout - automatically selecting the best rate and generating shipping labels from within Odoo.

Shipping Carrier Integration in Odoo#

Manually looking up shipping rates, copy-pasting tracking numbers, and printing labels from carrier websites wastes time. Odoo's carrier integration fetches rates automatically, generates labels from within Odoo, and updates tracking information on the delivery order.

Prerequisites#

Install the carrier connector module:

Apps → [Carrier Name] Shipping → install:

  • FedEx Shipping
  • UPS Shipping
  • DHL Express
  • USPS (US only)
  • Sendcloud (European aggregator)

Configuring a Carrier#

Inventory → Configuration → Delivery Carriers → New:

  • Name: FedEx Ground
  • Carrier: FedEx
  • API Key / Account Number: from your FedEx developer account
  • Integration Level: Get Rates + Create Shipment + Track Shipments

Product: select the shipping product (used when posting shipping charges to customer invoices)

Pricing Method:

  • Fixed Price: always charge $9.99 for ground shipping
  • Real Rate from Carrier: charge the actual FedEx rate
  • Margin: real rate + $2 handling fee

Real-Time Rate Calculation#

On a sale order or at eCommerce checkout:

  • Customer selects delivery method: FedEx Ground / FedEx Express / FedEx 2-Day
  • Odoo calls the FedEx API with: package weight, dimensions, origin ZIP, destination ZIP
  • Carrier returns rates for each service level
  • Customer sees actual costs → selects their preferred option

Generating Shipping Labels#

When the delivery order is validated:

Inventory → [Delivery Order] → Send to Carrier:

  • Odoo sends package details to the carrier API
  • Carrier returns: tracking number + ZPL/PDF label data
  • Label prints directly from Odoo (or to a Zebra printer via IoT)
  • Tracking number saved to the delivery order and chatter

Customer Notification#

When the label is generated:

Automated Action:

  • Send email to customer: "Your order [SO/2027/01234] has shipped - Carrier: FedEx Ground - Tracking: 794644774599"
  • Tracking link embedded in the email

Multi-Carrier Rate Shopping#

For each shipment, compare rates across carriers:

Delivery Order → Carrier → Compare Rates:

  • FedEx Ground: $8.42 / 5 days
  • UPS Ground: $9.15 / 5 days
  • USPS Priority: $12.30 / 2 days

Select the best combination of cost and speed for each shipment.

Try ERPeek on your own Odoo module - ask questions, scaffold tests, and explore your codebase in plain language.

Get started free