Ö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
Gmail filtreleri yalnızca yeni postalarda ve yalnızca basit koşullarla çalışır. Bu Google Apps Script gelen kutunuzda zaten bulunan postaları da şu tür kurallarla düzenler: tedarikçilerinizin alan adlarından gelen her şeyi etiketlemek, 14 günden eski bültenleri arşivlemek, makbuzları okundu olarak işaretleyip Hesaplar altına koymak ya da üç gün sonra müşterilerden gelen cevaplanmamış mesajlara yıldız eklemek. Gmail aramasıyla, yani arama kutusuna yazdığınız aynı kelimelerle çalışır; bu yüzden bir kural kolayca okunur ve değiştirilir. Standart paketten itibaren kurallar düzenlediğiniz bir Google E-Tablolar sekmesinde durur ve bir log ne yaptığını gösterir. Posta silmez: etiketler, arşivler ve işaretler; Çöp Kutusu'na taşıma yalnızca bu kuralı verirseniz eklenir. Kurulumu ve çalıştırmayı kendi Google hesabınızda siz yaparsınız.
Neler dahil
- Neler alırsınızApps Script kodunu ve onu hesabınıza nasıl ekleyeceğinizi, erişime nasıl izin vereceğinizi ve nasıl çalıştıracağınızı gösteren bir README dosyasını içeren bir ZIP arşivi; kod sipariş sayfasında da gösterilir.
- Eski postalar daGelen kutunuzda zaten olanlar üzerinde çalışır
- Gmail arama kurallarıfrom:, subject:, older_than: ve diğerleri
- Etiket, arşiv, okundu, yıldızHer kural için seçtiğiniz işlemler
- Varsayılan olarak silme yokÇöp Kutusu yalnızca bu kuralı verirseniz
- Okunabilir kodYorumlarla; sonradan kural eklemek kolay
Nasıl çalışır
- 1KurallarKuralları sade sözlerle listelersiniz
- 2KodBetiği ve kurulum kılavuzunu yazarız
- 3DeneyinÖnce tek bir kuralla çalıştırır ve etiketleri kontrol edersiniz
- 4DeğişikliklerPaketiniz kapsamında değişiklik ister, varsa hata mesajını gönderirsiniz
Sizden neler gerekiyor
Sade sözlerle kurallarınız: hangi postalar (gönderen ya da alan adı, konudaki kelimeler, yaş, ek içerip içermediği), onlarla ne yapılacağı (etiketlemek, arşivlemek, okundu olarak işaretlemek, yıldız eklemek) ve kullandığınız etiket adları. Kutuda yaklaşık ne kadar posta olduğu ve yeni postaların ne sıklıkla düzenlenmesi gerektiği. Ücretsiz Gmail mi yoksa Google Workspace mi kullandığınız. Parola ve özel postaların ekran görüntüleri olmasın: shop.example gibi örnek gönderenler yeterlidir.
Size soracaklarımız:
- Ne düzenlenmeli?
- Her türle ne yapılmalı?
- Eski postalar da mı, yoksa yalnızca yeniler mi?
- Asla yapmaması gereken bir şey
Paketleri karşılaştırın
| Paketler | TemelTek kural seti$16 | StandartTabloda kurallar$33 | PremiumPosta düzenleme 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 | Google Apps Script | Google Apps Script | Google Apps Script |
| 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
Neden doğrudan Gmail filtrelerini kullanmayalım?
Filtreler yalnızca posta geldiğinde çalışır; birkaç gün bekleyemez ya da cevap verip vermediğinizi kontrol edemez. Betik eski mesajlar da dahil eşleşen tüm postalarda çalışır ve yaş gibi koşulları kullanabilir.
E-postalarımı silecek mi?
Hayır, belirli postaları Çöp Kutusu'na taşımayı söyleyen bir kural vermedikçe; o durumda bile Gmail onları 30 gün Çöp Kutusu'nda tutar. Varsayılan olarak yalnızca etiketler, arşivler ve işaretler.
100.000 e-postalık bir kutuyu düzenleyebilir mi?
Evet, parça parça: bir betik çalıştırması yaklaşık altı dakikayla sınırlıdır, bu yüzden her çalıştırmada bir grup işler ve bir sonrakinde devam eder. İlk temizlik birkaç çalıştırma sürebilir.
Postalarıma erişiminiz olacak mı?
Hayır. Betiği kendi hesabınıza siz ekler ve erişime kendiniz izin verirsiniz. Postalarınızı asla görmeyiz ya da onlara giriş yapmayız.
Yanıtınızı bulamadınız mı?