OdooWiki OCA HUB

Sendcloud Shipping

delivery_sendcloud_oca folder_open OCA/delivery-carrier open_in_new
Operations/Inventory/Delivery Licencia: LGPL-3

Este módulo proporciona la integración de envíos de sendcloud con Odoo

Este módulo implementa en su mayor parte lo que se describe en https://docs.sendcloud.sc/api/v2/shipping/

La documentación completa para desarrolladores está en https://docs.sendcloud.sc/.

Este módulo funciona tanto para la Community Edition como para la Enterprise Edition.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 18.0

Conecta Odoo con Sendcloud para calcular los costes de envío, crear envíos y etiquetas, y gestionar paquetes, devoluciones, marcas y facturas de Sendcloud directamente desde los pedidos de venta y las entregas.

Este módulo añade un método de envío Sendcloud a Odoo. Los usuarios configuran integraciones de Sendcloud por compañía (claves pública/secreta, tienda, puntos de servicio) y sincronizan los métodos de envío disponibles, que se convierten en transportistas de entrega con límites de peso y precios basados en el país.

En un pedido de venta, cuando el transportista es un método de Sendcloud, Odoo calcula el peso del pedido a partir de los productos, muestra la dirección del punto de servicio requerida y puede sincronizar el pedido con Sendcloud. La confirmación de un pedido crea automáticamente el envío de Sendcloud. Los usuarios también pueden sincronizar o eliminar manualmente un pedido de Sendcloud desde botones en el pedido de venta.

Los pedidos de entrega (stock pickings) obtienen paquetes de Sendcloud con etiquetas y documentos que se pueden descargar. Los paquetes se pueden cancelar y se pueden crear devoluciones desde una marca. Un área de menú de Sendcloud da acceso a integraciones, marcas, transportistas, paquetes, devoluciones, facturas, direcciones de remitente y un registro de todas las solicitudes enviadas a Sendcloud.

Las reglas de negocio incluyen: solo se ofrecen los transportistas que coinciden con la dirección del remitente del almacén, el país de destino y el peso del pedido; los transportistas de puntos de servicio se ocultan a menos que se habiliten en la integración; los transportistas de Sendcloud requieren una compañía y una compañía de integración coherente. Para los envíos fuera de la UE, se requiere un número de factura, y Odoo puede crear automáticamente una factura de anticipo del 100% si está habilitado. Un trabajo programado sincroniza paquetes, devoluciones, facturas y métodos de envío.

Depende de

base_address_extendedstock_deliverywebsaleonboarding

Menús que añade

