alazzi-az/laraodoo-xmlrpc

Odoo-Xmlrpc PHP for Laravel 是一款强大的 PHP API 客户端,允许您与 Odoo XML-RPC API 进行交互

v1.0.3 2023-07-22 20:03 UTC

This package is auto-updated.

Last update: 2024-09-22 18:56:21 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Odoo XML-RPC 客户端 是一个 PHP 包,它提供了一个简单易用的接口来与 Odoo XML-RPC API 交互。与需要扩展或其他依赖项的其他 Odoo 客户端不同,此客户端使用 laminas/laminas-xmlrpc 包,这是 XML-RPC 协议的纯 PHP 实现。

要求

  • PHP 8.1 或更高版本

开始使用

首先,使用 Composer 包管理器安装 laraodoo-xmlrpc

composer require alazzi-az/laraodoo-xmlrpc

接下来,发布配置文件

php artisan vendor:publish --provider="Alazzidev\LaraodooXmlrpc\ServiceProvider"

这将创建一个在您的项目中的 config/odoo-xmlrpc..php 配置文件,您可以使用环境变量对其进行修改以满足您的需求

return [
    'url' => env('ODOO_URL', ''),
    'suffix' => 'xmlrpc/2',
    'db' => env('ODOO_DB', ''),
    'username' => env('ODOO_USERNAME', ''),
    'password' => env('ODOO_PASSWORD', ''),
];

最后,您可以使用 Odoo 门面来访问 Odoo Xml API

use Alazzidev\LaraodooXmlrpc\Facades\Odoo;

$result = Odoo::model('res.partner')->create([
            'test1'=>'test1-value',
            'test2'=>'test2-value'
            ]);

用法

有关用法示例,请参阅 alazzi-az/odoo-xmlrpc 仓库。

用例

在 Cummonity 版本 "account.move" 中创建发票

use Alazzidev\LaraodooXmlrpc\Facades\Odoo;

// Define invoice line
$line = [
    0,
    false,
    [
        'currency_id' => $currency_id,
        'discount' => $discountPercentage,
        'display_type' => 'product',
        'name' => $name,
        'price_unit' => $price_unit,
        'product_id' => $product_id,
        'quantity' => $quantity,
        'tax_ids' => $tax_ids,
    ]
];

$invoice_lines = [$line];

// Define invoice data
$invoice = [
    'partner_id' => $partner_id,
    'name' => $name,
    'invoice_date' => $invoice_date,
    'invoice_date_due' => $invoice_date_due,
    'payment_reference' => $payment_reference,
    'invoice_line_ids' => $invoice_lines,
    'currency_id' => $currency_id,
    'invoice_payment_term_id' => $payment_term_id,
    'state' => $state,
    'journal_id' => $journal_id,
    'move_type' => 'out_invoice',
];

// Create invoice using Odoo External API
$odoo = Odoo::model('account.move');
$odoo_invoice_id = $odoo->create($invoice);

测试

Odoo 门面包含一个 fake() 方法,允许您模拟 API 响应。

模拟响应将按照提供给 fake() 方法的顺序返回。

所有响应都具有 fake() 方法,允许您通过仅提供与您的测试案例相关的参数来轻松创建响应对象。

use Alazzidev\LaraodooXmlrpc\Facades\Odoo;

  Odoo::fake([
        'test1'=>'test1-value',
        'test2'=>'test2-value'
    ]);

    $response = Odoo::create('res.partner',[
        'test1'=>'test1-value',
        'test2'=>'test2-value'
    ]);

    expect($response['test1'])->toBe('test1-value');

并且您可以在这里运行测试

composer test:unit

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

有关详细信息,请参阅 CONTRIBUTING

安全漏洞

请审查 我们的安全策略 了解如何报告安全漏洞。

致谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件