Repository
OCA/delivery-carrier · module folder · Try on Runboat
Module version
1.0.0
Category
Operations/Inventory/Delivery
Folder size
6.53 MB
License
LGPL-3
Application
Yes
Auto-installable
No
Website
https://github.com/OCA/delivery-carrier
Last tracking update
2026-08-17 11:19:33
Authors
Odoo Community Association (OCA), Onestein
Maintainers
Odoo Community Association (OCA), Onestein
Committers
Anjeel Haria, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
This module provides sendcloud shipping integration with Odoo

This module mostly implements what's described in https://docs.sendcloud.sc/api/v2/shipping/

Full documentation for developers is in https://docs.sendcloud.sc/.

This module works for the Community Edition as well as the Enterprise Edition.

Code Analysis

Views touched (38)
XML IDNameModelTypeStatus
res_config_settings_view_form_sale res.config.settings form Inherits sale.res_config_settings_view_form
res_config_settings_view_form_stock res.config.settings form Inherits stock.res_config_settings_view_form
sale_order_view_search_inherit_quotation sale.order search Inherits sale.sale_order_view_search_inherit_quotation
sale_order_view_search_inherit_sale sale.order search Inherits sale.sale_order_view_search_inherit_sale
sendcloud_action_form sendcloud.action form New
sendcloud_action_list sendcloud.action list New
sendcloud_cancel_shipment_confirm_wizard_form sendcloud.cancel.shipment.confirm.wizard form New
sendcloud_create_return_parcel_wizard_form sendcloud.create.return.parcel.wizard form New
sendcloud_custom_price_details_wizard_form sendcloud.custom.price.details.wizard form New
sendcloud_onboarding_integration_configuration_form sendcloud.integration.wizard form New
sendcloud_onboarding_sync_configuration_form sendcloud.sync.wizard form New
sendcloud_onboarding_warehouse_configuration_form sendcloud.warehouse.address.wizard form New
sendcloud_sync_order_form sendcloud.sync.order.wizard form New
view_delivery_carrier_form delivery.carrier form Inherits delivery.view_delivery_carrier_form
view_order_form sale.order form Inherits sale.view_order_form
view_partner_property_form res.partner form Inherits delivery.view_partner_property_form
view_picking_withcarrier_out_form stock.picking form Inherits stock_delivery.view_picking_withcarrier_out_form
view_quotation_list_with_onboarding sale.order list Inherits sale.view_quotation_tree
view_sendcloud_brand_form sendcloud.brand form New
view_sendcloud_brand_list sendcloud.brand list New
view_sendcloud_carrier_form sendcloud.carrier form New
view_sendcloud_carrier_list sendcloud.carrier list New
view_sendcloud_integration_form sendcloud.integration form New
view_sendcloud_integration_list sendcloud.integration list New
view_sendcloud_invoice_form sendcloud.invoice form New
view_sendcloud_invoice_list sendcloud.invoice list New
view_sendcloud_parcel_form sendcloud.parcel form New
view_sendcloud_parcel_list sendcloud.parcel list New
view_sendcloud_parcel_status_form sendcloud.parcel.status form New
view_sendcloud_parcel_status_list sendcloud.parcel.status list New
view_sendcloud_return_form sendcloud.return form New
view_sendcloud_return_list sendcloud.return list New
view_sendcloud_sender_address_form sendcloud.sender.address form New
view_sendcloud_sender_address_list sendcloud.sender.address list New
view_sendcloud_shipping_method_country_form sendcloud.shipping.method.country form New
view_sendcloud_shipping_method_country_list sendcloud.shipping.method.country list New
view_warehouse stock.warehouse Inherits stock.view_warehouse
vpicktree stock.picking Inherits stock.vpicktree
HTTP endpoints (2)
Route(s)HandlerAuthTypeMethodsFlags
/shop/sendcloud_integration_webhook/<int:company_id> DeliverySendcloud.sendcloud_integration_webhook none json POST sudo
/sendcloud/picking/download_labels DeliverySendcloud.sendcloud_picking_download_labels user http ALL
Models touched (39)

New fields (0)

No new fields.

Public methods (1)
  • button_confirm(self)