SendcloudSalesQuotationsOrdersBrandsDeliveryShipmentsParcelsShipping MethodsReturnsReturnsParcelsShipping MethodsInvoicesLoggingActionsConfigurationIntegrationSender AddressParcel StatusCarriersWizardsmenu_configuration_sendcloud_integrationmenu_configuration_sendcloud_syncmenu_configuration_sendcloud_warehousemenu_configuration_sendcloud_sync_order
Modelos y campos (30)
  • sale.order · modelo nuevosendcloud_order_code, sendcloud_sp_details, sendcloud_order_weight, is_sendcloud_delivery_type, sendcloud_customs_shipment_type, sendcloud_service_point_address, sendcloud_service_point_required
  • res.company · amplía un modelo existentesendcloud_brand_ids (Sendcloud Brands), sendcloud_return_ids (Sendcloud Returns), sendcloud_invoice_ids (Sendcloud Invoices), is_sendcloud_test_mode, sendcloud_integration_ids (Sendcloud Integrations), sendcloud_sender_address_ids (Sendcloud Sender Addresses), sendcloud_auto_create_invoice, sendcloud_default_integration_id
  • res.partner · amplía un modelo existentesendcloud_is_in_eu (Is in EU), sencloud_sender_address_id (Sendcloud Sender Address)
  • stock.picking · modelo nuevolabel_print_status, sendcloud_announce, sendcloud_is_return, sendcloud_parcel_ids, sendcloud_sp_details, sendcloud_last_cached, sendcloud_parcel_count (Parcels), sendcloud_insured_value, sendcloud_shipment_code, sendcloud_shipment_uuid, sendcloud_apply_shipping_rules, sendcloud_customs_shipment_type, sendcloud_service_point_address, sendcloud_service_point_required, sendcloud_shipping_method_checkout_name
  • sendcloud.brand · modelo nuevoname, color, active, domain, website, company_id, print_thumb, screen_thumb, sendcloud_code, hide_powered_by, secondary_color, notify_bcc_email, return_portal_url, notify_reply_to_email
  • sendcloud.mixin · modelo nuevois_sendcloud_test_mode
  • stock.warehouse · amplía un modelo existentesencloud_sender_address_id
  • delivery.carrier · modelo nuevodelivery_type, sendcloud_code, sendcloud_price, sendcloud_carrier, sendcloud_is_return, sendcloud_max_weight, sendcloud_min_weight, sendcloud_country_ids (Price per Country), sendcloud_integration_id, sendcloud_sync_countries (Synchronize countries with Sendcloud), sendcloud_sender_address_id, sendcloud_service_point_input, sendcloud_service_point_required
  • sendcloud.action · modelo nuevomodel, resid, action, message (Received Message), exitcode, record_id, timestamp, company_id, is_processed, message_type, sent_payload, error_message, response_time (Response Time (sec)), error_on_parsing, date_last_success, sendcloud_integration_id
  • sendcloud.parcel · modelo nuevocity, name, note, type, email, label (File Content), street, weight, address, carrier, brand_id, collo_nr, shipment (Cached Shipment), to_state, address_2, documents (Documents Data), is_return, reference, telephone, colli_uuid, company_id, package_id, picking_id, collo_count, postal_code, shipment_id, company_name, document_ids (Documents), house_number, order_number
  • sendcloud.return · modelo nuevoemail, active, reason, status, message, company_id, created_at, items_cost, label_cost, refund_type, refunded_at, delivered_at, total_refund, is_cancellable, refund_message, sendcloud_code, status_display, delivery_option, incoming_parcel_id, outgoing_parcel_id, incoming_parcel_code, outgoing_parcel_code, return_response_cache, incoming_parcel_deleted, outgoing_parcel_deleted, incoming_parcel_brand_name, incoming_parcel_from_email, outgoing_parcel_brand_name, outgoing_parcel_from_email, incoming_parcel_status_code
  • sendcloud.carrier · modelo nuevoname, sendcloud_code
  • sendcloud.invoice · modelo nuevoref, active, is_paid, item_ids, company_id, price_excl, price_incl, invoice_date, invoice_type, sendcloud_code
  • sendcloud.request · modelo nuevo
  • res.config.settings · amplía un modelo existenteis_sendcloud_test_mode, sendcloud_auto_create_invoice
  • onboarding.onboarding · amplía un modelo existente
  • sendcloud.integration · modelo nuevoactive, database, sequence, shop_url, shop_name, company_id, public_key, secret_key, webhook_url, sendcloud_code, webhook_active, service_point_enabled, service_point_carriers, service_point_carrier_ids (Carriers)
  • sendcloud.parcel.item · modelo nuevosku, value, weight, hs_code, quantity, parcel_id, product_id, properties, description, return_reason, origin_country, return_message
  • sendcloud.sync.wizard · modelo nuevobrands, parcels, returns, invoices, parcel_statuses, sender_addresses, shipping_methods
  • sendcloud.invoice.item · modelo nuevoname, sendcloud_code, sendcloud_invoice_id
  • choose.delivery.carrier · amplía un modelo existente
  • sendcloud.parcel.status · modelo nuevomessage, sendcloud_code
  • sendcloud.sender.address · modelo nuevocity, email, active, street, country, telephone, company_id, postal_box, vat_number, eori_number, postal_code, company_name, contact_name, house_number, sendcloud_code
  • sendcloud.parcel.document · modelo nuevolink, name, size, parcel_id, attachment (File Content), attachment_id
  • onboarding.onboarding.step · amplía un modelo existente
  • sendcloud.sync.order.wizard · modelo nuevosync_from_date
  • sendcloud.integration.wizard · modelo nuevobase_url, company_id, info_message, error_message, is_sendcloud_test_mode, integration_request_url
  • sendcloud.shipping.method.country · modelo nuevoname, iso_2, iso_3, price, from_name, company_id, country_id (To Country), from_iso_2, from_iso_3, product_id (Specific Delivery Product), method_code, price_check, price_custom (Custom Price), sendcloud_code, from_country_id, enable_price_custom, sendcloud_is_return
  • sendcloud.warehouse.address.wizard · modelo nuevowarehouse_ids (Warehouses)
  • sendcloud.create.return.parcel.wizard · modelo nuevoreasons (Reasons Cached), brand_id, language, line_ids, parcel_id, reason_id, identifier, poller_url, reason_ids, return_fee, collo_count, postal_code, support_url, access_token, info_message, error_message, service_point, enable_refunds, reason_message, refund_message, refund_options (Refund Options Cached), shop_distances, delivery_options (Delivery Options Cached), refund_option_id, return_locations (Return Locations Cached), refund_option_ids, return_policy_url, return_portal_url, delivery_option_id, return_location_id

