Giới thiệu
Chào mừng bạn đến với tài liệu API của NextX! Tài liệu này cung cấp thông tin chi tiết về cách tương tác với API của NextX. Hãy vui lòng liên hệ với chúng tôi ngay nếu bạn cần hỗ trợ hoặc muốn đăng ký dịch vụ.
NextX API
Dưới đây là các API chức năng hệ thống của NextX mà bạn có thể tích hợp vào hệ thống của mình.
Token (Xác thực)
Để lấy mã token, hãy sử dụng đoạn code sau:
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse("https://open-api.nextx.vn/api/auth/token")
request = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
request.body = JSON.dump({
"grant_type" => "client_credentials",
"client_id" => "your_client_id",
"client_secret" => "your_client_secret",
"scope" => "public.api"
})
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.body
import requests
url = "https://open-api.nextx.vn/api/auth/token"
payload = {
"grant_type": "client_credentials",
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"scope": "public.api"
}
headers = {'Content-Type': 'application/json'}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
curl -X POST "https://open-api.nextx.vn/api/auth/token" \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"grant_type": "client_credentials",
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"scope": "public.api"
}'
const fetch = require('node-fetch');
const url = "https://open-api.nextx.vn/api/auth/token";
const body = {
"grant_type": "client_credentials",
"client_id": "your_client_id",
"client_secret": "your_client_secret",
"scope": "public.api"
};
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(body)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Hãy đảm bảo thay thế your_client_id và your_client_secret bằng thông tin xác thực khách hàng thực tế của bạn.
NextX API sử dụng khóa API để cho phép truy cập vào API. Bạn có thể đăng ký một khóa API mới của NextX tại cổng thông tin dành cho nhà phát triển của chúng tôi.
NextX yêu cầu khóa API phải được bao gồm trong tất cả các yêu cầu API gửi đến máy chủ trong phần tiêu đề có dạng như sau:
Authorization: Bearer your_api_key_here
Lệnh trên trả về JSON có cấu trúc như sau:
[
"meta": {
"message": "Incorrect credentials",
"status_code": 1
},
"data": []
]
Điểm đầu cuối này truy xuất một mã truy cập để xác thực các yêu cầu API.
HTTP Request
GET https://open-api.nextx.vn/api/auth/token
Tham số (Biến)
Tên biến | Kiểu dữ liệu | Mô tả |
---|---|---|
grant_type | string | Loại quyền truy cập đang được yêu cầu. Đối với luồng thông tin xác thực khách hàng, sử dụng "client_credentials". |
client_secret | string | mã bí mật |
scope | string | Phạm vi của yêu cầu truy cập. Ví dụ: "public.api". |
Ví dụ về nội dung yêu cầu
Dưới đây là một Ví dụ về nội dung yêu cầu.
[
{"grant_type": "client_credentials",
"client_id": "8abe635c7de9896dca3a586309adfe8968e1",
"client_secret": "D69D0112C0CC5B1EE185A43D04F3DBD",
"scope": "public.api"
}
]
Phản hồi
Phản hồi sẽ chứa mã truy cập và các thông tin liên quan khác.
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON với mã truy cập.
Nếu thông tin xác thực không chính xác, máy chủ sẽ trả về phản hồi JSON với thông báo lỗi.
Lệnh trên trả về JSON có cấu trúc như sau:
[
"meta": {
"message": "Incorrect credentials",
"status_code": 1
},
"data": []
}
]
Danh mục
Danh sách các chi nhánh
dùng Api này để lấy danh sách các chi nhánh
import requests
url = "https://open-api.nextx.vn/api/branch/branch"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/branch/branch' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/branch/branch';
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Lệnh trên trả về JSON có cấu trúc như sau:
json [ { "id": 0, "name": "string", "code": "string", "tel": "string", "avatar": "string", "address": "string", "Mô tả": "string" } ]
Điểm đầu cuối này trả về 1 danh sách các chi nhánh
HTTP Request
GET https://open-api.nextx.vn/api/branch/branch
Phản hồi
Phản hồi sẽ chứa mã truy cập và các thông tin liên quan khác. Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON với mã truy cập.
Nếu mã truy cập đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết mã truy cập đã hết hạn.
Lệnh trên trả về JSON có cấu trúc như sau:
[
{
"meta": {
"message": "Token expried",
"status_code": 401
},
"data": []
}
]
Danh sách các kho
Để lấy danh sách tất các kho, dùng code sau:
import requests
url = "https://open-api.nextx.vn/api/branch/store"
params = {
'branch_id': 'your_branch_id'
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/branch/store' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token' \
-G --data-urlencode 'branch_id=your_branch_id'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/branch/store';
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Lệnh trên trả về JSON có cấu trúc như sau:
[
{
"id": 0,
"name": "string",
"code": "string",
"tel": "string",
"fax": "string",
"avatar": "string",
"address": "string",
"Mô tả": "string"
}
]
Điểm đầu cuối này trả về kết quả là danh sách các kho
HTTP Request
GET https://open-api.nextx.vn/api/branch/store
Tham số (Biến)
Tên biến | Mô tả |
---|---|
branch_id | ID của chi nhánh |
Phản hồi
Nếu yêu cầu được gửi thành công, hệ thống sẽ trả lại một phản hồi JSON gồm một danh sách các kho.
Nếu mã truy cập đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết mã truy cập đã hết hạn.
[
{
"meta": {
"message": "Token expried",
"status_code": 401
},
"data": []
}
]
Danh sách các danh mục sản phẩm
để lấy các danh mục sản phẩm, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/cate/category-list/product_category"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
params = {
'search[parent_id]': 0 # Optional: Replace with desired parent ID or remove if not needed
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/cate/category-list/product_category' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://api-docs.nextx.vn/api/cate/category-list/product_category';
const params = new URLSearchParams({
'search[parent_id]': 0 // Optional: Replace with desired parent ID or remove if not needed
});
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(`${url}?${params}`, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này cho phép lấy danh sách danh mục sản phẩm. Có thể lọc thông qua parent ID
Phản hồi sẽ bao gồm chi tiết như là ID của danh mục, tên, parent ID, URL hình ảnh, mô tả và các danh mục con nếu có
HTTP Request
GET https://open-api.nextx.vn/api/cate/category-list/product_category
Tham số (Biến)
Tên biến | Kiểu dữ liệu | Mô tả |
---|---|---|
parent_id | integer | ID của danh mục cha |
Phản hồi
Nếu yêu cầu được phản hồi thành công, hệ thống sẽ trả về một đoạn mã JSON với danh sách các kho.
Example Response
[
{
"id": 0,
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string",
"child": [
{
"id": 0,
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string"
}
]
}
]
Nếu mã truy cập đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết mã truy cập đã hết hạn.
[
{
"meta": {
"message": "Token expried",
"status_code": 401
},
"data": []
}
]
Chi tiết danh mục sản phẩm
Để lấy chi tiết danh mục sản phẩm, dùng đoạn code sau:
curl -X 'GET' \
'https://open-api.nextx.vn/api/cate/category/{id}' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
import requests
url = "https://open-api.nextx.vn/api/cate/category/{id}"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers)
print(response.json())
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/cate/category/{id}';
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này cho phép truy cập vào chi tiết của một danh mục sản phẩm
Lệnh trên trả về JSON có cấu trúc như sau:
[
{
"id": 0,
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string",
"childs": [
{
"id": 0,
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string"
}
]
HTTP Request
GET https://open-api.nextx.vn/api/cate/category/{id}
Tham số (Biến)
Tên biến | Kiểu dữ liệu | Mô tả |
---|---|---|
id | integer | ID của danh mục sản phẩm |
Phản hồi
Nếu yêu cầu được đáp ứng, hệ thống trả về một đoạn mã JSON với chi tiết của một danh mục sản phẩm. Nếu mã truy cập đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết mã truy cập đã hết hạn.
Lệnh trên trả về JSON có cấu trúc như sau:
[
{
"meta": {
"message": "Token expried",
"status_code": 401
},
"data": []
}
]
Chỉnh sửa danh mục sản phẩm
Để chỉnh sửa một danh mục sản phẩm, dùng đoạn code sau:
curl -X 'PUT' \
'https://open-api.nextx.vn/api/cate/category/{id}' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your_access_token' \
-d '{
"name": "string",
"parent_id": 0,
"Mô tả": "string"
}'
import requests
url = "https://open-api.nextx.vn/api/cate/category/{id}"
payload = {
"name": "string",
"parent_id": 0,
"Mô tả": "string"
}
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
response = requests.put(url, json=payload, headers=headers)
print(response.json())
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/cate/category/{id}';
const payload = {
name: "string",
parent_id: 0,
Mô tả: "string"
};
const options = {
method: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Lệnh trên trả về JSON có cấu trúc như sau:
[
{
"status_code": 0,
"message": "string"
}
]
Điểm đầu cuối này cho phép cập nhật thông tin chi tiết của một danh mục sản phẩm
HTTP Request
PUT https://open-api.nextx.vn/api/cate/category/{id}
Tham số (Biến)
Tham số đường dẫn
Biến | Kiểu dữ liệu | Mô tả |
---|---|---|
id | integer | ID của danh mục |
Tham số thân
Biến | Kiểu dữ liệu | Mô tả |
---|---|---|
name | string | tên danh mục |
parent_id | integer | Parent ID |
description | string | Mô tả của danh mục |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON xác nhận việc cập nhật.
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Trả về JSON được cấu trúc như sau:
json [ { "meta": { "message": "Token expried", "status_code": 401 }, "data": [] } ]
Nếu yêu cầu không được xác thực, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo chỉ rõ 'Chưa xác thực.'
Trả về JSON được cấu trúc như sau:
json [ { "message": "Unauthenticated." } ]
Thêm Danh mục Sản phẩm mới
Thêm mới một danh sách sản phẩm
Để tạo mới 1 danh sách sản phẩm, sử dụng đoạn code sau:
import requests
import json
url = "https://open-api.nextx.vn/api/cate/category"
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
data = {
"name": "New Category",
"parent_id": 0,
"category_type": "product_category",
"Mô tả": "This is a new category"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())
curl -X 'POST' \
'https://open-api.nextx.vn/api/cate/category' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your_access_token' \
-d '{
"name": "New Category",
"parent_id": 0,
"category_type": "product_category",
"Mô tả": "This is a new category"
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/cate/category';
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
},
body: JSON.stringify({
name: "New Category",
parent_id: 0,
category_type : "product_category",
Mô tả: "This is a new category"
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Đầu cuối này tạo một danh mục sản phẩm mới. Phản hồi bao gồm chi tiết của danh mục vừa được tạo, bao gồm cả các danh mục con nếu có.
HTTP Request
POST https://open-api.nextx.vn/api/cate/category
Yêu cầu
Ví dụ của Yêu cầu gửi đi:
{
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string"
}
Tham số (Biến)
Biến | Kiểu dữ liệu | Mô tả |
---|---|---|
name | string | Tên của danh mục sản phẩm |
parent_id | integer | Parent ID |
picture | string | URL hoặc đường dẫn đến hình ảnh |
description | string | mô tả cụ thể của danh mục |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON xác nhận việc cập nhật.
Trả về JSON được cấu trúc như sau:
[
{
"id": 0,
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string",
"childs": [
{
"id": 0,
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string"
}
]
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Trả về JSON được cấu trúc như sau:
[
{
"meta": {
"message": "Token expried",
"status_code": 401
},
"data": []
}
]
Lấy danh sách nhân viên
Để lấy danh sách nhân viên của một chi nhánh, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/cate/employee"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
params = {
'branch_id': 1 # Optional: Replace with desired branch ID or remove if not needed
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/cate/employee?branch_id=1' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/cate/employee';
const params = new URLSearchParams({
'branch_id': 1 // Optional: Replace with desired branch ID or remove if not needed
});
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(`${url}?${params}`, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này cho thấy một danh sách nhân viên của một chi nhánh cụ thể
HTTP Request
GET https://open-api.nextx.vn/api/cate/employee
Tham số (Biến)
Biến | Kiểu dữ liệu | Mô tả |
---|---|---|
branch_id | integer | ID của chi nhánh |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON xác nhận việc cập nhật.
Trả về JSON được cấu trúc như sau:
[
{
"id": 0,
"code": "string",
"first_name": "string",
"last_name": "string",
"avatar": "string"
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Trả về JSON được cấu trúc như sau:
[
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
]
Lấy danh sách nhân viên Sales
Để xem danh sách nhân viên Sales, hãy sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/cate/users"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers)
print(response.json())
curl -X 'POST' \
'https://open-api.nextx.vn/api/cate/users' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your_access_token' \
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/cate/users';
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
},
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Điểm đầu cuối này cho thấy một danh sách các nhân viên Sales.
HTTP Request
POST https://open-api.nextx.vn/api/cate/users
Tham số (Biến)
Không cần sử dụng biến
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON danh sách các nhân viên Sales.
Trả về JSON được cấu trúc như sau:
[
{
"id": 0,
"name": "string",
"firstname": "string",
"lastname": "string"
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Trả về JSON được cấu trúc như sau:
[
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
]
Lấy danh sách nguồi khách
Để lấy danh sách các nguồn khách, hãy sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/cate/resources"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/cate/resources' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/cate/resources';
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này cho biết danh sách của các nguồn khách. Mỗi nguồn có tên và ID riêng.
HTTP Request
GET https://open-api.nextx.vn/api/cate/resources
Tham số (Biến)
Không yêu cầu tham số.
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON danh sách các nguồn khách.
Trả về JSON được cấu trúc như sau:
[
{
"id": 0,
"name": "string"
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Trả về JSON được cấu trúc như sau:
[
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
]
Sản phẩm
Lấy danh sách sản phẩm
Để lấy danh sách sản phẩm, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/product/product"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
params = {
'page': 0,
'pageLimit': 15,
'branch_id': 1, # Required
'store_id': 1,
'Kiểu dữ liệu[]': ['single', 'variable'],
'strSearch': 'product_name'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/product/product?page=0&pageLimit=15&branch_id=1&store_id=1&Kiểu dữ liệu[]=single&Kiểu dữ liệu[]=variable&strSearch=product_name' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/product/product';
const params = new URLSearchParams({
page: 0,
pageLimit: 15,
branch_id: 1, // Required
store_id: 1,
'Kiểu dữ liệu[]': ['single', 'variable'],
strSearch: 'product_name'
});
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(`${url}?${params}`, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này cho kết quả là danh sách các sản phẩm.
HTTP Request
GET https://open-api.nextx.vn/api/product/product?page=0&pageLimit=15&branch_id=1
Tham số (Biến)
Biến | Kiểu dữ liệu | Mô tả |
---|---|---|
pageLimit | integer | Số lượng item trên 1 trang. |
branch_id | integer | (bắt buộc) ID của chi nhánh |
store_id | integer | ID của cửa hàng |
Kiểu dữ liệu[] | array[string] | ác loại sản phẩm: single (sản phẩm thường), variable (sản phẩm có các biến thể), modifier (sản phẩm đi kèm), combo (sản phẩm kết hợp). |
strSearch | string | Từ khóa tìm kiếm |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON danh sách các nguồn khách.
Trả về JSON được cấu trúc như sau:
[
{
"id": 0,
"product_id": 0,
"variations_id": 0,
"product_fullname": "string",
"product_code": "string",
"barcode": "string",
"product_image": "string",
"qty_available": 0,
"unit": "string",
"selling_price": 0,
"brand_name": "string",
"category_name": "string",
"specification": "string",
"product_type": "string",
"weight": 0,
"length": "string",
"width": "string",
"height": "string",
"product_variation": {
"product_id": 0,
"variations_id": 0,
"unit_id": 0,
"price": 0
}
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Trả về JSON được cấu trúc như sau:
[
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
]
Thêm Sản phẩm mới
Tạo một sản phẩm
Để thêm mới một sản phẩm, sử dụng đoạn code sau:
import requests
import json
url = "https://open-api.nextx.vn/api/product/product"
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
data = {
"name": "string",
"code": "",
"sku": "",
"brand_id": null,
"branch_id": 0,
"category_id": 0,
"media": [
{
"url": "string"
}
],
"purchase_price": 0,
"sell_price": 0,
"weight": 0,
"height": 0,
"width": 0,
"length": 0,
"qty_begin_stock": 0,
"begin_purchase_price": 0,
"specification": "",
"unit": {
"unit_base": {
"name": "string",
"is_direct_sell": "true"
},
"sub_unit": [
{
"name": "string",
"f_Convert": 1,
"price": 0,
"is_direct_sell": "true"
}
]
},
"Mô tả": "",
"product_custom_field1": "",
"product_custom_field2": "",
"composition_variation": [
{
"product_id": 0,
"variations_id": 0,
"quantity": 0,
"unit_id": 0,
"price": 0
}
]
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())
curl -X 'POST' \
'https://open-api.nextx.vn/api/product/product' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"code": "",
"sku": "",
"brand_id": null,
"branch_id": 0,
"category_id": 0,
"media": [
{
"url": "string"
}
],
"purchase_price": 0,
"sell_price": 0,
"weight": 0,
"height": 0,
"width": 0,
"length": 0,
"qty_begin_stock": 0,
"begin_purchase_price": 0,
"specification": "",
"unit": {
"unit_base": {
"name": "string",
"is_direct_sell": "true"
},
"sub_unit": [
{
"name": "string",
"f_Convert": 1,
"price": 0,
"is_direct_sell": "true"
}
]
},
"Mô tả": "",
"product_custom_field1": "",
"product_custom_field2": "",
"composition_variation": [
{
"product_id": 0,
"variations_id": 0,
"quantity": 0,
"unit_id": 0,
"price": 0
}
]
}'
const fetch = require('node-fetch');
const url = 'https://api-docs.nextx.vn/api/product/product';
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
},
body: JSON.stringify({
name: "string",
code: "",
sku: "",
brand_id: null,
branch_id: 0,
category_id: 0,
media: [
{
url: "string"
}
],
purchase_price: 0,
sell_price: 0,
weight: 0,
height: 0,
width: 0,
length: 0,
qty_begin_stock: 0,
begin_purchase_price: 0,
specification: "",
unit: {
unit_base: {
name: "string",
is_direct_sell: "true"
},
sub_unit: [
{
name: "string",
f_Convert: 1,
price: 0,
is_direct_sell: "true"
}
]
},
Mô tả: "",
product_custom_field1: "",
product_custom_field2: "",
composition_variation: [
{
product_id: 0,
variations_id: 0,
quantity: 0,
unit_id: 0,
price: 0
}
]
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Đầu cuối này tạo một sản phẩm mới. Phản hồi bao gồm các chi tiết của sản phẩm vừa được tạo.
HTTP Request
POST https://api-docs.nextx.vn/api/product/product
Tham số (biến)
Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|
name | string | Tên đầy đủ của sản phẩm |
code | string | Mã sản phẩm. Hệ thống sẽ tự động tạo mã nếu trường này để trống |
sku | string | Đơn vị lưu kho. Hệ thống sẽ tự động tạo mã nếu trường này để trống |
brand_id | integer | ID thương hiệu (tùy chọn) |
category_id | integer | ID danh mục chính |
category_ids | array | Các ID danh mục bổ sung |
unit_id | integer | ID đơn vị chính |
units | array | Các đơn vị bổ sung |
type | string | Loại sản phẩm |
purchase_price | number | Giá mua |
sell_price | number | Giá bán |
weight | number | Trọng lượng sản phẩm |
height | number | Chiều cao sản phẩm |
width | number | Chiều rộng sản phẩm |
length | number | Chiều dài sản phẩm |
qty_begin_stock | number | Số lượng hàng tồn kho ban đầu |
qty_warning_stock | number | Ngưỡng cảnh báo hàng tồn kho |
specification | string | Thông số kỹ thuật của sản phẩm |
description | string | Mô tả sản phẩm |
product_custom_field1 | string | Mẫu ghi chú (hóa đơn, đơn hàng) |
product_custom_field2 | string | Ghi chú nhập (cài đặt đầu vào, nhập hàng) |
composition_variation | array | Biến thể của sản phẩm |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON sau khi đã thêm một sản phẩm mới.
Trả về JSON được cấu trúc như sau:
{
"name": "string",
"code": "string",
"sku": "string",
"brand_id": null,
"category_id": 0,
"category_ids": [],
"unit_id": 0,
"units": [
{
"id": "string"
}
],
"Kiểu dữ liệu": "string",
"purchase_price": 0,
"sell_price": 0,
"weight": 0,
"height": 0,
"width": 0,
"length": 0,
"qty_begin_stock": 0,
"qty_warning_stock": 0
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Trả về JSON được cấu trúc như sau:
[
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
]
Lấy chi tiết Sản phẩm
Để xem chi tiết một sản phẩm dựa trên Id của nó, ta dùng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/product/product-detail"
params = {
'variation_id': 1,
'branch_id': 1,
'store_id': 1
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/product/product-detail?variation_id=1&branch_id=1&store_id=1' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https:/open-api.nextx.vn/api/product/product-detail?variation_id=1&branch_id=1&store_id=1';
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Đầu cuối này truy xuất chi tiết của một sản phẩm cụ thể bằng ID của nó.
HTTP Request
GET https://open-api.nextx.vn/api/product/product-detail?variation_id={}&branch_id={}&store_id={}
Tham số (Biên)
Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|
variation_id | integer | ID của biến thể |
branch_id | integer | ID của chi nhánh |
store_id | integer | ID của kho |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON sau khi đã thêm một sản phẩm mới.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"id": 0,
"product_id": 0,
"variations.id": 0,
"product_name": "string",
"product_actual_name": "string",
"product_code": "string",
"product_sku": "string",
"product_image": "string",
"qty_available": 0,
"default_purchase_price": 0,
"default_sell_price": 0,
"product_type": "string",
"specification": "string",
"height": "string",
"width": "string",
"length": "string",
"weight": "string",
"computations": {
"product_id": 0,
"variations.id": 0,
"unit_id": 0,
"price": 0
}
],
"unit_id": "string",
"unit": "string",
"units": [
{
"id": 0,
"name": 0,
"is_base_unit": 0,
"multiplier": 0,
"price": 0
}
]
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Cập nhật thông tin Sản phẩm
Để cập nhật thông tin Sản phẩm, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/product/product/1"
data = {
"name": "string",
"code": "",
"sku": "",
"brand_id": null,
"branch_id": 0,
"category_id": 0,
"media": [
{
"url": "string"
}
],
"purchase_price": 0,
"sell_price": 0,
"weight": 0,
"height": 0,
"width": 0,
"length": 0,
"qty_begin_stock": 0,
"begin_purchase_price": 0,
"specification": "",
"Mô tả": "",
"product_custom_field1": "",
"product_custom_field2": "",
"composition_variation": [
{
"product_id": 0,
"variations_id": 0,
"quantity": 0,
"unit_id": 0,
"price": 0
}
]
}
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.put(url, headers=headers, json=data)
print(response.json())
curl -X 'PUT' \
'https://open-api.nextx.vn/api/product/product/1' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"name": "string",
"code": "",
"sku": "",
"brand_id": null,
"branch_id": 0,
"category_id": 0,
"media": [
{
"url": "string"
}
],
"purchase_price": 0,
"sell_price": 0,
"weight": 0,
"height": 0,
"width": 0,
"length": 0,
"qty_begin_stock": 0,
"begin_purchase_price": 0,
"specification": "",
"Mô tả": "",
"product_custom_field1": "",
"product_custom_field2": "",
"composition_variation": [
{
"product_id": 0,
"variations_id": 0,
"quantity": 0,
"unit_id": 0,
"price": 0
}
]
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/product/product/1';
const options = {
method: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer your_access_token'
},
body: JSON.stringify({
name: "string",
code: "",
sku: "",
brand_id: null,
branch_id: 0,
category_id: 0,
media: [
{
url: "string"
}
],
purchase_price: 0,
sell_price: 0,
weight: 0,
height: 0,
width: 0,
length: 0,
qty_begin_stock: 0,
begin_purchase_price: 0,
specification: "",
Mô tả: "",
product_custom_field1: "",
product_custom_field2: "",
composition_variation: [
{
product_id: 0,
variations_id: 0,
quantity: 0,
unit_id: 0,
price: 0
}
]
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Đầu cuối này cập nhật chi tiết của một sản phẩm cụ thể. Hãy đảm bảo thay thế tất cả thông tin của sản phẩm cần cập nhật bằng thông tin của bạn.
HTTP Request
PUT https://open-api.nextx.vn/api/product/product/{id}
Tham số (Biến)
Tham số Đường đi (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
id | integer | ID của sản phẩm |
Tham số yêu cầu (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
name | string | Tên đầy đủ của sản phẩm |
code | string | Mã sản phẩm. Hệ thống sẽ tự động tạo mã nếu trường này để trống |
sku | string | Đơn vị lưu kho. Hệ thống sẽ tự động tạo mã nếu trường này để trống |
brand_id | integer | ID thương hiệu (tùy chọn) |
category_id | integer | ID danh mục chính |
category_ids | array | Các ID danh mục bổ sung |
unit_id | integer | ID đơn vị chính |
units | array | Các đơn vị bổ sung |
type | string | Loại sản phẩm |
purchase_price | number | Giá mua |
sell_price | number | Giá bán |
weight | number | Trọng lượng sản phẩm |
height | number | Chiều cao sản phẩm |
width | number | Chiều rộng sản phẩm |
length | number | Chiều dài sản phẩm |
qty_begin_stock | number | Số lượng hàng tồn kho ban đầu |
qty_warning_stock | number | Ngưỡng cảnh báo hàng tồn kho |
specification | string | Thông số kỹ thuật của sản phẩm |
description | string | Mô tả sản phẩm |
product_custom_field1 | string | Mẫu ghi chú (hóa đơn, đơn hàng) |
product_custom_field2 | string | Ghi chú nhập (cài đặt đầu vào, nhập hàng) |
composition_variation | array | Biến thể của sản phẩm |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON cập nhật thông tin sản phẩm.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 0,
"message": "string"
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"name": "string",
"code": "",
"sku": "",
"brand_id": null,
"branch_id": 0,
"category_id": 0,
"media": [
{
"url": "string"
}
],
"purchase_price": 0,
"sell_price": 0,
"weight": 0,
"height": 0,
"width": "",
"length": "",
"qty_begin_stock": 0,
"begin_purchase_price": 0,
"specification": "",
"Mô tả": "",
"product_custom_field1": "",
"product_custom_field2": "",
"composition_variation": [
{
"product_id": 0,
"variations_id": 0,
"quantity": 0,
"unit_id": 0,
"price": 0
}
]
}
Liên hệ (LEAD)
Lấy danh sách Lead
Để lấy danh sách tất cả các Lead, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/contact/contact"
params = {
"page": 0,
"pageLimit": 0,
"branch_id": 0,
"category_id": 0,
"sttsearch": " ",
"from_date": " ",
"to_date": " "
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/contact/contact?page=0&pageLimit=15&branch_id=1&category_id=2&sttsearch=search_term&from_date=2022-01-01&to_date=2022-12-31' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/contact/contact';
const params = new URLSearchParams({
page: 0,
pageLimit: 0,
branch_id: 0,
category_id: 0,
sttsearch: ' ',
from_date: ' ',
to_date: ' '
});
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(`${url}?${params}`, options)a
Đầu cuối này truy xuất danh sách các khách hàng tiềm năng. Hãy đảm bảo thay thế tất cả thông tin của danh sách khách hàng tiềm năng bằng thông tin của bạn.
HTTP Request
GET https://open-api.nextx.vn/api/contact/contact
Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
page | integer | Số trang của danh sách (Bắt đầu từ 0) |
pageLimit | integer | Số lượng mục trên mỗi trang, mặc định 15 mục, tối đa 100 mục (mặc định: 15) |
branch_id | integer | ID chi nhánh |
category_id | integer | ID danh mục chính |
sttsearch | string | Tìm kiếm cho tên, mã, hoặc số điện thoại của khách hàng tiềm năng |
from_date | string | Bộ lọc từ ngày bắt đầu nhận khách hàng tiềm năng, định dạng Năm-Tháng-Ngày |
units | string | Bộ lọc đến ngày kết thúc nhận khách hàng tiềm năng, định dạng Năm-Tháng-Ngày |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON danh sách Lead.
Lệnh trên trả về JSON được cấu trúc như sau:
[
{
"id": 0,
"categories": [
{
"id": 0,
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string",
"childs": [
{
"id": 0,
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string"
}
]
}
],
"employee": {
"id": 0,
"code": "string",
"first_name": "string",
"last_name": "string",
"avatar": "string"
},
"branch": {
"id": 0,
"name": "string",
"code": "string",
"tel": "string",
"fax": "string",
"avatar": "string",
"address": "string",
"Mô tả": "string"
},
"resources": [
{
"id": 0,
"name": "string"
}
],
"name": "",
"mobile": "",
"email": "",
"website": "",
"address": "",
"status": "",
"date_assigned": "2024-08-03",
"code": "",
"birthday": "2024-08-03",
"sex": "male",
"Mô tả": "",
"avatar": "",
"account_name": "",
"account_address": "",
"account_no": ""
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Thêm Lead mới
Để thêm một Lead mới, sử dụng đoạn code sau
import requests
import json
url = "https://open-api.nextx.vn/api/contact/contact"
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
data = {
"employee_id": null,
"branch_id": null,
"resources": [
{
"id": 0,
"name": "string"
}
],
"name": "",
"mobile": "",
"email": "",
"website": "",
"address": "",
"status": "",
"date_assigned": "2024-08-03",
"code": "",
"birthday": "2024-08-03",
"sex": "male",
"Mô tả": "",
"avatar": "",
"account_name": "",
"account_address": "",
"account_no": ""
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())
curl -X 'POST' \
'https://open-api.nextx.vn/api/contact/contact' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"employee_id": null,
"branch_id": null,
"resources": [
{
"id": 0,
"name": "string"
}
],
"name": "",
"mobile": "",
"email": "",
"website": "",
"address": "",
"status": "",
"date_assigned": "2024-08-13",
"code": "",
"birthday": "2024-08-13",
"sex": "male",
"Mô tả": "",
"avatar": "",
"account_name": "",
"account_address": "",
"account_no": ""
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/contact/contact';
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
},
body: JSON.stringify({
employee_id: null,
branch_id: null,
resources: [
{
id: 0,
name: " "
}
],
name: "",
mobile: "",
email: "",
website: "",
address: "",
status: "",
date_assigned: "2024-08-03",
code: "",
birthday: "2024-08-03",
sex: "male",
Mô tả: "",
avatar: "",
account_name: "",
account_address: "",
account_no: ""
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Đầu cuối này tạo một liên hệ khách hàng tiềm năng mới.
HTTP Request
POST https://open-api.nextx.vn/api/contact/contact
Tham số (Biến)
Body Request Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
employee_id | integer | ID của nhân viên |
branch_id | integer | ID chi nhánh |
resources | array | Nguồn Lead |
name | string | Tên Lead |
mobile | number | Số điện thoại di động |
string | ||
website | string | website |
address | string | Địa chỉ của lead |
status | string | trạng thái |
date_assigned | string | ngày được chỉ định Lead |
code | integer | Mã code của Lead |
birthday | string | Ngày sinh của Lead |
sex | string | Giới tính |
description | string | Ghi chú và mô tả của Lead |
avatar | string | URL hoặc đường dẫn đến hình đại diện của Lead |
account_name | string | Tên tài khoản |
account_address | string | Địa chỉ tài khoản |
account_no | integer | Số tài khoản |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON Danh sách lead.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"employee_id": null,
"branch_id": null,
"resources": [
{
"id": 0,
"name": "string"
}
],
"name": "",
"mobile": "",
"email": "",
"website": "",
"address": "",
"status": "",
"date_assigned": "2024-08-03",
"code": "",
"birthday": "2024-08-03",
"sex": "male",
"Mô tả": "",
"avatar": "",
"account_name": "",
"account_address": "",
"account_no": ""
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Lấy thông tin chi tiết Lead
Để lấy thông tin chi tiết của Lead, ta sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/contact/contact/1" # Replace 1 with the actual lead ID
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/contact/contact/1' \ # Replace 1 with the actual lead ID
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/contact/contact/1'; // Replace 1 with the actual lead ID
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Đầu cuối này truy xuất thông tin chi tiết về một khách hàng tiềm năng cụ thể, bao gồm các liên hệ liên quan và nhân viên được chỉ định.
HTTP Request
GET https://open-api.nextx.vn/api/contact/contact/{id}
Tham số đường dẫn (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
id | integer | ID của Lead (bắt buộc) |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON danh sách lead.
Ví dụ phản hồi:
{
"id": 0,
"contact_id": [
{
"id": 0,
"name": "string",
"parent_id": 0,
"Mô tả": "string",
"childs": [
{
"id": 0,
"name": "string",
"parent_id": 0,
"picture": "string",
"Mô tả": "string"
}
]
}
],
"employee": {
"id": 0,
"code": "string",
"first_name": "string",
"last_name": "string",
"email": "string",
"phone": "string"
}
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Cập nhật thông tin chi tiết Lead
Để cập nhậ thông tin của Lead, ta sử dụng đoạn code sau:
import requests
import json
url = "https://api-docs.nextx.vn/api/contact/contact/1" # Replace 1 with the actual lead ID
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
data = {
"employee_id": null,
"branch_id": null,
"resources": [
{
"id": 0,
"name": "string"
}
],
"name": "",
"mobile": "",
"email": "",
"website": "",
"address": "",
"status": "",
"date_assigned": "2024-08-13",
"code": "",
"birthday": "2024-08-13",
"sex": "male",
"Mô tả": "",
"avatar": "",
"account_name": "",
"account_address": "",
"account_no": ""
}
response = requests.put(url, headers=headers, data=json.dumps(data))
print(response.json())
curl -X 'PUT' \
'https://open-api.nextx.vn/api/contact/contact/1' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"employee_id": null,
"branch_id": null,
"resources": [
{
"id": 0,
"name": "string"
}
],
"name": "",
"mobile": "",
"email": "",
"website": "",
"address": "",
"status": "",
"date_assigned": "2024-08-13",
"code": "",
"birthday": "2024-08-13",
"sex": "male",
"Mô tả": "",
"avatar": "",
"account_name": "",
"account_address": "",
"account_no": ""
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/contact/contact/1'; // Replace 1 with the actual lead ID
const options = {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
},
body: JSON.stringify({
employee_id: null,
branch_id: null,
resources: [
{
id: 0,
name: "string"
}
],
name: '',
mobile: '',
email: '',
website: '',
address: '',
status: '',
date_assigned: '2024-08-13',
code: '',
birthday: '2024-08-13',
sex: 'male',
Mô tả: '',
avatar: '',
account_name: '',
account_address: '',
account_no: ''
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này dùng để cập nhật thông tin của một Lead
HTTP Request
PUT https://open-api.nextx.vn/api/contact/contact/{id}
Path Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
id | integer | ID của Lead cần update (bắt buộc) |
Yêu cầu
Yêu cầu mẫu:
{
"employee_id": null,
"branch_id": null,
"name": {
"full": "string",
"first": "string",
"last": "string"
},
"code": "string",
"email": "string",
"mobile": "string",
"phone": "string",
"status": "string",
"date_assigned": "2024-08-03",
"date_next": "2024-08-03",
"birthday": "2024-08-03",
"sex": "string",
"Mô tả": "string",
"avatar": "string",
"account_type": "string",
"account_name": "string",
"account_no": "string"
}
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON danh sách Lead. Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Khách hàng (Khách hàng hoặc Nhà cung cấp)
Lấy danh sách Khách hàng
Để lấy danh sách khách hàng, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/customer/customer"
params = {
"page": 0,
"pageLimit": 0,
"branch_id": 0,
"category_id": 0,
"sttsearch": " ",
"from_date": " ",
"to_date": " "
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/customer/customer"
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/customer/customer";
const params = new URLSearchParams({
page: 0,
pageLimit: 0,
branch_id: 0,
category_id: 0,
sttsearch: ' ',
from_date: ' ',
to_date: ' '
});
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(`${url}?${params}`, options)a
Đầu cuối này truy xuất danh sách các khách hàng tiềm năng. Hãy đảm bảo thay thế tất cả thông tin của danh sách khách hàng tiềm năng bằng thông tin của bạn.
HTTP Request
GET https://open-api.nextx.vn/api/customer/customer
Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
page | integer | Thứ tự trang (bắt đầu từ 0) |
pageLimit | integer | Số lượng mục trên mỗi trang, mặc định 15 mục, tối đa 100 mục (mặc định: 15) |
branch_id | integer | ID chi nhánh |
category_id | integer | ID danh mục chính |
sttsearch | string | Thuật ngữ tìm kiếm cho tên, mã, hoặc số điện thoại của khách hàng tiềm năng |
from_date | string | Bộ lọc từ ngày bắt đầu nhận khách hàng tiềm năng, định dạng Năm-Tháng-Ngày |
units | string | Bộ lọc đến ngày kết thúc nhận khách hàng tiềm năng, định dạng Năm-Tháng-Ngày |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON Danh sách khách hàng.
Lệnh trên trả về JSON được cấu trúc như sau:
[
[
{
"id": 0,
"name": "string",
"code": "string",
"mobile": "string",
"gender": "string",
"birthday": "2024-08-03",
"address": "string",
"Mô tả": "string",
"day_over_due": 0,
"opening_balance": 0,
"credit_limit": 0,
"resources": [
{
"id": 0,
"name": "string"
}
],
"account_name": "",
"account_address": "",
"account_no": ""
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Thêm Khách hàng/ NCC mới
Để thêm mới khách hàng hoặc nhà cung cấp, hãy sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/customer/customer"
payload = {
"avatar": "",
"contact_id": "",
"name": "string",
"mobile": "",
"email": "",
"address": "",
"tax_number": "",
"Kiểu dữ liệu": "customer",
"customer_group_id": None,
"birthday": "2024-08-06",
"gender": 0,
"opening_balance": 0,
"credit_limit": 0,
"per_turn_debt": None,
"branch_id": None,
"resources": [
{
"id": 0,
"name": "string"
}
],
"account_name": "",
"account_address": "",
"account_no": ""
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token',
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
curl -X 'POST' \
'https://open-api.nextx.vn/api/customer/customer' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token' \
-H 'Content-Type: application/json' \
-d '{
"avatar": "",
"contact_id": "",
"name": "string",
"mobile": "",
"email": "",
"address": "",
"tax_number": "",
"Kiểu dữ liệu": "customer",
"customer_group_id": null,
"birthday": "2024-08-06",
"gender": 0,
"opening_balance": 0,
"credit_limit": 0,
"per_turn_debt": null,
"branch_id": null,
"resources": [
{
"id": 0,
"name": "string"
}
],
"account_name": "",
"account_address": "",
"account_no": ""
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/customer/customer';
const payload = {
avatar: "",
contact_id: "",
name: "string",
mobile: "",
email: "",
address: "",
tax_number: "",
Kiểu dữ liệu: "customer",
customer_group_id: null,
birthday: "2024-08-06",
gender: 0,
opening_balance: 0,
credit_limit: 0,
per_turn_debt: null,
branch_id: null,
resources: [
{
id: 0,
name: "string"
}
],
account_name: "",
account_address: "",
account_no: ""
};
const options = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token',
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này dùng để thêm mới một khách hàng/ Nhà cung cấp
HTTP Request
POST https://open-api.nextx.vn/api/customer/customer
Tham số (Biến)
Request Body Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
avatar | string | URL hình đại diện của khách hàng |
contact_id | string | ID liên hệ của khách hàng |
name | string | Tên của khách hàng |
mobile | string | Số điện thoại di động của khách hàng |
string | Địa chỉ email của khách hàng | |
address | string | Địa chỉ của khách hàng |
tax_number | string | Số thuế của khách hàng |
type | string | Kiểu dữ liệu, có thể là "customer" hoặc "supplier" |
customer_group_id | integer | ID của nhóm khách hàng (tùy chọn) |
birthday | string | Ngày sinh của khách hàng, định dạng Năm-Tháng-Ngày |
gender | integer | Giới tính của khách hàng |
opening_balance | integer | Số dư mở đầu của khách hàng |
credit_limit | integer | Hạn mức tín dụng của khách hàng |
per_turn_debt | integer | Nợ từng kỳ của khách hàng (tùy chọn) |
branch_id | integer | ID chi nhánh liên quan đến khách hàng |
resources | array | Danh sách tài nguyên liên quan đến khách hàng |
account_name | string | Tên tài khoản của khách hàng |
account_address | string | Địa chỉ tài khoản của khách hàng |
account_no | string | Số tài khoản của khách hàng |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON về thêm mới một khách hàng
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 0,
"message": "string"
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Lấy thông tin chi tiết khách hàng
Để lấy thông tin chi tiết khách hàng/ nhà cung cấp, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/customer/customer/{id}"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers)
print(response.json())
curl -X 'GET' \
'https://open-apinextx.vn/api/customer/customer/{id}' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/customer/customer/{id}';
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này sẽ truy xuất đến thông tin chi tiết của một khách hàng và nhà cung cấp.
HTTP Request
GET https://open-api.nextx.vn/api/customer/customer/{id}
Tham số (Biến)
Path Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
id | integer | ID của khách hàng hoặc nhà cung cấp |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON kết quả sau khi cập nhật.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"id": 0,
"employers": {
"id": 0,
"code": "string",
"first_name": "string",
"last_name": "string",
"avatar": "string"
},
"avatar": "",
"contact_id": 0,
"name": "string",
"code": "string",
"first_name": "string",
"last_name": "string",
"mobile": "string",
"address": "string",
"Mô tả": "",
"fax_number": "",
"Kiểu dữ liệu": "customer",
"customer_group_id": null,
"birthday": "2024-08-06",
"gender": 0,
"opening_balance": 0,
"credit_limit": 0,
"pay_term_number": null,
"pay_term": "",
"branch_id": null,
"resources": [
{
"id": 0,
"name": "string"
}
]
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Cập nhật thông tin khách hàng
Để cập nhật thông tin khách hàng và nhà cung cấp, hãy sử dụng đoạn mã sau:
import requests
import json
url = "https:/open-api.nextx.vn/api/customer/customer/1" # Replace 1 with the actual customer ID
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
data = {
"avatar": "",
"contact_id": "",
"name": "string",
"mobile": "",
"email": "",
"address": "",
"tax_number": "",
"Kiểu dữ liệu": "customer",
"customer_group_id": None,
"birthday": "2024-08-06",
"gender": 0,
"opening_balance": 0,
"credit_limit": 0,
"per_turn_debt": None,
"branch_id": None,
"resources": [
{
"id": 0,
"name": "string"
}
],
"account_name": "",
"account_address": "",
"account_no": ""
}
response = requests.put(url, headers=headers, data=json.dumps(data))
print(response.json())
curl -X 'PUT' \
'https://open-api.nextx.vn/api/customer/customer/1' \ # Replace 1 with the actual customer ID
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer your_access_token' \
-d '{
"avatar": "",
"contact_id": "",
"name": "string",
"mobile": "",
"email": "",
"address": "",
"tax_number": "",
"Kiểu dữ liệu": "customer",
"customer_group_id": null,
"birthday": "2024-08-06",
"gender": 0,
"opening_balance": 0,
"credit_limit": 0,
"per_turn_debt": null,
"branch_id": null,
"resources": [
{
"id": 0,
"name": "string"
}
],
"account_name": "",
"account_address": "",
"account_no": ""
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/customer/customer/1'; // Replace 1 with the actual customer ID
const options = {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
},
body: JSON.stringify({
avatar: "",
contact_id: "",
name: "string",
mobile: "",
email: "",
address: "",
tax_number: "",
Kiểu dữ liệu: "customer",
customer_group_id: null,
birthday: "2024-08-06",
gender: 0,
opening_balance: 0,
credit_limit: 0,
per_turn_debt: null,
branch_id: null,
resources: [
{
id: 0,
name: "string"
}
],
account_name: "",
account_address: "",
account_no: ""
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này sẽ cho phép thay đổi thông tin chi tiết của khách hàng và nhà cung cấp.
HTTP Request
PUT https://open-api.nextx.vn/api/customer/customer/{id}
Path Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
id | integer | ID của khách hàng / NCC (bắt buộc) |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON kết quả sau khi cập nhật.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"avatar": "",
"contact_id": "",
"name": "string",
"mobile": "",
"email": "",
"address": "",
"Mô tả": "",
"tax_number": "",
"Kiểu dữ liệu": "customer",
"customer_group_id": null,
"employee_id": null,
"birthday": "2024-08-06",
"gender": "1",
"opening_balance": 0,
"credit_limit": 0,
"pay_term_number": null,
"branch_id": null,
"resources": [
{
"id": 0,
"name": "string"
}
],
"account_name": "",
"account_address": "",
"account_no": ""
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Đơn đặt hàng
Lấy danh sách đơn đặt
Để lấy danh sách đơn đặt, dùng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/purchase/purchase"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
params = {
'page': 0,
'pageLimit': 15,
'branch_id': 1, # Required
'store_id': 1,
'Kiểu dữ liệu[]': ['single', 'variable'],
'strSearch': 'product_name'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://https://open-api.nextx.vn/api/purchase/purchase'
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/purchase/purchase';
const params = new URLSearchParams({
page: 0,
pageLimit: 15,
branch_id: 1, // Required
store_id: 1,
'Kiểu dữ liệu[]': ['single', 'variable'],
strSearch: 'product_name'
});
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(`${url}?${params}`, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối trên cho ra một danh sách các đơn đặt hàng
HTTP Request
GET /https://open-api.nextx.vn/api/purchase/purchase
Query Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
page | integer | Trang của danh sách (Bắt đầu từ 0) |
pageLimit | integer | Số lượng mục trên mỗi trang, mặc định 15 mục, tối đa 100 mục (mặc định: 15) |
branch_id | integer | ID của chi nhánh (bắt buộc) |
store_id | integer | ID của kho |
Kiểu dữ liệu[] | array[string] | loại sản phẩm: single (sản phẩm thường- đơn), variable (sản phẩm có các biến thể), modifier (add-on product), combo (sản phẩm đi theo combo) |
strSearch | string | Thuật ngữ tìm kiếm cho tên, mã code, hoặc SKU |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON with với danh sách các đơn đặt hàng.
Phản hồi mẫu:
[
{
"id": 0,
"transaction_date": "2024-08-06",
"invoice_no": "string",
"customer_id": 0,
"customer_name": "string",
"customer_mobile": "string",
"customer_address": "string",
"customer_description": "string",
"payment_status": "string",
"final_total": "string",
"tax_amount": "string",
"discount_amount": "string",
"discount_type": "string",
"total_before_tax": "string",
"shipping_status": "ordered",
"additional_notes": "string",
"staff_note": "string",
"added_by": {
"id": 0,
"name": "string",
"firstname": "string",
"lastname": "string"
},
"total_paid": "string",
"branch_name": "string",
"total_items": 0,
"approved_status": "string"
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Thêm mới đơn đặt hàng
Để thêm mới đơn đặt hàng, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/purchase/purchase"
headers = {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
}
data = {
"invoice_no": "",
"transaction_date": "2024-08-13",
"customer_id": 0,
"branch_id": 0,
"store_id": 0,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"shipping_status": "ordered",
"approved_status": false,
"additional_notes": "",
"staff_note": "",
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"f_convert1": 1,
"f_convert2": 1,
"f_convert3": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
]
}
response = requests.post(url, headers=headers, json=data)
curl -X 'POST' \
'https://open-api.nextx.vn/api/purchase/purchase' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"invoice_no": "",
"transaction_date": "2024-08-13",
"customer_id": 0,
"branch_id": 0,
"store_id": 0,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"shipping_status": "ordered",
"approved_status": false,
"additional_notes": "",
"staff_note": "",
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"f_convert1": 1,
"f_convert2": 1,
"f_convert3": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
]
}'
const axios = require('axios');
const url = 'https://open-api.nextx.vn/api/purchase/purchase';
const headers = {
'Authorization': 'Bearer YOUR_TOKEN',
'Content-Type': 'application/json'
};
const data = {
invoice_no: "",
transaction_date: "2024-08-13",
customer_id: 0,
branch_id: 0,
store_id: 0,
discount_type: "fixed",
discount_amount: 0,
total_before_tax: 0,
tax_amount: 0,
final_total: 0,
shipping_status: "ordered",
approved_status: false,
additional_notes: "",
staff_note: "",
products: [
{
id_sort: 0,
product_id: 0,
variation_id: 0,
unit_price: 0,
unit_id: 0,
f_convert: 1,
f_convert1: 1,
f_convert2: 1,
f_convert3: 1,
tax_id": null,
item_tax: 0,
quantity: 0,
sell_line_note: "",
line_discount_type: "fixed",
line_discount_amount: 0
}
],
payment: [
{
note: "",
payment_type: "in_come",
method: "cash",
amount: 0,
account_id: null
}
]
};
axios.post(url, data, { headers })
.then(response => {
console.log('Purchase order created successfully!');
})
.catch(error => {
console.error('Error:', error.response.data);
});
Điểm đầu cuối này cho phép thêm mới một đơn đặt hàng.
HTTP Request
POST https://open-api.nextx.vn/api/purchase/purchase
Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
transaction_date | string | ngày giao dịch |
customer_id | integer | ID khách hàng |
store_id | integer | ID của kho |
payment_method | string | Phương thức thanh toán |
discount_amount | number | Giá trị giảm giá |
final_total | number | Tổng hóa đơn |
is_paid | boolean | Trạng thái thanh toán (true/false) |
products | array | Danh sách sản phẩm trong hóa đơn |
products[].id | integer | ID sản phẩm |
products[].sort | integer | Loại sản phẩm |
products[].unit_price | number | Giá tiền sản phẩm |
products[].qty | number | Số lượng sản phẩm |
products[].total_price | number | Tổng tiền của sản phẩm |
products[].discount | number | Giảm giá cho sản phẩm |
products[].comment | string | Ghi chú cho sản phẩm |
### Phản hồi Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON .
Phản hồi mẫu:
{
"message": "Purchase order created successfully",
"data": {
"invoice_no": "",
"transaction_date": "2024-08-07",
"customer_id": 0,
"branch_id": 0,
"store_id": 0,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"shipping_status": "ordered",
"approved_status": false,
"additional_notes": "",
"staff_note": "",
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"f_convert1": 1,
"f_convert2": 1,
"f_convert3": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
]
}
]
}
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token has expired",
"status_code": 401
},
"data": []
}
Cập nhận trạng thái giao hàng
Để cập nhận trạng thái giao hàng, sử dụng đoạn code sau:
import requests
import json
url = "https://open-api.nextx.vn/api/purchase/update-shipping/{id}"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token',
'Content-Type': 'application/json'
}
payload = {
"comment": "string",
"shipping_status": "ordered"
}
response = requests.put(url, headers=headers, data=json.dumps(payload))
print(response.json())
curl -X 'PUT' \
'https://open-api.nextx.vn/api/purchase/update-shipping/{id}' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token' \
-H 'Content-Type: application/json' \
-d '{
"comment": "string",
"shipping_status": "ordered"
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/purchase/update-shipping/{id}';
const options = {
method: 'PUT',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"comment": "string",
"shipping_status": "ordered"
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối trên cho phép cập nhật trạng thái giao hàng của đơn đặt hàng
HTTP Request
PUT https://open-api.nextx.vn/api/purchase/update-shipping/{id}
Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
id | integer | ID đơn hàng |
body | object | Yêu cầu đầu vào bao gồm trạng thái giao hàng và ghi chú |
comment | string | Bình luận về đơn đặt hàng |
shipping_status | string | Trạng thái giao hàng mới |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON với một thông điệp trạng thái.
Lệnh trên trả về JSON được cấu trúc như sau:
Example Value
Model
{
"comment": "string",
"shipping_status": "ordered"
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Đơn bán hàng
Lấy danh sách đơn bán hàng
Để lấy danh sách đơn bán hàng, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/sell/sell"
params = {
"page": 0,
"pageLimit": 0,
"branch_id": 0,
"category_id": 0,
"sttsearch": " ",
"from_date": " ",
"to_date": " "
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/sell/sell'
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/sell/sell';
const params = new URLSearchParams({
page: 0,
pageLimit: 0,
branch_id: 0,
category_id: 0,
sttsearch: ' ',
from_date: ' ',
to_date: ' '
});
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(`${url}?${params}`, options)a
Điểm đầu cuối trên cho kết quả là danh sách các đơn bán hàng,
HTTP Request
GET https://open-api.nextx.vn/api/sell/sell
Query Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
page | integer | Số trang của danh sách (Bắt đầu từ 0) |
pageLimit | integer | Số lượng mục trên mỗi trang, mặc định 15 mục, tối đa 100 mục (mặc định: 15) |
branch_id | integer | ID của chi nhánh (bắt buộc) |
customer_id | integer | ID của khách hàng |
strSearch | string | Thuật ngữ tìm kiếm cho tên, mã code, hoặc SKU |
from_date | string | Filter from transaction start date, format Năm-Tháng-Ngày |
to_date | string | Filter from transaction end date, format Năm-Tháng-Ngày |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON với danh sách các đơn bán hàng.
Lệnh trên cho kết quả JSON như sau:
[
{
"id": 0,
"transaction_date": "2024-08-07",
"invoice_no": "string",
"customer_id": 0,
"customer_code": "string",
"customer_name": "string",
"customer_mobile": "string",
"customer_address": "string",
"customer_description": "string",
"payment_status": "due",
"final_total": "string",
"tax_amount": "string",
"total_before_tax": "string",
"total_discount": "string",
"total_surcharge": "string",
"shipping_status": "ordered",
"additional_notes": "string",
"staff_note": "string",
"added_by": "string",
"total_paid": 0,
"branch_name": "string",
"status": "final",
"purchase_invoice_no": "string"
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Thêm mới đơn bán hàng
Để thêm mới một đơn bán hàng, dùng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/sell/sell"
payload = {
"transaction_date": "2024-08-08",
"store_id": null,
"customer_id": null,
"price_book_id": null,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"additional_notes": "",
"staff_note": "",
"user_id": 0,
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"f_convert1": 1,
"f_convert2": 1,
"f_convert3": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
],
"surcharges": 0,
"invoice_no": "",
"branch_id": null
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token',
'Content-Type': 'application/json'
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
curl -X 'POST' \
'https://open-api.nextx.vn/api/sell/sell' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"transaction_date": "2024-08-13",
"store_id": null,
"customer_id": null,
"price_book_id": null,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"additional_notes": "",
"staff_note": "",
"user_id": 0,
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"f_convert1": 1,
"f_convert2": 1,
"f_convert3": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
],
"surcharges": 0,
"invoice_no": "",
"branch_id": null
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/sell/sell';
const options = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token',
'Content-Type': 'application/json'
},
body: JSON.stringify({
transaction_date: "2024-08-08",
store_id: null,
customer_id: null,
price_book_id: null,
discount_type: "fixed",
discount_amount: 0,
total_before_tax: 0,
tax_amount: 0,
final_total: 0,
additional_notes: "",
staff_note: "",
user_id: 0,
products: [
{
id_sort: 0,
product_id: 0,
variation_id: 0,
unit_price: 0,
unit_id: 0,
f_convert: 1,
f_convert1: 1,
f_convert2: 1,
f_convert3: 1,
tax_id: null,
item_tax: 0,
quantity: 0,
sell_line_note: "",
line_discount_type: "fixed",
line_discount_amount: 0
}
],
payment: [
{
note: "",
payment_type: "in_come",
method: "cash",
amount: 0,
account_id: null
}
],
surcharges: 0,
invoice_no: "",
branch_id: null
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Đầu cuối này cho phép bạn tạo một đơn hàng bán mới với các Tham số (Biến) chi tiết, bao gồm thông tin về sản phẩm, thanh toán và các chi tiết khác.
HTTP Request
POST https://open-api.nextx.vn/api/sell/sell
Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
transaction_date | string | Ngày giao dịch (YYYY-MM-DD) |
customer_id | integer | ID của khách hàng |
store_id | integer | ID của cửa hàng |
price_book_id | integer | ID của bảng giá |
discount_type | string | Kiểu dữ liệu của chiết khấu (..., cố định). |
discount_amount | integer | Số tiền chiết khấu |
total_before_tax | integer | Tổng số tiền trước thuế |
tax_amount | integer | Số tiền thuế |
final_total | integer | Tổng cộng sau thuế |
additional_notes | string | Bất kỳ ghi chú bổ sung nào |
staff_note | string | Ghi chú từ nhân viên |
user_id | integer | ID của người dùng |
products | array | Danh sách sản phẩm trong đơn hàng bán |
payment | array | Chi tiết thanh toán cho đơn hàng bán |
surcharges | integer | Chi tiết thanh toán cho đơn hàng bán |
invoice_no | string Số hóa đơn | |
branch_id | integer | ID của chi nhánh |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON với danh sách mới có đơn hàng vừa thêm.
{
"status_code": 200,
"message": "Sale order created successfully"
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 401,
"message": "Token expired"
}
Lấy chi tiết đơn bán hàng
Để lấy thông tin chi tiết của đơn bán hàng, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/sell/sell/{id}"
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/sell/sell/{id}' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/sell/sell/{id}';
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này cho thấy thông tin chi tiết của một đơn bán hàng.
HTTP Request
GET https://open-api.nextx.vn/api/sell/sell/{id}
Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
id | integer | ID of the sale order |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSONvới thông tin chi tiết đơn bán hàng.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"id": 0,
"transaction_date": "2024-08-08",
"invoice_no": "string",
"discount_type": "string",
"discount_amount": "string",
"total_before_tax": "string",
"tax_amount": "string",
"final_total": "string",
"staff_note": "string",
"additional_notes": "string",
"store_id": 0,
"price_book_id": 0,
"branch_id": 0,
"shipping_charges": "string",
"shipping_status": "string",
"customer_id": 0,
"payment": [
{
"note": "string",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
],
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"f_convert1": 1,
"f_convert2": 1,
"f_convert3": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0
}
],
"invoice_no": "",
"branch_id": null,
"tax": {
"id": 0,
"name": "string",
"rate": "string",
"address": "string",
"Mô tả": "string"
}
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
Copy code
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Đơn trả hàng
lấy danh sách đơn trả hàng
Để lấy danh sách các đơn trả hàng, dùng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/sell-return/sell-return"
params = {
"page": 0,
"pageLimit": 0,
"customer_id": 0,
"category_id": 0,
"sttsearch": " ",
"from_date": " ",
"to_date": " "
}
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/sell-return/sell-return"
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/sell-return/sell-return";
const params = new URLSearchParams({
page: 0,
pageLimit: 0,
customer_id: 0,
category_id: 0,
sttsearch: ' ',
from_date: ' ',
to_date: ' '
});
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(`${url}?${params}`, options)a
Retrieves list of sell returns.
HTTP Request
GET /https://open-api.nextx.vn/api/sell-return/sell-return
Query Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
page | integer | Số trang của danh sách (Bắt đầu từ 0) |
pageLimit | integer | Số lượng mục trên mỗi trang, mặc định 15 mục, tối đa 100 mục (mặc định: 15) |
customer_id | integer | ID của khách hàng |
strSearch | string | Thuật ngữ tìm kiếm cho tên, mã code, hoặc SKU |
from_date | string | Filter from transaction start date, format Năm-Tháng-Ngày |
to_date | string | Filter from transaction end date, format Năm-Tháng-Ngày |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON với danh sách đơn trả hàng.
Lệnh trên cho kết quả JSON như sau:
[
{
"id": 0,
"transaction_date": "2024-08-08",
"invoice_no": "string",
"customer_id": 0,
"customer_code": "string",
"customer_name": "string",
"customer_mobile": "string",
"payment_status": "due",
"final_total": "string",
"amount_paid": "string",
"additional_notes": "string",
"staff_note": "string",
"added_by": "string",
"branch_name": "string",
"sell_invoice_no": "string",
"sell_id": 0
}
]
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"meta": {
"message": "Token expired",
"status_code": 401
},
"data": []
}
Thêm mới đơn trả hàng
Để thêm mới một đơntrả hàng, sử dụng đoạn code sau:
curl -X 'POST' \
'https://open-api.nextx.vn/api/sell-return/sell-return' \
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token' \
-H 'Content-Type: application/json' \
-d '{
"transaction_date": "2024-08-08",
"store_id": null,
"customer_id": null,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"additional_notes": "",
"staff_note": "",
"user_id": 0,
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
],
"return_charges": 0
}'
import requests
import json
url = "https://open-api.nextx.vn/api/sell-return/sell-return"
payload = {
"transaction_date": "2024-08-08",
"store_id": None,
"customer_id": None,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"additional_notes": "",
"staff_note": "",
"user_id": 0,
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"tax_id": None,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": None
}
],
"return_charges": 0
}
headers = {
'accept': 'application/json',
'Authorization': 'Bearer your_access_token',
'Content-Type': 'application/json'
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.json())
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/sell-return/sell-return';
const data = {
transaction_date: "2024-08-08",
store_id: null,
customer_id: null,
discount_type: "fixed",
discount_amount: 0,
total_before_tax: 0,
tax_amount: 0,
final_total: 0,
additional_notes: "",
staff_note: "",
user_id: 0,
products: [
{
id_sort: 0,
product_id: 0,
variation_id: 0,
unit_price: 0,
unit_id: 0,
f_convert: 1,
tax_id: null,
item_tax: 0,
quantity: 0,
sell_line_note: "",
line_discount_type: "fixed",
line_discount_amount: 0
}
],
payment: [
{
note: "",
payment_type: "in_come",
method: "cash",
amount: 0,
account_id: null
}
],
return_charges: 0
};
const options = {
method: 'POST',
headers: {
'accept': 'application/json',
'Authorization': 'Bearer your_access_token',
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này cho phéo thêm mới một đơn trả hàng.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"transaction_id": null,
"transaction_date": "2024-08-08",
"store_id": null,
"customer_id": null,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"additional_notes": "",
"staff_note": "",
"user_id": 0,
"return_charges": 0,
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0,
"sell_line_id": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
],
"invoice_no": "",
"branch_id": null
}
HTTP Request
POST https://open-api.nextx.vn/api/sell-return/sell-return
Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
transaction_date | string | Ngày giao dịch |
store_id | integer | ID của kho hàng |
customer_id | integer | ID của khách hàng |
discount_type | string | Loại chiết khấu |
discount_amount | integer | Giá trị chiết khấu |
total_before_tax | integer | Tổng tiền trước thuế |
tax_amount | integer | Giá trị thuế |
final_total | integer | Tổng tiền hóa đơn |
additional_notes | string | Ghi chú bổ sung |
staff_note | string | Chi chú từ người phụ trách |
user_id | integer | ID của người dùng |
products | array | Danh sách sản phẩm trong đơn trả hàng |
payment | array | Chi tiết thanh toán |
return_charges | integer | Tiền thừa trả hàng |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON thành công hay không. Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 401,
"message": "Token expired"
}
Lấy chi tiết đơn trả hàng
Để xem thông tin chi tiết đơn trả hàng, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/ell-return/ell-return/1" # Replace 1 with the actual return order ID
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
response = requests.get(url, headers=headers)
print(response.json())
curl -X 'GET' \
'hhttps://open-api.nextx.vn/api/ell-return/ell-return/1' \ # Replace 1 with the actual return order ID
-H 'accept: application/json' \
-H 'Authorization: Bearer your_access_token'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/ell-return/ell-return/1'; // Replace 1 with the actual return order ID
const options = {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Truy xuất chi tiết của một đơn hàng trả hàng cụ thể. Đầu cuối này truy xuất chi tiết của một đơn hàng trả hàng cụ thể, bao gồm thông tin khách hàng, tổng số đơn hàng và các mục hàng.
HTTP Request
GET https://open-api.nextx.vn/api/ell-return/ell-return/{id}
Path Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
id | string | ID đơn trả hàng (bắt buộc) |
Phản hồi
Lệnh trên cho kết quả JSON như sau:
{
"id": 0,
"return_parent_id": 0,
"transaction_date": "2024-08-08",
"invoice_no": "string",
"discount_type": "string",
"discount_amount": "string",
"total_before_tax": "string",
"tax_amount": "string",
"final_total": "string",
"staff_note": "string",
"payment_status": "string",
"customer_id": 0,
"price_book_id": 0,
"branch_id": 0,
"store_id": 0,
"return_charges": "string",
"additional_notes": "string",
"total_paid": "string",
"location": {
"id": 0,
"name": "string",
"code": "string",
"tel": "string",
"fax": "string",
"avatar": "string",
"address": "string",
"Mô tả": "string"
},
"customer": {
"id": 0,
"name": "string",
"code": "string",
"mobile": "string",
"gender": "string",
"birthday": "2024-08-08",
"address": "string",
"account_address": "",
"account_no": ""
},
"created_by": {
"id": 0,
"name": "string",
"firstname": "string",
"lastname": "string"
},
"payment_lines": [
{
"id": 0,
"amount": 0,
"method": "string",
"transaction_no": "string",
"paid_on": "2024-08-08",
"note": "string"
}
],
"store": {
"id": 0,
"name": "string",
"code": "string",
"tel": "string",
"fax": "string",
"avatar": "string",
"address": "string",
"Mô tả": "string"
},
"sell_lines": [
{
"id": 0,
"product_id": 0,
"variation_id": 0,
"product_name": "string",
"product_code": "string",
"sub_sku": "string",
"product_image": "string",
"product_purchase_price": 0,
"product_sell_price": 0,
"unit_id": 0,
"unit": "string",
"quantity": 0,
"sell_line_note": "string",
"line_discount_type": "string",
"line_discount_amount": "string",
"units": [
{
"id": 0,
"name": 0,
"is_base_unit": 0,
"multiplier": 0,
"price": 0
}
],
"item_tax": 0,
"unit_price": 0
}
]
}
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON thành công hay không. Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 401,
"message": "Token expired"
}
Cập nhật đơn trả hàng
Để chỉnh sửa thông tin đơn trả hàng, sử dụng đoạn code sau:
import requests
import json
url = "https:.../sell-return/1" # Replace 1 with the actual return order ID
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
}
data = {
"transaction_date": "2024-08-13",
"customer_id": null,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"additional_notes": "",
"staff_note": "",
"user_id": 0,
"return_charges": 0,
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0,
"sell_line_id": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
]
}
response = requests.put(url, headers=headers, data=json.dumps(data))
print(response.json())
curl -X 'PUT' \
'https://open-api.nextx.vn/api/sell-return/sell-return/1' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"transaction_date": "2024-08-13",
"customer_id": null,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"additional_notes": "",
"staff_note": "",
"user_id": 0,
"return_charges": 0,
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0,
"sell_line_id": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
]
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/sell-return/sell-return/1'; // Replace 1 with the actual return order ID
const options = {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer your_access_token'
},
body: JSON.stringify({
transaction_date: "2024-08-13",
customer_id: null,
discount_type: "fixed",
discount_amount: 0,
total_before_tax: 0,
tax_amount: 0,
final_total: 0,
additional_notes: "",
staff_note: "",
user_id: 0,
return_charges: 0,
products: [
{
id_sort: 0,
product_id: 0,
variation_id: 0,
unit_price: 0,
unit_id: 0,
f_convert: 1,
tax_id: null,
item_tax: 0,
quantity: 0,
sell_line_note: "",
line_discount_type: "fixed",
line_discount_amount: 0,
sell_line_id: 0
}
],
payment: [
{
note: "",
payment_type: "in_come",
method: "cash",
amount: 0,
account_id: null
}
]
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này cung cấp truy xuất để chỉnh sửa đơn trả hàng.
HTTP Request
PUT 'https://open-api.nextx.vn/api/sell-return/sell-return/{id}
Path Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
id | string | ID đơn trả hàng cần cập nhật (bắt buộc) |
Phản hồi
Têu cầu mẫu:
{
"transaction_date": "2024-08-08",
"customer_id": null,
"discount_type": "fixed",
"discount_amount": 0,
"total_before_tax": 0,
"tax_amount": 0,
"final_total": 0,
"additional_notes": "",
"staff_note": "",
"user_id": 0,
"return_charges": 0,
"products": [
{
"id_sort": 0,
"product_id": 0,
"variation_id": 0,
"unit_price": 0,
"unit_id": 0,
"f_convert": 1,
"tax_id": null,
"item_tax": 0,
"quantity": 0,
"sell_line_note": "",
"line_discount_type": "fixed",
"line_discount_amount": 0,
"sell_line_id": 0
}
],
"payment": [
{
"note": "",
"payment_type": "in_come",
"method": "cash",
"amount": 0,
"account_id": null
}
]
}
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON thành công hay không Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 401,
"message": "Token expired"
}
Các API về tiện ích
Gửi Zalo Zns
Để gửi tin nhắn Zalo Zns, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/common/send-zns-message"
payload = {
"phone": "string",
"template_id": "string",
"tracking_id": "string",
"template_data": {}
}
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
curl -X 'POST' \
'https://open-api.nextx.vn/api/common/send-zns-message' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"phone": "string",
"template_id": "string",
"tracking_id": "string",
"template_data": {}
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/common/send-zns-message';
const payload = {
"phone": "string",
"template_id":
API này gửi một tin nhắn Zalo ZNS (Zalo Notification Service) đến một số điện thoại được chỉ định.
HTTP Request
POST https://open-api.nextx.vn/api/common/send-zns-message
Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
phone | string | Số điện thoại người nhận |
template_id | string | ID của mẫu tin Zalo ZNS |
tracking_id | string | ID duy nhất để theo dõi trạng thái giao hàng của tin nhắn. |
template_data | object | Dữ liệu để điền vào các trường mẫu ZNS. |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON thành công hay không
Lệnh trên trả về JSON được cấu trúc như sau:
(body)
Example Value
Model
{
"phone": "string",
"template_id": "string",
"tracking_id": "string",
"template_data": {}
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 401,
"message": "Token expired"
}
Gửi dữ liệu đăng ký từ Webform
Để gửi dữ liệu đăng ký từ Webform, sử dụng đoạn code sau:
import requests
url = "https://open-api.nextx.vn/api/common/send-webform-v2"
payload = {
"name": "string",
"sex": "string",
"mobile": "string",
"email": "string",
"website": "string",
"address": "string",
"Mô tả": "string",
"body": "string",
"url": "string"
}
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-Client-Key': 'your_client_key'
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
curl -X 'POST' \
'https://open-api.nextx.vn/api/common/send-webform-v2' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'X-Client-Key: your_client_key' \
-d '{
"name": "string",
"sex": "string",
"mobile": "string",
"email": "string",
"website": "string",
"address": "string",
"Mô tả": "string",
"body": "string",
"url": "string"
}'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/common/send-webform-v2';
const payload = {
"name": "string",
"sex": "string",
"mobile": "string",
"email": "string",
"website": "string",
"address": "string",
"Mô tả": "string",
"body": "string",
"url": "string"
};
const headers = {
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-Client-Key': 'your_client_key'
};
fetch(url, {
method: 'POST',
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data));
Điểm đầu cuối này cho phép gửi dữ liệu đăng ký từ Webform.
HTTP Request
POST https://open-api.nextx.vn/api/common/send-webform-v2
Tham số (Biến)
Header Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
X_Client_Key | string | Khóa đặc biệt của Webform |
Body Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
name | string | tên người dùng |
sex | string | giới tính |
mobile | string | số điện thoại |
website | string | website URL |
string | địa chỉ Email | |
address | string | địa chỉ của người dùng |
description | string | Mô tả hoặc ghi chú |
body | string | nội dung chính của thông điệp |
url | string | URL liên kết với dữ liệu của biểu mẫu web. |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON có thành công hay không.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 0,
"message": "string"
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 401,
"message": "Token expired"
}
Lấy danh sách các trường của Webform
Để lấy danh sách các trường của Webform, sử dụng đoạn code sau
import requests
url = "https://open-api.nextx.vn/api/common/webform-fields"
headers = {
'X-Client-Key': 'your_client_key',
'Accept': 'application/json'
}
response = requests.get(url, headers=headers)
print(response.json())
curl -X 'GET' \
'https://open-api.nextx.vn/api/common/webform-fields' \
-H 'X-Client-Key: your_client_key' \
-H 'accept: application/json'
const fetch = require('node-fetch');
const url = 'https://open-api.nextx.vn/api/common/webform-fields';
const options = {
method: 'GET',
headers: {
'X-Client-Key': 'your_client_key',
'Accept': 'application/json'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data));
Đầu cuối này truy xuất danh sách các trường từ biểu mẫu web. Các trường bao gồm tên trường và các chi tiết liên quan.
HTTP Request
GET https://open-api.nextx.vn/api/common/webform-fields
Tham số (Biến)
Header Tham số (Biến)
Tham số (Biến) | Kiểu dữ liệu | Mô tả |
---|---|---|
X_Client_Key | string | Khóa đặc biệt của webform |
Phản hồi
Nếu yêu cầu thành công, máy chủ sẽ trả về phản hồi JSON với các trường dữ liệu của webform.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 0,
"message": "string"
}
Nếu token đã hết hạn hoặc không hợp lệ, máy chủ sẽ trả về mã trạng thái 401 kèm theo thông báo cho biết token đã hết hạn.
Lệnh trên trả về JSON được cấu trúc như sau:
{
"status_code": 401,
"message": "Token expired"
}
Errors
The NextX API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Token is expired or invalid. |