New fields (13)
  • delivery_type Selection
    ondelete={'sendcloud': <expr>} selection_add=[('sendcloud', 'Sendcloud')]
  • sendcloud_carrier Char
  • sendcloud_code Integer
  • sendcloud_country_ids One2many → sendcloud.shipping.method.country
    compute='_compute_sendcloud_country_ids' string='Price per Country' args: 'sendcloud.shipping.method.country'
  • sendcloud_integration_id Many2one → sendcloud.integration
    compute='_compute_sendcloud_integration_id' args: 'sendcloud.integration'
  • sendcloud_is_return Boolean
  • sendcloud_max_weight Float
  • sendcloud_min_weight Float
  • sendcloud_price Float
    help='When this value is null, the price is calculated based on the pricelist by countries'
  • sendcloud_sender_address_id Many2one → sendcloud.sender.address
    args: 'sendcloud.sender.address'
  • sendcloud_service_point_input Selection
    default='none' args: [('none', 'None'), ('required', 'Required')]
  • sendcloud_service_point_required Boolean
    compute='_compute_sendcloud_service_point_required'
  • sendcloud_sync_countries Boolean
    default=True string='Synchronize countries with Sendcloud'
Public methods (9)
  • available_carriers(self, partner, order)
    Standard Odoo method, invoked by the super(), already filters shipping methods, including Sendcloud shipping methods, by the country of the selected partner. In addition, this method filters the Sendcloud shipping methods by - sender address (warehouse address) - weight range - enabled/disabled service point in Sendcloud integration. :param partner: :param order: :return:
  • button_from_sendcloud_sync(self)
  • sendcloud_cancel_shipment(self, picking)
  • sendcloud_get_return_label(self, pickings, tracking_number=None, origin_date=None)
    Log a warning if the user tries to generate a return label.
  • sendcloud_rate_shipment(self, order)
  • sendcloud_send_shipping(self, pickings)
  • sendcloud_sync_shipping_method(self)
    @api.model
  • sendcloud_update_carriers(self, updated_shipping_methods)
    @api.model
  • write(self, vals)

New fields (0)

No new fields.

Public methods (2)
  • action_close_sendcloud_onboarding(self)
    @api.model
  • get_sendcloud_onboarding_data(self)
    @api.model

New fields (0)

No new fields.

Public methods (3)
  • action_open_sendcloud_onboarding_integration(self)
    @api.model
    Called by onboarding panel.
  • action_open_sendcloud_onboarding_warehouse_address(self)
    @api.model
    Called by onboarding panel.
  • action_sendcloud_onboarding_sync(self)
    @api.model
    Called by onboarding panel.

New fields (8)
  • is_sendcloud_test_mode Boolean
  • sendcloud_auto_create_invoice Boolean
  • sendcloud_brand_ids One2many → sendcloud.brand
    string='Sendcloud Brands' args: 'sendcloud.brand', 'company_id'
  • sendcloud_default_integration_id Many2one → sendcloud.integration
    compute='_compute_sendcloud_default_integration_id' args: 'sendcloud.integration'
  • sendcloud_integration_ids One2many → sendcloud.integration
    string='Sendcloud Integrations' args: 'sendcloud.integration', 'company_id'
  • sendcloud_invoice_ids One2many → sendcloud.invoice
    string='Sendcloud Invoices' args: 'sendcloud.invoice', 'company_id'
  • sendcloud_return_ids One2many → sendcloud.return
    string='Sendcloud Returns' args: 'sendcloud.return', 'company_id'
  • sendcloud_sender_address_ids One2many → sendcloud.sender.address
    string='Sendcloud Sender Addresses' args: 'sendcloud.sender.address', 'company_id'
Public methods (0)

No public methods.

New fields (2)
  • is_sendcloud_test_mode Boolean
    readonly=False related='company_id.is_sendcloud_test_mode'
  • sendcloud_auto_create_invoice Boolean
    readonly=False related='company_id.sendcloud_auto_create_invoice'
Public methods (0)

No public methods.

