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 15 módulos más. Expone 107 campos, 74 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 20.
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, purchase_alternative, purchase_alternative_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
74 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.
107 de 107 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 | Alternative POs Other potential purchase orders for purchasing products | one2many | related: añadido por Purchase Alternative ( |
| 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 |
| bill_matched_ratio | Bill Matched Ratio | float | calculado |
| 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 del pedido | 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 Expected delivery date of goods by the vendor based on the latest information | datetime | calculado, almacenado |
| date_promised | Promised Date Date promised by the vendor for at least 1 or more products to be delivered by. | datetime | calculado, almacenado añadido por Purchase Stock ( |
| 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 Dropship and Subcontracting Management ( |
| 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 Purchase Stock ( |
| 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 |
| document_tax_mode | Modo de impuestos del documento | selection | obligatoriocalculado, almacenado Valores: |
| dropship_picking_count | Número de dropshippings | integer | calculado añadido por Drop Shipping ( |
| duplicated_order_ids | Pedido duplicado | many2many | calculado |
| effective_date | Llegada Completion date of the last receipt order. | datetime | calculado, almacenado añadido por Purchase Stock ( |
| 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 Purchase Matrix ( |
| grid_product_tmpl_id | Plantilla de cuadrícula del producto Campo técnico para las funcionalidades de product_matrix. | many2one | añadido por Purchase Matrix ( |
| 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 Purchase Matrix ( |
| has_sale_order | Campo técnico para determinar si el pedido de compra tiene pedidos de venta asociados | boolean | calculado añadido por Sale Purchase ( |
| incoming_picking_count | Número de envíos entrantes | integer | calculado añadido por Purchase Stock ( |
| incoterm_id | Incoterm Los términos de comercio internacional son una serie de condiciones comerciales usadas en las transacciones internacionales. | many2one | calculado, almacenado |
| incoterm_location | Ubicación del Incoterm | char | calculado, almacenado |
| 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 Purchase Stock ( |
| 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 Purchase and MRP Management ( |
| name | Referencia del pedido | char | obligatorio |
| note | Términos y condiciones | html | |
| on_time_rate | On Time Rate | float | related: añadido por Purchase Stock ( |
| on_time_rate_perc | Entrega a tiempo | float | calculado añadido por Purchase Alternative Stock ( |
| 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 Purchase Stock ( |
| picking_type_id | Entregar a Esto determinará el tipo de operación del envío entrante | many2one | obligatorio añadido por Purchase Stock ( |
| priority | Prioridad | selection | Valores: |
| product_id | Producto | many2one | related: |
| project_id | Proyecto | many2one | añadido por Project Purchase ( |
| purchase_group_id | Purchase Group | many2one | añadido por Purchase Alternative ( |
| 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 | Recordatorio de recibo | boolean | calculado, almacenado |
| receipt_status | Receipt Status | selection | calculado, almacenado Valores: |
| reference_ids | Referencias | many2many | añadido por Purchase Stock ( |
| 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 Purchase Repair ( |
| 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 Sale Purchase ( |
| show_comparison | Mostrar comparación | boolean | calculado |
| show_receive_button | Show Receive Button | 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 Purchase and Subcontracting Management ( |
| 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 | json | 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_plans_ids | Planes de actividades | many2many | calculado 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 |
| 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.alternative.create: origin_po_id
- purchase.alternative.warning: alternative_po_ids, po_ids
- 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
- 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 20: 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","document_tax_mode"],"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","document_tax_mode"], "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 20.0)</a>Fuentes
- Código fuente del modelo en GitHub
- Documentación de Odoo 20: ORM API
- Documentación de Odoo 20: API externa JSON-2
Datos verificados el 25 de septiembre de 2026 · Odoo 20.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.