Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Ticaret

Üründen sipariş belgesine

Bu grup, alıcının gördüğü vitrin ile sipariş belgesinin kurulmasını kapsar. Siparişin yaşam döngüsü v1 order modülündedir; akış Alışveriş sayfasında anlatılır.

catalog

Görevi: Ürün gerçeği. İsim, KDV, birim, kategori, görsel, HKS kodu, depo fiyatı ve arama.

YolKimin için
catalog/public, catalog/third-partyAçık
catalog/buyerAlıcı
catalog/officerYetkili
catalog/adminYönetici (birim/KDV için ek izin)

Alıcı listesi şu sırayı izler: alıcının seçili adresi → depo kararı → MeiliSearch filtresi (depo, şirket tipi, kategori, isteğe bağlı yalnız indirimli) → depo fiyatlarıyla zenginleştirme. Sonuç yoksa BigQuery’ye “bulunamadı” olayı yazılır.

Ürünün seçenekleri (ProductOption) kalite tipi, artı/eksi maddeler ve görsel taşır. Depo, seçeneğe kg başına ek fiyat (WarehouseProductOptionPrice.additionalPrice) verir. Taban fiyat kademeli WarehouseProductPrice satırındandır; nihai birim fiyat indirimli taban + ek fiyattır. Ek fiyat satırı yoksa o seçenek o depoda satılmaz.

Ürün kaydı, seçenek değişimi veya silinmesi product.upsert / product.deleted olaylarıyla arama indeksini günceller. Saatlik cron indeksi baştan kurar (üretimde).

Alıcı, katalogda olmayan ürün için ürün talebi açabilir. Bu talep Mongo productRequests koleksiyonundadır; durum PENDING veya REVIEWED. Sohbet, alıcı başına tek PRODUCT odasına düşer (contextId = alıcının kullanıcı id’si, oda adı Ürün Talepleri). Eski ürün-başına odalar artık sorgulanmaz.

Şema: Katalog ve stok kartı.

v2 yeni mobil kataloğu MeiliSearch yerine doğrudan veritabanından okur. Arama, fiyat ve satılabilirlik kararları ProductSearchDecider ile katalog/sepette paylaşılan decider'lar üzerinden kurulur.

basket

Görevi: Alıcının henüz sipariş olmamış satırları.

Yol: basket/buyer. Satırlar Prisma ProductBasket tablosundadır (kullanıcı + ürün, miktar, isteğe bağlı optionId, aktiflik). Sepet, satın alma önizlemesinde depo fiyatı, seçenek ek fiyatı ve asgari tutarla birleştirilir.

purchase

Görevi: Sepeti sipariş belgesine çevirmek; henüz yaşam döngüsünü yürütmez.

YolKimin için
purchase/buyerAlıcı
purchase/officerYetkili (alıcı adına)

Önizleme: adres ve fatura adresi doğrulanır, depo seçilir, cari okunur, grup indirimi ve hediye bakiye mesajı kurulur, kargo / içeride taşıma / bakiye kullanımı hesaplanır, teslimat bloğu kurulur. Asgari sepet, grubun isMinBasketRequired bayrağına göre atlanabilir. Nakit ödeme yöntemi reddedilir.

Oluşturma: kullanıcı kimliğine MurLock konur; ödeme bekleyen eski siparişler iptal edilebilir; OrderBuyerService.createOrder çağrılır. Ödeme yöntemine göre ilk sipariş durumu değişir — Alışveriş akışı.

Sabitler kodda: ücretsiz kargo eşiği 3000, içeride teslim hizmet bedeli 250 (para birimi TRY).

post

Görevi: Uygulama içi içerik. Prisma Post. Tipler: SLIDER, BANNER, STORY, ACADEMY. Hedef kitle userType alanıdır.

Haftalık aktiflik penceresi isteğe bağlıdır: startDayOfWeek / startTime / endDayOfWeek / endTime (Europe/Istanbul, HH:mm, gün 0=Pazar … 6=Cumartesi). Dördü birden boşsa içerik her zaman aktiftir; dördü birlikte dolu olmalıdır. Alıcı ve satıcı listeleri bu pencereye göre süzülür.

Alıcı listesi post/buyer yolunda herkese açıktır. Satıcı, yetkili ve yönetici uçları rollüdür. Bu, satıcı teklifi değildir; vitrin / akademi içeriğidir.

procurement

Görevi: Satıcının “mal tedarik etmek istiyorum” talebi.

Yol: procurement/seller. Kayıt Mongo procurementRequests koleksiyonuna gider; satıcı ve ilçe gömülü kopyadır. Görseller dosya deposuna yüklenir. Durumlar: PENDING, APPROVED, IN_PROGRESS, COMPLETED, CANCELLED.

static

Görevi: Politika metinleri (static/policy, açık) ve alıcıya özel statik içerik (static/buyer).

Sipariş modülü nerede?

Sipariş belgesi, durum makinesi, iade ve teslimat order + transfer + warehouse üçlüsündedir: