Ö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
Fiyatlarınız, faturalarınız ya da raporlarınız döviz kurlarına bağlıysa onları her sabah yazmak kolayca unutulur. Bu Google Apps Script kurları seçtiğiniz herkese açık bir kaynaktan, örneğin merkez bankanızın yayımladığı kurlardan ya da kendi anahtarınızı aldığınız bir kur servisinden okur ve ihtiyacınız olan para birimlerini tarihle birlikte Google E-Tablolar dosyanıza yazar. Standart paketten itibaren günde bir satırlık bir geçmiş sekmesi tutar, böylece formülleriniz herhangi bir tarihin kurunu bulabilir; Premium, ilki cevap vermezse ikinci bir kaynak ekler ve geçmiş tarihleri doldurur. Google E-Tablolar'ın bazı para birimleri için kendi GOOGLEFINANCE işlevi vardır; bu betik belirli bir kaynağa ya da saklanan bir geçmişe ihtiyacınız olduğunda içindir. Kurlar kaynağa aittir; finansal tavsiye vermeyiz.
Neler dahil
- Neler alırsınızApps Script kodunu ve onu tablonuza nasıl ekleyeceğinizi, erişime nasıl izin vereceğinizi ve her gün çalışacak şekilde nasıl ayarlayacağınızı gösteren bir README dosyasını içeren bir ZIP arşivi; kod sipariş sayfasında da gösterilir.
- Sizin kaynağınızSeçtiğiniz resmî ya da servis kurları
- Sizin para birimlerinizYalnızca ihtiyacınız olanlar, ana para biriminize karşı
- Tarihli bir geçmişStandart paketten itibaren aramalar için günde bir satır
- Anahtar kodun dışında tutulurKaynak anahtar istiyorsa onu kendiniz girersiniz
- Okunabilir kodYorumlarla; sonradan para birimi eklemek kolay
Nasıl çalışır
- 1KaynakPara birimlerini ve güvendiğiniz kaynağı belirtirsiniz
- 2KodBetiği kaynağın dokümantasyonuna göre ve kurulum kılavuzunu yazarız
- 3DeneyinTablonun bir kopyasında çalıştırır ve kaynağın sitesiyle karşılaştırırsınız
- 4DeğişikliklerPaketiniz kapsamında değişiklik ister, varsa hata mesajını gönderirsiniz
Sizden neler gerekiyor
İhtiyacınız olan para birimleri ve ana para biriminiz, kullanmak istediğiniz kaynak (kurları yayımladığı sayfanın ya da dokümantasyonun bağlantısı veya aralarından seçmeniz için herkese açık kaynaklar önermemiz), kurlara ne sıklıkla ve saat kaçta ihtiyacınız olduğu ve tablonuzda nereye gideceği. Geçmiş tarihlere ihtiyacınız varsa (Premium), hangi tarihten itibaren. Kaynak bir anahtar istiyorsa onu hesabınızda oluşturun; bize asla göndermeyin.
Size soracaklarımız:
- Hangi para birimlerine ihtiyacınız var?
- Hangi kaynağı kullanmalı?
- Ne sıklıkla ve saat kaça kadar?
- Geçmiş tarihlere ihtiyacınız var mı?
Paketleri karşılaştırın
| Paketler | TemelBugünün kurları$16 | StandartGeçmişli kurlar$33 | PremiumKur 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
Kurlar doğru mu?
Tam olarak seçtiğiniz kaynağın yayımladığı gibidir. Resmî kurlar genellikle iş günü başına bir kez belirlenir ve betik kaynağından daha güncel olamaz.
Alım satım için her dakika güncellenebilir mi?
Fiyatlar, faturalar ve raporlar için günlük ya da saatlik kurlar için yapılmıştır, alım satım için değil. Finansal tavsiye vermeyiz.
Hafta sonları ve tatillerde ne olur?
Birçok resmî kaynak o günlerde hiçbir şey yayımlamaz. Standart paketten itibaren geçmişin son kuru tekrarlamasını mı yoksa günü boş bırakmasını mı istediğinizi seçersiniz.
Tabloma erişiminiz olacak mı?
Hayır. Betiği kendi tablonuza siz ekler ve erişime kendiniz izin verirsiniz. Google hesabınıza asla giriş yapmayız.
Yanıtınızı bulamadınız mı?