Ödeme korumasıAyrıntılar
- Paket kapsamındaki revizyonlar ücretsizdir.
- Teslimattan sonraki 3 gün içinde yanıt vermezseniz iş otomatik olarak onaylanır.
Para, ödeme yaptığınızda bloke edilir ve yalnızca işi onayladığınızda aktarılır.

Örnek sonuç
Merging the monthly sales files of 9 shops into one Excel report
How it is run
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO Folder: sales/2026-10, 9 files found
2026-11-02 09:14:03 INFO shop-01.csv: 1,284 rows
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 rows
2026-11-02 09:14:04 WARN shop-07.csv: 3 rows without a price skipped (lines 88, 412, 913)
2026-11-02 09:14:05 INFO Done: 10,412 rows -> report-2026-10.xlsx (sheets "Sales" and "Totals")
Settings, not code
The column names of each shop live in settings.ini, so a new shop or a renamed column is a line there:
[columns]
date = Date, Sale date, Day
product = Product, Item, Name
quantity = Qty, Quantity, Pcs
price = Price, Unit price
A part of the code
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""Reads one shop's file and gives it the report's column names."""
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}: no column for '{name}' (looked for {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
Files: a ZIP archive with merge_sales.py (310 lines), settings.ini, requirements.txt and a README with installing Python, running the script and what each message in the log means. The client runs it on their own computer.
Client: a small chain of 9 stationery shops; each shop sends its sales for the month as a CSV or Excel file, with slightly different column names. Task: one script that reads every file in a folder, brings the columns to one shape, and writes a single Excel report with all sales and a sheet of totals by shop.
Müşteri ve tüm ayrıntılar kurgusaldır.
Bu hizmet hakkında
Ofiste biri her sabah aynı Excel dosyasını açıp toplamları kopyalıyor ve bir e-postaya yazıyorsa bu Python betiği o kısmı yapabilir. Belirttiğiniz dosyaları, örneğin dünün satış dışa aktarımını ya da ortak bir klasördeki stok tablosunu okur, istediklerinizi hesaplar (toplamlar, sayımlar, mağazaya ya da ürüne göre ortalamalar, bir sınırı aşan satırlar) ve listelediğiniz kişilere kendi posta hesabınızdan düzenli bir tabloyla kısa bir e-posta gönderir; Standart paketten itibaren dosya da eklenir. Posta hesabının gönderim parolasını ayarlara kendiniz girersiniz; asla koda girmez. Alıcılar kendi iş arkadaşlarınız ya da müşterilerinizdir, posta servisinizin gönderim sınırlarının epey altında. Dosyalarınızdaki rakamları bildirir; onları kontrol etmez ya da yorumlamaz.
Neler dahil
- Neler alırsınızPython betiğini, adım adım talimatlar içeren bir README dosyasını ve Standart paketten itibaren dosyaları, alıcıları ve posta ayarlarını içeren bir ayar dosyasını barındıran bir ZIP arşivi; kod sipariş sayfasında da gösterilir.
- Sizin rakamlarınızSeçtiğiniz toplamlar, sayımlar ve ortalamalar
- Okunaklı bir e-postaTelefonda açılan kısa bir tablo
- Sizin posta kutunuzdanKendi posta hesabınız, parola kodun dışında tutulur
- Ekli dosyaStandart paketten itibaren Excel dosyası ya da özeti
- Okunabilir kodYorumlarla; sonradan rakam eklemek kolay
Nasıl çalışır
- 1GörevÖrnek bir dosya ve istediğiniz e-postanın bir örneğini gönderirsiniz
- 2KodBetiği ve çalıştırma kılavuzunu yazarız
- 3DeneyinListede yalnızca kendi adresinizle çalıştırırsınız
- 4DeğişikliklerPaketiniz kapsamında değişiklik ister, varsa hata mesajını gönderirsiniz
Sizden neler gerekiyor
Raporun hazırlandığı Excel dosyalarından biri, birkaç satıra indirilmiş ya da rakamları değiştirilmiş; dosyaların nerede belirdiği (bir klasör, ortak bir drive) ve nasıl adlandırıldıkları; e-postanın neyi göstermesi gerektiği (elle nasıl yazacaksanız öyle yazın), kimin alacağı ve hangi posta hesabından (posta servisini belirtmek yeterlidir; parolayı kendiniz girersiniz). Ne zaman gönderileceği ve çalışacağı bilgisayar: Windows, macOS ya da Linux.
Size soracaklarımız:
- Rapor hangi dosyalardan hazırlanıyor?
- E-posta neyi göstermeli?
- Kim alacak ve ne zaman?
- Nerede çalışacak?
Paketleri karşılaştırın
| Paketler | TemelTek rapor$16 | StandartAyarlı rapor$33 | PremiumRapor aracı$67 |
|---|---|---|---|
| Teslim süresi | 1 gün | 2 gün | 3 gün |
| Revizyonlar | 1 | 2 | 3 |
| Kod | en fazla 150 satır | en fazla 400 satır | en fazla 1.000 satır |
| Kod dosyası | 1 | en fazla 3 | en fazla 8 |
| Ayar dosyası | Hayır | Evet | Evet |
| Anlaşılır hata mesajları ve log | Hayır | Evet | Evet |
| Çalıştırma seçenekleri ve zamanlanmış çalıştırma kılavuzu | Hayır | Hayır | Evet |
| Kurulum ve çalıştırma kılavuzu (README) | Evet | Evet | Evet |
| Dil | Python | Python | Python |
| Sipariş ver Temel | Sipariş ver Standart | Sipariş ver Premium |
Ödeme koruması
Sipariş verirken ödersiniz, ancak para yalnızca onaylanan iş için aktarılır.
- Sabit fiyatPaket fiyatı, ödeme yaptıktan sonra değişmez.
- Para bloke edilirÖdeme yaptığınızda tutar yalnızca bloke edilir. İşi onayladığınızda hizmete aktarılır.
- Teslimattan önce kontrolHer sonuç size ulaşmadan önce kalite kontrolünden geçer ve onaylamadan önce sipariş sayfasında görürsünüz.
- Ücretsiz revizyonlarBrifiniz kapsamında, paketin izin verdiği sayıda değişiklik isteyin.
- 3 gün sonra onayTeslimattan sonraki 3 gün içinde işi onaylamaz veya değişiklik istemezseniz iş otomatik olarak onaylanır. Teslimattan sonra sipariş sohbetine yazarsanız sipariş bekletilir; yanıt verdikten sonra 3 günlük süreyi yeniden başlatabiliriz ve bunu sohbette bildiririz.
- Yeniden yapım veya tam iadeSonuç brifinize uymuyorsa ve revizyonlar sorunu çözmediyse ya da iş teslim süresinin iki katından uzun sürerse sipariş sohbetine yazın: işi yeniden yaparız veya ödemenin tamamını iade ederiz.
Sorular ve yanıtlar
Raporu her gün kendiliğinden gönderecek mi?
Her çalıştığında bir rapor gönderir. Premium, onu her sabah Task Scheduler, cron ya da launchd ile çalıştırmak için bir kılavuz içerir; Temel ya da Standart pakette kendiniz çalıştırır ya da bunu kendiniz kurarsınız. Bilgisayarın o saatte açık olması gerekir.
Hangi posta hesaplarıyla çalışır?
SMTP üzerinden gönderime izin veren çoğu servisle; yaygın iş ve kişisel postalar da buna dahildir. Bazıları bunun için bir uygulama şifresi oluşturmanızı ister; README nerede olduğunu gösterir.
Dosyalarım Excel'de değil, Google E-Tablolar'da. Bu işe yarar mı?
Bunun için tablonun içindeki bir Google Apps Script daha uygundur ve Gmail'inizden gönderir; brifte belirtin, onu Apps Script ile yazalım.
Raporu müşterilerime gönderebilir mi?
Evet, onu bekleyen kişilere, örneğin günlük stok listesi isteyen müşterilere. Toplu gönderim ya da kendiniz toplamadığınız listeler için değildir.
Yanıtınızı bulamadınız mı?