art-erp

ART ERP community node for n8n

Documentation

n8n-nodes-art-erp

ART ERP community node for n8n — community node gọi REST API của hệ thống ART ERP từ workflow n8n.

Các endpoint được ánh xạ từ postman_collection.json (collection ERP APIs).

Cài đặt

n8n (self-hosted)

Trong thư mục custom nodes của n8n:

npm install n8n-nodes-art-erp

Khởi động lại n8n sau khi cài.

Phát triển local

pnpm install
pnpm run build

Cấu trúc trong n8n

Credentials — ART ERP account

Credential ánh xạ các request Token trong Postman collection. Tất cả đều gọi {{baseUrl}}/Token và trả về access_token dùng làm Bearer token cho các API khác.

Authentication trong n8n Request Postman Method Cách xác thực
Token (Basic Auth) Token (basic auth) POST Header Authorization: Basic …, body grant_type=password
Token (Password Form) Token GET Body form grant_type, username, password
Token (OAuth 2 Form) Token (OAuth 2) POST Body form client_id, client_secret, grant_type=client_credentials
Token (OAuth 2 JSON) Token (application/json) POST Body JSON client_id, client_secret, grant_type, scope
Trường Mô tả
Domain Base URL của ART ERP ({{baseUrl}}, mặc định từ $vars.ART_ERP_DOMAIN)
Authentication Chọn một trong 4 kiểu Token ở trên
Username / Password Dùng cho Basic Auth và Password Form
Client ID / Client Secret Dùng cho OAuth 2 Form và OAuth 2 JSON
Scope Tùy chọn, chỉ dùng cho OAuth 2 JSON

Khi test credential hoặc chạy node, package gọi /Token theo mode đã chọn, cache token theo domain + phương thức xác thực, và gửi Authorization: Bearer {access_token} cho các request API.

Mọi request (kể cả /Token) đều tự động thêm query param AppVersion theo format {package-name}-v{version} (ví dụ: AppVersion=n8n-nodes-art-erp-v1.0.2), tương đương script Postman pm.request.url.addQueryParams(["AppVersion=postman"]).

Nodes — theo phân hệ API

Mỗi phân hệ trong URL API tương ứng với một node trong n8n:

Node n8n Phân hệ API Resources
ART ERP SYS /api/v1/SYS/... Sync Job, Config
ART ERP BANK /api/v1/BANK/... Incoming Payment, Transaction, Account
ART ERP BRA /api/v1/BRA/... Branch
ART ERP SALE /api/v1/SALE/... Order

Cấu trúc URL:

{baseUrl}/api/v1/{PhânHệ}/{Nhóm}/{Action}
Cấp Postman / API Trong n8n
Phân hệ (SYS, BANK, BRA, SALE, …) Node (ví dụ: ART ERP SYS)
Nhóm (Config, SyncJob, IncomingPayment, …) Resource
Endpoint / thao tác (ConfigByProvider, CheckTransaction, …) Operation

Ví dụ ánh xạ:

API Node Resource Operation
GET /api/v1/SYS/Config/ConfigByProvider ART ERP SYS Config Config By Provider
GET /api/v1/BANK/IncomingPayment ART ERP BANK Incoming Payment Get Many
POST /api/v1/BANK/Transaction/Update ART ERP BANK Transaction Update
GET /api/v1/BRA/Branch/Search ART ERP BRA Branch Search
POST /api/v1/SALE/Order/CheckMasterData ART ERP SALE Order Check Master Data

Cấu trúc mã nguồn

art-erp/
├── credentials/
│   └── ArtErpApi.credentials.ts    # ART ERP account
├── nodes/
│   ├── common/
│   │   ├── AppVersion.ts           # AppVersion query param helper
│   │   ├── GenericFunctions.ts     # HTTP helper (Bearer token)
│   │   ├── TokenHelpers.ts         # /Token auth (Basic, OAuth 2)
│   │   ├── NodeHelpers.ts          # Field helpers dùng chung
│   │   └── arterp.svg
│   ├── SYS/
│   │   ├── SYS.node.ts             # Node SYS
│   │   └── SYS.node.json
│   ├── BANK/
│   │   ├── BANK.node.ts            # Node BANK
│   │   └── BANK.node.json
│   ├── BRA/
│   │   ├── BRA.node.ts             # Node BRA
│   │   └── BRA.node.json
│   └── SALE/
│       ├── SALE.node.ts            # Node SALE
│       └── SALE.node.json
├── postman_collection.json
└── package.json

Phân hệ và endpoint

SYS

Resource Operation Method Path
Sync Job Get Many GET /api/v1/SYS/SyncJob
Sync Job Get GET /api/v1/SYS/SyncJob/:id
Sync Job Create POST /api/v1/SYS/SyncJob
Sync Job Update PUT /api/v1/SYS/SyncJob/:id
Sync Job Delete DELETE /api/v1/SYS/SyncJob/:ids
Sync Job Export GET /api/v1/SYS/SyncJob/Export
Sync Job Notify POST /api/v1/SYS/SyncJob/Notify
Sync Job Run Jobs GET /api/v1/SYS/SyncJob/RunJobs
Sync Job Job Triggers GET /api/v1/SYS/SyncJob/JobTriggers
Sync Job Schedule Triggers GET /api/v1/SYS/SyncJob/ScheduleTriggers
Sync Job Check Tracking POST /api/v1/SYS/SyncJob/CheckTracking
Config Config By Provider GET /api/v1/SYS/Config/ConfigByProvider

BANK

Resource Operation Method Path
Incoming Payment Check Transaction POST /api/v1/BANK/IncomingPayment/CheckTransaction
Incoming Payment Create From Transaction POST /api/v1/BANK/IncomingPayment/CreateFromTransaction
Incoming Payment Get Many GET /api/v1/BANK/IncomingPayment
Incoming Payment Get GET /api/v1/BANK/IncomingPayment/:id
Incoming Payment Create POST /api/v1/BANK/IncomingPayment
Incoming Payment Update PUT /api/v1/BANK/IncomingPayment/:id
Transaction Update POST /api/v1/BANK/Transaction/Update
Account Update POST /api/v1/BANK/Account/Update

BRA

Resource Operation Method Path
Branch Search GET /api/v1/BRA/Branch/Search
Branch Get Many GET /api/v1/BRA/Branch
Branch Get Static Payment QR Code GET /api/v1/BRA/Branch/getStaticPaymentQRCode
Branch Get GET /api/v1/BRA/Branch/:id
Branch Update PUT /api/v1/BRA/Branch/:id
Branch Disable PUT /api/v1/BRA/Branch/Disable/:id
Branch Enable PUT /api/v1/BRA/Branch/Enable/:id
Branch Create POST /api/v1/BRA/Branch
Branch Export GET /api/v1/BRA/Branch/Export
Branch Import POST /api/v1/BRA/Branch/Import
Branch Delete DELETE /api/v1/BRA/Branch/:ids

SALE

Resource Operation Method Path
Order Check Master Data POST /api/v1/SALE/Order/CheckMasterData?IDBranch=
Order Batch Import POST /api/v1/SALE/Order/BatchImport?IDBranch=

License

MIT

Discussion