New fields (2)
  • sencloud_sender_address_id Many2one → sendcloud.sender.address
    comodel_name='sendcloud.sender.address' string='Sendcloud Sender Address'
  • sendcloud_is_in_eu Boolean
    compute='_compute_sendcloud_is_in_eu' string='Is in EU'
Public methods (0)

No public methods.

New fields (7)
  • is_sendcloud_delivery_type Boolean
    compute='_compute_is_sendcloud_delivery_type' store=True
  • sendcloud_customs_shipment_type Selection
    default=<expr> selection='_get_sendcloud_customs_shipment_type'
  • sendcloud_order_code Char
    index=True
  • sendcloud_order_weight Float
    compute='_compute_sendcloud_order_weight'
  • sendcloud_service_point_address Text
    copy=False
  • sendcloud_service_point_required Boolean
    related='carrier_id.sendcloud_service_point_required'
  • sendcloud_sp_details Char
    compute='_compute_sendcloud_sp_details'
Public methods (4)
  • action_cancel(self)
  • button_delete_sendcloud_order(self)
  • button_to_sendcloud_sync(self)
  • unlink(self)

New fields (16)
  • action Char
  • company_id Many2one → res.company
    required=True args: 'res.company'
  • date_last_success Datetime
  • error_message Char
  • error_on_parsing Boolean
  • exitcode Char
  • is_processed Boolean
  • message Text
    string='Received Message'
  • message_type Selection
    required=True args: [('sent', 'Sent'), ('received', 'Received')]
  • model Char
  • record_id Reference
    compute='_compute_resource_record' readonly=True selection='_reference_models'
  • resid Integer
  • response_time Float
    string='Response Time (sec)'
  • sendcloud_integration_id Many2one → sendcloud.integration
    args: 'sendcloud.integration'
  • sent_payload Text
  • timestamp Char
Public methods (3)
  • parse_result(self)
  • reparse_message(self)
  • sendcloud_delete_old_actions(self, days=7)
    @api.model

New fields (14)
  • active Boolean
    default=True
  • color Char
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • domain Char
  • hide_powered_by Boolean
  • name Char
    required=True
  • notify_bcc_email Integer
  • notify_reply_to_email Integer
  • print_thumb Char
  • return_portal_url Char
    compute='_compute_return_portal_url'
  • screen_thumb Char
  • secondary_color Char
  • sendcloud_code Integer
    required=True
  • website Char
Public methods (3)
  • action_create_return_parcel(self)
  • sendcloud_sync_brands(self)
    @api.model
  • sendcloud_update_brands(self, brand_data, company)
    @api.model

New fields (0)

No new fields.

Public methods (1)
  • do_cancel_shipment(self)

New fields (2)
  • name Char
    required=True
  • sendcloud_code Char
    required=True
Public methods (0)

No public methods.

New fields (5)
  • sencloud_sender_address_country_code Char
    related='sencloud_sender_address_id.country'
  • sencloud_sender_address_id Many2one → sendcloud.sender.address
    compute='_compute_sencloud_sender_address_id' readonly=False store=True args: 'sendcloud.sender.address'
  • warehouse_country_code Char
    related='warehouse_id.partner_id.country_id.code'
  • warehouse_id Many2one → stock.warehouse
    ondelete='cascade' readonly=True required=True args: 'stock.warehouse'
  • wizard_id Many2one → sendcloud.warehouse.address.wizard
    ondelete='cascade' args: 'sendcloud.warehouse.address.wizard'
Public methods (0)

No public methods.