Texto generado por IA (DeepSeek) al leer el código de la versión 18.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. El módulo es muy grande y solo se ha leído una parte del código. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 2 confirmadas, 7 sin información de 9 versiones.

Fuentes · Odoo 18.0

Confirmado el 2026-11-03 en la rama 18.0 de OCA/delivery-carrier.

terminal Instalación y uso

Documentación de OCA · Odoo 18.0

Crea una cuenta en sendcloud.com y elige un plan. Ve a integraciones y selecciona la integración de Odoo para usar la integración de Odoo o selecciona la integración api si solo quieres usar la integración api (consulta el readme para más información).

Integración de Odoo

Verifica que el valor del parámetro "web.base.url" en System Parameters esté configurado con la url correcta (ej.: "https://demo.onestein.eu" en lugar de "http://localhost:8069").

Ve a Sendcloud > Configuration > Wizards > Setup the Sendcloud Integration. Aparecerá un asistente.

Selecciona Odoo Integration. Start Setup. Serás redirigido a una página de Sendcloud que te pedirá que autorices a OdooShop a acceder a tu cuenta de Sendcloud. Haz clic en Connect en la página de Sendcloud.

Vuelve a la configuración de Odoo Integration. Ahora hay una integración "OdooShop" presente en la vista de lista de Integration. Abre el formulario de OdooShop Integration. Edita la OdooShop Integration. Los cambios que realices estarán sincronizados, del lado de Sendcloud, con la configuración de la integración.

En caso de que haya varias integraciones presentes, ordena las integraciones por secuencia, para permitir que Odoo elija la predeterminada que se utilizará. Ten en cuenta que al usar la integración de Odoo se crea un "incoming order" en Sendcloud en cuanto validas el salesorder. El "incoming order" tiene el estado "in process" en Sendcloud y aún no se reenvía al transportista.

Cuando validas la entrega en Odoo se crea la etiqueta y la asignación de recogida se envía al transportista.

En versiones anteriores existía la posibilidad de conectarse a la integración API en lugar de a la integración de Odoo. Para beneficiarte del soporte de Sendcloud te recomendamos encarecidamente que actualices a la última versión de este módulo con la integración de Odoo.

Configuración del panel de Sendcloud

