Fiyat listesi kâr marjıGeliştirme ve Özelleştirme

Bir tedarikçinin fiyat listesine kâr marjı ve yuvarlama kurallarınızı uygulayan ve kendi listenizi kaydeden bir Python betiği

Genellikle 15 dakika içinde hazırRevizyonlar dahilKalite kontrolü
Paketler
Ö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.

Bir tedarikçinin fiyat listesine kâr marjı ve yuvarlama kurallarınızı uygulayan ve kendi listenizi kaydeden bir Python betiği

Örnek sonuç

Standart paket için örnek

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

Bir tedarikçi her hafta yeni bir fiyat listesi gönderdiğinde kendi fiyatlarınızı elle yeniden hesaplamak Excel'de saatler ve formüllerde hatalar demektir. Bu Python betiği tedarikçinin dosyasını okur ve kurallarınızı uygular: yüzde ya da sabit tutar olarak kâr marjı, Standart paketten itibaren kategoriye, markaya ya da fiyat aralığına göre farklı marjlar, minimum kâr, girdiğiniz bir döviz kuru ve .99'a yukarı ya da en yakın 10'a yuvarlama gibi yuvarlamalar. Mağazanız ya da müşterileriniz için hazır, ihtiyacınız olan sütunlarla yeni bir fiyat listesi kaydeder ve fiyatlayamadığı satırları listeler. Kurallar sizindir; betik hesabı yapar ve fiyatlandırma tavsiyesi vermez. Bilgisayarınızda kendiniz çalıştırırsınız, bu yüzden ilk listeleri elle hesapladığınız birkaç fiyatla karşılaştırın.

Neler dahil

  • Neler alırsınızPython betiğini, adım adım talimatlar içeren bir README dosyasını ve Standart paketten itibaren marjlarınızı ve yuvarlamanızı içeren bir ayar dosyasını barındıran bir ZIP arşivi; kod sipariş sayfasında da gösterilir.
  • Kâr marjı kurallarınızYüzde ya da sabit, kategoriye, markaya veya fiyat aralığına göre
  • Seçtiğiniz yuvarlama.99'a yukarı, en yakın 10'a ya da belirlediğiniz şekilde
  • Sizin sütunlarınızYalnızca ihtiyacınız olan sütunlar, sizin sıranızla
  • Sorunlu satırlar listelenirFiyatı olmayan ya da bilinmeyen kategorili satırlar bildirilir
  • Okunabilir kodYorumlarla; sonradan kural değiştirmek kolay

Nasıl çalışır

  1. 1
    KurallarTedarikçinin dosyasından bir örnek ve kâr marjı kurallarınızı gönderirsiniz
  2. 2
    KodBetiği ve çalıştırma kılavuzunu yazarız
  3. 3
    DeneyinSon listede çalıştırır ve birkaç fiyatı elle kontrol edersiniz
  4. 4
    DeğişikliklerPaketiniz kapsamında değişiklik ister, varsa hata mesajını gönderirsiniz

Sizden neler gerekiyor

Tedarikçinin fiyat listesinin geldiği hâliyle 20-30 satırı (Excel ya da CSV), açıkça yazılmış kâr marjı kurallarınız (örneğin 50'nin altındaki her şeye %35, üstüne %25, en az 5 kâr), istediğiniz yuvarlama, fiyatların dönüştürülmesi gerekiyorsa döviz kuru ve nereden geldiği ve fiyat listenizde olması gereken sütunlar. Birkaç tedarikçiniz varsa (Premium) her birinden bir örnek. Sisteminiz: Windows, macOS ya da Linux.

Size soracaklarımız:

  • Tedarikçi ne gönderiyor?
  • Kâr marjı kurallarınız neler?
  • Fiyatlar nasıl yuvarlanmalı?
  • Fiyat listeniz neleri içermeli?

Paketleri karşılaştırın

PaketlerTemelTek kâr marjı kuralı$16StandartAyarlı kâr marjı$33PremiumFiyatlandırma aracı$67
Teslim süresi1 gün2 gün3 gün
Revizyonlar123
Koden fazla 150 satıren fazla 400 satıren fazla 1.000 satır
Kod dosyası1en fazla 3en fazla 8
Ayar dosyasıHayırEvetEvet
Anlaşılır hata mesajları ve logHayırEvetEvet
Çalıştırma seçenekleri ve zamanlanmış çalıştırma kılavuzuHayırHayırEvet
Kurulum ve çalıştırma kılavuzu (README)EvetEvetEvet
DilPythonPythonPython
Sipariş ver TemelSipariş ver StandartSipariş 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.
Nasıl çalışır →

Sorular ve yanıtlar

Döviz kurunu internetten alabilir mi?

Premium pakette seçtiğiniz herkese açık bir kaynaktan, örneğin merkez bankanızın yayımladığı kurlardan okuyabilir. Aksi hâlde her çalıştırmadan önce kuru ayarlara kendiniz yazarsınız.

Fiyatları mağazama yükleyebilir mi?

Bu teklif fiyat listesi dosyasını oluşturur. Birçok mağaza platformu fiyatları böyle bir dosyadan içe aktarır; bize platformunuzu söyleyin, sütunları onun içe aktarımına uygun hâle getirelim.

Tedarikçi dosyayı değiştirirse ne olur?

Standart paketten itibaren sütun adları ayar dosyasında durur, bu yüzden adı değişen bir sütun tek satırlık bir değişikliktir. Tamamen yeni bir düzen betiğin ayarlanmasını gerektirebilir.

Hangi kâr marjını kullanacağımı söyler misiniz?

Hayır. Fiyatlandırma ya da finansal tavsiye vermeyiz: betik belirlediğiniz kuralları uygular, rakamlar sizin kararınızdır.

Yanıtınızı bulamadınız mı?

Paketler