New fields (35)
  • access_token Text
    readonly=True
  • brand_id Many2one → sendcloud.brand
    required=True args: 'sendcloud.brand'
  • collo_count Integer
  • delivery_option_id Many2one → sendcloud.create.return.parcel.wizard.delivery.option
    domain="[('id', 'in', delivery_option_ids)]" args: 'sendcloud.create.return.parcel.wizard.delivery.option'
  • delivery_option_ids One2many → sendcloud.create.return.parcel.wizard.delivery.option
    args: 'sendcloud.create.return.parcel.wizard.delivery.option', 'wizard_id', 'Delivery Options'
  • delivery_options Text
    default='[]' string='Delivery Options Cached'
  • enable_refunds Boolean
  • error_message Text
    readonly=True
  • identifier Char
    required=True
  • info_message Text
    readonly=True
  • language Selection
    default=<expr> required=True selection=<expr>
  • line_ids One2many → sendcloud.create.return.parcel.wizard.line
    args: 'sendcloud.create.return.parcel.wizard.line', 'wizard_id', 'Lines'
  • national_carrier_contact Text
    readonly=True
  • parcel_id Many2one → sendcloud.parcel
    args: 'sendcloud.parcel'
  • poller_url Char
    readonly=True
  • postal_code Char
    required=True
  • reason_id Many2one → sendcloud.create.return.parcel.wizard.reason
    domain="[('id', 'in', reason_ids)]" args: 'sendcloud.create.return.parcel.wizard.reason'
  • reason_ids One2many → sendcloud.create.return.parcel.wizard.reason
    args: 'sendcloud.create.return.parcel.wizard.reason', 'wizard_id', 'Reasons'
  • reason_message Text
  • reasons Text
    default='[]' string='Reasons Cached'
  • refund_message Text
  • refund_option_id Many2one → sendcloud.create.return.parcel.wizard.refund.option
    domain="[('id', 'in', refund_option_ids)]" args: 'sendcloud.create.return.parcel.wizard.refund.option'
  • refund_option_ids One2many → sendcloud.create.return.parcel.wizard.refund.option
    args: 'sendcloud.create.return.parcel.wizard.refund.option', 'wizard_id', 'Refund Options'
  • refund_option_require_message Boolean
    related='refund_option_id.require_message'
  • refund_options Text
    default='[]' string='Refund Options Cached'
  • return_fee Float
  • return_location_id Many2one → sendcloud.create.return.parcel.wizard.return.location
    domain="[('id', 'in', return_location_ids)]" args: 'sendcloud.create.return.parcel.wizard.return.location'
  • return_location_ids One2many → sendcloud.create.return.parcel.wizard.return.location
    args: 'sendcloud.create.return.parcel.wizard.return.location', 'wizard_id', 'Return Locations'
  • return_locations Text
    default='[]' string='Return Locations Cached'
  • return_policy_url Char
  • return_portal_url Char
  • service_point Text
    readonly=True
  • service_points_token Text
    readonly=True
  • shop_distances Text
    readonly=True
  • support_url Char
Public methods (3)
  • button_confirm(self)
  • onchange_parcel_id(self)
    @api.onchange('parcel_id')
  • sendcloud_update_carriers(self, carriers_data)
    @api.model

New fields (3)
  • code Selection
    required=True args: [('drop_off_point', 'Drop-off Point'), ('in_store', 'In Store'), ('drop_off_labelless', 'Labelless Drop Off')]
  • name Char
    compute='_compute_name' store=True
  • wizard_id Many2one → sendcloud.create.return.parcel.wizard
    args: 'sendcloud.create.return.parcel.wizard'
Public methods (0)

No public methods.

New fields (7)
  • name Char
  • price Float
  • quantity Integer
    required=True
  • return_message Text
  • return_reason Integer
    default=3
  • sendcloud_code Char
    required=True
  • wizard_id Many2one → sendcloud.create.return.parcel.wizard
    args: 'sendcloud.create.return.parcel.wizard'
Public methods (0)

No public methods.

New fields (3)
  • code Integer
    required=True
  • name Char
    required=True
  • wizard_id Many2one → sendcloud.create.return.parcel.wizard
    args: 'sendcloud.create.return.parcel.wizard'
Public methods (0)

No public methods.

New fields (4)
  • code Selection
    string='Refund Type' args: [('money', 'Money'), ('credit', 'Credit'), ('exchange', 'Exchange')]
  • name Char
    required=True
  • require_message Boolean
  • wizard_id Many2one → sendcloud.create.return.parcel.wizard
    args: 'sendcloud.create.return.parcel.wizard'
Public methods (0)

No public methods.

New fields (11)
  • address_1 Char
  • address_2 Char
  • city Char
  • code Integer
    required=True
  • company_name Char
  • country_name Char
  • house_number Char
  • name Char
  • postal_code Char
  • senderaddress_labels Text
    default='[]'
  • wizard_id Many2one → sendcloud.create.return.parcel.wizard
    args: 'sendcloud.create.return.parcel.wizard'
