Bả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
Danh bạ gom góp qua nhiều năm từ cửa hàng, CRM và bảng tính rốt cuộc có cùng một người ba lần, số điện thoại viết năm kiểu và email lẫn khoảng trắng hay gõ sai. Script Python này làm sạch danh bạ của chính bạn ngay trên máy tính: cắt khoảng trắng, sửa chữ hoa, viết số điện thoại cùng một định dạng, đánh dấu email sai dạng và tìm bản trùng theo email hoặc số điện thoại, rồi lưu một file sạch và một file riêng chứa những gì đã loại bỏ để bạn kiểm tra. Gửi cho chúng tôi vài dòng với tên, số điện thoại và email giả trông giống dữ liệu của bạn, kèm quy tắc của bạn. Danh bạ không bao giờ đến tay chúng tôi, và script không bao giờ gửi gì đi đâu. Script kiểm tra dạng viết của địa chỉ, không kiểm tra hộp thư có tồn tại hay không.
Bao gồm những gì
- Bạn nhận được gìFile ZIP gồm script Python, README hướng dẫn từng bước và, từ gói Tiêu chuẩn, file cài đặt chứa quy tắc làm sạch của bạn; code cũng được hiển thị trên trang đơn hàng.
- Tìm bản trùngTheo email, theo số điện thoại hoặc cả hai
- Một định dạng số điện thoạiKèm mã quốc gia bạn đặt cho số chưa có mã
- Giữ lại dòng đã loạiMột file riêng chứa mọi dòng đã loại hoặc đã gộp
- Nằm trên máy tính của bạnDanh bạ không bao giờ bị tải lên hay gửi đi
- Code dễ đọcCó chú thích, dễ đổi quy tắc về sau
Cách hoạt động
- 1Quy địnhBạn gửi dòng mẫu dữ liệu giả và quy tắc xác định bản trùng
- 2CodeChúng tôi viết script và hướng dẫn chạy
- 3Chạy thửBạn chạy trên bản sao danh bạ và xem qua các dòng đã loại
- 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
Tên các cột trong danh bạ và 10-20 dòng với tên, số điện thoại và email giả, viết đúng kiểu như trong dữ liệu thật của bạn (cùng những kiểu lộn xộn). Quy tắc của bạn: thế nào là bản trùng, giữ dòng nào (mới nhất, đầy đủ nhất), mã quốc gia cho số điện thoại trong nước và cách viết số điện thoại. CSV hay Excel, và hệ điều hành của bạn: Windows, macOS hoặc Linux. Đừng bao giờ gửi danh bạ thật.
Chúng tôi sẽ hỏi bạn:
- Danh bạ lấy từ đâu?
- Thế nào là bản trùng?
- Giữ lại dòng nào?
- Số điện thoại nên viết thế nào?
So sánh các gói
| Các gói | Cơ bảnLàm sạch cơ bản434.000 ₫ | Tiêu chuẩnLàm sạch theo quy tắc894.000 ₫ | Cao cấpCông cụ làm sạch1.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ữ | Python | Python | Python |
| Đặ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
Script có cho tôi biết email nào đã chết không?
Không. Script kiểm tra địa chỉ có viết đúng không (một dấu @, có tên miền, không khoảng trắng) và đánh dấu lỗi gõ phổ biến ở tên miền. Hộp thư có tồn tại hay không thì chỉ dịch vụ email biết, và việc kiểm tra đó không nằm trong dịch vụ này.
Script có nhận ra Nguyễn Văn An và N. V. An là một người không?
Ở gói Cao cấp, script đánh dấu những bản gần trùng như vậy để bạn quyết định, thay vì tự gộp, vì chỉ dựa vào tên thì không đáng tin. Bản trùng chính xác theo email hoặc số điện thoại được gộp theo quy tắc của bạn.
Danh bạ của tôi có an toàn không?
Danh bạ không bao giờ rời khỏi máy tính của bạn: bạn tự chạy script, code không có kết nối internet, và chúng tôi chỉ thấy những dòng giả bạn gửi. Hãy giữ danh bạ và bản sạch của nó an toàn như trước.
Script có thêm liên hệ hay tìm email còn thiếu được không?
Không. Script chỉ làm gọn những liên hệ bạn đã có. Script không tra cứu ai và không thu thập dữ liệu mới.
Chưa tìm thấy câu trả lời?