Xem mục lục

Public API

Hướng dẫn sử dụng tính năng Kết nối API

 

KiotViet Public API được phát triển để hỗ trợ việc tích hợp và trao đổi dữ liệu giữa KiotViet và các nền tảng website, CRM…

Phạm vi áp dụng: gian hàng sử dụng gói Cao cấp của KiotViet.

KiotViet Public API cung cấp cơ chế đọc và ghi các đối tượng sau:

  • Nhóm hàng: lấy danh sách nhóm hàng hóa với các thông tin về tên nhóm hàng và quan hệ giữa các nhóm hàng

  • Hàng hóa: lấy thông tin sản phẩm, tạo mới, sửa, xóa sản phẩm, thuộc tính của sản phẩm

  • Danh sách chi nhánh 

  • Bảng giá

Lưu ý : Các Params có ? ở trong giá trị là những trường có thể không truyền.

I. Thiết lập kết nối API

- Kiotviet API xác thực dựa trên cơ chế sử dụng client_secret đã được mã hóa. Để kết nối được hệ thống cần phải có thông tin Mã bảo mật.

- Mã API trên KiotViet chỉ hiển thị trên tài khoản có vai trò admin của chủ gian hàng.

- Trên màn hình quản lý, từ menu Thiết lập (1), bạn kích chọn Thiết lập cửa hàng (2).

 

- Bạn chọn Thiết lập kết nối API (3). Trên thông tin thiết lập kết nối bạn thao tác như sau:

  • Kích Tạo mã (4) để tạo ra Mã bảo mật

  • Kích Hoạt động (5)

- Kích Lưu (6).

- Để ngừng hoạt động kết nối API, bạn kích Ngừng hoạt động -> kích Lưu để hoàn tất.

II. Chức năng

Mục này mô tả thông tin chi tiết của từng API. Các thông tin bao gồm:

  • Tên API

  • Mục đích sử dụng của API

  • Cấu trúc của API

  • Chi tiết tham số trong request

  • Nội dung response trả về

1. Authenticate

- Kiotviet API xác thực dựa trên cơ chế sử dụng client_secret đã được mã hóa. Để kết nối được hệ thống cần phải có thông tin Mã bảo mật. Thông tin này được truy cập vào mục Thiết lập cửa hàng bằng tài khoản admin -> chọn Thiết lập kết nối API.

- Trong trường hợp không thể lấy được thông tin trên vui lòng liên hệ với bộ phận CSKH để được hỗ trợ.

- Sau khi có được thông tin Mã bảo mật (client_secret). Có thể sử dụng mã này để truy cập api

- Lưu ý: Toàn bộ các API đều phải có header trong request với thông tin: 

  • "PublicApiKey" : mã bảo mật

  • “Accept” : application/json

2. Nhóm hàng

Mô tả chi tiết cho các liên quan đến thông tin nhóm hàng hóa như sau:

Lấy danh sách nhóm hàng:

- Mục đích sử dụng: Trả về toàn bộ danh mục hàng hóa (nhóm hàng hóa). Danh sách này được sắp xếp theo thứ tự bảng chữ cái (a-z). Hệ thống chỉ cho phép nhóm hàng hóa có tối đa 3 cấp, và không cho phép xóa nhóm hàng cha nếu đang có chứa nhóm hàng con và không cho phép xóa nhóm hàng con nếu đang được sử dụng. 

- Phương thức và URL: GET https://api-integration-booking.kiotviet.vn/public/category

- Request: Sử dụng hàm GET với tham số

“pageSize”: int?, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

“currentItem”: int, // lấy dữ liệu từ bản ghi hiện tại, nếu không nhập thì mặc định là 0

“hierachicalData”: Boolean, // nếu HierachicalData=true thì mình sẽ lấy nhóm hang theo cấp mà không quan tâm lastModifiedFrom. Ngược lại, HierachicalData=false thì sẽ lấy 1 list nhóm hang theo lastModifiedFrom nhưng không có phân cấp

  - Response:

  • Nếu hierachicalData true

  • Nếu hierachicalDatafasle


 

3. Hàng hóa

Mô tả chi tiết cho các liên quan đến thông tin hàng hóa như sau:

Lấy danh sách hàng hóa:

- Mục đích sử dụng: Trả về toàn bộ hàng hóa theo cửa hàng đã được xác nhận (authenticated retailer)

- Phương thức và URL: GET http://api-integration-booking.kiotviet.vn/public/product

- Request: Sử dụng hàm GET với tham số:

“pageSize”: int, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

“currentItem”: int, // lấy dữ liệu từ bản ghi currentItem