Public methods (0)

No public methods.

New fields (6)
  • enable_price_custom Boolean
    readonly=False related='shipping_method_country_id.enable_price_custom' string='Enable custom price?'
  • price Float
    related='shipping_method_country_id.price' string='Standard Price'
  • price_check Selection
    related='shipping_method_country_id.price_check'
  • price_custom Float
    readonly=False related='shipping_method_country_id.price_custom' string='Custom Price'
  • product_id Many2one
    readonly=False related='shipping_method_country_id.product_id'
  • shipping_method_country_id Many2one → sendcloud.shipping.method.country
    readonly=True required=True string='Shipping to Country' args: 'sendcloud.shipping.method.country'
Public methods (2)
  • remove_custom_price(self)
  • set_custom_price(self)

New fields (14)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • database Char
  • public_key Char
    readonly=False
  • secret_key Char
    readonly=False
  • sendcloud_code Integer
    readonly=True
  • sequence Integer
    default=10 help='Determine the display order'
  • service_point_carrier_ids Many2many → sendcloud.carrier
    compute='_compute_service_point_carrier_ids' inverse='_inverse_service_point_carrier_ids' string='Carriers' args: 'sendcloud.carrier'
  • service_point_carriers Text
    default='[]'
  • service_point_enabled Boolean
  • shop_name Char
    required=True
  • shop_url Char
  • webhook_active Boolean
  • webhook_url Char
Public methods (4)
  • action_sendcloud_update_integrations(self)
  • sendcloud_create_update_integrations(self, req_integrations, company)
    @api.model
  • sendcloud_update_carriers(self, updated_integrations)
    @api.model
  • write(self, vals)

New fields (6)
  • base_url Char
    compute='_compute_base_url'
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • error_message Text
    readonly=True
  • info_message Text
    readonly=True
  • integration_request_url Char
    compute='_compute_integration_request_url'
  • is_sendcloud_test_mode Boolean
    compute='_compute_is_sendcloud_test_mode'
Public methods (2)
  • button_update(self)
  • check_webhook_url(self)

New fields (10)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • invoice_date Datetime
  • invoice_type Selection
    readonly=True selection=<expr>
  • is_paid Boolean
  • item_ids One2many → sendcloud.invoice.item
    args: 'sendcloud.invoice.item', 'sendcloud_invoice_id'
  • price_excl Float
  • price_incl Float
  • ref Char
  • sendcloud_code Integer
    required=True
Public methods (4)
  • button_get_invoice_details(self)
  • sendcloud_sync_invoices(self)
    @api.model
  • sendcloud_update_invoice_details(self, invoice_data)
  • sendcloud_update_invoices(self, invoice_data, company)
    @api.model

New fields (3)
  • name Char
  • sendcloud_code Integer
    required=True
  • sendcloud_invoice_id Many2one → sendcloud.invoice
    ondelete='cascade' args: 'sendcloud.invoice'
Public methods (0)

No public methods.

New fields (1)
  • is_sendcloud_test_mode Boolean
    compute='_compute_is_sendcloud_test_mode'
Public methods (0)

No public methods.