Cuando configuras los ajustes de Integration en el panel online de Sendcloud (https://panel.sendcloud.sc/) esos ajustes también se sincronizan con los ajustes de Integration del lado de Odoo.

Sincronizar objetos de Sendcloud

Una vez completada la configuración de la integración con el servidor de Sendcloud, el segundo paso es sincronizar los objetos presentes en el servidor de Sendcloud con Odoo. Para sincronizar los objetos de Sendcloud por primera vez:

  • Ve a Sendcloud > Configuration > Wizards > Sync the Sendcloud Objects. Aparecerá un asistente.
  • Selecciona todos los objetos. Confirma. Esto recuperará los datos necesarios del servidor de Sendcloud.

Algunos objetos de Sendcloud se sincronizarán automáticamente desde el servidor de Sendcloud con Odoo. Esos objetos de Sendcloud son:

  • Parcel Statuses
  • Invoices
  • Shipping Methods
  • Sender Addresses

Para configurar con qué frecuencia deben recuperarse esos objetos del servidor de Sendcloud:

  • Ve a Settings > Technical > Automation > Scheduled Actions. Busca en Scheduled Actions "Sendcloud".
  • Establece el valor de "Execute Every" según tus necesidades.

Sender Addresses y Warehouses

En caso de que haya varios almacenes configurados en Odoo (ej.: el usuario pertenece al grupo "Manage multiple Warehouse"):

Ve a Sendcloud > Configuration > Integration. Haz clic en Configure Warehouse Addresses. Aparecerá un asistente. Establece la Sendcloud Sender Address correspondiente para cada una de las direcciones de almacén.

Alternativamente, en Inventory > Configuration > Warehouses, selecciona una dirección. En el formulario de la dirección, ve a la pestaña Sales and Purchase y establece la Sencloud Sender Address. En Sale Order > Delivery: selecciona el Warehouse. Comprueba que la dirección del Warehouse tiene una Sendcloud Senser Address.

Sincronización inicial de pedidos pasados

Una vez completados todos los pasos de configuración anteriores, es posible sincronizar todos los envíos salientes pasados de Odoo con Sendcloud. Esos envíos son los que ya están configurados con un método de envío de Sendcloud.

Ve a Sendcloud > Configuration > Wizards > Sync past orders to Sendcloud. Aparecerá un asistente. Selecciona la fecha (por defecto establecida a 30 días atrás desde hoy) a partir de la cual deben sincronizarse los envíos.

Haz clic en el botón Confirm: los envíos se mostrarán en la pestaña Incoming Order View del panel de Sendcloud. Tendrán el estado "Ready to Process" si están listos para generar una etiqueta y el cumplimiento del pedido continuará.

Creación automática de factura

Al enviar un producto fuera de la UE, Sendcloud requiere un número de factura. En caso de que el envío se realice con un producto que pueda facturarse en función de las cantidades entregadas, esta combinación de factores impide que se cree la etiqueta en Sendcloud al confirmar el SO.

Una posible solución es crear automáticamente una factura de pago anticipado del 100% al enviar fuera de la UE. Para habilitar esta función, ve a "General Settings": en la sección Sendcloud puedes encontrar el indicador "Auto create invoice". Aviso: esta función todavía está en fase de pruebas beta.

Modo de prueba

Para habilitar el Modo de prueba, ve a "General Settings": en la sección Sendcloud puedes encontrar el indicador "Enable Test Mode". Habilitar el Modo de prueba te permite acceder a funcionalidades adicionales que son útiles para probar el conector.

No hay un entorno de prueba independiente disponible en el portal de Sendcloud. Esto significa que en cuanto creas etiquetas se le da la orden al transportista de recoger la mercancía. Puedes usar el transportista "unstamped letter" para las pruebas. Cuando pruebes con otros transportistas asegúrate de cancelar las etiquetas en el portal de Sendcloud en un par de horas, de lo contrario la etiqueta se facturará y se recogerá.

Dado que no hay entorno de prueba, es muy importante saber que Sendcloud almacena sus registros en función del número de entrega, por ejemplo WH/OUT/0001, este campo es idempotente. Así que cuando empieces a probar y uses el número de entrega WH/OUT/00001 este número se almacena en Sendcloud. Cuando pases a producción y uses los mismos números de entrega, en este caso WH/OUT/00001, Sendcloud tratará esto como una actualización del registro existente y devolverá la shipping-address que ya estaba almacenada (creada durante las pruebas). Para evitar este problema deberías establecer un prefijo diferente en la secuencia out en tu entorno de prueba. En modo debug, Technical/Sequences Identifiers/Sequences, selecciona la secuencia out y ajústala a WH/OUT/TEST por ejemplo.

En resumen, así es como funciona el módulo:

  • el usuario crea un pedido de venta en Odoo; el usuario hace clic en el botón "Add shipping" y selecciona uno de los métodos de envío proporcionados por Sendcloud
  • al confirmar el pedido de venta, se genera un documento de entrega (stock.picking)
  • al confirmar el picking, se crea un paquete (o varios paquetes) para el pedido de venta específico en Sendcloud en Shipping > Created labels
  • el picking se actualiza con la información de Sendcloud (tracking number, tracking url, label etc...)

Mapa de los modelos de datos Sendcloud-Odoo

| Sendcloud | Odoo | | ----------- |-------------------| | | Brand | Website Shop | | Order | Sales Order | | Shipment | Picking | | Parcel (colli) | Picking packs | | Sender address | Warehouse address | | Shipping Method | Shipping Method |

Paquetes Multicollo

En Inventory > Configuration > Delivery Packages, establezca el transportista en Sendcloud. En el picking de salida, coloque los productos en diferentes paquetes de Sendcloud para crear paquetes Multicollo.

Selector de Punto de Servicio

El módulo contiene un widget, el Service Point Picker, que permite la selección del punto de servicio. El widget se coloca en la pestaña "Sendcloud Shipping" del picking. El widget es visible en caso de que se cumpla lo siguiente:

  • la configuración en el panel de Sendcloud tiene el indicador Service Point en True (en la configuración de la integración de Sendcloud)
  • el Shipping Method seleccionado en el picking es proporcionado por Sendcloud
  • el Shipping Method tiene el campo sendcloud_service_point_input == "required"
  • todos los criterios (from country, to country, weight) coinciden con el pedido actual

Cancelar paquetes

Al cancelar paquetes, aparecerá una ventana emergente de confirmación que solicitará confirmación.

Entrega fuera de la UE

Instale el módulo OCA 'product_harmonized_system' o el módulo Enterprise 'account_intrastat' para la entrega fuera de la UE. Ambos incluyen el campo adicional 'country of origin'.

Solución de problemas

Si la comunicación con el servidor de Sendcloud falla (ej.: al crear un paquete), el mensaje intercambiado se almacena en una sección de Log, en Logging > Actions.

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.