Package Information
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