Để nâng cao ứng dụng Google Apps Script cho việc bán hàng, bạn có thể xây dựng một hệ thống quản lý bán hàng đơn giản, kết nối với Google Sheets để theo dõi các đơn hàng, sản phẩm, doanh thu và khách hàng. Dưới đây là một ví dụ về cách bạn có thể mở rộng và phát triển một ứng dụng bán hàng hoàn chỉnh.
Tính Năng Cần Thêm:
- Quản lý Sản phẩm: Liệt kê các sản phẩm bán, giá cả và số lượng có sẵn.
- Quản lý Đơn hàng: Cho phép người dùng tạo đơn hàng, lưu thông tin khách hàng và các sản phẩm đã mua.
- Tính toán Tổng tiền và Doanh thu: Tính tổng tiền của đơn hàng và cập nhật doanh thu cho cửa hàng.
- Xem báo cáo: Hiển thị báo cáo doanh thu, số lượng đơn hàng.
Mô Hình Cơ Bản
Chúng ta sẽ sử dụng Google Sheets để lưu trữ dữ liệu sản phẩm và đơn hàng, và Google Apps Script sẽ giúp chúng ta xử lý các thao tác trên dữ liệu này và tạo giao diện người dùng trên web.
1. Cấu trúc Google Sheets
Chúng ta sẽ cần ít nhất 2 bảng tính trong Google Sheets:
- Sản phẩm (Products): Lưu thông tin sản phẩm (tên sản phẩm, giá bán, số lượng còn lại).
- Đơn hàng (Orders): Lưu thông tin về các đơn hàng, khách hàng và sản phẩm đã mua.
Bảng Sản phẩm (Products):
| Mã sản phẩm | Tên sản phẩm | Giá bán | Số lượng tồn |
|---|---|---|---|
| P001 | Laptop | 10000000 | 50 |
| P002 | Điện thoại | 7000000 | 100 |
| P003 | Tai nghe | 500000 | 200 |
Bảng Đơn hàng (Orders):
| Mã đơn hàng | Tên khách hàng | Sản phẩm mua | Số lượng | Tổng tiền | Ngày đặt |
|---|---|---|---|---|---|
| O001 | Nguyễn Văn A | Laptop, Điện thoại | 2 | 17000000 | 2024-11-01 |
| O002 | Trần Thị B | Tai nghe | 1 | 500000 | 2024-11-02 |
2. Viết Script cho Quản lý Sản phẩm và Đơn hàng
Apps Script sẽ giúp bạn thao tác trên các bảng tính này. Dưới đây là các hàm cơ bản để thực hiện các chức năng này.
a. Lấy danh sách sản phẩm
// Lấy danh sách sản phẩm từ Google Sheets
function getProductList() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Products");
const data = sheet.getDataRange().getValues();
return data.slice(1); // Bỏ qua header
}
b. Thêm đơn hàng mới
// Hàm để thêm đơn hàng mới
function addOrder(customerName, products, quantities) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Orders");
const productList = getProductList();
let totalAmount = 0;
let orderedProducts = [];
// Kiểm tra và tính tổng tiền của đơn hàng
products.forEach((product, index) => {
const productInfo = productList.find(p => p[1] === product); // Tìm sản phẩm theo tên
if (productInfo) {
const price = productInfo[2]; // Lấy giá bán
const stock = productInfo[3]; // Lấy số lượng tồn
const quantity = quantities[index];
// Kiểm tra số lượng tồn kho
if (quantity <= stock) {
totalAmount += price * quantity;
orderedProducts.push(`${product} (x${quantity})`);
// Cập nhật lại số lượng tồn kho
productInfo[3] -= quantity; // Giảm số lượng tồn kho
sheet.getRange(productInfo.row, 4).setValue(productInfo[3]); // Cập nhật vào Google Sheets
}
}
});
// Thêm đơn hàng mới vào bảng Orders
sheet.appendRow([`O${sheet.getLastRow() + 1}`, customerName, orderedProducts.join(", "), totalAmount, new Date()]);
return totalAmount;
}
c. Lấy tất cả đơn hàng và tổng doanh thu
// Lấy danh sách đơn hàng
function getOrderList() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Orders");
const data = sheet.getDataRange().getValues();
return data.slice(1); // Bỏ qua header
}
// Tính tổng doanh thu
function calculateRevenue() {
const orders = getOrderList();
let totalRevenue = 0;
orders.forEach(order => {
totalRevenue += order[4]; // Cộng tổng tiền
});
return totalRevenue;
}
3. Giao Diện Web (HTML)
Để tạo giao diện người dùng cho việc quản lý bán hàng, bạn sẽ tạo một file HTML và hiển thị thông tin từ Google Sheets. Đây là ví dụ về một giao diện đơn giản cho phép người dùng thêm đơn hàng.
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<style>
body {
font-family: Arial, sans-serif;
}
table {
width: 100%;
border-collapse: collapse;
}
table, th, td {
border: 1px solid black;
}
th, td {
padding: 8px;
text-align: left;
}
</style>
</head>
<body>
<h1>Quản lý Bán hàng</h1>
<!-- Form để tạo đơn hàng -->
<h2>Tạo Đơn Hàng</h2>
<form id="order-form">
<label for="customerName">Tên khách hàng:</label><br>
<input type="text" id="customerName" name="customerName"><br><br>
<label for="products">Sản phẩm (cách nhau bởi dấu phẩy):</label><br>
<input type="text" id="products" name="products"><br><br>
<label for="quantities">Số lượng (cách nhau bởi dấu phẩy):</label><br>
<input type="text" id="quantities" name="quantities"><br><br>
<input type="submit" value="Tạo Đơn Hàng">
</form>
<h2>Danh sách Đơn Hàng</h2>
<table id="orders-table">
<tr>
<th>Mã Đơn</th>
<th>Tên Khách Hàng</th>
<th>Sản phẩm</th>
<th>Tổng Tiền</th>
<th>Ngày Đặt</th>
</tr>
</table>
<script>
// Hiển thị các đơn hàng đã tạo
function loadOrders() {
google.script.run.withSuccessHandler(displayOrders).getOrderList();
}
// Hiển thị dữ liệu đơn hàng
function displayOrders(data) {
const table = document.getElementById('orders-table');
data.forEach(order => {
let tr = document.createElement('tr');
order.forEach(cell => {
let td = document.createElement('td');
td.textContent = cell;
tr.appendChild(td);
});
table.appendChild(tr);
});
}
// Xử lý form để tạo đơn hàng
document.getElementById('order-form').addEventListener('submit', function(e) {
e.preventDefault();
const customerName = document.getElementById('customerName').value;
const products = document.getElementById('products').value.split(",");
const quantities = document.getElementById('quantities').value.split(",").map(Number);
google.script.run.withSuccessHandler(function(totalAmount) {
alert('Đơn hàng đã được tạo với tổng tiền: ' + totalAmount);
loadOrders(); // Tải lại danh sách đơn hàng
}).addOrder(customerName, products, quantities);
});
// Tải danh sách đơn hàng khi trang web được tải
window.onload = loadOrders;
</script>
</body>
</html>
4. Triển Khai Ứng Dụng Web
- Triển khai ứng dụng web như đã hướng dẫn ở phần trước.
- Truy cập URL của ứng dụng và bắt đầu sử dụng.
Kết luận:
Với các chức năng trên, bạn đã có thể xây dựng một hệ thống quản lý bán hàng cơ bản với Google Sheets và Google Apps Script. Bạn có thể dễ dàng mở rộng các tính năng này, ví dụ như thêm báo cáo thống kê, tính toán chiết khấu, hoặc quản lý nhiều chi nhánh.
Gợi ý: a. Thêm tính năng cập nhật thông tin sản phẩm khi có thay đổi về giá hoặc số lượng
. b. Tối ưu hóa giao diện người dùng, chẳng hạn như thêm chức năng tìm kiếm và lọc đơn hàng.
0 Reviews
Your rating