Download the PHP package jsadways/odoo-api without Composer
On this page you can find all versions of the php package jsadways/odoo-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package odoo-api
OdooApi Package
Laravel package,封裝與 Odoo 系統的 API 溝通。透過 Odoo Facade 搭配 OdooEndpoint enum 與強型別 DTO 呼叫各 endpoint。
API 文件來源:http://{ODOO_SERVER_HOST}/help?format=json
基本用法
Facade 提供三個方法,對應不同操作類型:
| 方法 | 說明 |
|---|---|
Odoo::create(OdooEndpoint, OdooPayloadDto) |
建立資料 |
Odoo::update(OdooEndpoint, OdooPayloadDto) |
更新資料 |
Odoo::list(OdooEndpoint, OdooPayloadDto) |
查詢列表 |
Odoo::retry() |
重試所有失敗的待處理請求 |
Endpoint 與 DTO 對照表
客戶 / 廠商
| Endpoint | Method | DTO |
|---|---|---|
PARTNER_CREATE |
POST | Partner\PartnerCreateDto |
PARTNER_UPDATE |
PUT | Partner\PartnerUpdateDto |
產品
| Endpoint | Method | DTO |
|---|---|---|
PRODUCT_CREATE |
POST | Product\ProductCreateDto |
PRODUCT_UPDATE |
PUT | Product\ProductUpdateDto |
案件
| Endpoint | Method | DTO | 子 DTO |
|---|---|---|---|
CAMPAIGN_CREATE |
POST | Campaign\CampaignCreateDto |
CampaignCueDto |
CAMPAIGN_UPDATE |
PUT | Campaign\CampaignUpdateDto |
CampaignCueDto |
CampaignCueDto 欄位:
| 欄位 | 型別 | 說明 |
|---|---|---|
| cue_number | int | Cue 編號 |
| product_id | int | 產品 ID |
| budget | int|float | 預算 |
| month | string | 月份(YYYYMM) |
| income | int|float | 收入 |
| income_total | int|float | 收入合計 |
| income_discount | int|float | 收入折讓 |
| income_rebate | int|float | 收入退佣 |
| cost | int|float | 成本 |
| cost_total | int|float | 成本合計 |
| cost_discount | int|float | 成本折讓 |
| cost_rebate | int|float | 成本退佣 |
| profit_code | string | 損益碼 |
| cost_code | string | 成本碼 |
| id | ?int | Odoo ID(update 時帶入表示更新既有 cue,不帶則新建) |
財務 - 收入
| Endpoint | Method | DTO | 子 DTO |
|---|---|---|---|
INCOME_RECEIPT_LIST |
GET | Income\IncomeReceiptListDto |
— |
INCOME_DISCOUNT_LIST |
GET | Income\IncomeDiscountListDto |
— |
INCOME_RECEIPT_CREATE |
POST | Income\IncomeReceiptCreateDto |
IncomeReceiptCueDto, NotificationEmailDto |
INCOME_RECEIPT_DISCOUNT |
POST | Income\IncomeReceiptDiscountDto |
IncomeDiscountReceiptDto, IncomeDiscountReceiptCueDto, IncomeCreditNoteDto, IncomeDebitNoteDto, IncomeCostReceiptDto |
INCOME_RECEIPT_VOID |
POST | Income\IncomeReceiptVoidDto |
— |
INCOME_RECEIPT_VOID_UPDATE |
POST | Income\IncomeReceiptVoidUpdateDto |
— |
INCOME_DISCOUNT_VOID |
POST | Income\IncomeDiscountVoidDto |
— |
查詢列表
建立收入發票草稿
建立收入發票折讓草稿
作廢
財務 - 成本
| Endpoint | Method | DTO | 子 DTO |
|---|---|---|---|
COST_RECEIPT_LIST |
POST | Cost\CostReceiptListDto |
— |
COST_DISCOUNT_LIST |
POST | Cost\CostDiscountListDto |
— |
COST_RECEIPT_DISCOUNT |
POST | Cost\CostReceiptDiscountDto |
CostDiscountReceiptDto, CostDiscountReceiptCueDto, CostAllowanceDto, CostCreditNoteDto, CostDebitNoteDto, CostIncomeReceiptDto |
COST_DISCOUNT_VOID |
POST | Cost\CostDiscountVoidDto |
— |
建立成本發票折讓草稿
DTO 目錄結構
Retry 機制
每次呼叫 create / update / list 時,請求資料會先寫入 Cache。成功後自動移除,失敗則保留等待 retry。
透過索引 key(odoo_pending_requests)記錄所有待 retry 的 cache key,retry 時依 cached_at 時間排序,先快取的先處理。
手動 retry
回傳陣列,每筆包含 transaction_key、success、result。
自動排程 retry
在 .env 中設定:
啟用後,套件會自動註冊每小時執行一次的排程進行 retry。預設為 false(不啟用)。
主專案需確保 cron 有執行 schedule:run:
設計說明
- 所有 DTO 繼承
OdooPayloadDto,提供get(): array方法將 properties 轉為 array get()自動過濾值為null的欄位(可選欄位不傳時不會出現在 payload 中)- 巢狀物件皆有獨立 DTO,IDE 可完整提示每個欄位
ProductUpdateDto覆寫get()回傳 sequential array,對應 API data 為陣列的格式OdooProcess負責快取管理與 retry 邏輯,OdooService僅做薄層串接- 失敗請求透過索引表機制追蹤,支援手動或排程自動 retry
All versions of odoo-api with dependencies
PHP Build Version
Package Version
No informations.
The package jsadways/odoo-api contains the following files
Loading the files please wait ...