“CategoryIds”: long, //Id nhóm hàng cần filter

"ProductTypes": bool, //loại hàng hóa

 "isActive": bool? //Hàng đang kinh doanh,

 "name": string //search hàng hóa theo tên

}

Nếu có "OrderDirection", chọn sắp xếp kết quả về theo: 

  • ASC (Mặc định)
  • DESC

“includeRemoveIds”: Boolean //Có lấy thông tin danh sách Id bị xoá dựa trên lastModifiedFrom,

“productType”: int? (optional) //Loại hàng hóa 

Nếu có "productType", giá trị thuộc : 

  • 1 : hàng combo
  • 3: hàng hóa dịch vụ 
  • 2: các hàng hóa còn lại

 “includeMaterial”: Boolean //Có lấy thông tin danh sách hàng thành phần hay không 

- Response:

4. Lấy danh sách chi nhánh 

- Mục đích sử dụng: Trả lại danh sách toàn bộ chi nhánh của cửa hàng đã được xác nhận

- Phương thức và URL: GET http://api-integration-booking.kiotviet.vn/public/branches

- Request: Sử dụng hàm GET với tham số:

“pageSize”: int?, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

“currentItem”: int?,

- Response: 

5. Bảng giá

5.1. Lấy danh sách bảng giá

- Mục đích sử dụng: Trả về danh sách bảng giá

- Phương thức và URL: GET http://api-integration-booking.kiotviet.vn/public/pricebook

- Request: Sử dụng hàm GET với tham số:

  • “includePriceBookBranch”: Boolean, optional // Có lấy thông tin danh sách chi nhánh áp dụng bảng giá

  • “includePriceBookCustomerGroups”: Boolean, optional // Có lấy thông tin danh sách nhóm KH áp dụng bảng giá

  • “includePriceBookUsers”: Boolean, optional // Có lấy thông tin danh sách người dùng áp dụng bảng giá

  • “currentItem”: int?,

  • “pageSize”: int?, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

- Response: 

5.2. Lấy chi tiết bảng giá

- Mục đích sử dụng: Trả về thông tin chi tiết của bảng giá theo ID

- Phương thức và URL: 

“id”: long // ID của bảng giá

“currentItem”: int? // lấy dữ liệu từ bản ghi hiện tại, nếu không nhập thì mặc định là 0

“pageSize”: int?, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

- Response: 

6. Hóa đơn

6.1. Lấy danh sách hóa đơn

Mục đích sử dụng: Trả về danh sách hóa đơn

- Phương thức và URL: GET http://api-integration-booking.kiotviet.vn/public/invoice

- Request: Sử dụng hàm GET với tham số:

  • “branchIds”: int[], optional // Lấy theo chi nhánh
  • “customerIds”: long[], optional // Id khách hàng
  • “customerCode”: string, optional // Mã khách hàng
  • “status”: int[], optional // Theo trạng thái hóa đơn
  • “includePayment”: Boolean, optional // Có lấy thông tin thanh toán
  • “includeSaleChannel”: Boolean, optional // Có lấy thông tin kênh bán
  • “lastModifiedFrom”: Datetime, optional // Thời gian cập nhật
  • “toDate”: Datetime, optional // Thời gian cập nhật cho đến thời điểm toDate
  • “createdDate”: Datetime, optional // Thời gian tạo
  • “fromPurchaseDate”: Datetime, optional // Từ ngày giao dịch
  • “toPurchaseDate”: Datetime, optional // Đến ngày giao dịch
  • “currentItem”: int?,
  • “pageSize”: int?, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

- Response: 

