Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 17 additions & 12 deletions connector_woocommerce_ast/models/sale_order/export_mapper.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Copyright NuoBiT Solutions - Kilian Niubo <kniubo@nuobit.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)

from odoo import _
from odoo.exceptions import ValidationError

Expand All @@ -22,18 +23,22 @@ def status(self, record):
@mapping
def shipment_tracking(self, record):
tracking = {}
for picking in record.picking_ids:
if picking.carrier_id:
carrier = self.backend_record.carrier_provider_ids.filtered(
lambda x: picking.carrier_id.delivery_type == x.delivery_type
picking = record.picking_ids.filtered(
lambda p: p.state == "done" and p.carrier_id
).sorted(key=lambda p: p.id,)[-1:]
if picking:
carrier = self.backend_record.carrier_provider_ids.filtered(
lambda x: picking.carrier_id.delivery_type == x.delivery_type
)
if not carrier:
raise ValidationError(
_("carrier is not defined on backend for carrier %s")
% picking.carrier_id.name
)
if not carrier:
raise ValidationError(
_("carrier is not defined on backend for tax %s")
% record.get("carrier_id")
)
tracking["tracking_provider"] = carrier.woocommerce_provider
elif len(carrier) > 1:
raise ValidationError(_("Carrier is duplicated"))
tracking["tracking_provider"] = carrier.woocommerce_provider
if picking.carrier_tracking_ref:
tracking["tracking_number"] = picking.carrier_tracking_ref
if tracking:
return {"_wc_shipment_tracking_items": [tracking]}
if tracking:
return {"_wc_shipment_tracking_items": [tracking]}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Copyright NuoBiT Solutions - Kilian Niubo <kniubo@nuobit.com>
# Copyright 2026 NuoBiT Solutions SL - Deniz Gallo <dgallo@nuobit.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)

from odoo import fields, models
Expand All @@ -18,7 +19,7 @@ def _get_woocommerce_stock_picking_state(self):
woocommerce_stock_picking_state = super()._get_woocommerce_stock_picking_state()
if (
woocommerce_stock_picking_state == "done"
and self.delivery_state == "shipping_recorded_in_carrier"
and self.delivery_state == "customer_delivered"
):
woocommerce_stock_picking_state = "delivered"
return woocommerce_stock_picking_state
Expand Down
Loading