token=DoEncode("shop_id=SHOP_ID&code=MA_DON&status=TRANG_THAI_DON")
Mỗi Shop ~ 1 website bán hàng.
B1. Đăng ký shop : đăng nhập: https://salekit.vn sẽ được chuyển tới trang TẠO SHOP mới
B2. Tạo danh mục và sản phẩm. Nếu website của bạn có nhiều sản phẩm, hoặc thông tin sản phẩm được cập nhật thường xuyên thì bạn sử dụng API để đồng bộ sản phẩm sang SaleMall.
B3. Ký hợp đồng : SaleMall sẽ liên hệ với shop, thống nhất tỷ lệ hoa hồng và ký hợp đồng.
B4. Kết nối hệ thống
Áp dụng với các shop có nhiều sản phẩm, hoặc thông tin sản phẩm thường xuyên thay đổi.
Merchant gọi chuyển thông tin sản phẩm sang SaleMall theo API với link như sau (giao thức POST)
https://server.salemall.vn/api/product
Truyền sang danh sách thông tin các sản phẩm cần đồng bộ theo cấu trúc như sau
shop_id=&token=&items=[JSON]
shop_id: ID của shop được tạo bên SaleMall
token là chuỗi bảo mật được sinh ra như sau : token = DoEncode("shop_id="), trong đó hàm DoEncode được mô tả ở Phụ lục 1a bên dưới, truyền vào chuỗi mã hóa được thiết lập theo ID của Shop
JSON là chuỗi thông tin các sản phẩm cần đồng bộ; Cấu trúc thông tin mỗi sản phẩm như ví dụ sau:
{" item_code":"B01","item_name":"Product name1","item_description":"Product desc1",
"item_price":50000,"item_price_sale":40000,"item_weight":200,"item_url":"http://lazada.vn/prd/1","item_aff_rate":15, "image_url":":"http://lazada.vn/prd/1","}
Chi tiết các tham số trong thông tin sản phẩm đề cập ở Phụ lục 2a bên dưới
Trong quá trình đồng bộ thông tin
Các tham số trong link bán hàng cần phải được lưu vào cookie trên trình duyệt của khách hàng :
Ví dụ: http://yourdomain.com/product/a-b-c?ref=salemall&link_id=123
Khi user tạo đơn hàng, merchant tạo đơn và gửi thông tin sang cho SaleMall theo 1 trong 2 cách như sau
Chi tiết các tham số trong thông tin đơn hàng, sản phẩm của đơn hàng được đề cập ở Phụ lục 2b
Merchant nhúng mã sau vào trang web tạo đơn thành công
Merchant đặt giá trị vào biến smOrderSync theo các tham số như sau:
smOrderSync=”type=create&shop_id=xxx&link_id=mmm&code=yyy&status=nnn&contact_code=….
&contact_name=…..&contact_email=…..&contact_mobile=…..&token=token&items=[JSON]”
JSON là chuỗi thông tin các sản phẩm trong đơn hàng; Cấu trúc thông tin mỗi sản phẩm như ví dụ sau:
{"item_cat_id":1,"item_code":68,"item_name":"Tên sản phẩm","item_quantity":3,item_price":9000,
"revenue":10000,"comm”:20000}
Merchant website sẽ gọi API với link như bên dưới qua phương thức POST
https://server.salemall.vn/api/order
Truyền sang mảng dữ liệu được khởi tạo từ các thông tin liên quan đến đơn hàng theo cấu trúc sau
type=create&shop_id=xx&link_id=mm&code=yy&status=S&contact_code=….&contact_name=…..
&contact_email=…..&contact_mobile=…..&token=token&items=[JSON]
JSON là chuỗi thông tin các sản phẩm trong đơn hàng truyền sang theo cấu trúc như trong phần 3.1
Merchant website sẽ gọi API với link như bên dưới qua phương thức POST
https://server.salemall.vn/api/order
Truyền sang mảng dữ liệu được khởi tạo từ các thông tin liên quan đến đơn hàng theo cấu trúc sau
type=&shop_id=xx&code=yy&status=ss&contact_code=….&contact_name=…..
&contact_email=…..&contact_mobile=…..&token=token&items=[JSON]
JSON là chuỗi thông tin các sản phẩm trong đơn hàng theo cấu trúc giống lúc Tạo đơn hàng
Các thông tin về khách hàng (contact) và/hoặc sản phẩm (JSON) chỉ cần truyền sang SaleMall nếu có thay đổi
Phần này do đầu mối kỹ thuật của SaleMall và Merchant sẽ làm việc cùng với nhau, đảm bảo :
Sau khi trạng thái đơn hàng được chuyển sang Đơn hàng Thành công thì Merchant không cập nhập được thông tin đơn hàng này bên SaleMall nữa
Merchant truyền theo chuỗi mã hóa token dùng các hàm thư viện mã hóa do SaleMall cung cấp như sau
Code mã hóa tham khảo (mã hóa chuỗi INPUT, sử dụng chuỗi strShopKey là mã SaleMall cấp cho shop)
$strInput = INPUT ;
$value = new AES_Encryption($strShopKey, $strShopKey);
$token = urlencode(base64_encode($value->encrypt($strInput)));
$strInput = INPUT ;
$token = URLEncoder.encode(AESEncryption.encrypt( strInput, strShopKey);
Sau gọi API thì SaleMall sẽ trả về một trong các mã như sau
|
Mã trả về |
Mô tả |
|
200 |
Thành công: Trả về order_code vừa tạo thành công |
|
40x |
Có lỗi … (kèm thông báo lỗi tương ứng) |
Các tham số liên quan đến sản phẩm được chuyển sang SaleMall
|
Tên trường |
Kiểu dữ liệu |
Bắt buộc? |
Mô tả |
|
item_code |
String |
Y |
Mã sản phẩm |
|
item_name |
String |
Y |
Tên sản phẩm |
|
Item_cat_id |
String |
N |
ID của danh mục sản phẩm |
|
item_description |
String |
N |
Mô tả sản phẩm |
|
item_price |
Integer |
Y |
Đơn giá gốc sản phẩm |
|
Item_price_sale |
Integer |
Y |
Đơn giá sản phẩm sau khi giảm (giá bán thực tế) |
|
item_weight |
Integer |
N |
Trọng lượng (theo gram) |
|
item_url |
String |
Y |
Link tới trang mô tả chi tiết sản phẩm trong website Merchant |
|
item_aff_rate |
String |
N |
Tỷ lệ hoa hồng chia sẻ cho affiliate (chỉ áp dụng khi hai bên đã thống nhất với nhau và tỷ lệ này lớn hơn tỷ lệ chia sẻ theo shop và theo danh mục) |
|
image_url |
String |
N |
Đường dẫn chi tiết đến file ảnh của sản phẩm |
|
Tên tham số |
Kiểu dữ liệu |
Bắt buộc? |
Mô tả |
|
shop_id |
Integer |
Y |
ID của shop được tạo bên SaleMall |
|
code |
Integer |
Y |
Mã đơn hàng của merchant |
|
items |
String |
Y |
Chuỗi JSON chứa thông tin sản phẩm của đơn hàng: item_cat_id: Mã danh mục của merchant(optional) item_code: Mã sản phẩm item_name: Tên sản phẩm item_price: Đơn giá bán 1 sản phẩm (sau discount) item_quantity: Số lượng sản phẩm trong đơn revenue: Doanh thu các sản phẩm (optional) comm: Tổng hoa hồng chia cho SaleMall comm_aff: Hoa hồng chia cho Affiliate (optional) comm_mgr: Hoa hồng chia cho đại lý mẹ (optional) comm_net: Hoa hồng chia cho network (optional) |
|
status |
Integer |
Y |
Trạng thái đơn hàng · 0: Chờ duyệt, · 1: Đang xử lý · 2: Đang chuyển · 3: Thành công · 4: Hủy đơn |
|
link_id |
Integer |
Y |
Link affiliate lấy từ cookie (ghi nhận thông tin affiliate), lưu ý tên cookie mặc định là link_id, tên này có thể được tùy biến theo thống nhất giữa SaleMall và Merchant (khi tùy biến cần lưu ý cập nhật cả ở phần lưu thông tin cookie) |
|
contact_name |
String(50) |
N |
Tên khách hàng |
|
contact_email |
String(50) |
N |
Email khách hàng |
|
contact_mobile |
String(50) |
N |
Mobile khách hàng |
|
note |
String(255) |
N |
Ghi chú đơn hàng |
|
token |
String |
Y |
token=DoEncode("shop_id=&code=&status=") Trong đó hàm DoEncode được mô tả Phụ lục 1a, truyền vào chuỗi mã hóa được thiết lập theo ShopId, OrderCode và OrderStatus |
Trạng thái mã thông báo trong SaleMall
|
Tham số |
Mô tả |
|
200 |
Cập nhật thành công |
|
401 |
Thiếu tham số Parameter |
|
402 |
Dữ liệu đã tồn tại |
|
403 |
Lỗi |
|
404 |
Không tìm thấy dữ liệu |