purchase.order: campos, relaciones y API
El modelo purchase.order («Pedido de compra») es un modelo persistente declarado por el módulo Compra y ampliado por 14 módulos más. Expone 104 campos, 71 de ellos declarados directamente en el modelo; 14 campos de otros modelos apuntan a él. A continuación encontrará cada campo con su nombre técnico, tipo, etiqueta en español y relaciones, y un ejemplo de llamada a la API JSON-2 de Odoo 19.
Ficha de identidad
- Nombre técnico
purchase.order- Etiqueta
- Pedido de compra
- Tipo
- Persistente (models.Model)
- Tabla SQL
purchase_order- Módulo de origen
- Compra (
purchase) - Ampliado por
- purchase_stock, sale_purchase, sale_purchase_stock, stock_dropshipping, mrp_subcontracting_dropshipping, purchase_mrp, mrp_subcontracting_purchase, project_purchase, project_purchase_stock, purchase_edi_ubl_bis3, purchase_product_matrix, purchase_repair, purchase_requisition, purchase_requisition_stock
- Orden por defecto (_order)
priority desc, id desc
Campos del modelo
71 campos propios, 27 heredados de mixins y 6 campos automáticos del ORM. Haga clic en un nombre para obtener el enlace directo al campo.
104 de 104 campos mostrados
| Nombre técnico | Etiqueta | Tipo | Detalles |
|---|---|---|---|
| acknowledged | Reconocido Indica que el proveedor ha confirmado la recepción del pedido de compra. | boolean | |
| alternative_po_ids | Pedidos de compra alternativos Otras pedidos de compra potenciales para comprar productos | one2many | related: añadido por Acuerdos de compra ( |
| amount_tax | Impuestos | monetary | solo lecturacalculado, almacenado |
| amount_total | Total | monetary | solo lecturacalculado, almacenado |
| amount_total_cc | Total en moneda | monetary | solo lecturacalculado, almacenado |
| amount_untaxed | Importe base | monetary | solo lecturacalculado, almacenado |
| company_currency_id | Moneda de la empresa | many2one | related: |
| company_id | Compañía | many2one | obligatorio |
| company_price_include | Company Price Include | selection | related: |
| country_code | Código del país | char | related: |
| currency_id | Moneda | many2one | obligatoriocalculado, almacenado |
| currency_rate | Tipo de cambio | float | calculado, almacenado |
| date_approve | Fecha de confirmación | datetime | solo lectura |
| date_calendar_start | Fecha de inicio del calendario | datetime | solo lecturacalculado, almacenado |
| date_order | Fecha límite del pedido Representa la fecha en la que la solicitud de presupuesto debe validarse y convertirse en un pedido de compra. | datetime | obligatorio |
| date_planned | Llegada prevista Fecha de entrega prometida por el proveedor. Esta fecha se utiliza para determinar la llegada prevista de productos. | datetime | calculado, almacenado |
| default_location_dest_id_is_subcontracting_loc | La ubicación de destino predeterminada es una ubicación de subcontratación | boolean | calculado añadido por Administración de Dropshipping y Subcontratación ( |
| default_location_dest_id_usage | Tipo de ubicación de destino Campo técnico utilizado para mostrar la dirección de Dropshipping | selection | solo lectura related: añadido por Stock de Compra ( |
| dest_address_id | Dirección de Dropshipping Ponga una dirección si desea entregar directamente desde el proveedor al cliente. De lo contrario, mantenga vacía para entregar a su propia compañía. | many2one | calculado, almacenado |
| dropship_picking_count | Número de dropshippings | integer | calculado añadido por Dropshipping ( |
| duplicated_order_ids | Pedido duplicado | many2many | calculado |
| effective_date | Llegada Fecha de finalización de la primera recepción. | datetime | calculado, almacenado añadido por Stock de Compra ( |
| fiscal_position_id | Posición fiscal | many2one | |
| grid | Cuadrícula Technical storage of grid. If grid_update, will be loaded on the PO. If not, represents the matrix to open. | char | añadido por Matriz de Compra ( |
| grid_product_tmpl_id | Plantilla de cuadrícula del producto Campo técnico para las funcionalidades de product_matrix. | many2one | añadido por Matriz de Compra ( |
| grid_update | Actualización de la cuadrícula Si el campo de cuadrícula contiene una nueva matriz para aplicar o no. | boolean | añadido por Matriz de Compra ( |
| has_sale_order | Campo técnico para determinar si el pedido de compra tiene pedidos de venta asociados | boolean | calculado añadido por Venta y compra ( |
| incoming_picking_count | Número de envíos entrantes | integer | calculado añadido por Stock de Compra ( |
| incoterm_id | Incoterm Los términos de comercio internacional son una serie de condiciones comerciales usadas en las transacciones internacionales. | many2one | |
| incoterm_location | Ubicación del Incoterm | char | añadido por Stock de Compra ( |
| invoice_count | Número de facturas | integer | calculado, almacenado |
| invoice_ids | Facturas | many2many | calculado, almacenado |
| invoice_status | Estado de facturación | selection | solo lecturacalculado, almacenado Valores: |
| is_late | Es tarde | boolean | |
| is_shipped | Está enviado | boolean | calculado añadido por Stock de Compra ( |
| lock_confirmed_po | Lock Confirmed Po | selection | related: |
| locked | Bloqueado No puede modificar los pedidos de compra bloqueados. | boolean | |
| mrp_production_count | Número de fuentes de órdenes de fabricación | integer | calculado añadido por Compras y gestión MRP ( |
| name | Referencia del pedido | char | obligatorio |
| note | Términos y condiciones | html | |
| on_time_rate | On Time Rate | float | related: añadido por Stock de Compra ( |
| on_time_rate_perc | Entrega a tiempo | float | calculado añadido por Stock de Solicitud de compra ( |
| order_line | Líneas del pedido | one2many | inverso: |
| origin | Origen Referencia del documento que generó esta solicitud de pedido de compra (por ejemplo, un pedido de venta) | char | |
| partner_bill_count | Partner Bill Count | integer | related: |
| partner_id | Proveedor Puede encontrar un proveedor por su nombre, NIF, correo electrónico o referencia interna. | many2one | obligatorio |
| partner_ref | Referencia de proveedor Referencia del pedido de venta o la oferta que envió el proveedor. Se utiliza para conciliar inventario al recibir los productos, ya que esta referencia se suele incluir en la nota de entrega que le envía su proveedor. | char | |
| payment_term_id | Condiciones de pago | many2one | |
| picking_ids | Recepciones | many2many | calculado, almacenado añadido por Stock de Compra ( |
| picking_type_id | Entregar a Esto determinará el tipo de operación del envío entrante | many2one | obligatorio añadido por Stock de Compra ( |
| priority | Prioridad | selection | Valores: |
| product_id | Producto | many2one | related: |
| project_id | Proyecto | many2one | añadido por Compra del proyecto ( |
| purchase_group_id | Grupo de compra | many2one | añadido por Acuerdos de compra ( |
| purchase_warning_text | Advertencia de compra Advertencia interna para el contacto o los productos según lo establecido por el usuario. | text | calculado |
| receipt_reminder_email | Correo electrónico de recordatorio de recibo | boolean | calculado, almacenado |
| receipt_status | Estado de recepción Red: Late Orange: To process today Green: On time | selection | calculado, almacenado Valores: añadido por Stock de Compra ( |
| reference_ids | Referencias | many2many | añadido por Stock de Compra ( |
| reminder_date_before_receipt | Días antes de la recepción | integer | calculado, almacenado |
| repair_count | Número de reparaciones de origen | integer | calculado añadido por Compra y reparaciones ( |
| report_grids | Imprimir cuadrículas de variantes Si se establece, la matriz de productos configurables se mostrará en el informe de este pedido. | boolean | añadido por Matriz de Compra ( |
| requisition_id | Acuerdo | many2one | añadido por Acuerdos de compra ( |
| requisition_type | Requisition Type | selection | related: añadido por Acuerdos de compra ( |
| sale_order_count | Número de venta de origen | integer | calculado añadido por Venta y compra ( |
| show_comparison | Mostrar comparación | boolean | calculado |
| state | Estado | selection | solo lectura Valores: |
| subcontracting_resupply_picking_count | Número de reabastecimientos por subcontratación Número de reabastecimientos por subcontratación por componente | integer | calculado añadido por Gestión de compra y subcontratación ( |
| tax_calculation_rounding_method | Método de redondeo al calcular impuestos | selection | solo lectura related: |
| tax_country_id | Impuesto del país Campo técnico para filtrar los impuestos disponibles que dependen del país fiscal y la posición fiscal. | many2one | calculado |
| tax_totals | Total de impuestos | binary | calculado |
| user_id | Comprador | many2one | |
| access_token | Token de seguridad | char | heredado de portal.mixin |
| access_url | URL de acceso al portal URL del portal de cliente | char | calculado heredado de portal.mixin |
| access_warning | Advertencia de acceso | text | calculado heredado de portal.mixin |
| activity_calendar_event_id | Siguiente evento en el calendario de actividades. | many2one | calculado heredado de mail.activity.mixin |
| activity_date_deadline | Fecha límite de la siguiente actividad | date | solo lecturacalculado heredado de mail.activity.mixin |
| activity_exception_decoration | Decoración de Actividad de Excepción Tipo de actividad de excepción en el registro. | selection | calculado Valores: heredado de mail.activity.mixin |
| activity_exception_icon | Icono Icono para indicar una actividad de excepción. | char | calculado heredado de mail.activity.mixin |
| activity_ids | Actividades | one2many | inverso: heredado de mail.activity.mixin |
| activity_state | Estado de la actividad Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities. | selection | calculado Valores: heredado de mail.activity.mixin |
| activity_summary | Resumen de la siguiente actividad | char | related: heredado de mail.activity.mixin |
| activity_type_icon | Icono de tipo de actividad | char | related: heredado de mail.activity.mixin |
| activity_type_id | Tipo de la siguiente actividad | many2one | related: heredado de mail.activity.mixin |
| activity_user_id | Usuario responsable | many2one | solo lecturacalculado heredado de mail.activity.mixin |
| has_message | Tiene un mensaje | boolean | calculado heredado de mail.thread |
| message_attachment_count | Número de archivos adjuntos | integer | calculado heredado de mail.thread |
| message_follower_ids | Seguidores | one2many | inverso: heredado de mail.thread |
| message_has_error | Error de envío de mensaje Si está marcada, algunos mensajes tienen error de envío. | boolean | calculado heredado de mail.thread |
| message_has_error_counter | Número de errores Número de mensajes con error de envío | integer | calculado heredado de mail.thread |
| message_has_sms_error | Error de envío del SMS Si está marcada, algunos mensajes tienen error de envío. | boolean | calculado heredado de mail.thread |
| message_ids | Mensajes | one2many | inverso: heredado de mail.thread |
| message_is_follower | Es un seguidor | boolean | calculado heredado de mail.thread |
| message_needaction | Acción requerida Si está marcada, hay nuevos mensajes que requieren su atención. | boolean | calculado heredado de mail.thread |
| message_needaction_counter | Número de acciones Número de mensajes que requieren una acción | integer | calculado heredado de mail.thread |
| message_partner_ids | Seguidores (Contactos) | many2many | calculado heredado de mail.thread |
| my_activity_date_deadline | Fecha límite de mi actividad | date | solo lecturacalculado heredado de mail.activity.mixin |
| rating_ids | Calificaciones | one2many | inverso: heredado de mail.thread |
| website_message_ids | Mensajes del sitio web Historial de comunicación del sitio web | one2many | inverso: heredado de mail.thread |
| create_date | Creado el | datetime | solo lecturaautomático |
| create_uid | Creado por | many2one | solo lecturaautomático |
| display_name | Nombre mostrado | char | solo lecturacalculadoautomático |
| id | ID | integer | solo lecturaautomático |
| write_date | Última actualización el | datetime | solo lecturaautomático |
| write_uid | Última actualización por | many2one | solo lecturaautomático |
Relaciones
Modelos enlazados desde este modelo
- account.fiscal.position: fiscal_position_id
- account.incoterms: incoterm_id
- account.move: invoice_ids
- account.payment.term: payment_term_id
- product.product: product_id
- product.template: grid_product_tmpl_id
- project.project: project_id
- purchase.order: alternative_po_ids, duplicated_order_ids
- purchase.order.group: purchase_group_id
- purchase.order.line: order_line
- purchase.requisition: requisition_id
- res.company: company_id
- res.country: tax_country_id
- res.currency: company_currency_id, currency_id
- res.partner: dest_address_id, partner_id
- res.users: user_id
- stock.picking: picking_ids
- stock.picking.type: picking_type_id
- stock.reference: reference_ids
Campos de otros modelos que apuntan aquí
- account.move: purchase_id
- account.move.line: purchase_order_id
- bill.to.po.wizard: purchase_order_id
- purchase.bill.line.match: purchase_order_id
- purchase.bill.union: purchase_order_id
- purchase.order: duplicated_order_ids
- purchase.order.line: order_id
- purchase.report: order_id
- purchase.requisition.alternative.warning: alternative_po_ids, po_ids
- purchase.requisition.create.alternative: origin_po_id
- stock.lot: purchase_order_ids
- stock.picking: purchase_id
- stock.reference: purchase_ids
Leer este modelo por la API
Ejemplo de llamada a la API JSON-2 de Odoo 19: lectura de los cinco primeros registros con campos reales del modelo. Sustituya la instancia, la base y la clave API por las suyas.
curl -X POST "https://su-instancia.odoo.com/json/2/purchase.order/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: su-base" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","company_id","currency_id","date_order","partner_id"],"limit":5}'import requests
BASE_URL = "https://su-instancia.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "su-base"}
res = requests.post(
f"{BASE_URL}/purchase.order/search_read",
headers=headers,
json={"domain": [], "fields": ["name","company_id","currency_id","date_order","partner_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- El acceso a la API externa está reservado al plan Custom de Odoo.
- XML-RPC y JSON-RPC se retirarán en Odoo 22 (otoño de 2028): use JSON-2.
- Se aplican los permisos de acceso y las reglas de registro del usuario de la clave.
Citar esta herramienta
¿Escribe un tutorial, una documentación interna o una respuesta en un foro? Copie este enlace para dirigir a sus lectores a la ficha actualizada.
<a href="https://aidoo.ai/es/outils/explorateur-modeles-odoo/purchase-order">purchase.order (Odoo 19.0)</a>Fuentes
- Código fuente del modelo en GitHub
- Documentación de Odoo 19: ORM API
- Documentación de Odoo 19: API externa JSON-2
Datos verificados el 23 de septiembre de 2026 · Odoo 19.0 Community
¿Tiene un proyecto Odoo o quiere aprovechar su ERP con la IA? Hablemos
Implantación, desarrollo de módulos, conexión de Claude o ChatGPT a sus datos: cuéntenos su contexto y le responderemos en 24 horas laborables.