0

Hướng dẫn lấy thông tin đơn hàng Shopee về n8n/AnyCross

Share

Thông qua Shopee Open Platform bạn sẽ có thể theo dõi liên tục tình trạng đơn hàng, lưu trữ các dữ liệu cần thiết để quản lý vận hành và phân tích chuyên sâu. Với bài hướng dẫn này, bạn sẽ nắm được cách lấy dữ liệu từ Shopee về n8n hay AnyCross một cách nhanh chóng nhất, từ đó mở rộng ra cho các bài toán kinh doanh khác của mình, ví dụ: đẩy data về Lark Base, Database, Data Warehouse …

Shopee Open Platform có 2 cơ chế:

  • Push event (đẩy các sự kiện): Shopee chủ động gửi dữ liệu như khi có đơn hàng mới, thay đổi trạng thái đơn hàng, giao vận, có hàng hoàn…
  • Rest API: bạn chủ động gọi API tới Shopee với các thông số cần thiết (ví dụ mã đơn hàng) để lấy các thông tin chi tiết

Lấy các sự kiện Shopee vào Webhook

Webhook là một địa chỉ web nhân dữ liệu thông qua phương thức HTTP Post. Webhook sẽ liên tục lắng nghe các tín hiệu hợp lệ từ các web khác đẩy đến.

Đầu tiên bạn cần có tài khoản tại https://open.shopee.com, tạo 1 app và đăng kí publish app thành công. Cài đặt push event trên Shopee Open Platform có giao diện như sau:

Như vậy ở đây bạn cần 1 webhook và điền vào ô Live Call Back Url, bật các event mà bạn muốn nhận. Bạn có thể tạo webhook ở trong n8n, AnyCross:

Khi Shopee push event đến, thì dữ liệu bạn được sẽ ở phần body. Từ dữ liệu Json này bạn có thể xử lý tiếp để sử dụng cho mục đích riêng. Ví dụ lấy ordersn (mã đơn hàng) để gọi API lấy thông tin chi tiết của đơn hàng, mình sẽ hướng dẫn tiếp phần này ngay sau đây.

Thực hiện gọi Shopee API

Phần này sẽ phức tạp hơn một chút. Vì đây là bạn truy cập vào dữ liệu, mà muốn truy cập được thì bạn phải có quyền của người sở hữu dữ liệu đó – admin của shop. Sau khi có quyền truy cập thì bạn sẽ lấy được access_token để thực hiện API call. Cách lấy access_token mình đã viết ở bài này.

Danh sách các Shopee API được liệt kê kèm hướng dẫn rất đầy đủ ở đây. Ví dụ bạn cần lấy thông tin chi tiết của đơn hàng thì vào xem phần này. Với 1 API có các phần sau:

  • path: là 1 tham số để để tạo sign, chú ý phương thức là GET hay POST để lúc gọi cũng set cho đúng
  • các tham số bắt buộc: đưa vào url lúc gọi API và tạo sign
  • sign: là chữ kí được mã hóa từ các tham số mà phần mô tả liệt kê

Để tạo được sign, các bạn chạy node Code python trong n8n với đoạn mã như bên dưới (AnyCross dùng Javasript nên mình sẽ bổ sung sau). Thay các tham số partner_id, partner_key, access_token, shope_id của bạn và path api cần gọi.

import time
import hmac
import hashlib

partner_id = " "
path = "/api/v2/order/get_order_detail"
timest = int(time.time())
access_token = " "
shop_id = " "
tmp_partner_key = " "
 
tmp_base_string = "%s%s%s%s%s" % (partner_id, path, timest, access_token, shop_id)
base_string = tmp_base_string.encode()
partner_key = tmp_partner_key.encode()

sign = hmac.new(partner_key, base_string, hashlib.sha256).hexdigest()

output = [{'timestamp': timest, 'sign': sign, 'access_token': access_token}]

return output

Kết quả ví dụ:

Bạn sử dụng kết quả từ node này đưa vào node HTTP Request. Điền các tham số theo đúng yêu cầu. Với phương thức GET, toàn bộ tham số sẽ điền ở url với định dạng:

https://partner.shopeemobile.com/<path>?<tham-so-1>?<tham-so-2>?<tham-so-3>?<tham-so-n>

Ví dụ:

https://partner.shopeemobile.com/api/v2/order/get_order_detail?partner_id=12345&timestamp={{ $('sign_order_detail').item.json["timestamp"] }}&access_token={{ $('sign_order_detail').item.json["access_token"] }}&shop_id=456789&sign={{ $('sign_order_detail').item.json["sign"] }}&order_sn_list={{ $('Webhook').item.json["data"]["record"]["fields"]["order_sn"] }}&response_optional_fields=buyer_user_id,buyer_username,recipient_address,item_list,shipping_carrier,payment_method,total_amount

Ra được kết quả như này là chúc mừng bạn nhé 

Từ ví dụ này, bạn thể lấy được các dữ liệu mà Shopee có cung cấp API một cách tự động. Việc lấy được dữ liệu là rất quan trọng để có thể làm nhiều thứ hay ho phía sau.

Tuy nhiên sẽ cần phải có những bước trung gian để xử lý những data thô này cho sạch sẽ, hẹn các bạn các bài tới nhé, bye!

Nguồn: Duy VB. Xem bài viết gốc trong nhóm. Bài viết gốc trên blog cá nhân của Duy xem tại đây


Đăng ký nhận thông báo qua email khi có bài viết mới tại đây

Bạn có thể xem thêm các bài viết về Facebook Ads tại đây

TikTok Ads tại đây

Khóa học về tối ưu quảng cáo tại đây ( nội dung có tính chuyên môn cao, tư duy cao có thể không thích hợp với một số người, nên cân nhắc trước khi xem )