New fields (53)
  • address Char
  • address_2 Char
    help='An apartment or floor number.'
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade'
  • brand_id Many2one → sendcloud.brand
    compute='_compute_brand_id' readonly=False store=True args: 'sendcloud.brand'
  • carrier Char
  • city Char
  • colli_tracking_number Char
    help='Multi-collo only. This is a tracking number assigned by the carrier to identify the entire multi-collo shipment.'
  • colli_uuid Char
  • collo_count Integer
    help='A number indicating the number of collos within a shipment. For non-multi-collo shipments, this value will always be 1.'
  • collo_nr Integer
    help='A number indicating the collo number within a shipment. For a non-multi-collo shipment, this value will always be 0. In a multi-collo shipment with 3 collos, this number will range from 0 to 2.'
  • company_id Many2one → res.company
    compute='_compute_company_id' readonly=False required=True store=True args: 'res.company'
  • company_name Char
  • country_iso_2 Char
  • customs_invoice_nr Char
  • document_ids One2many → sendcloud.parcel.document
    string='Documents' args: 'sendcloud.parcel.document', 'parcel_id'
  • documents Text
    help='An array of documents. A parcel can contain multiple documents, for instance labels and a customs form. This field returns an array of all the available documents for this parcel.' string='Documents Data'
  • email Char
  • external_order_id Char
  • external_reference Char
    help='A field to use as a reference for your order.'
  • external_shipment_id Char
  • house_number Char
  • insured_value Float
    help='Insured Value is in Euro currency.'
  • is_return Boolean
    readonly=True
  • label Binary
    related='attachment_id.datas' string='File Content'
  • label_print_status Selection
    default='generated' args: [('generated', 'Generated'), ('printed', 'Printed')]
  • label_printer_url Char
  • name Char
    required=True
  • note Text
  • order_number Char
  • package_id Many2one → stock.quant.package
    args: 'stock.quant.package'
  • parcel_item_ids One2many → sendcloud.parcel.item
    args: 'sendcloud.parcel.item', 'parcel_id'
  • partner_name Char
  • picking_id Many2one → stock.picking
    args: 'stock.picking'
  • postal_code Char
  • reference Char
  • return_portal_url Char
  • sendcloud_code Integer
    required=True
  • sendcloud_customs_shipment_type Selection
    selection='_get_sendcloud_customs_shipment_type'
  • sendcloud_status Selection
    readonly=True selection=<expr>
  • shipment Char
    string='Cached Shipment'
  • shipment_id Many2one → delivery.carrier
    compute='_compute_shipment_id' args: 'delivery.carrier'
  • shipment_uuid Char
  • shipping_method Integer
  • street Char
  • telephone Char
  • to_post_number Text
  • to_service_point Char
    help='The id of service point to which the shipment is going to be shipped.'
  • to_state Char
  • total_insured_value Float
    help='Total Insured Value is in Euro currency.'
  • tracking_number Char
  • tracking_url Char
  • type Char
    help='Returns either ‘parcel’ or ‘letter’ by which you can determine the type of your shipment.'
  • weight Float
    help='Weight unit of measure is KG.'
Public methods (8)
  • action_create_return_parcel(self)
  • action_get_parcel_label(self)
  • action_get_return_portal_url(self)
  • action_parcel_documents(self)
  • button_sync_parcel(self)
  • sendcloud_create_update_parcels(self, parcels_data, company_id)
    @api.model
  • sendcloud_sync_parcels(self)
    @api.model
  • unlink(self)

New fields (6)
  • attachment Binary
    related='attachment_id.datas' string='File Content'
  • attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade'
  • link Char
  • name Char
    required=True
  • parcel_id Many2one → sendcloud.parcel
    args: 'sendcloud.parcel'
  • size Char
Public methods (2)
  • action_get_parcel_document(self)
  • generate_parcel_document_filename(self)

New fields (12)
  • description Char
    required=True
  • hs_code Char
  • origin_country Char
  • parcel_id Many2one → sendcloud.parcel
    ondelete='cascade' args: 'sendcloud.parcel'
  • product_id Char
  • properties Char
  • quantity Integer
  • return_message Char
  • return_reason Char
  • sku Char
  • value Float
  • weight Float
Public methods (0)

No public methods.

New fields (2)
  • message Char
    required=True
  • sendcloud_code Char
    required=True
Public methods (2)
  • sendcloud_sync_parcel_statuses(self)
    @api.model
  • sendcloud_update_parcel_statuses(self, integration)
    @api.model

New fields (0)

No new fields.

Public methods (23)
  • cancel_parcel(self, code)
  • create_parcels(self, post_data)
  • create_return_portal_incoming_parcel(self, domain_brand, payload, headers)
  • create_shipments(self, integration_code, vals_list)
  • delete_shipments(self, integration_id, post_data)
  • get_brands(self)
  • get_integrations(self)
  • get_parcel(self, code)
  • get_parcel_document(self, link)
  • get_parcel_label(self, label_printer_url)
  • get_parcels(self)
  • get_parcels_statuses(self)
  • get_return(self, code)
  • get_return_portal_outgoing_parcel(self, domain_brand, params)
  • get_return_portal_settings(self, domain_brand, language='')
  • get_return_portal_url(self, code)
  • get_returns(self)
  • get_sender_address(self)
  • get_shipping_method(self, code, params)
  • get_shipping_methods(self, params)
  • get_user_invoice(self, code)
  • get_user_invoices(self)
  • update_integration(self, code, data)

