TIP: You can type at any time to perform a new search.
Easypost Shipping OCA
delivery_easypost_oca · OCA/delivery-carrier
- Repository
- OCA/delivery-carrier · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Inventory/Delivery
- Folder size
- 1.32 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/delivery-carrier
- Last tracking update
- 2026-08-07 08:42:52
- Authors
- Odoo Community Association (OCA), Binhex
- Maintainers
- Odoo Community Association (OCA), Binhex
- Committers
- Weblate, OCA-git-bot, oca-ci, Antonio David Ruban
- Odoo dependencies
- Python dependencies
- easypost==7.15.0
- System dependencies
- None
- Required by
- None
- Description
This module integrates [EasyPost](https://easypost.com) shipping API with Odoo, providing access to 100+ carriers through a single, unified interface. **What is EasyPost?** EasyPost is a shipping API aggregator that eliminates the need for separate carrier integrations. Instead of implementing individual APIs for USPS, UPS, FedEx, DHL, and others, you connect once to EasyPost and gain access to all supported carriers with pre-negotiated rates. **Key Features** - **Automated Rate Calculation**: Get real-time shipping rates from multiple carriers and automatically select the lowest rate - **Label Generation**: Generate and print shipping labels in multiple formats (PDF, ZPL, EPL2) - **Multi-Carrier Support**: Access 100+ carriers including USPS, UPS, FedEx, DHL, Canada Post, and regional carriers - **Shipment Tracking**: Real-time tracking with automatic updates and public tracking links - **Multi-Package Handling**: Support for shipments with multiple packages (individual or batch mode) - **Address Verification**: Automatic address validation to reduce delivery errors - **Multiple Label Formats**: PDF for standard printers, ZPL/EPL2 for thermal label printers - **Test Environment**: Full test mode for development without charges or actual shipments - **Automatic Conversions**: Weight conversion to ounces and currency conversion handled automatically **Benefits of Using EasyPost** - **Single Integration**: One API connection for all carriers - no need to integrate each carrier separately - **Lowest Rate Selection**: Automatically compares rates from all available carriers and selects the cheapest option - **Pre-Negotiated Rates**: Access to discounted carrier rates through EasyPost's volume agreements - **Reduced Complexity**: Unified API response format regardless of carrier - **Scalability**: Easily add new carriers without code changes - **Testing Without Risk**: Complete test environment with mock shipments **Technical Architecture** This module implements a clean, layered architecture: - **Business Logic Layer** (delivery_carrier.py): Handles Odoo-specific logic (orders, pickings, pricing) - **API Wrapper Layer** (easypost_request.py): Centralizes all EasyPost API interactions - **EasyPost Python SDK** (version 7.15.0): Official EasyPost client library - **Comprehensive Test Suite**: 100% mocked tests with no real API calls during testing **Supported Carriers (via EasyPost)** USPS, UPS, FedEx, DHL Express, DHL eCommerce, Canada Post, APC Postal, Asendia, Australia Post, Canpar, Couriers Please, Deutsche Post, Fastway, Globegistics, Interlink Express, LaserShip, LSO, OnTrac, Parcelforce, Purolator, Royal Mail, Sendle, StarTrack, and 80+ additional carriers worldwide. **Use Cases** - **E-Commerce Stores**: Automatically calculate shipping costs at checkout - **Warehouse Operations**: Generate and print shipping labels for outbound orders - **Multi-Carrier Shipping**: Compare rates across carriers to minimize shipping costs - **International Shipping**: Access to international carriers with automatic address verification - **High-Volume Shipping**: Batch processing for multiple packages in single transactions
Code Analysis ⓘ
Views touched (2)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
easy_view_delivery_carrier_form_inherit |
easy.view.delivery.carrier.form.inherit | delivery.carrier | form | Inherits delivery.view_delivery_carrier_form |
view_stock_package_type_easypost_oca |
stock.package.type.easypost.oca | stock.package.type | form | Inherits stock.stock_package_type_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (6)
New fields (3)
-
easypost_oca_carrier_nameChar -
easypost_oca_rate_idChar -
easypost_oca_shipment_idChar
-
button_confirm(self)
New fields (6)
-
delivery_typeSelectionondelete={'easypost_oca': <expr>}selection_add=[('easypost_oca', 'Easypost OCA')] -
easypost_oca_delivery_multiple_packagesSelectiondefault='shipments'selection=[('shipments', 'Shipments'), ('batch', 'Batch')]string='Delivery Multiple Packages' -
easypost_oca_label_file_typeSelectiondefault='PDF'string='Label Format' args: [('PDF', 'PDF'), ('ZPL', 'ZPL'), ('EPL2', 'EPL2')] -
easypost_oca_production_api_keyChargroups='base.group_system'help='Enter your API production key from Easypost account' args: 'Easypost Production API Key' -
easypost_oca_test_api_keyChargroups='base.group_system'help='Enter your API test key from Easypost account.' args: 'Easypost Test API Key' -
is_saturday_deliveryBooleanargs: 'Delivery On Saturday?'
-
easypost_oca_cancel_shipment(self, pickings) -
easypost_oca_get_tracking_link(self, picking) -
easypost_oca_rate_shipment(self, order)Return the rates for a quotation/SO. -
easypost_oca_send_shipping(self, pickings) -> list
New fields (1)
-
typeSelectionondelete={'easypost_oca': <expr>}selection_add=[('easypost_oca', 'Easypost OCA')]
No public methods.
New fields (3)
-
easypost_oca_carrier_nameCharcopy=Falsetracking=True -
easypost_oca_rate_idCharcopy=Falsetracking=False -
easypost_oca_shipment_idCharcopy=Falsetracking=False
No public methods.
New fields (2)
-
easypost_oca_carrierCharindex=True args: 'Carrier Prefix' -
package_carrier_typeSelectionselection_add=[('easypost_oca', 'Easypost OCA')]
No public methods.
New fields (7)
-
easypost_oca_batch_idChartracking=True -
easypost_oca_carrier_idChar -
easypost_oca_carrier_nameChar -
easypost_oca_carrier_serviceChar -
easypost_oca_rate_idChar -
easypost_oca_shipment_idCharreadonly=Falserelated='sale_id.easypost_oca_shipment_id' -
easypost_oca_tracking_urlChar
No public methods.
Loading…