1. Business Requirement
The objective was to connect Odoo with LionWheel so that shipping-related operations could be handled from Odoo without requiring users to manually create shipments in the external shipping system.
- Connect Odoo with the LionWheel shipping provider through its API.
- Allow LionWheel shipping to be configured as a delivery carrier in Odoo.
- Support shipping-rate retrieval and shipment creation from the Odoo delivery workflow.
- Capture and display relevant shipment responses and details in Odoo.
- Support additional customer and delivery information required for shipment creation.
2. Solution Implemented
A dedicated LionWheel shipping connector was implemented in Odoo. The work included the following key areas:
- Created a LionWheel shipping connector method and a related shipping product.
- Added configuration options for the LionWheel delivery carrier.
- Connected Odoo to LionWheel through the API and configured the required credentials.
- Implemented the Get Rate functionality through the shipping and update-shipping-cost workflows.
- Enabled shipment creation from the delivery order during validation.
- Added additional fields in partner and delivery records to provide information required by LionWheel.
- Created a supporting module to handle additional shipment-related fields and avoid conflicts with existing UPS connector fields.
- Added fields to capture and display shipment responses and details inside Odoo.
- Made previously static configuration content dynamic where required.
3. Key Challenges and Resolution
- Shipment creation errors: During development, errors occurred while creating shipments through the Get Rate and Create Shipment workflow. The integration was reviewed and updated through repeated testing.
- Duplicate shipment creation: A case was identified where shipment creation could be triggered twice while validating a delivery. The logic was corrected to prevent duplicate shipment creation.
- Tracking information: The API response initially provided a tracking reference link instead of the required tracking number. The available API documentation and connector implementation were reviewed to identify the appropriate tracking information.
- Field conflicts: Additional partner fields required by LionWheel conflicted with existing UPS connector fields. A separate supporting module/model approach was used to handle the required fields.
- Sandbox authentication: Initial sandbox testing returned an authentication error. The client documentation and provided credentials were reviewed and a support request was sent to the client for further assistance.
4. Testing and Validation
The integration was tested progressively during development. After the main implementation was completed, the workflow was pushed to staging and tested again. The final staging workflow was confirmed to work correctly and a workflow video was recorded and shared with the client.
5. Main Odoo Workflow
- Configure LionWheel credentials and shipping options in the delivery carrier.
- Select the LionWheel carrier for the delivery.
- Use the Get Rate functionality when a shipping rate is required.
- Validate the delivery order to initiate shipment creation.
- Send the required delivery and customer information to LionWheel.
- Receive the shipment response from LionWheel.
- Store and display relevant shipment information in Odoo.
6. Outcome
The LionWheel shipping provider was successfully integrated with Odoo. The completed solution supports shipping-rate handling, shipment creation, configuration and the display of shipment-related responses within the Odoo delivery workflow. The completed workflow was validated in staging and demonstrated to the client.
7. Conclusion
The project established a direct connection between Odoo and the LionWheel shipping service, bringing key shipping operations into the Odoo delivery process. The implementation also included configuration flexibility, shipment-response handling and validation through the client's staging workflow.