Trendyol sipariş çekme: 15 Ekim v2 geçişi ve 10.000 kayıt penceresi
Trendyol eski sipariş uç noktasını 15 Ekim 2026’da kullanım dışı bırakıyor ve v2’ye 10.000 kayıtlık bir erişim penceresi getiriyor. Yoğun satıcılar için bu, sessizce eksik sipariş çekmek demek.
Trendyol’un sipariş entegrasyonunda iki değişiklik aynı anda yürürlüğe giriyor. Biri adres değişikliği, diğeri çok daha önemli: çekebileceğiniz kayıt sayısına üst sınır geliyor.
Birincisi kolay fark edilir — eski adres çalışmayı bırakır, hatayı görürsünüz. İkincisi fark edilmez: istek başarılı döner, sayfalama çalışıyor görünür, ama bazı siparişler hiç gelmez.
Ne değişiyor
| Önce | 15 Ekim 2026’dan sonra | |
|---|---|---|
| Uç nokta | /integration/order/sellers/{sellerId}/orders |
/integration/order/sellers/{sellerId}/v2/orders |
| Erişilebilir kayıt | Sayfalamayla tamamı | En fazla 10.000 paket (maxQueryWindowResult) |
| Geçmiş kapsamı | — | Son 1 ay |
Doküman, 10.000 sınırının ilerleyen dönemlerde daha da düşürülebileceğini ayrıca belirtiyor. Yani bu sayıyı koda sabit yazmak iyi fikir değil.
10.000 sınırı tam olarak neyi sayıyor
Burada en sık yapılacak yanlış varsayım şu: “Ayda 10.000 siparişim yok, beni ilgilendirmez.”
Sayaç sipariş numarasını değil, shipmentPackageId değerini sayıyor. Bir sipariş birden fazla pakete bölünmüşse her paket ayrı sayılır. Çok kalemli siparişlerle çalışan, farklı depolardan gönderim yapan ya da paket bölme kullanan bir satıcıda paket sayısı sipariş sayısının belirgin şekilde üzerinde olur.
Paket içindeki satırlar (lines) ve ürün adedi sayılmaz — sayılan birim pakettir.
Sınırı aştığınızda ne görürsünüz
Hiçbir hata almazsınız. Olan şu:
- Yanıttaki
totalElementsgerçek toplamı gösterir — örneğin 12.540. totalPages50’nin üzerinde görünebilir.- Ama yalnızca ilk 10.000 kayda erişebilirsiniz; kalan 2.540 paket aynı filtreyle hiçbir şekilde gelmez.
Sayfa 0’dan 49’a kadar (200’erli sayfalarda) güvenli aralıktır. 50 ve sonrası boş döner ya da erişilemez. Kodunuz totalPages değerine bakıp döngü kuruyorsa, döngü biter ve siz tüm siparişleri çektiğinizi sanırsınız.
Bu yüzden totalElements değerini kontrol etmek artık isteğe bağlı değil. 10.000’i aşıyorsa o sorgu eksik veri döndürüyor demektir.
Çözüm: akış servisi
Tüm paketleri çekmeniz gerekiyorsa Trendyol, sayfalamalı servis yerine akış (stream) servisini öneriyor: getShipmentPackagesStream. Bu serviste 10.000 sınırı yok.
Çalışma biçimi imleç (cursor) tabanlı:
- İlk istekte
nextCursorgöndermezsiniz. - Yanıtta
hasMoretrueise, dönennextCursordeğerini bir sonraki isteğe koyarsınız. hasMorefalseolduğunda akış tamamlanmıştır.
Sayfalamalı servisten farkları, geçişi planlarken önemli:
totalElements,totalPagesvepagealanları dönmez. YerlerinehasMore,nextCursorvesizegelir. Sayfa numarası artıran kodunuz burada çalışmaz.nextCursoropak bir değerdir — ayrıştırmayın, değiştirmeyin. İçinden anlam çıkarmaya çalışan kod, biçim değişince kırılır.- Akış ortasında filtre değiştiremezsiniz. Başlangıçtaki filtreleri değiştirirseniz
400 Bad Requestalırsınız; yeni filtre için yeni akış başlatmanız gerekir. - Sıralama sabittir: son güncelleme tarihine göre azalan.
sizevarsayılanı 50, en yükseği 200.- Başlıkta
storeFrontCodegöndermeniz gerekir.
Trendyol’un ayrımı şöyle: sayfalamalı servis küçük ve anlık sorgular için, akış servisi tam tarama ve periyodik senkronizasyon için.
Sınırı aşmamanın diğer yolları
Akışa geçmek istemiyorsanız veya geçişe vaktiniz yoksa, sorguyu küçültebilirsiniz:
- Tarih aralığını bölün.
startDateveendDateile günlük ya da birkaç günlük parçalar hâlinde sorgulayın. Her parçanıntotalElementsdeğerini ayrıca kontrol edin — bölmek tek başına yetmez, doğrulamak gerekir. - Filtre daraltın.
status,orderNumber,barcode,shipmentPackageIdsveyastoreFrontCodekullanılabilir. Pratikte en işe yarayanıstatus: işlenmemiş siparişleri çekiyorsanız tamamlanmış paketleri hiç istemenize gerek yok.
Parametreler ve sınırlar
| Parametre | Not |
|---|---|
startDate / endDate | Epoch milisaniye, GMT+3. Yerel saatle gönderirseniz aralık kayar. |
page | Sıfır tabanlı. |
size | En fazla 200. |
orderByField | PackageLastModifiedDate |
orderByDirection | ASC veya DESC |
status | Paket durumu — aşağıda. |
Tarih vermezseniz son bir haftanın siparişleri döner. Tarih verirseniz aralık en fazla iki hafta olabilir. Servisin kapsadığı geçmiş en fazla son bir aydır.
Paket durumları
Created, Picking, Invoiced, Shipped, Cancelled, Delivered, UnDelivered, Returned, AtCollectionPoint, UnPacked, UnSupplied, Awaiting, Verified
Geçiş kontrol listesi
- Uç nokta adresinde
/v2/var mı? - Kod
totalElementsdeğerini okuyup 10.000 eşiğini kontrol ediyor mu? - Eşik aşıldığında akış servisine düşüyor veya tarih aralığını bölüyor mu?
totalPagesüzerinden kurulmuş döngüler akışa geçerken sökülüyor mu?- Tarihler GMT+3 epoch milisaniye olarak mı gönderiliyor?
- 10.000 sayısı sabit yazılmak yerine yapılandırmadan mı okunuyor?
Dokümanda bu servis için istek sınırı dakikada 1.000 olarak veriliyor; ayrıca limitlerin güncelleneceği ve yoğun istekte 429 alınabileceği belirtiliyor. İstek sınırlarının Eylül 2026’da nasıl değiştiğini ve iki resmî sayfanın neden çeliştiğini hata kodları yazısında anlattık.
Bir uyarı
Trendyol’un Türkçe ve İngilizce dokümanları arasında bu geçişin tarihi konusunda tutarsızlık olabilir. Yukarıdaki bilgiler Türkçe dokümandaki “ÖNEMLİ GÜNCELLEME” bölümünden alınmıştır. Geçişi planlamadan önce kendi satıcı hesabınızla güncel dokümanı ve varsa Trendyol’un satıcı duyurularını teyit edin.
Entegrasyonu henüz kurmadıysanız API anahtarı rehberiyle başlayabilirsiniz; stok ve fiyat tarafındaki benzer asenkron tuzaklar ayrı yazıda.
Kaynak
Uç nokta adresleri, 15 Ekim 2026 tarihi, maxQueryWindowResult sınırı, parametreler ve durum değerleri Sipariş Paketlerini Çekme (getShipmentPackages); akış servisinin davranışı Sipariş Paketlerini Akış ile Çekme (getShipmentPackagesStream) dokümanından alınmıştır.
Son kontrol: 12 Ekim 2026. Geçiş tarihi çok yakın olduğu için bu sayfa yakından izlenecek; bir tutarsızlık fark ederseniz yorum bırakın.
Bir yanıt yazın