Ö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
Google Formlar yeni bir cevap geldiğini size söyleyebilir, ama içinde ne yazdığını ve o şehirle ya da hizmetle ilgilenen iş arkadaşınıza söyleyemez. Bu Google Apps Script, birisi formunuzu her gönderdiğinde çalışır ve cevapları net bir düzende içeren bir e-posta gönderir: kalın yazılmış sorular, altlarında cevaplar ve cevap tablosuna bir bağlantı. Standart paketten itibaren e-postayı kimin alacağını bir cevaba göre seçer, örneğin İstanbul taleplerini bir adrese, Ankara taleplerini başka bir adrese gönderir. Premium, form e-posta adresini soruyorsa formu dolduran kişiye bir onay ve size günlük bir özet gönderebilir. E-postalar Google'ın belirlediği günlük sınır içinde kendi Google hesabınızdan gider. Kurulumu kendi hesabınızda siz yaparsınız.
Neler dahil
- Neler alırsınızApps Script kodunu ve onu formunuza nasıl ekleyeceğinizi, erişime nasıl izin vereceğinizi ve tetikleyiciyi nasıl kuracağınızı gösteren bir README dosyasını içeren bir ZIP arşivi; kod sipariş sayfasında da gösterilir.
- Cevabın tamamıHer soru ve cevap e-postanın kendisinde
- Net bir konuör. Yeni talep: Ad, Hizmet
- Doğru kişiyeStandart paketten itibaren, adres bir cevaba göre seçilir
- Sizin hesabınızdanGoogle'ın sınırları içinde Google hesabınızdan gönderilir
- Okunabilir kodYorumlarla; sonradan e-postayı değiştirmek kolay
Nasıl çalışır
- 1GörevFormun sorularını ve kimin neyi alacağını gönderirsiniz
- 2KodBetiği ve kurulum kılavuzunu yazarız
- 3DeneyinFormun bir kopyasına ekler ve deneme cevabı gönderirsiniz
- 4DeğişikliklerPaketiniz kapsamında değişiklik ister, varsa hata mesajını gönderirsiniz
Sizden neler gerekiyor
Formunuzun soruları (bir ekran görüntüsü ya da liste), bildirimleri alması gereken adresler ve Standart paketten itibaren kimin neyi alacağının kuralı, örneğin şehre ya da hizmete göre. E-postanın konusu ve içinde olmasını istediğiniz metin. Formu dolduran kişiye onay için (Premium) o e-postanın metni ve adresini soran soru. Formunuzun cevapları bir Google E-Tablolar dosyasına kaydedip kaydetmediği.
Size soracaklarımız:
- Form ne için?
- Bildirimleri kim almalı?
- E-posta nasıl görünmeli?
- Gönderilecek başka bir şey var mı?
Paketleri karşılaştırın
| Paketler | TemelTek bildirim$16 | StandartAyarlı bildirimler$33 | PremiumBildirim 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
Kişiye bir onay gönderebilir mi?
Premium pakette evet, formunuz e-posta adresini soruyorsa. E-posta Google hesabınızdan gider, bu yüzden sizden gelen herhangi bir e-posta gibi okunur.
Form başka birinin hesabındaysa çalışır mı?
Betik formun bir düzenleyicisi tarafından eklenmelidir; e-postalar o kişinin hesabından gider. README adımları gösterir.
Bunun yerine SMS ya da sohbet mesajı gönderebilir mi?
Bu teklif e-posta gönderir. Herkese açık API'si olan bir servise mesaj, örneğin gelen webhook'u üzerinden bir Slack kanalına, o webhook'u kendiniz kurarsanız paketiniz kapsamında eklenebilir.
Formuma erişiminiz olacak mı?
Hayır. Kodu kendiniz ekler ve kendi hesabınızda erişime izin verirsiniz. Tek ihtiyacımız soruların bir ekran görüntüsü.
Yanıtınızı bulamadınız mı?