New fields (42)
  • active Boolean
    default=True
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • created_at Char
  • delivered_at Char
  • delivery_option Selection
    args: [('drop_off_point', 'Drop Off Point'), ('in_store', 'In Store'), ('drop_off_labelless', 'Labelless Drop Off')]
  • email Char
  • incoming_parcel_brand_name Char
  • incoming_parcel_code Integer
  • incoming_parcel_deleted Boolean
  • incoming_parcel_from_email Char
  • incoming_parcel_global_status_slug Char
  • incoming_parcel_id Many2one → sendcloud.parcel
    compute='_compute_parcel_id' args: 'sendcloud.parcel'
  • incoming_parcel_order_number Char
  • incoming_parcel_parcel_status Char
  • incoming_parcel_status_code Integer
  • incoming_parcel_status_global_status_slug Char
  • incoming_parcel_status_message Char
  • incoming_parcel_tracking_number Char
  • incoming_parcel_tracking_url Char
  • is_cancellable Boolean
  • items_cost Float
  • label_cost Float
  • message Text
  • outgoing_parcel_brand_name Char
  • outgoing_parcel_code Integer
  • outgoing_parcel_deleted Boolean
  • outgoing_parcel_from_email Char
  • outgoing_parcel_global_status_slug Char
  • outgoing_parcel_id Many2one → sendcloud.parcel
    compute='_compute_parcel_id' args: 'sendcloud.parcel'
  • outgoing_parcel_order_number Char
  • outgoing_parcel_parcel_status Char
  • outgoing_parcel_tracking_number Char
  • outgoing_parcel_tracking_url Char
  • reason Integer
  • refund_message Char
  • refund_type Char
  • refunded_at Char
  • return_response_cache Text
    default='{}'
  • sendcloud_code Integer
    required=True
  • status Char
  • status_display Char
  • total_refund Float
Public methods (2)
  • sendcloud_create_or_update_returns(self, return_data, company)
    @api.model
  • sendcloud_sync_returns(self)
    @api.model

New fields (15)
  • active Boolean
    default=True
  • city Char
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • company_name Char
  • contact_name Char
  • country Char
  • email Char
  • eori_number Char
  • house_number Char
  • postal_box Char
  • postal_code Char
  • sendcloud_code Integer
    required=True
  • street Char
  • telephone Char
  • vat_number Char
Public methods (2)
  • sendcloud_sync_sender_address(self)
    @api.model
  • sendcloud_update_sender_address(self, sender_addresses, company)
    @api.model

New fields (17)
  • company_id Many2one → res.company
    required=True args: 'res.company'
  • country_id Many2one → res.country
    compute='_compute_country_id' string='To Country' args: 'res.country'
  • enable_price_custom Boolean
    compute='_compute_price_custom' inverse='_inverse_price_custom' readonly=False
  • from_country_id Many2one → res.country
    compute='_compute_country_id' args: 'res.country'
  • from_iso_2 Char
  • from_iso_3 Char
  • from_name Char
    compute='_compute_country_id'
  • iso_2 Char
    required=True
  • iso_3 Char
  • method_code Integer
    required=True
  • name Char
    compute='_compute_country_id'
  • price Float
  • price_check Selection
    compute='_compute_price_custom' args: [('standard', 'Standard'), ('custom', 'Custom'), ('unavailable', 'Unavailable')]
  • price_custom Float
    compute='_compute_price_custom' help='This price will override the standard price and will be applied to the shipping price.' inverse='_inverse_price_custom' readonly=False string='Custom Price'
  • product_id Many2one → product.product
    comodel_name='product.product' compute='_compute_price_custom' domain="[('type', '=', 'service')]" help='This product will be used on the sale order line' inverse='_inverse_price_custom' readonly=False string='Specific Delivery Product'
  • sendcloud_code Integer
    required=True
  • sendcloud_is_return Boolean