{

“total”: int, tổng 

“pageSize”: int, bao nhiêu dòng / 1 trang dữ liệu

“data”: [{

                “id”: long // id hóa đơn

                “code”: string // Mã hóa đơn

                “purchaseDate”: datetime// Ngày hóa đơn 

                “branchId”: int, // Id chi nhánh

                “branchName”: string, // Tên chi nhánh

                “soldById”: long?, // Id thu ngân

                “soldByName”: string, // Tên thu ngân

                “customerId”: long?, // Id khách hàng

                “customerName”: string, // Tên khách hàng

                “code”: string, // Mã khách hàng

                “total”: decimal, // Khách cần trả

                “totalPayment”: decimal, // Khách đã trả

                “status”: int, // Trạng thái hóa đơn

                “statusValue”: string, // Trạng thái hóa đơn bằng chữ

                “createdDate”: datetime, // Ngày tạo

                “modifiedDate”: datetime, // Ngày cập nhật

                “payments” :[{

                                                “id”: long, 

                                                “code”: string,

                                                “amount”: decimal, 

                                                “status”: byte?,

                                                “statusValue”: string,

                                                “transDate”: datetime,

                                                “bankAccount”: string,

                                                “accountId”: int?,

                                }], // Thông tin thanh toán

                “invoiceOrderSurcharges” :[{

                                                “id”: long, 

                                                “invoiceId”: long?,

                                                “surchargeId”: int?, 

                                                “name”: string,

                                                “value”: decimal,

                                                “price”: decimal,

                                                “createdDate”: datetime,

                                }], // Thông tin thu khác

   }]

                “invoiceDetails” :[{

                                                “productId”: long, 

                                                “productCode”: string,

                                                “productName”: string, 

                                                “quantity”: float?,

                                                “price”: decimal?,

                                                “discountRatio”: float?,

                                                “discount”: decimal?,

                                                “note”: string,

                                }], // Chi tiết hóa đơn

   }]

                “saleChannels” :[{

                                                “id”: int, 

                                                “name”: string,

                                                “isNotDelete”: bool?, 

                                                “retailerId”: int?,

                                                “position”: int?,

                                                “isActive”: bool?,

                                                “createdBy”: long?,

                                                “createdDate”: datetime?,

                                }], // Thông tin kênh bán

   }]

}                

6.2. Lấy chi tiết hóa đơn

- Mục đích sử dụng: Trả về chi tiết hóa đơn

- Phương thức và URL: 

- Request: Sử dụng hàm GET với tham số:

  • “id”: long, optional // Id của hóa đơn
  • “code”: string, optional // Mã của hóa đơn

- Response: 

{

 

“total”: int, tổng 

“pageSize”: int, bao nhiêu dòng / 1 trang dữ liệu

“data”: [{

                “id”: long // id hóa đơn

                “code”: string // Mã hóa đơn

                “purchaseDate”: datetime// Ngày hóa đơn 

                “branchId”: int, // Id chi nhánh

                “branchName”: string, // Tên chi nhánh

                “soldById”: long?, // Id thu ngân

                “soldByName”: string, // Tên thu ngân

                “customerId”: long?, // Id khách hàng

                “customerName”: string, // Tên khách hàng

                “code”: string, // Mã khách hàng

                “total”: decimal, // Khách cần trả

                “totalPayment”: decimal, // Khách đã trả

                “status”: int, // Trạng thái hóa đơn

                “statusValue”: string, // Trạng thái hóa đơn bằng chữ

                “createdDate”: datetime, // Ngày tạo

                “modifiedDate”: datetime, // Ngày cập nhật

                “payments” :[{

                                                “id”: long, 

                                                “code”: string,

                                                “amount”: decimal, 

                                                “status”: byte?,

                                                “statusValue”: string,

                                                “transDate”: datetime,

                                                “bankAccount”: string,

                                                “accountId”: int?,

                                }], // Thông tin thanh toán

                “invoiceOrderSurcharges” :[{

                                                “id”: long, 

                                                “invoiceId”: long?,

                                                “surchargeId”: int?, 

                                                “name”: string,

                                                “value”: decimal,

                                                “price”: decimal,

                                                “createdDate”: datetime,

                                }], // Thông tin thu khác

   }]

                “invoiceDetails” :[{

                                                “productId”: long, 

                                                “productCode”: string,

                                                “productName”: string, 

                                                “quantity”: float?,

                                                “price”: decimal?,

                                                “discountRatio”: float?,

                                                “discount”: decimal?,

                                                “note”: string,

                                }], // Chi tiết hóa đơn

   }]

                “saleChannels” :[{

                                                “id”: int, 

                                                “name”: string,

                                                “isNotDelete”: bool?, 

                                                “retailerId”: int?,

                                                “position”: int?,

                                                “isActive”: bool?,

                                                “createdBy”: long?,

                                                “createdDate”: datetime?,

                                }], // Thông tin kênh bán

   }]

}                

 

 

7. Khách hàng

7.1. Lấy danh sách khách hàng

- Mục đích sử dụng: Trả về danh sách khách hàng

- Phương thức và URL: GET http://api-integration-booking.kiotviet.vn/public/customer

- Request: Sử dụng hàm GET với tham số:

  • “id”: long, optional // Id của khách hàng
  • “code”: string, optional // Mã của khách hàng

- Response: 

