Lập trìnhBảo vệ thanh toánChi tiết
- Chỉnh sửa trong phạm vi gói là miễn phí.
- Nếu bạn không phản hồi trong vòng 3 ngày sau khi bàn giao, kết quả sẽ được tự động chấp nhận.
Số tiền được tạm giữ khi bạn thanh toán và chỉ được chuyển khi bạn chấp nhận kết quả.

Ví dụ kết quả
Gộp file doanh số hằng tháng của 9 cửa hàng thành một báo cáo Excel
Cách chạy
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO Thư mục: sales/2026-10, tìm thấy 9 file
2026-11-02 09:14:03 INFO shop-01.csv: 1.284 dòng
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 dòng
2026-11-02 09:14:04 WARN shop-07.csv: bỏ qua 3 dòng không có giá (dòng 88, 412, 913)
2026-11-02 09:14:05 INFO Xong: 10.412 dòng -> report-2026-10.xlsx (sheet “Doanh số” và “Tổng cộng”)
Cài đặt, không phải code
Tên cột của từng cửa hàng nằm trong settings.ini, nên thêm cửa hàng mới hay đổi tên cột chỉ là thêm một dòng ở đó:
[columns]
date = Ngày, Ngày bán, Ngày giao dịch
product = Sản phẩm, Mặt hàng, Tên hàng
quantity = SL, Số lượng, Cái
price = Giá, Đơn giá
Một phần code
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""Đọc file của một cửa hàng và đặt cho các cột tên theo báo cáo."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: không có cột cho “{name}” (đã tìm: {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
File bàn giao: file ZIP gồm merge_sales.py (310 dòng), settings.ini, requirements.txt và README hướng dẫn cài Python, chạy script và ý nghĩa của từng thông báo trong nhật ký. Khách hàng tự chạy script trên máy tính của mình.
Khách hàng: một chuỗi nhỏ gồm 9 cửa hàng văn phòng phẩm; mỗi cửa hàng gửi doanh số của tháng dưới dạng file CSV hoặc Excel, với tên cột hơi khác nhau. Yêu cầu: một script đọc mọi file trong một thư mục, đưa các cột về cùng một dạng và ghi ra một báo cáo Excel duy nhất gồm toàn bộ doanh số và một sheet tổng theo từng cửa hàng.
Khách hàng và mọi thông tin đều là giả định.
Về dịch vụ này
Nếu giá bán, hóa đơn hay báo cáo của bạn phụ thuộc vào tỷ giá, nhập tay mỗi sáng rất dễ quên. Google Apps Script này đọc tỷ giá từ một nguồn công khai bạn chọn, như tỷ giá ngân hàng trung ương công bố hay một dịch vụ tỷ giá mà bạn tự lấy khóa, và ghi các loại tiền bạn cần vào Google Trang tính kèm ngày. Từ gói Tiêu chuẩn, script giữ một tab lịch sử mỗi ngày một dòng, để công thức của bạn tra được tỷ giá của bất kỳ ngày nào; gói Cao cấp thêm nguồn thứ hai nếu nguồn đầu không phản hồi và điền cả các ngày trước đây. Google Trang tính có sẵn hàm GOOGLEFINANCE cho một số loại tiền; script này dành cho khi bạn cần một nguồn cụ thể hoặc lưu lịch sử. Tỷ giá là của nguồn; chúng tôi không đưa ra lời khuyên tài chính.
Bao gồm những gì
- Bạn nhận được gìFile ZIP gồm code Apps Script và README hướng dẫn cách thêm vào bảng tính, cấp quyền truy cập và đặt chạy hằng ngày; code cũng được hiển thị trên trang đơn hàng.
- Nguồn của bạnTỷ giá chính thức hoặc của dịch vụ bạn chọn
- Loại tiền của bạnChỉ những loại bạn cần, so với đồng tiền cơ sở của bạn
- Lịch sử ghi ngàyTừ gói Tiêu chuẩn, mỗi ngày một dòng để tra cứu
- Khóa nằm ngoài codeNếu nguồn yêu cầu khóa, bạn tự điền
- Code dễ đọcCó chú thích, dễ thêm loại tiền về sau
Cách hoạt động
- 1NguồnBạn chọn các loại tiền và nguồn bạn tin cậy
- 2CodeChúng tôi viết script theo tài liệu của nguồn và hướng dẫn cài đặt
- 3Chạy thửBạn chạy trên bản sao bảng tính và đối chiếu với website của nguồn
- 4Chỉnh sửaBạn yêu cầu chỉnh sửa trong phạm vi gói và gửi thông báo lỗi nếu có
Chúng tôi cần gì từ bạn
Các loại tiền bạn cần và đồng tiền cơ sở, nguồn bạn muốn dùng (liên kết tới trang hoặc tài liệu nơi nguồn công bố tỷ giá, hoặc để chúng tôi gợi ý vài nguồn công khai cho bạn chọn), bạn cần tỷ giá bao lâu một lần và lúc mấy giờ, và tỷ giá ghi vào đâu trong bảng tính. Nếu cần các ngày trước đây (gói Cao cấp), từ ngày nào. Nếu nguồn yêu cầu khóa, hãy tự tạo trong tài khoản của bạn; đừng bao giờ gửi khóa cho chúng tôi.
Chúng tôi sẽ hỏi bạn:
- Bạn cần những loại tiền nào?
- Script nên dùng nguồn nào?
- Bao lâu một lần và trước mấy giờ?
- Bạn có cần các ngày trước đây không?
So sánh các gói
| Các gói | Cơ bảnTỷ giá hôm nay434.000 ₫ | Tiêu chuẩnTỷ giá có lịch sử894.000 ₫ | Cao cấpCông cụ tỷ giá1.815.000 ₫ |
|---|---|---|---|
| Thời hạn | 1 ngày | 2 ngày | 3 ngày |
| Số lần chỉnh sửa | 1 | 2 | 3 |
| Code | tối đa 150 dòng | tối đa 400 dòng | tối đa 1.000 dòng |
| Số file code | 1 | tối đa 3 | tối đa 8 |
| File cài đặt | Không | Có | Có |
| Thông báo lỗi rõ ràng và nhật ký | Không | Có | Có |
| Tùy chọn chạy và hướng dẫn chạy theo lịch | Không | Không | Có |
| Hướng dẫn cài đặt và chạy (README) | Có | Có | Có |
| Ngôn ngữ | Google Apps Script | Google Apps Script | Google Apps Script |
| Đặt hàng Cơ bản | Đặt hàng Tiêu chuẩn | Đặt hàng Cao cấp |
Bảo vệ thanh toán
Bạn thanh toán khi đặt hàng, nhưng tiền chỉ được chuyển cho kết quả đã được chấp nhận.
- Giá cố địnhGiá gói không thay đổi sau khi bạn thanh toán.
- Số tiền được tạm giữKhi bạn thanh toán, số tiền chỉ được tạm giữ. Tiền được chuyển cho dịch vụ khi bạn chấp nhận kết quả.
- Kiểm tra trước khi bàn giaoMọi kết quả đều được kiểm tra chất lượng trước khi đến tay bạn, và bạn xem được kết quả trên trang đơn hàng trước khi chấp nhận.
- Chỉnh sửa miễn phíYêu cầu chỉnh sửa trong phạm vi bản yêu cầu của bạn, với số lần mà gói cho phép.
- Tự động chấp nhận sau 3 ngàyNếu trong vòng 3 ngày sau khi bàn giao, bạn không chấp nhận kết quả cũng không yêu cầu chỉnh sửa, kết quả sẽ được tự động chấp nhận. Nếu bạn nhắn tin trong chat đơn hàng sau khi bàn giao, đơn hàng sẽ chờ; sau khi trả lời, chúng tôi có thể tính lại 3 ngày từ đầu và sẽ thông báo trong chat.
- Làm lại hoặc hoàn tiền toàn bộNếu kết quả không đúng với yêu cầu của bạn và các lần chỉnh sửa không khắc phục được, hoặc công việc kéo dài quá gấp đôi thời hạn, hãy nhắn tin trong chat đơn hàng: chúng tôi sẽ làm lại hoặc hoàn tiền toàn bộ.
Hỏi đáp
Tỷ giá có chính xác không?
Đúng y như nguồn bạn chọn công bố. Tỷ giá chính thức thường được đặt một lần mỗi ngày làm việc, và script không thể cập nhật hơn nguồn của nó.
Script có cập nhật mỗi phút để giao dịch được không?
Script dành cho tỷ giá hằng ngày hoặc hằng giờ phục vụ giá bán, hóa đơn và báo cáo, không phải để giao dịch. Chúng tôi không đưa ra lời khuyên tài chính.
Cuối tuần và ngày lễ thì sao?
Nhiều nguồn chính thức không công bố gì vào những ngày đó. Từ gói Tiêu chuẩn, bạn chọn lịch sử lặp lại tỷ giá gần nhất hay để trống ngày đó.
Các bạn có được truy cập bảng tính của tôi không?
Không. Bạn thêm script vào bảng tính của chính mình và tự cấp quyền truy cập. Chúng tôi không bao giờ đăng nhập vào tài khoản Google của bạn.
Chưa tìm thấy câu trả lời?