Public methods (1)
  • sendcloud_custom_price_details(self)

New fields (7)
  • company_id Many2one → res.company
    required=True args: 'res.company'
  • custom_price Boolean
  • enable_price_custom Boolean
  • iso_2 Char
    required=True
  • method_code Integer
    required=True
  • price Float
  • product_id Many2one → product.product
    comodel_name='product.product' domain="[('type', '=', 'service')]" help='This product will be used on the sale order line' string='Specific Delivery Product'
Public methods (0)

No public methods.

New fields (1)
  • sync_from_date Date
    default=<expr> required=True
Public methods (1)
  • button_sync(self)

New fields (7)
  • brands Boolean
    default=True
  • invoices Boolean
    default=True
  • parcel_statuses Boolean
    default=True
  • parcels Boolean
    default=True
  • returns Boolean
    default=True
  • sender_addresses Boolean
    default=True
  • shipping_methods Boolean
    default=True
Public methods (1)
  • button_sync(self)

New fields (1)
  • warehouse_ids One2many → sendcloud.change.warehouse.address.wizard
    default=_default_warehouse_ids string='Warehouses' args: 'sendcloud.change.warehouse.address.wizard', 'wizard_id'
Public methods (1)
  • button_update(self)

New fields (15)
  • label_print_status Selection
    compute='_compute_label_print_status' store=True args: [('generated', 'Generated'), ('printed', 'Printed'), ('partial', 'Partially Printed')]
  • sendcloud_announce Boolean
    default=True help='Should the parcel request a label.'
  • sendcloud_apply_shipping_rules Boolean
    help='When set to True configured shipping rules will be applied before creating the label and announcing the Parcel'
  • sendcloud_customs_shipment_type Selection
    compute='_compute_sendcloud_customs_shipment_type' readonly=False selection='_get_sendcloud_customs_shipment_type' store=True
  • sendcloud_insured_value Float
    help='Insured Value must be in Euro currency.'
  • sendcloud_is_return Boolean
  • sendcloud_last_cached Datetime
    copy=False readonly=True
  • sendcloud_parcel_count Integer
    compute='_compute_sendcloud_parcel_count' string='Parcels'
  • sendcloud_parcel_ids One2many → sendcloud.parcel
    args: 'sendcloud.parcel', 'picking_id'
  • sendcloud_service_point_address Text
    compute='_compute_sendcloud_service_point_address' readonly=False store=True
  • sendcloud_service_point_required Boolean
    related='carrier_id.sendcloud_service_point_required'
  • sendcloud_shipment_code Char
    copy=False index=True
  • sendcloud_shipment_uuid Char
    copy=False
  • sendcloud_shipping_method_checkout_name Char
  • sendcloud_sp_details Char
    compute='_compute_sendcloud_sp_details'
Public methods (15)
  • action_cancel(self)
  • action_download_sendcloud_labels(self)
  • action_multi_create_sendcloud_labels(self)
  • action_multi_create_sendcloud_labels_download(self)
  • action_open_sendcloud_parcels(self)
  • button_create_sendcloud_labels(self)
  • button_delete_sendcloud_picking(self)
  • button_to_sendcloud_sync(self)
  • cancel_shipment(self)
  • create(self, vals)
    @api.model_create_multi
  • delete_sendcloud_pickings(self, to_delete_shipments)
    @api.model
  • generate_sendcloud_ref_uuid_vals(self)
  • to_delete_sendcloud_pickings(self)
  • unlink(self)
  • write(self, vals)

New fields (1)
  • sencloud_sender_address_id Many2one
    readonly=False related='partner_id.sencloud_sender_address_id'
Public methods (0)

No public methods.

Loading…

Status
Open migration PR — not merged yet for this version
CI status
green — ready to merge
Open since
1 day ago
Last activity
0 days ago
Repository
OCA/delivery-carrier
Pull request
[19.0][MIG] delivery_sendcloud_oca: Migration to 19.0 (#1243)