{

 

“total”: int, tổng 

“pageSize”: int, bao nhiêu dòng / 1 trang dữ liệu

“data”: [{

                “id”: long // id khách hàng

                “code”: string // Mã khách hàng

                “name”: datetime// Tên khách hàng

                “gender”: Boolean?// Giới tính

                “birthDate”: datetime?, // Ngày sinh

                “contactNumber”: string// Số điện thoại 

                “address”: string// Địa chỉ

                “locationName”: string, // Khu vực

                “wardName”: string, // Phường xã

                “email”: string// Email khách hàng 

                “organization”: string// Công ty

                “comments”: string// Ghi chú

                “taxCode”: string// Mã số thuế

                “debt”: decimal, // Nợ hiện tại

                “totalInvoceid”: decimal?// Tổng bán

                “totalPoint”: double?// Tổng điểm

                “retailerId”: long?, // Id cửa hàng

                “createdDate”: datetime, // Ngày tạo

                “modifiedDate”: datetime, // Ngày cập nhật

                “rewardPoint”: long?// Điểm hiện tại

                “customerGroups” :[{

                                                “id”: long, 

                                                “name”: string,

                                                “createdDate”: datetime, 

                                }], // Thông tin nhóm khách hàng

}                

 

 

7.2. Lấy chi tiết khách hàng

- Mục đích sử dụng: Trả về chi tiết khách hàng

- Phương thức và URL: 

- Request: Sử dụng hàm GET với tham số:

  • “code”: string, optional // Lấy theo mã khách hàng
  • “name”: string, optional // Theo tên khách hàng
  • “contactNumber”: string, optional // Theo số điện thoại của khách hàng
  • “includeCustomerGroup”: boolean?, optional // Lấy thông tin nhóm khách hàng hay không
  • “birthDate”: datetime?, optional // Theo ngày sinh
  • “groupId”: long?, optional // Theo nhóm khách hàng
  • “lastModifiedFrom”: datetime, optional // Thời gian cập nhật
  • “currentItem”: int?,
  • “pageSize”: int?, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

- Response:

{

 

“total”: int, tổng 

“pageSize”: int, bao nhiêu dòng / 1 trang dữ liệu

“data”: [{

                “id”: long // id hóa đơn

                “code”: string // Mã hóa đơn

                “name”: datetime// Ngày hóa đơn 

                “gender”: Boolean?// Giới tính

                “birthDate”: datetime?, // Ngày sinh

                “contactNumber”: string// Số điện thoại 

                “address”: string// Địa chỉ

                “locationName”: string, // Khu vực

                “wardName”: string, // Phường xã

                “email”: string// Email khách hàng 

                “organization”: string// Công ty

                “comments”: string// Ghi chú

                “taxCode”: string// Mã số thuế

                “debt”: decimal, // Nợ hiện tại

                “totalInvoceid”: decimal?// Tổng bán

                “totalPoint”: double?// Tổng điểm

                “retailerId”: long?, // Id cửa hàng

                “createdDate”: datetime, // Ngày tạo

                “modifiedDate”: datetime, // Ngày cập nhật

                “rewardPoint”: long?// Điểm hiện tại

                “customerGroups” :[{

                                                “id”: long, 

                                                “name”: string,

                                                “createdDate”: datetime, 

                                }], // Thông tin nhóm khách hàng

}                

 

 

Như vậy, KiotViet đã thực hiện xong phần hướng dẫn sử dụng Public API.

Mọi thắc mắc xin liên hệ tổng đài tư vấn bán hàng 1800 6162, tổng đài hỗ trợ phần mềm 1900 6522 hoặc email cho chúng tôi tại địa chỉ: hotro@kiotviet.com để được hỗ trợ và giải đáp.

Chúc Quý khách thành công!

Tài liệu được cập nhật mới nhất ngày 25/01/2024

KiotViet - Phần mềm quản lý bán hàng phổ biến nhất

  • Với 300.000 nhà kinh doanh sử dụng
  • Chỉ từ: 6.000đ/ ngày

Hãy để KiotViet đồng hành kinh doanh cùng bạn

Hotline

Tư vấn bán hàng: 1800 6162 Chăm sóc khách hàng: 1900 6522 Hoạt động 365 ngày/năm từ 7:00 đến 22:00 kể cả ngày nghỉ, lễ tết.

KiotViet Fanpage

Luôn trả lời các thông tin nhanh nhất thông qua các phản hồi trên Facebook.

Kênh hỗ trợ Youtube

Luôn cập nhật các kiến thức sử dụng phần mềm tức thời, trực quan giúp người dùng sử dụng được KiotViet dễ dàng và hiệu quả nhất.

Chat trên web & mobile

Luôn có người trực chat để trả lời câu hỏi của các bạn nhanh và hiệu quả nhất suốt 365 ngày/năm.