You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

第三方应用集成Odoo:创建订单成功后create_invoices无响应无报错

问题分析与修复方案

你的代码中订单创建功能正常,但调用sale.advance.payment.inv的create_invoices方法无反馈,主要是以下几个原因导致,对应修复方案如下:

1. 错误的订单确认判断逻辑

action_confirm方法返回的是动作字典而非布尔值,直接用if ($confirmOrder)判断并不准确。正确做法是调用后检查订单状态是否变为sale:

// 执行订单确认
$models->execute_kw($db, $uid, $password, 'sale.order', 'action_confirm', array(array($order_id)));
// 检查订单状态
$order_info = $models->execute_kw($db, $uid, $password, 'sale.order', 'read', array($order_id, array('state')));
if ($order_info[0]['state'] !== 'sale') {
    echo "订单确认失败,当前状态:" . $order_info[0]['state'];
    exit;
}

2. create_invoices方法调用方式错误

sale.advance.payment.inv是向导模型,create_invoices需要先创建向导记录,再针对该记录调用方法,而非直接传入参数:

修复后的发票生成代码:

// 1. 创建预付款向导记录
$wizard_data = array(
    'sale_order_ids' => array(6, 0, array($order_id)), // 正确的many2many字段格式
    'advance_payment_method' => 'delivered',
    'deduct_down_payments' => true,
);
$wizard_id = $models->execute_kw($db, $uid, $password, 'sale.advance.payment.inv', 'create', array($wizard_data));

if (!$wizard_id) {
    echo "创建预付款向导失败!";
    exit;
}

// 2. 调用create_invoices生成发票
$models->execute_kw(
    $db,
    $uid,
    $password,
    'sale.advance.payment.inv',
    'create_invoices',
    array(array($wizard_id)), // 传入向导记录ID列表
    array(
        "context" => array(
            'active_model' => "sale.order",
            "allowed_company_ids" => array(1),
            'active_ids' => array($order_id)
        )
    )
);

// 3. 验证发票生成结果
$order_invoices = $models->execute_kw($db, $uid, $password, 'sale.order', 'read', array($order_id, array('invoice_ids')));
if (!empty($order_invoices[0]['invoice_ids'])) {
    echo "订单#$order_id 已成功生成发票,发票ID:" . implode(', ', $order_invoices[0]['invoice_ids']);
} else {
    echo "生成发票失败!";
}

3. 其他排查方向

  • 查看Odoo日志:若代码无报错但功能不生效,检查Odoo服务器日志(odoo.log),可能存在权限不足、产品配置缺失等隐藏问题。
  • 权限验证:确保调用接口的用户拥有销售订单确认、发票创建的权限。
  • 订单字段完整性:补充pricelist_id等必要字段,避免默认值缺失导致流程中断。

内容的提问来源于stack exchange,提问作者Ahmed hamuda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 02:30:59