Google Sheets Kết Nối Shopee API: Cập Nhật Đơn Hàng Tự Động
Shopee API Là Gì?
Shopee API (tên đầy đủ: Shopee Open API) là bộ giao diện lập trình do Shopee Open Platform cung cấp, cho phép phần mềm bên ngoài đọc và ghi dữ liệu của shop một cách tự động — thay vì phải thao tác tay trong Seller Center. Qua API, bạn lấy được danh sách đơn hàng, chi tiết từng đơn, thông tin sản phẩm, và cập nhật ngược lại tồn kho hoặc giá bán.
Về bản chất, mỗi lần gọi API là một request HTTP kèm chữ ký (signature) được tạo từ partner_id, partner_key, đường dẫn API và timestamp. Shopee dùng chữ ký này để xác thực request đến từ ứng dụng đã đăng ký — nên bạn không đưa mật khẩu tài khoản người bán vào bất kỳ đoạn code nào.
Ba thứ cần phân biệt khi mới bắt đầu
- App — ứng dụng bạn tạo trên Shopee Open Platform, nơi sinh ra
partner_idvàpartner_key. - Shop authorization — bước chủ shop bấm đồng ý cho app truy cập shop của mình, kết quả trả về
shop_idvà mã ủy quyền. - Access token — mã có hạn dùng để gọi API hằng ngày, được đổi ra từ mã ủy quyền và phải làm mới định kỳ.
Shopee API dùng để làm gì trong thực tế?
- Kéo đơn hàng mới về Google Sheets để tổng hợp doanh thu mà không cần tải file thủ công.
- Đồng bộ tồn kho giữa Shopee và hệ thống quản lý kho nội bộ, tránh bán vượt số lượng thực có.
- Dựng báo cáo tự cập nhật: doanh thu theo ngày, sản phẩm bán chạy, tỉ lệ đơn hủy.
Phần còn lại của bài hướng dẫn cách gọi Shopee API trực tiếp từ Google Sheets bằng Apps Script — không cần server riêng, không cần cài thêm phần mềm. Nếu bạn muốn xem trước cách một hệ thống bán hàng tổng hợp dữ liệu nhiều nguồn, tham khảo Google Sheets quản lý bán hàng tự động và mẫu báo cáo bán hàng chuẩn.
Tại Sao Cần Kết Nối Shopee API?
Quản lý shop Shopee thủ công mất rất nhiều thời gian: copy đơn hàng từ Shopee vào bảng tính, cập nhật tồn kho, theo dõi doanh thu từng ngày. Shopee Open API cho phép lấy dữ liệu này tự động, kết hợp với Google Apps Script để đổ vào Google Sheets.
Điều Kiện Cần Có
- Shop Shopee có đăng ký Shopee Open Platform (miễn phí)
- App ID và App Secret từ Shopee Partner Portal
- Access Token của shop (lấy qua OAuth flow)
Lấy Access Token Shopee
// Bước 1: Tạo URL authorization
function getShopeeAuthUrl() {
const APP_ID = PropertiesService.getScriptProperties().getProperty('SHOPEE_APP_ID');
const redirectUri = encodeURIComponent('https://your-redirect-url.com/callback');
const timestamp = Math.floor(Date.now() / 1000);
return `https://partner.shopeemobile.com/api/v2/shop/auth_partner`
+ `?id=${APP_ID}×tamp=${timestamp}&redirect_url=${redirectUri}`;
}
// Bước 2: Sau khi user authorize, lấy access token
function getAccessToken(code, shopId) {
const APP_ID = PropertiesService.getScriptProperties().getProperty('SHOPEE_APP_ID');
const APP_SECRET = PropertiesService.getScriptProperties().getProperty('SHOPEE_APP_SECRET');
const timestamp = Math.floor(Date.now() / 1000);
const path = '/api/v2/auth/token/get';
const sign = generateSign(APP_ID, APP_SECRET, path, timestamp);
const payload = { code, shop_id: parseInt(shopId), partner_id: parseInt(APP_ID) };
const response = UrlFetchApp.fetch(
`https://partner.shopeemobile.com${path}?id=${APP_ID}×tamp=${timestamp}&sign=${sign}`,
{
method: 'POST',
contentType: 'application/json',
payload: JSON.stringify(payload)
}
);
return JSON.parse(response.getContentText());
}
Fetch Đơn Hàng Từ Shopee
function fetchShopeeOrders() {
const APP_ID = PropertiesService.getScriptProperties().getProperty('SHOPEE_APP_ID');
const APP_SECRET = PropertiesService.getScriptProperties().getProperty('SHOPEE_APP_SECRET');
const ACCESS_TOKEN = PropertiesService.getScriptProperties().getProperty('SHOPEE_ACCESS_TOKEN');
const SHOP_ID = PropertiesService.getScriptProperties().getProperty('SHOPEE_SHOP_ID');
const timestamp = Math.floor(Date.now() / 1000);
const path = '/api/v2/order/get_order_list';
const sign = generateSign(APP_ID, APP_SECRET, path, timestamp, ACCESS_TOKEN, SHOP_ID);
// Lấy đơn hàng 7 ngày gần nhất
const timeFrom = timestamp - 7 * 24 * 60 * 60;
const url = `https://partner.shopeemobile.com${path}`
+ `?access_token=${ACCESS_TOKEN}`
+ `&partner_id=${APP_ID}`
+ `&shop_id=${SHOP_ID}`
+ `×tamp=${timestamp}`
+ `&sign=${sign}`
+ `&time_range_field=create_time`
+ `&time_from=${timeFrom}`
+ `&time_to=${timestamp}`
+ `&page_size=100`;
const response = JSON.parse(UrlFetchApp.fetch(url).getContentText());
if (response.error) {
throw new Error(`Shopee API error: ${response.message}`);
}
return response.response.order_list;
}
function syncOrdersToSheets() {
const orders = fetchShopeeOrders();
const sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName('DonHangShopee');
orders.forEach(order => {
// Kiểm tra đơn hàng đã tồn tại chưa (upsert by order_sn)
const existingRow = findRowByOrderSn(sheet, order.order_sn);
const rowData = [
order.order_sn,
new Date(order.create_time * 1000),
order.order_status,
order.total_amount / 100000, // Shopee trả về đơn vị xu
order.buyer_username,
order.shipping_carrier,
order.item_list?.map(i => i.item_name).join(', ') || ''
];
if (existingRow > 0) {
sheet.getRange(existingRow, 1, 1, rowData.length).setValues([rowData]);
} else {
sheet.appendRow(rowData);
}
});
console.log(`Synced ${orders.length} orders from Shopee`);
}
Dashboard Doanh Thu Shopee
Sau khi sync dữ liệu, tạo báo cáo tự động:
// Doanh thu theo ngày
=SUMIFS(DonHangShopee!D:D, TEXT(DonHangShopee!B:B,"DD/MM/YYYY"), TEXT(TODAY(),"DD/MM/YYYY"), DonHangShopee!C:C, "COMPLETED")
// Số đơn theo trạng thái
=COUNTIF(DonHangShopee!C:C, "READY_TO_SHIP")
Câu Hỏi Thường Gặp (FAQ)
API Shopee có cần biết lập trình không?
Cần biết cơ bản JavaScript vì Apps Script dùng cú pháp JavaScript để gọi request và xử lý dữ liệu trả về. Nếu không rành lập trình, có thể dùng phần mềm quản lý bán hàng đã tích hợp sẵn kết nối Shopee thay vì tự viết code từ đầu.
Shopee API có miễn phí không?
Shopee Open Platform và API call cơ bản miễn phí cho seller. Chỉ cần đăng ký tài khoản Partner và tạo ứng dụng trên Shopee Partner Portal.
Access token hết hạn sau bao lâu?
Access token Shopee hết hạn sau 4 giờ. Cần dùng Refresh Token (hạn 30 ngày) để lấy token mới. Script nên tự động refresh token trước khi gọi API.
Có thể cập nhật tồn kho ngược lại từ Google Sheets lên Shopee không?
Có. Dùng Shopee API endpoint product.update_stock để cập nhật số lượng tồn kho. Tuy nhiên cần cẩn thận vì sai sót có thể gây oversell.
💡 Giải pháp sẵn có cho bạn
Không muốn tự làm? Dùng ngay Phần Mềm Quản Lý Bán Hàng bằng Google Sheet — đầy đủ tính năng, cài đặt nhanh.
Xem sản phẩm →📚 Bài Viết Liên Quan
Bài viết liên quan
- Google Sheets + Zalo OA: Tự Động Gửi Tin Nhắn Khách Hàng 2027
- Webhook Google Sheets: Nhận Dữ Liệu Từ Form, Zalo OA, Facebook
- Tạo Chatbot Telegram Đọc/Ghi Dữ Liệu Google Sheets Bằng Apps Script
- Google Sheets API: Hướng Dẫn Kết Nối & Tích Hợp Cho Developer Việt 2027
- Huong Dan Nhap Lieu Hang Loat Vao Google Sheets: Import CSV, Excel va API 2027
Bán hàng trên nhiều sàn TMĐT cùng lúc? Xem thêm phần mềm quản lý bán hàng đa kênh để đồng bộ đơn hàng và tồn kho hiệu quả.
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.