Satıcı API'si

Stok yönetim sistemini, mağaza yazılımını veya dropshipping tedarikçini doğrudan eveyamin mağazana bağla: ürün oluştur ve güncelle, stoku saniyeler içinde eşitle, ödenmiş siparişleri al ve gönderileri bildir.

Başlarken

Satıcı API'si, https://eveyamin.com/api/v1 adresinde JSON ile çalışan bir REST arayüzüdür. Alan adları ve değerler Almancadır – kategoriler, renkler, bedenler ve durumlar tam olarak mağazada kayıtlı oldukları gibi. Bağlantıyı geliştiricin, ajansın veya bir ara katman (middleware) hizmeti kurar; belirli stok yönetim sistemleri için hazır eklentiler yoktur.

Anahtar oluştur

  1. Ayarlar → API erişimi altında bir anahtar oluştur ve yalnızca bağlantının ihtiyaç duyduğu yetkileri seç.
  2. Anahtarı hemen kopyala ve güvenli bir yerde sakla – yalnızca bu bir kez gösterilir.
  3. Her istekte Authorization: Bearer <anahtar> başlığıyla gönder.
Yetkiİzin verdiği
produkte:schreibenÜrün oluşturma, değiştirme, okuma ve arşivleme
bestand:schreibenStoku okuma ve ayarlama
bestellungen:lesenSiparişleri alma ve onaylama (mağazan yayına girdiği anda)
bestellungen:versendenGönderileri takip numarasıyla bildirme
Anahtarlar bir sunucuda durmalı, asla bir web sayfasında veya uygulamada değil. En fazla 10 anahtarın olabilir – her bağlantı için ayrı bir anahtar kullan, böylece birini tek başına iptal edebilirsin. Yanlış ellere geçmiş olabilecek bir anahtarı hemen iptal et.

İlk çağrı

İstek
curl https://eveyamin.com/api/v1/ping \
  -H "Authorization: Bearer evy_live_…"
Yanıt
{
  "ok": true,
  "umgebung": "live",
  "haendler_id": "5a03da19-…",
  "schluessel": {
    "name": "Warenwirtschaft",
    "praefix": "evy_live_Ab3x",
    "berechtigungen": ["bestand:schreiben", "bestellungen:lesen"]
  }
}

Canlı ve test

Anahtarlar evy_live_ (mağaza) veya evy_test_ (test ortamı) ile başlar ve yalnızca oluşturuldukları yerde çalışır. Diğer ortamdan gelen bir anahtar 401 keyWrongEnvironment alır.

Almanca değerler

Kategoriler tam yollarıyla gelir (eve-Home > Bettwäsche > Bettwäsche-Sets), renkler ve bedenler tam olarak mağazadaki gibi. GET /api/v1/taxonomy her kategoriyi bedenleriyle birlikte ve her rengi döndürür. API küçük farkları kendisi düzeltir (weiss → Weiß, 200x200 → 200 x 200 cm) ve bunları uyarı olarak bildirir. Stok yönetim sisteminin kendi adlarını CSV içe aktarımında bir kez eşleştir; eşleştirme API için de geçerlidir.

Sınırlar

NeSınır
Anahtar başına istekDakikada 120, sonrasında Retry-After ile 429
İstek boyutu1024 KB
Stok çağrısı başına satır500
Ürün başına varyant500
Ürün başına görsel20
Sayfa başına ürün100
Sayfa başına sipariş100

Her yanıt JSON'dur ve asla önbelleğe alınmaz. Tarayıcıdan yapılan çağrılara (CORS) izin verilmez.

Ürünler

Bir ürün, bilgileri ile varyantlarından (renk × beden) oluşur. Kurallar ürün formunun ve CSV içe aktarımının kurallarıdır: onların reddettiğini API de aynı kodlarla reddeder. Alan adları, CSV şablonunun sütun adlarıdır.

POST /api/v1/products
{
  "uebergeordnete_sku": "BW-SATIN-01",
  "titel": "Satin-Bettwäsche Uni",
  "beschreibung": "Bettwäsche aus 100 % Baumwollsatin, mit Reißverschluss.",
  "kategorie": "eve-Home > Bettwäsche > Bettwäsche-Sets",
  "rabattpreis": 44.90,
  "varianten": [
    {
      "farbe": "Weiß",
      "groesse": "135 x 200 cm",
      "preis": 49.90,
      "lagerbestand": 12,
      "sku": "BW-SATIN-01-W-135",
      "ean": "4006381333931",
      "bild_urls": ["https://bilder.example-shop.de/bw-satin-weiss.jpg"]
    },
    {
      "farbe": "Weiß",
      "groesse": "155 x 220 cm",
      "preis": "59,90",
      "lagerbestand": 5,
      "sku": "BW-SATIN-01-W-155"
    }
  ]
}
  • uebergeordnete_sku (Übergeordnete SKU, yani üst SKU) ürün için senin anahtarındır ve mağazanda benzersizdir. Ürüne daha sonra onunla ulaşırsın: /products/BW-SATIN-01.
  • kategorie tam yoldur; her groesse bu kategoriye ait olmalıdır.
  • preis varyant başınadır. Fiyatlar yalnızca bedene göre farklı olabilir, renge göre değil; en düşük olanı taban fiyattır. rabattpreis (indirimli fiyat) tüm ürün için geçerlidir; yoksa indirim de yoktur.
  • Sayılar metin olarak da gelebilir, Almanca veya İngilizce biçimde ("59,90").
  • Varyant başına sku ve ean isteğe bağlıdır. Alanı göndermezsen kayıtlı kod kalır; null onu siler. Bir EAN'ın kontrol hanesi geçerli olmalıdır.
  • bild_urls: https adresleri. Görseller indirilir ve bizde saklanır; galeri yalnızca ilk varyantta da olabilir.
  • versandkosten (kargo ücreti) isteğe bağlıdır: yoksa yeni bir ürün senin varsayılan değerini alır, mevcut bir ürün kendi değerini korur.

Oluştur, değiştir, oku

ÇağrıEtkisi
POST /productsÜrünü oluşturur: 201. Übergeordnete SKU zaten varsa: mevcut ürünle birlikte 409 productExists.
PUT /products/{id}Ürünün tamamını değiştirir; gönderilmeyen varyantlar arşivlenir. {id} henüz yoksa ve gövde {id} değerini uebergeordnete_sku olarak veriyorsa ürün oluşturulur (upsert); aksi halde 404.
GET /products/{id}Ürünü tam olarak PUT'un aldığı biçimde verir, artı salt okunur alanlar (id, artikelnummer, status, geaendert_am, variant_id). Olduğu gibi geri gönderebilirsin.
GET /productsTüm ürünlerin, en eski değişiklik önce, arşivlenenler dahil – geaendert_seit ile yalnızca o tarihten beri değişenler.
DELETE /products/{id}Ürünü arşivler; ikinci bir çağrı hiçbir şeyi değiştirmez.

{id}, eveyamin ürün kimliği, senin Übergeordnete SKU'n veya eveyamin ürün numarası (artikelnummer) olabilir. Formda oluşturulmuş bir ürün, Übergeordnete SKU'sunu bir kez, gövdede uebergeordnete_sku ile PUT /products/{artikelnummer} üzerinden alır; mevcut bir Übergeordnete SKU yalnızca ürün formunda değiştirilir.

Sonuç

ergebnis değeri angelegt (oluşturuldu), aktualisiert (güncellendi) veya unveraendert (değişmedi) olur. Hiçbir şey değişmediyse hiçbir şey yazılmaz ve yeniden çevrilmez – bu yüzden tüm ürünlerin tam eşitlemesi neredeyse hiçbir yük getirmez. hinweise (uyarılar) düzeltilen yazımları ve yüklenemeyen görselleri belirtir. Yeni ürünler önce çevrilir (durum “Wird übersetzt”) ve ardından yayına girer.

Görseller

  • Görseller çağrı sırasında indirilir. Bu çok uzun sürerse API bir iş (job) ile 202 yanıtı verir (Location: /api/v1/jobs/{id}). İş fertig (tamamlandı) olana kadar sorgula; ürün ancak görselleri hazır olduğunda kaydedilir.
  • Her görsel adresi bir kez indirilir. Bu yüzden değişen bir görselin yeni bir adrese ihtiyacı vardır, örneğin ?v=2 ile.
  • Aynı ürün için daha yeni bir istek gelirse açık bir iş ersetzt (yerine yenisi geldi) olur.

Ürün çağrısında stok

Zaten satışta olan varyantlar için ürün çağrısı stoku değiştirmez – bu stok çağrısının işidir. Farklı bir lagerbestand değeri stockIgnored uyarısı olarak geri gelir. Yeni ürünler ve yeni varyantlar gönderilen stoku alır.

Arşivlenmiş, engellenmiş, metre ile satılan

Arşivlenmiş ürünleri kontrol panelinden geri yükle; PUT ve POST 409 productArchived yanıtı verir. Engellenmiş ürünler: 409 productBlocked. Metre ile satılan ürünler (kumaşlar) henüz API'de yok: 409 productMeterware.

Stok eşitleme

Stok çağrısı yalnızca stoku değiştirir, asla ürünü değil. Stok yönetim sistemin eveyamin'deki stoku bununla güncel tutar; böylece birden fazla kanalda satış yaptığında hiçbir şey iki kez satılmaz.

PATCH /api/v1/stock
{
  "positionen": [
    { "sku": "BW-SATIN-01-W-135", "lagerbestand": 11, "stand": "2026-10-09T14:05:00+02:00" },
    { "produkt": "BW-SATIN-01", "farbe": "Weiß", "groesse": "155 x 220 cm", "lagerbestand": 0 }
  ]
}
  • Bir satır, bir varyantı sku ile veya produkt + farbe + groesse ile belirtir. Tüm ürünler genelinde çağrı başına en fazla 500 satır.
  • lagerbestand senin stokundur. Sisteminin henüz onaylamadığı açık eveyamin siparişlerindeki adetler düşülerek kaydedilir – senin sayımın bunları bilemez.
  • Sayımının zamanını stand olarak gönder. Son alınandan daha eski bir stand içeren satır yok sayılır (veraltet, eskimiş).
  • Her satırın kendi sonucu vardır: ok, unveraendert, veraltet veya fehler. Hatalı bir satır diğerlerini durdurmaz.
  • 503 busy durumunda hiçbir şey kaydedilmemiştir; isteği Retry-After saniye sonra tekrarla.

Nasıl ilerlenir

  1. GET /stock ile bir kez sayfa sayfa çek ve ürünlerini varyantlarla eşleştir, tercihen sku ile.
  2. Her stok değişikliğinde veya örneğin beş dakikada bir, değişen satırlar ve stand ile PATCH /stock gönder.
  3. Yeni siparişleri al ve onayla – ancak o zaman açık sayılmaktan çıkarlar.

Siparişler ve dropshipping

Senin kalemlerini içeren ödenmiş siparişleri alır, onaylar ve gönderiyi bildirirsin. Aynı siparişteki diğer satıcıların kalemleri sana gösterilmez.

  1. GET /orders/new – sisteminin henüz onaylamadığı ödenmiş siparişler, en eskisi önce. Bir sipariş sen onaylayana kadar orada kalır; bir yanıt kaybolursa bir sonraki çağrıda yeniden gelir.
  2. POST /orders/{id}/acknowledge – sistemin siparişi aldı. POST /orders/acknowledge ile bir seferde en fazla 100.
  3. Kargo firması ve takip numarasıyla POST /orders/{id}/fulfill – kalemler “Versendet” (kargoya verildi) olur ve alıcı takip bağlantısını içeren bir e-posta alır.
  4. GET /orders?geaendert_seit=… – sonradan gerçekleşen iptaller ve iadeler. Son geaendert_am değerini sakla ve biraz örtüşmeyle yeniden sor.
POST /api/v1/orders/1042/fulfill
{
  "versanddienstleister": "DHL",
  "sendungsnummer": "00340434161234567890"
}
  • {id}, eveyamin sipariş kimliği veya sipariş numarasıdır (bestellnummer).
  • Kargo firmaları: DHL, DPD, Hermes, GLS, UPS, Deutsche Post veya Sonstige (diğer – o zaman kendi tracking_url adresinle).
  • Birden fazla koli: her takip numarası için bir çağrı, kolinin positionen değeriyle. Aynı takip numarası yeniden gönderilirse hiçbir şey değişmez ve ikinci bir e-posta gitmez.
  • Teslimat adresinde ad, adres ve telefon vardır, ancak e-posta adresi yoktur: alıcıyla eveyamin iletişim kurar.
Dropshipping: tedarikçine yalnızca bestellungen:lesen ve bestellungen:versenden yetkilerine sahip kendi anahtarını ver. Böylece ne ürünleri ne de stoku görür. Alıcı verilerini nasıl kullandığı dahil, tedarikçinden sen sorumlu kalırsın – bkz. Şartlar ve Koşullar ve Gizlilik Politikası.

Test ortamı

Geliştirme için https://staging--eveyamin.netlify.app adresinde bir test ortamı vardır. Kendi verileri ve kendi anahtarları (evy_test_…) vardır ve alıcılara e-posta göndermez.

  1. https://staging--eveyamin.netlify.app adresinde kaydol ve info@eveyamin.com adresine yaz – hesabını test mağazası olarak ayarlarız.
  2. Orada Ayarlar → API erişimi altında bir test anahtarı oluştur.
  3. API üzerinden ürün oluştur ve test siparişleri ver.
Test siparişi
curl -X POST https://staging--eveyamin.netlify.app/api/v1/sandbox/orders \
  -H "Authorization: Bearer evy_test_…"

POST /sandbox/orders varyantlarından biri için ödenmiş bir sipariş oluşturur – gövde olmadan stoğu olan ilk varyant için ya da belirli olarak {"positionen": [{"sku": "…", "menge": 2}]} ile. Alıcı hayali Erika Mustermann'dır. Sipariş, gerçek bir siparişin geçtiği her adımdan geçer: /orders/new, onaylama, gönderiyi bildirme. Saatte en fazla 30. Aynı düğme test ortamında API erişimi altında da var; canlı mağazada böyle bir çağrı yoktur.

Test ortamı bir arşiv değildir: verileri her an sıfırlanabilir.

Hatalar

Hatalar her zaman aynı biçimdedir:

{
  "fehler": [
    {
      "code": "colorUnknown",
      "feld": "varianten[1].farbe",
      "nachricht": "Unbekannte Farbe „Weis“. Meintest du „Weiß“?"
    }
  ]
}

code değerini değerlendir: kalıcıdır ve İngilizcedir. nachricht (mesaj) Almancadır ve değişebilir; feld (alan) ilgili alanın JSON yoludur ya da null.

DurumAnlamı
200 / 201Tamam; yeni oluşturulan bir ürün veya test siparişi için 201
202Kabul edildi, görseller hâlâ yükleniyor (iş)
400Geçerli bir JSON değil veya parametreler geçersiz
401Anahtar yok ya da geçersiz veya iptal edilmiş
403Yetki eksik veya mağaza henüz onaylanmadı
404Bulunamadı – ya da senin değil
409Bir anahtar veya durumla çakışma (örn. Übergeordnete SKU zaten kullanımda)
422Geçersiz gövde
429Çok fazla istek
500 / 503Bizim tarafımızda hata veya kısa süreli kesinti – daha sonra tekrar dene

Her çağrı

KodDurumAnlamı
invalidJson400İstek gövdesi geçerli bir JSON değil.
invalidQuery400seite, pro_seite veya geaendert_seit geçersiz.
keyMissing401Authorization: Bearer … başlığında anahtar yok.
keyInvalid401Anahtar bilinmiyor veya iptal edilmiş ya da hesap etkin değil.
keyWrongEnvironment401Canlı mağazada bir test anahtarı ya da tam tersi.
scopeMissing403Anahtarın bu çağrı için gereken yetkisi yok.
registrationNotApproved403Mağaza kaydı henüz onaylanmadı (siparişler: mağaza henüz yayında değil).
apiNotEnabled403API mağazan için henüz etkinleştirilmedi.
notFound404Bilinmeyen yol.
bodyTooLarge413İstek çok büyük.
rateLimited429Çok fazla istek; Retry-After kaç saniye diyorsa o kadar bekle.
internal500Bizim tarafımızda beklenmeyen bir hata; daha sonra tekrar dene.
unavailable503Hizmet kısa süreliğine kullanılamıyor; Retry-After süresinden sonra tekrar dene.

Ürünler

KodDurumAnlamı
productNotFound404Sana ait böyle bir ürün yok.
jobNotFound404Sana ait böyle bir iş yok.
productExists409Übergeordnete SKU zaten var; yanıt ürünü belirtir. PUT kullan.
productArchived409Ürün arşivlenmiş; kontrol panelinden geri yükle.
productBlocked409Ürün engellenmiş ve değiştirilemez.
productMeterware409Metre ile satılan ürünler henüz API'de yok.
parentSkuDuplicate409Bu Übergeordnete SKU'yu zaten kullanıyorsun.
imagesFailed422Ürünün hiçbir görseli yüklenemedi.
writeFailed500Ürün kaydedilemedi; daha sonra tekrar dene.
tooManyVariants422İzin verilenden fazla varyant.
invalidValue422Bir değerin biçimi yanlış.

Stok

KodDurumAnlamı
invalidBody422{ "positionen": [ … ] } bekleniyor (ya da çağrının biçimi).
noLines422positionen boş.
tooManyLines422Çok fazla satır; birkaç isteğe böl.
busy503Stok şu anda başka bir yerde değiştiriliyor; hiçbir şey kaydedilmedi, tekrar dene.
invalidLinesatırdaSatır bir nesne değil.
identifierMissingsatırdaNe sku ne de produkt + farbe + groesse var.
stockInvalidsatırdalagerbestand izin verilen bir tam sayı değil.
standInvalidsatırdastand saat dilimi içeren bir ISO 8601 zamanı değil.
standInFuturesatırdastand gelecekte.
variantNotFoundsatırdaEşleşen etkin bir varyant yok.
keyMismatchsatırdaSKU, satırın diğer değerlerinden farklı bir kombinasyona ait.
duplicateLinesatırdaAynı varyant daha önceki bir satırda zaten var.

Siparişler ve gönderim

KodDurumAnlamı
orderNotFound404Senin kalemlerini içeren böyle ödenmiş bir sipariş yok.
noEntries422bestellungen boş.
tooManyEntries422Tek istekte çok fazla sipariş.
invalidEntrysatırdaNe sipariş kimliği ne de sipariş numarası.
orderNotShippable409Yalnızca ödenmiş siparişler gönderilebilir.
nothingToShip409Kalemlerinden hiçbiri artık “In Bearbeitung” (işleniyor) durumunda değil.
invalidCarrier422Bilinmeyen kargo firması.
invalidTrackingNumber422Takip numarası: A–Z, 0–9 ve - karakterlerinden 4–40 karakter.
invalidTrackingUrl422tracking_url bir https bağlantısı değil.
lineNotFound422Bu siparişteki kalemlerinden hiçbiri bu kimliğe sahip değil.
lineNotShippable422Kalem artık “In Bearbeitung” durumunda değil.
lineInOtherShipment422Kalem zaten başka bir takip numarasıyla gönderildi.

Test ortamı

KodDurumAnlamı
noStock422Test siparişi için stoğu olan bir varyant yok.
sandboxLimit429Son bir saatte çok fazla test siparişi.

Uyarılar

KodDurumAnlamı
stockIgnoreduyarıSatıştaki bir varyantın stoğu alınmadı; bunun için stok çağrısını kullan.
valueMappeduyarıDeğer, eşleştirmen üzerinden alındı.

Ürün kontrolleri

Ürünler CSV içe aktarımındaki gibi kontrol edilir. Bu kodlar fehler içinde (anahtar çakışmalarında 409, aksi halde 422) veya uyarı olarak gelir. Mesajların kendisi Almancadır; burada Türkçeleri verilmiştir:

KodDurumAnlamı
required422“…” zorunlu bir alandır.
tooLong422“…” çok uzun (en fazla … karakter).
tooShort422“…” çok kısa (en az … karakter).
numberInvalid422“…” geçerli bir sayı değil.
priceRange422“…”, … ile … arasında değil.
stockInvalid422“…” geçerli bir stok değil (0 ile … arasında tam sayı).
categoryUnknown422Bilinmeyen kategori “…”.
categoryIncomplete422“…” kategorisi eksik – lütfen en alt seviyeye kadar belirt.
categoryNotOffered422“…” kategorisi artık sunulmuyor.
colorUnknown422Bilinmeyen renk “…”.
sizeUnknown422Bilinmeyen beden “…”.
sizeNotInCategory422“…” bedeni “…” kategorisinde sunulmuyor.
duplicateCombination422… kombinasyonu zaten ⁦varianten[…]⁩ içinde var.
priceVariesByColor422… için fiyat ⁦varianten[…]⁩ değerinden farklı. Fiyatlar yalnızca bedene göre değişebilir, renge göre değil.
discountAboveBase422İndirimli fiyat (… €) en düşük fiyatın (… €) üzerinde.
imageUrlInvalid422“…” geçerli bir görsel adresi değil (https://…).
tooManyImages422… görsel – ürün başına en fazla ….
noImages422Lütfen her ürün için en az bir görsel URL’si gir.
skuDuplicateInFile422“…” SKU’su zaten ⁦varianten[…]⁩ içinde kullanılıyor.
skuTaken409“…” SKU’su zaten başka bir ürününe ait.
eanInvalid422“…” geçerli bir EAN değil (geçerli kontrol basamaklı 8, 12, 13 veya 14 rakam).
ambiguousMatch409“…” birden fazla mevcut ürünle eşleşiyor (ürün numarası …).
parentSkuLocked409… ürününün zaten “…” Übergeordnete SKU’su var. Mevcut bir Übergeordnete SKU’yu ürün formunda değiştirebilirsin.
parentSkuOfOther409“…” zaten … ürününe ait, ancak eveyamin-Artikelnummer … ürününe ait. Lütfen başka bir Übergeordnete SKU kullan.
categoryFixeduyarıKategori “…” olarak alındı.
colorFixeduyarı“…” rengi “…” olarak alındı.
sizeFixeduyarı“…” bedeni “…” olarak alındı.
imageFaileduyarıGörsel alınmadı (…): …

Referans

Her çağrı, parametreleri ve alanlarıyla birlikte, doğrudan arayüzün kendisinden üretilir; açıklamalar API gibi Almancadır. Postman, Insomnia veya kod üreticileri için OpenAPI dosyası var.

Allgemein

Schlüssel prüfen und die deutschen Werte des Shops abrufen.

GET/api/v1/ping

Schlüssel prüfen

Antwortet mit dem Händler und den Berechtigungen des Schlüssels.

Yetki: geçerli herhangi bir anahtar

Yanıtlar

  • 200 Der Schlüssel gilt. – Ping
    AlanTürZorunluAçıklama
    oktrueevet
    umgebungstringevetlive = Shop, test = Testumgebung.Değerler: live, test
    haendler_idstringevetDeine Händler-ID bei eveyamin.
    schluesselobjectevet
    schluessel.namestringevet
    schluessel.praefixstringevetAnfang des Schlüssels, z. B. evy_live_Ab3x.
    schluessel.berechtigungenstring[]evetDeğerler: produkte:schreiben, bestand:schreiben, bestellungen:lesen, bestellungen:versenden
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
GET/api/v1/taxonomy

Kategorien, Größen und Farben

Die Werte, die Produkte und Bestand verwenden – zum Zuordnen der eigenen Werte. Dieselben Listen wie in der Import-Vorlage.

Yetki: geçerli herhangi bir anahtar

Yanıtlar

  • 200 Die aktuellen Listen. – Taxonomie
    AlanTürZorunluAçıklama
    kategorienobject[]evetJede Kategorie, unter der ein Produkt stehen kann.
    kategorien[].pfadstringevetVollständiger Kategoriepfad, mit „ > “ getrennt, z. B. „eve-Home > Bettwäsche > Bettwäsche-Sets“.
    kategorien[].groessenstring[]evetGrößen, die diese Kategorie anbietet.
    farbenstring[]evetAlle Farben, z. B. „Weiß“ oder „Ohne Farbe“.
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.

Produkte

Produkte anlegen, ersetzen, lesen und archivieren (WP2).

POST/api/v1/products

Produkt anlegen

Ein Produkt mit allen Farbe-×-Größe-Kombinationen (varianten, höchstens 500), geprüft nach denselben Regeln wie der Katalog-Import und das Produktformular, mit denselben Fehlercodes. Den Bestand bestehender Kombinationen ändert nur PATCH /products/{id}/stock: ein abweichender lagerbestand bleibt unberücksichtigt (Hinweis stockIgnored); neue Produkte und neue Kombinationen übernehmen ihn. Fehlende Kombinationen werden archiviert. Fehlen sku oder ean bei einer Variante, bleiben die gespeicherten. Bilder werden zu eveyamin geladen; eine schon geladene Adresse wird nicht erneut geladen, ein geändertes Bild braucht also eine neue Adresse. Dauert das Laden zu lange, antwortet der Aufruf mit 202 und einem Auftrag (/jobs/{id}); das Produkt wird geschrieben, sobald die Bilder da sind. Ein unverändertes Produkt wird nicht geschrieben und nicht neu übersetzt (unveraendert). Neue und geänderte Titel und Beschreibungen werden übersetzt, bevor das Produkt sichtbar wird. uebergeordnete_sku ist hier Pflicht; gibt es sie schon: 409 productExists mit dem Produkt.

Yetki: produkte:schreiben

Gövde – ProduktAnfrage
AlanTürZorunluAçıklama
uebergeordnete_skustring | nullhayırDeine Produktnummer, eindeutig in deinem Shop, max. 100 Zeichen. Pflicht beim Anlegen.
titelstringevetMax. 100 Zeichen.
beschreibungstringevet10 bis 10.000 Zeichen.
kategoriestringevetVollständiger Pfad, z. B. „eve-Home > Bettwäsche > Bettwäsche-Sets“ (siehe /taxonomy).
rabattpreisnumber | string | nullhayır
versandkostennumber | string | nullhayır
variantenProduktVarianteEingabe[]evet
varianten[].farbestringevetFarbe wie im Shop, z. B. „Weiß“ (siehe /taxonomy).
varianten[].groessestringevetGröße aus der Größenliste der Kategorie, z. B. „M“ oder „200 x 200 cm“.
varianten[].preisnumber | stringevetPreis dieser Variante in EUR, brutto. Preise dürfen sich nur je Größe unterscheiden; der niedrigste ist der Grundpreis.
varianten[].lagerbestandnumber | stringevetBestand, 0 bis 10.000. Gilt nur für neue Produkte und neue Kombinationen; den Bestand bestehender Kombinationen änderst du über /products/{id}/stock.
varianten[].skustring | nullhayırDeine SKU dieser Kombination, eindeutig in deinem Shop, max. 64 Zeichen.
varianten[].eanstring | nullhayırEAN / GTIN (8, 12, 13 oder 14 Ziffern mit Prüfziffer). Fehlt der Schlüssel, bleibt die gespeicherte EAN; null löscht sie.
varianten[].bild_urlsstring[]hayırÖffentliche https-Bildadressen. Ein Bild nur bei Varianten bestimmter Farben gehört zu diesen Farben, eines bei allen Farben gilt für alle; stehen alle Bilder nur bei einer Farbe (z. B. nur bei der ersten Variante), gelten sie für alle. Bekannte Adressen werden nicht neu geladen – ein geändertes Bild braucht eine neue Adresse.

Yanıtlar

  • 201 Angelegt (Location: /api/v1/products/{id}). – ProduktErgebnis
    AlanTürZorunluAçıklama
    ergebnisstringevetunveraendert: Das Produkt war schon so; nichts wurde geschrieben oder neu übersetzt.Değerler: angelegt, aktualisiert, unveraendert
    produktProduktevet
    produkt.idstringeveteveyamin-Produkt-ID.
    produkt.artikelnummerstringeveteveyamin-Artikelnummer.
    produkt.uebergeordnete_skustring | nullevet
    produkt.statusstringevetNeue und geänderte Texte werden erst übersetzt; ohne eingerichteten Zahlungsanbieter bleibt das Produkt verborgen.Değerler: Aktiv, Wird übersetzt, Wartet auf Zahlungsanbieter, Gesperrt, Archiviert
    produkt.titelstringevet
    produkt.beschreibungstringevet
    produkt.kategoriestringevet
    produkt.rabattpreisnumber | nullevet
    produkt.versandkostennumber | nullevet
    produkt.geaendert_amstringevetLetzte Änderung am Produkt, auch am Bestand. ISO 8601, UTC.
    produkt.variantenobject[]evet
    produkt.varianten[].variant_idstringevet
    produkt.varianten[].farbestringevet
    produkt.varianten[].groessestringevet
    produkt.varianten[].preisnumberevet
    produkt.varianten[].lagerbestandintegerevetGespeicherter, kaufbarer Bestand. (-9007199254740991–9007199254740991)
    produkt.varianten[].skustring | nullevet
    produkt.varianten[].eanstring | nullevet
    produkt.varianten[].bild_urlsstring[]evetDie Bilder dieser Farbe, bei eveyamin gespeichert.
    hinweiseobject[]evetZ. B. korrigierte Schreibweisen, nicht geladene Bilder, ignorierter Bestand.
    hinweise[].codestringevet
    hinweise[].feldstring | nullevet
    hinweise[].nachrichtstringevet
  • 202 Die Bilder werden noch geladen (Location: /api/v1/jobs/{id}). – ProduktInArbeit
    AlanTürZorunluAçıklama
    ergebnis"in_arbeit"evet
    auftragAuftragevet
    auftrag.idstringevet
    auftrag.statusstringevetersetzt: Eine neuere Anfrage für dasselbe Produkt kam dazwischen; dieser Auftrag wird nicht mehr geschrieben.Değerler: wartet, in_arbeit, fertig, fehlgeschlagen, ersetzt
    auftrag.aktionstringevetDeğerler: anlegen, aktualisieren
    auftrag.schluesselstringevetÜbergeordnete SKU des Produkts, oder seine Artikelnummer, wenn es keine hat.
    auftrag.bilderobjectevet
    auftrag.bilder.gesamtintegerevet(-9007199254740991–9007199254740991)
    auftrag.bilder.geladenintegerevet(-9007199254740991–9007199254740991)
    auftrag.bilder.fehlgeschlagenintegerevet(-9007199254740991–9007199254740991)
    auftrag.produktobject | nullevetSobald das Produkt geschrieben ist.
    auftrag.produkt.idstringevet
    auftrag.produkt.artikelnummerstringevet
    auftrag.produkt.uebergeordnete_skustring | nullevet
    auftrag.produkt.statusstringevetDeğerler: Aktiv, Wird übersetzt, Wartet auf Zahlungsanbieter, Gesperrt, Archiviert
    auftrag.fehlerstring | nullevetWarum der Auftrag fehlgeschlagen ist.
    auftrag.hinweiseobject[]evet
    auftrag.hinweise[].codestringevet
    auftrag.hinweise[].feldstring | nullevet
    auftrag.hinweise[].nachrichtstringevet
    auftrag.erstellt_amstringevetEingang der Anfrage. ISO 8601, UTC.
    auftrag.abgeschlossen_amstring | nullevet
    hinweiseobject[]evet
    hinweise[].codestringevet
    hinweise[].feldstring | nullevet
    hinweise[].nachrichtstringevet
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 409 Schlüssel- oder Zustandskonflikt: productExists, productArchived, productBlocked, productMeterware, skuTaken, parentSkuLocked, parentSkuOfOther, ambiguousMatch.
  • 422 Ungültige Angaben, mit den Codes des Katalog-Imports (z. B. required, colorUnknown, sizeNotInCategory, priceVariesByColor, noImages, eanInvalid) und dem JSON-Pfad in feld.
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
GET/api/v1/products

Produkte

Deine Produkte, älteste Änderung zuerst, auch archivierte (status Archiviert), damit dein System Löschungen sieht. Meterware fehlt. Mit geaendert_seit nur seither geänderte – auch Bestandsänderungen zählen.

Yetki: produkte:schreiben

Parametreler

AlanTürZorunluAçıklama
seite (query)integerhayırSeite, ab 1.
pro_seite (query)integerhayırProdukte pro Seite, höchstens 100.
geaendert_seit (query)string (date-time)hayırNur Produkte, die danach geändert wurden (ISO 8601 mit Zeitzone).

Yanıtlar

  • 200 Eine Seite Produkte. – ProduktListe
    AlanTürZorunluAçıklama
    seiteintegerevet(-9007199254740991–9007199254740991)
    pro_seiteintegerevet(-9007199254740991–9007199254740991)
    gesamtintegerevetProdukte insgesamt (mit geaendert_seit: seither geänderte). (-9007199254740991–9007199254740991)
    produkteProdukt[]evet
    produkte[].idstringeveteveyamin-Produkt-ID.
    produkte[].artikelnummerstringeveteveyamin-Artikelnummer.
    produkte[].uebergeordnete_skustring | nullevet
    produkte[].statusstringevetNeue und geänderte Texte werden erst übersetzt; ohne eingerichteten Zahlungsanbieter bleibt das Produkt verborgen.Değerler: Aktiv, Wird übersetzt, Wartet auf Zahlungsanbieter, Gesperrt, Archiviert
    produkte[].titelstringevet
    produkte[].beschreibungstringevet
    produkte[].kategoriestringevet
    produkte[].rabattpreisnumber | nullevet
    produkte[].versandkostennumber | nullevet
    produkte[].geaendert_amstringevetLetzte Änderung am Produkt, auch am Bestand. ISO 8601, UTC.
    produkte[].variantenobject[]evet
    produkte[].varianten[].variant_idstringevet
    produkte[].varianten[].farbestringevet
    produkte[].varianten[].groessestringevet
    produkte[].varianten[].preisnumberevet
    produkte[].varianten[].lagerbestandintegerevetGespeicherter, kaufbarer Bestand. (-9007199254740991–9007199254740991)
    produkte[].varianten[].skustring | nullevet
    produkte[].varianten[].eanstring | nullevet
    produkte[].varianten[].bild_urlsstring[]evetDie Bilder dieser Farbe, bei eveyamin gespeichert.
  • 400 geaendert_seit, seite oder pro_seite ungültig (invalidQuery).
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
GET/api/v1/products/{id}

Ein Produkt

In der Form, die PUT annimmt: den Inhalt kannst du unverändert zurückschicken (dann: unveraendert).

Yetki: produkte:schreiben

Parametreler

AlanTürZorunluAçıklama
id (path)stringeveteveyamin-Produkt-ID, Übergeordnete SKU oder Artikelnummer.

Yanıtlar

  • 200 Das Produkt. – Produkt
    AlanTürZorunluAçıklama
    idstringeveteveyamin-Produkt-ID.
    artikelnummerstringeveteveyamin-Artikelnummer.
    uebergeordnete_skustring | nullevet
    statusstringevetNeue und geänderte Texte werden erst übersetzt; ohne eingerichteten Zahlungsanbieter bleibt das Produkt verborgen.Değerler: Aktiv, Wird übersetzt, Wartet auf Zahlungsanbieter, Gesperrt, Archiviert
    titelstringevet
    beschreibungstringevet
    kategoriestringevet
    rabattpreisnumber | nullevet
    versandkostennumber | nullevet
    geaendert_amstringevetLetzte Änderung am Produkt, auch am Bestand. ISO 8601, UTC.
    variantenobject[]evet
    varianten[].variant_idstringevet
    varianten[].farbestringevet
    varianten[].groessestringevet
    varianten[].preisnumberevet
    varianten[].lagerbestandintegerevetGespeicherter, kaufbarer Bestand. (-9007199254740991–9007199254740991)
    varianten[].skustring | nullevet
    varianten[].eanstring | nullevet
    varianten[].bild_urlsstring[]evetDie Bilder dieser Farbe, bei eveyamin gespeichert.
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 404 Kein solches Produkt von dir (productNotFound).
  • 409 Meterware wird über die API noch nicht unterstützt (productMeterware).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
PUT/api/v1/products/{id}

Produkt ersetzen

Ein Produkt mit allen Farbe-×-Größe-Kombinationen (varianten, höchstens 500), geprüft nach denselben Regeln wie der Katalog-Import und das Produktformular, mit denselben Fehlercodes. Den Bestand bestehender Kombinationen ändert nur PATCH /products/{id}/stock: ein abweichender lagerbestand bleibt unberücksichtigt (Hinweis stockIgnored); neue Produkte und neue Kombinationen übernehmen ihn. Fehlende Kombinationen werden archiviert. Fehlen sku oder ean bei einer Variante, bleiben die gespeicherten. Bilder werden zu eveyamin geladen; eine schon geladene Adresse wird nicht erneut geladen, ein geändertes Bild braucht also eine neue Adresse. Dauert das Laden zu lange, antwortet der Aufruf mit 202 und einem Auftrag (/jobs/{id}); das Produkt wird geschrieben, sobald die Bilder da sind. Ein unverändertes Produkt wird nicht geschrieben und nicht neu übersetzt (unveraendert). Neue und geänderte Titel und Beschreibungen werden übersetzt, bevor das Produkt sichtbar wird. Gibt es {id} noch nicht und ist es die uebergeordnete_sku des Inhalts, wird das Produkt angelegt. Ein Produkt ohne Übergeordnete SKU bekommt sie über seine Artikelnummer als {id}; eine vorhandene ändert nur das Produktformular.

Yetki: produkte:schreiben

Parametreler

AlanTürZorunluAçıklama
id (path)stringeveteveyamin-Produkt-ID, Übergeordnete SKU oder Artikelnummer.
Gövde – ProduktAnfrage
AlanTürZorunluAçıklama
uebergeordnete_skustring | nullhayırDeine Produktnummer, eindeutig in deinem Shop, max. 100 Zeichen. Pflicht beim Anlegen.
titelstringevetMax. 100 Zeichen.
beschreibungstringevet10 bis 10.000 Zeichen.
kategoriestringevetVollständiger Pfad, z. B. „eve-Home > Bettwäsche > Bettwäsche-Sets“ (siehe /taxonomy).
rabattpreisnumber | string | nullhayır
versandkostennumber | string | nullhayır
variantenProduktVarianteEingabe[]evet
varianten[].farbestringevetFarbe wie im Shop, z. B. „Weiß“ (siehe /taxonomy).
varianten[].groessestringevetGröße aus der Größenliste der Kategorie, z. B. „M“ oder „200 x 200 cm“.
varianten[].preisnumber | stringevetPreis dieser Variante in EUR, brutto. Preise dürfen sich nur je Größe unterscheiden; der niedrigste ist der Grundpreis.
varianten[].lagerbestandnumber | stringevetBestand, 0 bis 10.000. Gilt nur für neue Produkte und neue Kombinationen; den Bestand bestehender Kombinationen änderst du über /products/{id}/stock.
varianten[].skustring | nullhayırDeine SKU dieser Kombination, eindeutig in deinem Shop, max. 64 Zeichen.
varianten[].eanstring | nullhayırEAN / GTIN (8, 12, 13 oder 14 Ziffern mit Prüfziffer). Fehlt der Schlüssel, bleibt die gespeicherte EAN; null löscht sie.
varianten[].bild_urlsstring[]hayırÖffentliche https-Bildadressen. Ein Bild nur bei Varianten bestimmter Farben gehört zu diesen Farben, eines bei allen Farben gilt für alle; stehen alle Bilder nur bei einer Farbe (z. B. nur bei der ersten Variante), gelten sie für alle. Bekannte Adressen werden nicht neu geladen – ein geändertes Bild braucht eine neue Adresse.

Yanıtlar

  • 200 Aktualisiert, oder unveraendert. – ProduktErgebnis
    AlanTürZorunluAçıklama
    ergebnisstringevetunveraendert: Das Produkt war schon so; nichts wurde geschrieben oder neu übersetzt.Değerler: angelegt, aktualisiert, unveraendert
    produktProduktevet
    produkt.idstringeveteveyamin-Produkt-ID.
    produkt.artikelnummerstringeveteveyamin-Artikelnummer.
    produkt.uebergeordnete_skustring | nullevet
    produkt.statusstringevetNeue und geänderte Texte werden erst übersetzt; ohne eingerichteten Zahlungsanbieter bleibt das Produkt verborgen.Değerler: Aktiv, Wird übersetzt, Wartet auf Zahlungsanbieter, Gesperrt, Archiviert
    produkt.titelstringevet
    produkt.beschreibungstringevet
    produkt.kategoriestringevet
    produkt.rabattpreisnumber | nullevet
    produkt.versandkostennumber | nullevet
    produkt.geaendert_amstringevetLetzte Änderung am Produkt, auch am Bestand. ISO 8601, UTC.
    produkt.variantenobject[]evet
    produkt.varianten[].variant_idstringevet
    produkt.varianten[].farbestringevet
    produkt.varianten[].groessestringevet
    produkt.varianten[].preisnumberevet
    produkt.varianten[].lagerbestandintegerevetGespeicherter, kaufbarer Bestand. (-9007199254740991–9007199254740991)
    produkt.varianten[].skustring | nullevet
    produkt.varianten[].eanstring | nullevet
    produkt.varianten[].bild_urlsstring[]evetDie Bilder dieser Farbe, bei eveyamin gespeichert.
    hinweiseobject[]evetZ. B. korrigierte Schreibweisen, nicht geladene Bilder, ignorierter Bestand.
    hinweise[].codestringevet
    hinweise[].feldstring | nullevet
    hinweise[].nachrichtstringevet
  • 201 Angelegt. – ProduktErgebnis
    AlanTürZorunluAçıklama
    ergebnisstringevetunveraendert: Das Produkt war schon so; nichts wurde geschrieben oder neu übersetzt.Değerler: angelegt, aktualisiert, unveraendert
    produktProduktevet
    produkt.idstringeveteveyamin-Produkt-ID.
    produkt.artikelnummerstringeveteveyamin-Artikelnummer.
    produkt.uebergeordnete_skustring | nullevet
    produkt.statusstringevetNeue und geänderte Texte werden erst übersetzt; ohne eingerichteten Zahlungsanbieter bleibt das Produkt verborgen.Değerler: Aktiv, Wird übersetzt, Wartet auf Zahlungsanbieter, Gesperrt, Archiviert
    produkt.titelstringevet
    produkt.beschreibungstringevet
    produkt.kategoriestringevet
    produkt.rabattpreisnumber | nullevet
    produkt.versandkostennumber | nullevet
    produkt.geaendert_amstringevetLetzte Änderung am Produkt, auch am Bestand. ISO 8601, UTC.
    produkt.variantenobject[]evet
    produkt.varianten[].variant_idstringevet
    produkt.varianten[].farbestringevet
    produkt.varianten[].groessestringevet
    produkt.varianten[].preisnumberevet
    produkt.varianten[].lagerbestandintegerevetGespeicherter, kaufbarer Bestand. (-9007199254740991–9007199254740991)
    produkt.varianten[].skustring | nullevet
    produkt.varianten[].eanstring | nullevet
    produkt.varianten[].bild_urlsstring[]evetDie Bilder dieser Farbe, bei eveyamin gespeichert.
    hinweiseobject[]evetZ. B. korrigierte Schreibweisen, nicht geladene Bilder, ignorierter Bestand.
    hinweise[].codestringevet
    hinweise[].feldstring | nullevet
    hinweise[].nachrichtstringevet
  • 202 Die Bilder werden noch geladen (Location: /api/v1/jobs/{id}). – ProduktInArbeit
    AlanTürZorunluAçıklama
    ergebnis"in_arbeit"evet
    auftragAuftragevet
    auftrag.idstringevet
    auftrag.statusstringevetersetzt: Eine neuere Anfrage für dasselbe Produkt kam dazwischen; dieser Auftrag wird nicht mehr geschrieben.Değerler: wartet, in_arbeit, fertig, fehlgeschlagen, ersetzt
    auftrag.aktionstringevetDeğerler: anlegen, aktualisieren
    auftrag.schluesselstringevetÜbergeordnete SKU des Produkts, oder seine Artikelnummer, wenn es keine hat.
    auftrag.bilderobjectevet
    auftrag.bilder.gesamtintegerevet(-9007199254740991–9007199254740991)
    auftrag.bilder.geladenintegerevet(-9007199254740991–9007199254740991)
    auftrag.bilder.fehlgeschlagenintegerevet(-9007199254740991–9007199254740991)
    auftrag.produktobject | nullevetSobald das Produkt geschrieben ist.
    auftrag.produkt.idstringevet
    auftrag.produkt.artikelnummerstringevet
    auftrag.produkt.uebergeordnete_skustring | nullevet
    auftrag.produkt.statusstringevetDeğerler: Aktiv, Wird übersetzt, Wartet auf Zahlungsanbieter, Gesperrt, Archiviert
    auftrag.fehlerstring | nullevetWarum der Auftrag fehlgeschlagen ist.
    auftrag.hinweiseobject[]evet
    auftrag.hinweise[].codestringevet
    auftrag.hinweise[].feldstring | nullevet
    auftrag.hinweise[].nachrichtstringevet
    auftrag.erstellt_amstringevetEingang der Anfrage. ISO 8601, UTC.
    auftrag.abgeschlossen_amstring | nullevet
    hinweiseobject[]evet
    hinweise[].codestringevet
    hinweise[].feldstring | nullevet
    hinweise[].nachrichtstringevet
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 404 Kein solches Produkt von dir, und der Inhalt nennt {id} nicht als uebergeordnete_sku (productNotFound).
  • 409 Schlüssel- oder Zustandskonflikt: productExists, productArchived, productBlocked, productMeterware, skuTaken, parentSkuLocked, parentSkuOfOther, ambiguousMatch.
  • 422 Ungültige Angaben, mit den Codes des Katalog-Imports (z. B. required, colorUnknown, sizeNotInCategory, priceVariesByColor, noImages, eanInvalid) und dem JSON-Pfad in feld.
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
DELETE/api/v1/products/{id}

Produkt archivieren

Archiviert das Produkt; es wird nicht gelöscht und kann im Dashboard wiederhergestellt werden. Wiederholbar (bereits_archiviert).

Yetki: produkte:schreiben

Parametreler

AlanTürZorunluAçıklama
id (path)stringeveteveyamin-Produkt-ID, Übergeordnete SKU oder Artikelnummer.

Yanıtlar

  • 200 Archiviert. – ProduktArchiviert
    AlanTürZorunluAçıklama
    ergebnisstringevetDeğerler: archiviert, bereits_archiviert
    produktobjectevet
    produkt.idstringevet
    produkt.artikelnummerstringevet
    produkt.uebergeordnete_skustring | nullevet
    produkt.statusstringevetDeğerler: Aktiv, Wird übersetzt, Wartet auf Zahlungsanbieter, Gesperrt, Archiviert
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 404 Kein solches Produkt von dir (productNotFound).
  • 409 Das Produkt ist gesperrt (productBlocked).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
GET/api/v1/jobs/{id}

Auftrag

Stand eines Produktaufrufs, der mit 202 geantwortet hat: wartet, in_arbeit, fertig (mit dem Produkt), fehlgeschlagen (mit dem Grund) oder ersetzt (eine neuere Anfrage für dasselbe Produkt kam dazwischen).

Yetki: produkte:schreiben

Parametreler

AlanTürZorunluAçıklama
id (path)stringevetAuftrags-ID aus der 202-Antwort.

Yanıtlar

  • 200 Der Auftrag. – Auftrag
    AlanTürZorunluAçıklama
    idstringevet
    statusstringevetersetzt: Eine neuere Anfrage für dasselbe Produkt kam dazwischen; dieser Auftrag wird nicht mehr geschrieben.Değerler: wartet, in_arbeit, fertig, fehlgeschlagen, ersetzt
    aktionstringevetDeğerler: anlegen, aktualisieren
    schluesselstringevetÜbergeordnete SKU des Produkts, oder seine Artikelnummer, wenn es keine hat.
    bilderobjectevet
    bilder.gesamtintegerevet(-9007199254740991–9007199254740991)
    bilder.geladenintegerevet(-9007199254740991–9007199254740991)
    bilder.fehlgeschlagenintegerevet(-9007199254740991–9007199254740991)
    produktobject | nullevetSobald das Produkt geschrieben ist.
    produkt.idstringevet
    produkt.artikelnummerstringevet
    produkt.uebergeordnete_skustring | nullevet
    produkt.statusstringevetDeğerler: Aktiv, Wird übersetzt, Wartet auf Zahlungsanbieter, Gesperrt, Archiviert
    fehlerstring | nullevetWarum der Auftrag fehlgeschlagen ist.
    hinweiseobject[]evet
    hinweise[].codestringevet
    hinweise[].feldstring | nullevet
    hinweise[].nachrichtstringevet
    erstellt_amstringevetEingang der Anfrage. ISO 8601, UTC.
    abgeschlossen_amstring | nullevet
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 404 Kein solcher Auftrag von dir (jobNotFound).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.

Bestand

Bestand lesen und setzen, ohne das Produkt anzufassen (WP3).

GET/api/v1/stock

Bestand aller Varianten

Jede aktive Variante mit Artikelnummer, Übergeordneter SKU, SKU, Farbe, Größe, gespeichertem Bestand und offenen Stück – zum Zuordnen deiner Artikel und zum Abgleich. Meterware fehlt (noch nicht in der API).

Yetki: bestand:schreiben

Parametreler

AlanTürZorunluAçıklama
seite (query)integerhayırSeite, ab 1.
pro_seite (query)integerhayırVarianten pro Seite, höchstens 500.

Yanıtlar

  • 200 Eine Seite Varianten. – BestandListe
    AlanTürZorunluAçıklama
    seiteintegerevet(-9007199254740991–9007199254740991)
    pro_seiteintegerevet(-9007199254740991–9007199254740991)
    gesamtintegerevetVarianten insgesamt. (-9007199254740991–9007199254740991)
    positionenobject[]evet
    positionen[].produkt_idstringevet
    positionen[].artikelnummerstringevet
    positionen[].uebergeordnete_skustring | nullevet
    positionen[].skustring | nullevet
    positionen[].eanstring | nullevetEAN / GTIN der Variante, sonst null.
    positionen[].farbestringevet
    positionen[].groessestringevet
    positionen[].titelstringevet
    positionen[].lagerbestandintegerevetGespeicherter, kaufbarer Bestand. (-9007199254740991–9007199254740991)
    positionen[].offenintegerevetStück in offenen eveyamin-Bestellungen. (-9007199254740991–9007199254740991)
    positionen[].standstring | nullevetZuletzt übernommener stand.
    positionen[].gesperrtbooleanevetDas Produkt ist gesperrt; sein Bestand kann nicht geändert werden.
  • 400 seite oder pro_seite ungültig (invalidQuery).
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
PATCH/api/v1/stock

Bestand mehrerer Produkte setzen

Bis zu 500 Zeilen über alle Produkte, je über sku oder produkt + farbe + groesse. Gespeichert wird lagerbestand minus der Stück in offenen eveyamin-Bestellungen (reserviert, noch nicht erledigt und von deinem System noch nicht bestätigt), mindestens 0 – so werden Bestellungen, die dein System noch nicht kennt, nicht doppelt verkauft. Eine Bestellung, die du nach dem stand der Zeile bestätigt hast, zählt noch als offen: deine Zählung war älter. Sende daher stand mit. Jede Zeile hat ihr eigenes Ergebnis; eine fehlerhafte Zeile hält die anderen nicht auf. Unveränderte Werte werden nicht geschrieben.

Yetki: bestand:schreiben

Gövde – BestandAnfrage
AlanTürZorunluAçıklama
positionenBestandZeile[]evet
positionen[].skustringhayırDeine SKU der Variante. Alternativ: produkt + farbe + groesse.
positionen[].farbestringhayırFarbe wie im Shop, z. B. „Weiß“.
positionen[].groessestringhayırGröße wie im Shop, z. B. „M“ oder „200 x 200 cm“.
positionen[].lagerbestandintegerevetDein Bestand der Variante. Gespeichert wird dieser Wert abzüglich der offenen eveyamin-Bestellungen (siehe offen). (0–10000)
positionen[].standstring (date-time)hayırZeitpunkt deiner Zählung (ISO 8601 mit Zeitzone). Eine Zeile mit älterem stand als dem zuletzt übernommenen wird ignoriert (veraltet).
positionen[].produktstringhayıreveyamin-Produkt-ID, Übergeordnete SKU oder Artikelnummer.

Yanıtlar

  • 200 Ergebnis je Zeile. – BestandErgebnis
    AlanTürZorunluAçıklama
    zusammenfassungobjectevet
    zusammenfassung.okintegerevet(-9007199254740991–9007199254740991)
    zusammenfassung.unveraendertintegerevet(-9007199254740991–9007199254740991)
    zusammenfassung.veraltetintegerevet(-9007199254740991–9007199254740991)
    zusammenfassung.fehlerintegerevet(-9007199254740991–9007199254740991)
    positionenobject[]evet
    positionen[].zeileintegerevetIndex der Zeile in positionen, ab 0. (-9007199254740991–9007199254740991)
    positionen[].statusstringevetok = gespeichert, unveraendert = war schon so, veraltet = älterer stand, fehler = siehe fehler.Değerler: ok, unveraendert, veraltet, fehler
    positionen[].produkt_idstringhayır
    positionen[].artikelnummerstringhayır
    positionen[].uebergeordnete_skustring | nullhayır
    positionen[].skustring | nullhayır
    positionen[].eanstring | nullhayırEAN / GTIN der Variante, sonst null.
    positionen[].farbestringhayır
    positionen[].groessestringhayır
    positionen[].gesendetintegerhayırDein lagerbestand. (-9007199254740991–9007199254740991)
    positionen[].offenintegerhayırStück in offenen eveyamin-Bestellungen, die abgezogen wurden. (-9007199254740991–9007199254740991)
    positionen[].vorherintegerhayırGespeicherter Bestand vor dieser Anfrage. (-9007199254740991–9007199254740991)
    positionen[].lagerbestandintegerhayırGespeicherter Bestand jetzt: gesendet − offen, mindestens 0. (-9007199254740991–9007199254740991)
    positionen[].fehlerobjecthayır
    positionen[].fehler.codestringevet
    positionen[].fehler.feldstring | nullevet
    positionen[].fehler.nachrichtstringevet
    positionen[].hinweiseobject[]hayırZ. B. eine korrigierte Schreibweise.
    positionen[].hinweise[].codestringevet
    positionen[].hinweise[].feldstring | nullevet
    positionen[].hinweise[].nachrichtstringevet
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 422 Kein { positionen: [...] }, leer, oder mehr als 500 Zeilen.
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
  • 503 Der Bestand wird gerade an anderer Stelle geändert (busy); nichts wurde gespeichert, bitte wiederholen.
GET/api/v1/products/{id}/stock

Bestand eines Produkts

Yetki: bestand:schreiben

Parametreler

AlanTürZorunluAçıklama
id (path)stringeveteveyamin-Produkt-ID, Übergeordnete SKU oder Artikelnummer.
seite (query)integerhayırSeite, ab 1.
pro_seite (query)integerhayırVarianten pro Seite, höchstens 500.

Yanıtlar

  • 200 Die Varianten des Produkts. – BestandListe
    AlanTürZorunluAçıklama
    seiteintegerevet(-9007199254740991–9007199254740991)
    pro_seiteintegerevet(-9007199254740991–9007199254740991)
    gesamtintegerevetVarianten insgesamt. (-9007199254740991–9007199254740991)
    positionenobject[]evet
    positionen[].produkt_idstringevet
    positionen[].artikelnummerstringevet
    positionen[].uebergeordnete_skustring | nullevet
    positionen[].skustring | nullevet
    positionen[].eanstring | nullevetEAN / GTIN der Variante, sonst null.
    positionen[].farbestringevet
    positionen[].groessestringevet
    positionen[].titelstringevet
    positionen[].lagerbestandintegerevetGespeicherter, kaufbarer Bestand. (-9007199254740991–9007199254740991)
    positionen[].offenintegerevetStück in offenen eveyamin-Bestellungen. (-9007199254740991–9007199254740991)
    positionen[].standstring | nullevetZuletzt übernommener stand.
    positionen[].gesperrtbooleanevetDas Produkt ist gesperrt; sein Bestand kann nicht geändert werden.
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 404 Kein solches Produkt bei dir (productNotFound).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
PATCH/api/v1/products/{id}/stock

Bestand eines Produkts setzen

Zeilen dieses Produkts, je über sku oder farbe + groesse. Gespeichert wird lagerbestand minus der Stück in offenen eveyamin-Bestellungen (reserviert, noch nicht erledigt und von deinem System noch nicht bestätigt), mindestens 0 – so werden Bestellungen, die dein System noch nicht kennt, nicht doppelt verkauft. Eine Bestellung, die du nach dem stand der Zeile bestätigt hast, zählt noch als offen: deine Zählung war älter. Sende daher stand mit. Jede Zeile hat ihr eigenes Ergebnis; eine fehlerhafte Zeile hält die anderen nicht auf. Unveränderte Werte werden nicht geschrieben.

Yetki: bestand:schreiben

Parametreler

AlanTürZorunluAçıklama
id (path)stringeveteveyamin-Produkt-ID, Übergeordnete SKU oder Artikelnummer.
Gövde – ProduktBestandAnfrage
AlanTürZorunluAçıklama
positionenobject[]evet
positionen[].skustringhayırDeine SKU der Variante. Alternativ: produkt + farbe + groesse.
positionen[].farbestringhayırFarbe wie im Shop, z. B. „Weiß“.
positionen[].groessestringhayırGröße wie im Shop, z. B. „M“ oder „200 x 200 cm“.
positionen[].lagerbestandintegerevetDein Bestand der Variante. Gespeichert wird dieser Wert abzüglich der offenen eveyamin-Bestellungen (siehe offen). (0–10000)
positionen[].standstring (date-time)hayırZeitpunkt deiner Zählung (ISO 8601 mit Zeitzone). Eine Zeile mit älterem stand als dem zuletzt übernommenen wird ignoriert (veraltet).

Yanıtlar

  • 200 Ergebnis je Zeile. – BestandErgebnis
    AlanTürZorunluAçıklama
    zusammenfassungobjectevet
    zusammenfassung.okintegerevet(-9007199254740991–9007199254740991)
    zusammenfassung.unveraendertintegerevet(-9007199254740991–9007199254740991)
    zusammenfassung.veraltetintegerevet(-9007199254740991–9007199254740991)
    zusammenfassung.fehlerintegerevet(-9007199254740991–9007199254740991)
    positionenobject[]evet
    positionen[].zeileintegerevetIndex der Zeile in positionen, ab 0. (-9007199254740991–9007199254740991)
    positionen[].statusstringevetok = gespeichert, unveraendert = war schon so, veraltet = älterer stand, fehler = siehe fehler.Değerler: ok, unveraendert, veraltet, fehler
    positionen[].produkt_idstringhayır
    positionen[].artikelnummerstringhayır
    positionen[].uebergeordnete_skustring | nullhayır
    positionen[].skustring | nullhayır
    positionen[].eanstring | nullhayırEAN / GTIN der Variante, sonst null.
    positionen[].farbestringhayır
    positionen[].groessestringhayır
    positionen[].gesendetintegerhayırDein lagerbestand. (-9007199254740991–9007199254740991)
    positionen[].offenintegerhayırStück in offenen eveyamin-Bestellungen, die abgezogen wurden. (-9007199254740991–9007199254740991)
    positionen[].vorherintegerhayırGespeicherter Bestand vor dieser Anfrage. (-9007199254740991–9007199254740991)
    positionen[].lagerbestandintegerhayırGespeicherter Bestand jetzt: gesendet − offen, mindestens 0. (-9007199254740991–9007199254740991)
    positionen[].fehlerobjecthayır
    positionen[].fehler.codestringevet
    positionen[].fehler.feldstring | nullevet
    positionen[].fehler.nachrichtstringevet
    positionen[].hinweiseobject[]hayırZ. B. eine korrigierte Schreibweise.
    positionen[].hinweise[].codestringevet
    positionen[].hinweise[].feldstring | nullevet
    positionen[].hinweise[].nachrichtstringevet
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 404 Kein solches Produkt bei dir (productNotFound).
  • 422 Kein { positionen: [...] }, leer, oder mehr als 500 Zeilen.
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
  • 503 Der Bestand wird gerade an anderer Stelle geändert (busy); nichts wurde gespeichert, bitte wiederholen.

Bestellungen

Bezahlte Bestellungen abrufen und bestätigen (WP4).

GET/api/v1/orders/new

Neue Bestellungen

Bezahlte Bestellungen mit Positionen in Bearbeitung, die dein System noch nicht bestätigt hat, älteste zuerst. Nur deine Positionen und nur bezahlte Bestellungen. Eine Bestellung bleibt in /orders/new, bis dein System sie mit /orders/{id}/acknowledge bestätigt – geht eine Antwort verloren, kommt sie beim nächsten Abruf wieder. Gleiche Bestellungen erkennst du an der bestellnummer.

Yetki: bestellungen:lesen

Parametreler

AlanTürZorunluAçıklama
seite (query)integerhayırSeite, ab 1.
pro_seite (query)integerhayırBestellungen pro Seite, höchstens 100.

Yanıtlar

  • 200 Eine Seite Bestellungen. – BestellListe
    AlanTürZorunluAçıklama
    seiteintegerevet(-9007199254740991–9007199254740991)
    pro_seiteintegerevet(-9007199254740991–9007199254740991)
    gesamtintegerevetBestellungen insgesamt. (-9007199254740991–9007199254740991)
    bestellungenBestellung[]evet
    bestellungen[].idstringeveteveyamin-Bestell-ID; in Pfaden geht auch die Bestellnummer.
    bestellungen[].bestellnummerintegerevet(-9007199254740991–9007199254740991)
    bestellungen[].bestelldatumstringevetWann der Käufer bestellt hat. ISO 8601, UTC.
    bestellungen[].statusstringevetDeğerler: Bezahlt, Versendet, Abgeschlossen, Storniert, Erstattet, Rückbuchung
    bestellungen[].versandartstringevetDeğerler: Standardversand, Expressversand
    bestellungen[].bestaetigt_amstring | nullevet
    bestellungen[].geaendert_amstringevetLetzte Änderung eines Status deiner Positionen oder der Bestellung. ISO 8601, UTC.
    bestellungen[].lieferadresseLieferadresseevetWohin das Paket geht. Die E-Mail-Adresse des Käufers wird nicht weitergegeben.
    bestellungen[].lieferadresse.vornamestringevet
    bestellungen[].lieferadresse.nachnamestringevet
    bestellungen[].lieferadresse.firmastring | nullevet
    bestellungen[].lieferadresse.strassestringevetStraße und Hausnummer.
    bestellungen[].lieferadresse.plzstringevet
    bestellungen[].lieferadresse.ortstringevet
    bestellungen[].lieferadresse.landstringevetWie vom Käufer eingegeben, z. B. „Deutschland“ (noch kein Ländercode).
    bestellungen[].lieferadresse.telefonstring | nullevetFür den Versanddienstleister; optional beim Kauf.
    bestellungen[].summenobjectevetNur deine Positionen, in EUR, brutto.
    bestellungen[].summen.warennumberevet
    bestellungen[].summen.versandkostennumberevet
    bestellungen[].summen.gesamtnumberevet
    bestellungen[].positionenBestellPosition[]evetNur deine Positionen; andere Händler derselben Bestellung fehlen.
    bestellungen[].positionen[].position_idstringeveteveyamin-ID der Bestellposition.
    bestellungen[].positionen[].produkt_idstringevet
    bestellungen[].positionen[].variant_idstring | nullevet
    bestellungen[].positionen[].artikelnummerstring | nullevet
    bestellungen[].positionen[].uebergeordnete_skustring | nullevetAktuelle Übergeordnete SKU des Produkts.
    bestellungen[].positionen[].skustring | nullevetAktuelle SKU der Variante, sonst die beim Kauf gespeicherte.
    bestellungen[].positionen[].eanstring | nullevetAktuelle EAN / GTIN der Variante, sonst null.
    bestellungen[].positionen[].titelstringevetProdukttitel zum Zeitpunkt des Kaufs.
    bestellungen[].positionen[].farbestring | nullevet
    bestellungen[].positionen[].groessestring | nullevetGröße wie im Shop, oder „Maßanfertigung“.
    bestellungen[].positionen[].mengenumberevetStückzahl, bei Meterware Meter.
    bestellungen[].positionen[].einheitstringevetDeğerler: Stück, Meter
    bestellungen[].positionen[].einzelpreisnumberevetBezahlter Preis je Stück bzw. Meter in EUR, brutto.
    bestellungen[].positionen[].summenumberevetBezahlter Warenwert der Position in EUR, brutto, ohne Versand.
    bestellungen[].positionen[].versandkostennumberevetVersandkosten in EUR, brutto. Sie stehen bei einer Position je Bestellung.
    bestellungen[].positionen[].lieferstatusstringevetDeğerler: In Bearbeitung, Versendet, Abgeschlossen, Storniert, Zahlung ausstehend, Erstattet, Fehlgeschlagen
    bestellungen[].positionen[].bestaetigt_amstring | nullevet
    bestellungen[].positionen[].sendung_idstring | nullevetDas Paket, in dem die Position versendet wurde (sendungen[].id), sonst null.
    bestellungen[].positionen[].versendet_amstring | nullevet
    bestellungen[].positionen[].massanfertigungMassanfertigung | nullevetDie Körpermaße bei einer Maßanfertigung, sonst null.
    bestellungen[].positionen[].massanfertigung.einheitstringevetSo, wie der Käufer gemessen hat; nicht umgerechnet.Değerler: cm, Zoll
    bestellungen[].positionen[].massanfertigung.brustumfangnumberevet
    bestellungen[].positionen[].massanfertigung.taillenumfangnumberevet
    bestellungen[].positionen[].massanfertigung.hueftumfangnumberevet
    bestellungen[].positionen[].massanfertigung.koerpergroessenumberevetBarfuß.
    bestellungen[].positionen[].massanfertigung.schluesselbein_bodennumberevetVom Schlüsselbein bis zum Boden.
    bestellungen[].positionen[].massanfertigung.schulterlaengenumberevet
    bestellungen[].positionen[].massanfertigung.extralaengenumber | nullevet
    bestellungen[].sendungenSendung[]evetDeine Pakete dieser Bestellung, ältestes zuerst.
    bestellungen[].sendungen[].idstringevet
    bestellungen[].sendungen[].versanddienstleisterstringevetDeğerler: DHL, DPD, Hermes, GLS, UPS, Deutsche Post, Sonstige
    bestellungen[].sendungen[].sendungsnummerstringevetOhne Leerzeichen, in Großbuchstaben.
    bestellungen[].sendungen[].tracking_urlstring | nullevetLink zur Sendungsverfolgung; null bei „Sonstige“ ohne eigenen Link.
    bestellungen[].sendungen[].versendet_amstringevetWann das Paket gemeldet wurde. ISO 8601, UTC.
    bestellungen[].sendungen[].positionenstring[]evetposition_id der Positionen in diesem Paket.
  • 400 seite oder pro_seite ungültig (invalidQuery).
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
GET/api/v1/orders

Geänderte Bestellungen

Deine Bestellungen, deren Status oder Lieferstatus sich nach geaendert_seit geändert hat (ohne Parameter alle), älteste Änderung zuerst – so erfährt dein System nach dem Import von Stornierungen und Erstattungen. Merke dir das letzte geaendert_am und frage mit etwas Überlappung erneut. Nur deine Positionen und nur bezahlte Bestellungen. Eine Bestellung bleibt in /orders/new, bis dein System sie mit /orders/{id}/acknowledge bestätigt – geht eine Antwort verloren, kommt sie beim nächsten Abruf wieder. Gleiche Bestellungen erkennst du an der bestellnummer.

Yetki: bestellungen:lesen

Parametreler

AlanTürZorunluAçıklama
geaendert_seit (query)string (date-time)hayırZeitpunkt nach ISO 8601 mit Zeitzone, z. B. 2026-10-07T09:15:00Z.
seite (query)integerhayırSeite, ab 1.
pro_seite (query)integerhayırBestellungen pro Seite, höchstens 100.

Yanıtlar

  • 200 Eine Seite Bestellungen. – BestellListe
    AlanTürZorunluAçıklama
    seiteintegerevet(-9007199254740991–9007199254740991)
    pro_seiteintegerevet(-9007199254740991–9007199254740991)
    gesamtintegerevetBestellungen insgesamt. (-9007199254740991–9007199254740991)
    bestellungenBestellung[]evet
    bestellungen[].idstringeveteveyamin-Bestell-ID; in Pfaden geht auch die Bestellnummer.
    bestellungen[].bestellnummerintegerevet(-9007199254740991–9007199254740991)
    bestellungen[].bestelldatumstringevetWann der Käufer bestellt hat. ISO 8601, UTC.
    bestellungen[].statusstringevetDeğerler: Bezahlt, Versendet, Abgeschlossen, Storniert, Erstattet, Rückbuchung
    bestellungen[].versandartstringevetDeğerler: Standardversand, Expressversand
    bestellungen[].bestaetigt_amstring | nullevet
    bestellungen[].geaendert_amstringevetLetzte Änderung eines Status deiner Positionen oder der Bestellung. ISO 8601, UTC.
    bestellungen[].lieferadresseLieferadresseevetWohin das Paket geht. Die E-Mail-Adresse des Käufers wird nicht weitergegeben.
    bestellungen[].lieferadresse.vornamestringevet
    bestellungen[].lieferadresse.nachnamestringevet
    bestellungen[].lieferadresse.firmastring | nullevet
    bestellungen[].lieferadresse.strassestringevetStraße und Hausnummer.
    bestellungen[].lieferadresse.plzstringevet
    bestellungen[].lieferadresse.ortstringevet
    bestellungen[].lieferadresse.landstringevetWie vom Käufer eingegeben, z. B. „Deutschland“ (noch kein Ländercode).
    bestellungen[].lieferadresse.telefonstring | nullevetFür den Versanddienstleister; optional beim Kauf.
    bestellungen[].summenobjectevetNur deine Positionen, in EUR, brutto.
    bestellungen[].summen.warennumberevet
    bestellungen[].summen.versandkostennumberevet
    bestellungen[].summen.gesamtnumberevet
    bestellungen[].positionenBestellPosition[]evetNur deine Positionen; andere Händler derselben Bestellung fehlen.
    bestellungen[].positionen[].position_idstringeveteveyamin-ID der Bestellposition.
    bestellungen[].positionen[].produkt_idstringevet
    bestellungen[].positionen[].variant_idstring | nullevet
    bestellungen[].positionen[].artikelnummerstring | nullevet
    bestellungen[].positionen[].uebergeordnete_skustring | nullevetAktuelle Übergeordnete SKU des Produkts.
    bestellungen[].positionen[].skustring | nullevetAktuelle SKU der Variante, sonst die beim Kauf gespeicherte.
    bestellungen[].positionen[].eanstring | nullevetAktuelle EAN / GTIN der Variante, sonst null.
    bestellungen[].positionen[].titelstringevetProdukttitel zum Zeitpunkt des Kaufs.
    bestellungen[].positionen[].farbestring | nullevet
    bestellungen[].positionen[].groessestring | nullevetGröße wie im Shop, oder „Maßanfertigung“.
    bestellungen[].positionen[].mengenumberevetStückzahl, bei Meterware Meter.
    bestellungen[].positionen[].einheitstringevetDeğerler: Stück, Meter
    bestellungen[].positionen[].einzelpreisnumberevetBezahlter Preis je Stück bzw. Meter in EUR, brutto.
    bestellungen[].positionen[].summenumberevetBezahlter Warenwert der Position in EUR, brutto, ohne Versand.
    bestellungen[].positionen[].versandkostennumberevetVersandkosten in EUR, brutto. Sie stehen bei einer Position je Bestellung.
    bestellungen[].positionen[].lieferstatusstringevetDeğerler: In Bearbeitung, Versendet, Abgeschlossen, Storniert, Zahlung ausstehend, Erstattet, Fehlgeschlagen
    bestellungen[].positionen[].bestaetigt_amstring | nullevet
    bestellungen[].positionen[].sendung_idstring | nullevetDas Paket, in dem die Position versendet wurde (sendungen[].id), sonst null.
    bestellungen[].positionen[].versendet_amstring | nullevet
    bestellungen[].positionen[].massanfertigungMassanfertigung | nullevetDie Körpermaße bei einer Maßanfertigung, sonst null.
    bestellungen[].positionen[].massanfertigung.einheitstringevetSo, wie der Käufer gemessen hat; nicht umgerechnet.Değerler: cm, Zoll
    bestellungen[].positionen[].massanfertigung.brustumfangnumberevet
    bestellungen[].positionen[].massanfertigung.taillenumfangnumberevet
    bestellungen[].positionen[].massanfertigung.hueftumfangnumberevet
    bestellungen[].positionen[].massanfertigung.koerpergroessenumberevetBarfuß.
    bestellungen[].positionen[].massanfertigung.schluesselbein_bodennumberevetVom Schlüsselbein bis zum Boden.
    bestellungen[].positionen[].massanfertigung.schulterlaengenumberevet
    bestellungen[].positionen[].massanfertigung.extralaengenumber | nullevet
    bestellungen[].sendungenSendung[]evetDeine Pakete dieser Bestellung, ältestes zuerst.
    bestellungen[].sendungen[].idstringevet
    bestellungen[].sendungen[].versanddienstleisterstringevetDeğerler: DHL, DPD, Hermes, GLS, UPS, Deutsche Post, Sonstige
    bestellungen[].sendungen[].sendungsnummerstringevetOhne Leerzeichen, in Großbuchstaben.
    bestellungen[].sendungen[].tracking_urlstring | nullevetLink zur Sendungsverfolgung; null bei „Sonstige“ ohne eigenen Link.
    bestellungen[].sendungen[].versendet_amstringevetWann das Paket gemeldet wurde. ISO 8601, UTC.
    bestellungen[].sendungen[].positionenstring[]evetposition_id der Positionen in diesem Paket.
  • 400 geaendert_seit, seite oder pro_seite ungültig (invalidQuery).
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
GET/api/v1/orders/{id}

Eine Bestellung

Yetki: bestellungen:lesen

Parametreler

AlanTürZorunluAçıklama
id (path)stringeveteveyamin-Bestell-ID oder Bestellnummer.

Yanıtlar

  • 200 Die Bestellung mit deinen Positionen. – Bestellung
    AlanTürZorunluAçıklama
    idstringeveteveyamin-Bestell-ID; in Pfaden geht auch die Bestellnummer.
    bestellnummerintegerevet(-9007199254740991–9007199254740991)
    bestelldatumstringevetWann der Käufer bestellt hat. ISO 8601, UTC.
    statusstringevetDeğerler: Bezahlt, Versendet, Abgeschlossen, Storniert, Erstattet, Rückbuchung
    versandartstringevetDeğerler: Standardversand, Expressversand
    bestaetigt_amstring | nullevet
    geaendert_amstringevetLetzte Änderung eines Status deiner Positionen oder der Bestellung. ISO 8601, UTC.
    lieferadresseLieferadresseevetWohin das Paket geht. Die E-Mail-Adresse des Käufers wird nicht weitergegeben.
    lieferadresse.vornamestringevet
    lieferadresse.nachnamestringevet
    lieferadresse.firmastring | nullevet
    lieferadresse.strassestringevetStraße und Hausnummer.
    lieferadresse.plzstringevet
    lieferadresse.ortstringevet
    lieferadresse.landstringevetWie vom Käufer eingegeben, z. B. „Deutschland“ (noch kein Ländercode).
    lieferadresse.telefonstring | nullevetFür den Versanddienstleister; optional beim Kauf.
    summenobjectevetNur deine Positionen, in EUR, brutto.
    summen.warennumberevet
    summen.versandkostennumberevet
    summen.gesamtnumberevet
    positionenBestellPosition[]evetNur deine Positionen; andere Händler derselben Bestellung fehlen.
    positionen[].position_idstringeveteveyamin-ID der Bestellposition.
    positionen[].produkt_idstringevet
    positionen[].variant_idstring | nullevet
    positionen[].artikelnummerstring | nullevet
    positionen[].uebergeordnete_skustring | nullevetAktuelle Übergeordnete SKU des Produkts.
    positionen[].skustring | nullevetAktuelle SKU der Variante, sonst die beim Kauf gespeicherte.
    positionen[].eanstring | nullevetAktuelle EAN / GTIN der Variante, sonst null.
    positionen[].titelstringevetProdukttitel zum Zeitpunkt des Kaufs.
    positionen[].farbestring | nullevet
    positionen[].groessestring | nullevetGröße wie im Shop, oder „Maßanfertigung“.
    positionen[].mengenumberevetStückzahl, bei Meterware Meter.
    positionen[].einheitstringevetDeğerler: Stück, Meter
    positionen[].einzelpreisnumberevetBezahlter Preis je Stück bzw. Meter in EUR, brutto.
    positionen[].summenumberevetBezahlter Warenwert der Position in EUR, brutto, ohne Versand.
    positionen[].versandkostennumberevetVersandkosten in EUR, brutto. Sie stehen bei einer Position je Bestellung.
    positionen[].lieferstatusstringevetDeğerler: In Bearbeitung, Versendet, Abgeschlossen, Storniert, Zahlung ausstehend, Erstattet, Fehlgeschlagen
    positionen[].bestaetigt_amstring | nullevet
    positionen[].sendung_idstring | nullevetDas Paket, in dem die Position versendet wurde (sendungen[].id), sonst null.
    positionen[].versendet_amstring | nullevet
    positionen[].massanfertigungMassanfertigung | nullevetDie Körpermaße bei einer Maßanfertigung, sonst null.
    positionen[].massanfertigung.einheitstringevetSo, wie der Käufer gemessen hat; nicht umgerechnet.Değerler: cm, Zoll
    positionen[].massanfertigung.brustumfangnumberevet
    positionen[].massanfertigung.taillenumfangnumberevet
    positionen[].massanfertigung.hueftumfangnumberevet
    positionen[].massanfertigung.koerpergroessenumberevetBarfuß.
    positionen[].massanfertigung.schluesselbein_bodennumberevetVom Schlüsselbein bis zum Boden.
    positionen[].massanfertigung.schulterlaengenumberevet
    positionen[].massanfertigung.extralaengenumber | nullevet
    sendungenSendung[]evetDeine Pakete dieser Bestellung, ältestes zuerst.
    sendungen[].idstringevet
    sendungen[].versanddienstleisterstringevetDeğerler: DHL, DPD, Hermes, GLS, UPS, Deutsche Post, Sonstige
    sendungen[].sendungsnummerstringevetOhne Leerzeichen, in Großbuchstaben.
    sendungen[].tracking_urlstring | nullevetLink zur Sendungsverfolgung; null bei „Sonstige“ ohne eigenen Link.
    sendungen[].versendet_amstringevetWann das Paket gemeldet wurde. ISO 8601, UTC.
    sendungen[].positionenstring[]evetposition_id der Positionen in diesem Paket.
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 404 Keine solche bezahlte Bestellung mit Positionen von dir (orderNotFound).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
POST/api/v1/orders/{id}/acknowledge

Bestellung bestätigen

Dein System hat die Bestellung übernommen: Sie verschwindet aus /orders/new und wird bei Bestandsmeldungen nicht mehr abgezogen. Wiederholbar; ein zweiter Aufruf ändert nichts (bereits_bestaetigt).

Yetki: bestellungen:lesen

Parametreler

AlanTürZorunluAçıklama
id (path)stringeveteveyamin-Bestell-ID oder Bestellnummer.

Yanıtlar

  • 200 Bestätigt. – Bestaetigung
    AlanTürZorunluAçıklama
    idstringevet
    bestellnummerintegerevet(-9007199254740991–9007199254740991)
    bestaetigt_amstringevetWann die Bestellung zum ersten Mal bestätigt wurde. ISO 8601, UTC.
    bereits_bestaetigtbooleanevettrue: war schon bestätigt; nichts hat sich geändert.
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 404 Keine solche bezahlte Bestellung mit Positionen von dir (orderNotFound).
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.
POST/api/v1/orders/acknowledge

Mehrere Bestellungen bestätigen

Bis zu 100 Bestellungen auf einmal, je über Bestell-ID oder Bestellnummer; ein Ergebnis je Eintrag.

Yetki: bestellungen:lesen

Gövde – BestaetigungAnfrage
AlanTürZorunluAçıklama
bestellungenstring | integer[]evetBestell-IDs oder Bestellnummern.

Yanıtlar

  • 200 Ergebnis je Eintrag. – BestaetigungErgebnis
    AlanTürZorunluAçıklama
    zusammenfassungobjectevet
    zusammenfassung.okintegerevet(-9007199254740991–9007199254740991)
    zusammenfassung.bereits_bestaetigtintegerevet(-9007199254740991–9007199254740991)
    zusammenfassung.fehlerintegerevet(-9007199254740991–9007199254740991)
    bestellungenobject[]evet
    bestellungen[].zeileintegerevetIndex in bestellungen, ab 0. (-9007199254740991–9007199254740991)
    bestellungen[].statusstringevetDeğerler: ok, bereits_bestaetigt, fehler
    bestellungen[].idstringhayır
    bestellungen[].bestellnummerintegerhayır(-9007199254740991–9007199254740991)
    bestellungen[].bestaetigt_amstringhayırWann die Bestellung zum ersten Mal bestätigt wurde. ISO 8601, UTC.
    bestellungen[].fehlerobjecthayır
    bestellungen[].fehler.codestringevet
    bestellungen[].fehler.feldstring | nullevet
    bestellungen[].fehler.nachrichtstringevet
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 422 Kein { bestellungen: [...] }, leer, oder mehr als 100 Einträge.
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.

Versand

Pakete mit Sendungsnummer melden; die Bestellung wird „Versendet“ (WP5).

POST/api/v1/orders/{id}/fulfill

Versand melden

Ein Paket deiner Positionen: Versanddienstleister, Sendungsnummer und die Positionen darin (ohne positionen: alle deine Positionen „In Bearbeitung“). Die Positionen werden „Versendet“, der Käufer bekommt eine E-Mail mit dem Link zur Sendungsverfolgung, und die Bestellung gilt als bestätigt. Mehrere Pakete: ein Aufruf je Sendungsnummer. Dieselbe Sendungsnummer noch einmal ist dasselbe Paket: Nichts passiert doppelt, neue Positionen kommen hinzu. Geht eine Position nicht, wird nichts versendet.

Yetki: bestellungen:versenden

Parametreler

AlanTürZorunluAçıklama
id (path)stringeveteveyamin-Bestell-ID oder Bestellnummer.
Gövde – VersandAnfrage
AlanTürZorunluAçıklama
versanddienstleisterstringevetDeğerler: DHL, DPD, Hermes, GLS, UPS, Deutsche Post, Sonstige
sendungsnummerstringevetGespeichert ohne Leerzeichen und in Großbuchstaben: 4–40 Zeichen aus A–Z, 0–9 und -.
tracking_urlstring | nullhayırEigener https-Link. Ohne ihn baut eveyamin den Link des Versanddienstleisters (bei „Sonstige“ gibt es keinen).
positionenstring[]hayırposition_id der Positionen im Paket. Ohne: alle deine Positionen „In Bearbeitung“.

Yanıtlar

  • 200 Gemeldet, oder schon so gemeldet (bereits_erfasst). – VersandErgebnis
    AlanTürZorunluAçıklama
    bereits_erfasstbooleanevettrue: Dieses Paket war mit diesen Positionen schon gemeldet; nichts hat sich geändert, keine Mail.
    sendungSendungevetEin Paket: ganze Positionen, eine Sendungsnummer.
    sendung.idstringevet
    sendung.versanddienstleisterstringevetDeğerler: DHL, DPD, Hermes, GLS, UPS, Deutsche Post, Sonstige
    sendung.sendungsnummerstringevetOhne Leerzeichen, in Großbuchstaben.
    sendung.tracking_urlstring | nullevetLink zur Sendungsverfolgung; null bei „Sonstige“ ohne eigenen Link.
    sendung.versendet_amstringevetWann das Paket gemeldet wurde. ISO 8601, UTC.
    sendung.positionenstring[]evetposition_id der Positionen in diesem Paket.
    bestellungBestellungevet
    bestellung.idstringeveteveyamin-Bestell-ID; in Pfaden geht auch die Bestellnummer.
    bestellung.bestellnummerintegerevet(-9007199254740991–9007199254740991)
    bestellung.bestelldatumstringevetWann der Käufer bestellt hat. ISO 8601, UTC.
    bestellung.statusstringevetDeğerler: Bezahlt, Versendet, Abgeschlossen, Storniert, Erstattet, Rückbuchung
    bestellung.versandartstringevetDeğerler: Standardversand, Expressversand
    bestellung.bestaetigt_amstring | nullevet
    bestellung.geaendert_amstringevetLetzte Änderung eines Status deiner Positionen oder der Bestellung. ISO 8601, UTC.
    bestellung.lieferadresseLieferadresseevetWohin das Paket geht. Die E-Mail-Adresse des Käufers wird nicht weitergegeben.
    bestellung.lieferadresse.vornamestringevet
    bestellung.lieferadresse.nachnamestringevet
    bestellung.lieferadresse.firmastring | nullevet
    bestellung.lieferadresse.strassestringevetStraße und Hausnummer.
    bestellung.lieferadresse.plzstringevet
    bestellung.lieferadresse.ortstringevet
    bestellung.lieferadresse.landstringevetWie vom Käufer eingegeben, z. B. „Deutschland“ (noch kein Ländercode).
    bestellung.lieferadresse.telefonstring | nullevetFür den Versanddienstleister; optional beim Kauf.
    bestellung.summenobjectevetNur deine Positionen, in EUR, brutto.
    bestellung.summen.warennumberevet
    bestellung.summen.versandkostennumberevet
    bestellung.summen.gesamtnumberevet
    bestellung.positionenBestellPosition[]evetNur deine Positionen; andere Händler derselben Bestellung fehlen.
    bestellung.positionen[].position_idstringeveteveyamin-ID der Bestellposition.
    bestellung.positionen[].produkt_idstringevet
    bestellung.positionen[].variant_idstring | nullevet
    bestellung.positionen[].artikelnummerstring | nullevet
    bestellung.positionen[].uebergeordnete_skustring | nullevetAktuelle Übergeordnete SKU des Produkts.
    bestellung.positionen[].skustring | nullevetAktuelle SKU der Variante, sonst die beim Kauf gespeicherte.
    bestellung.positionen[].eanstring | nullevetAktuelle EAN / GTIN der Variante, sonst null.
    bestellung.positionen[].titelstringevetProdukttitel zum Zeitpunkt des Kaufs.
    bestellung.positionen[].farbestring | nullevet
    bestellung.positionen[].groessestring | nullevetGröße wie im Shop, oder „Maßanfertigung“.
    bestellung.positionen[].mengenumberevetStückzahl, bei Meterware Meter.
    bestellung.positionen[].einheitstringevetDeğerler: Stück, Meter
    bestellung.positionen[].einzelpreisnumberevetBezahlter Preis je Stück bzw. Meter in EUR, brutto.
    bestellung.positionen[].summenumberevetBezahlter Warenwert der Position in EUR, brutto, ohne Versand.
    bestellung.positionen[].versandkostennumberevetVersandkosten in EUR, brutto. Sie stehen bei einer Position je Bestellung.
    bestellung.positionen[].lieferstatusstringevetDeğerler: In Bearbeitung, Versendet, Abgeschlossen, Storniert, Zahlung ausstehend, Erstattet, Fehlgeschlagen
    bestellung.positionen[].bestaetigt_amstring | nullevet
    bestellung.positionen[].sendung_idstring | nullevetDas Paket, in dem die Position versendet wurde (sendungen[].id), sonst null.
    bestellung.positionen[].versendet_amstring | nullevet
    bestellung.positionen[].massanfertigungMassanfertigung | nullevetDie Körpermaße bei einer Maßanfertigung, sonst null.
    bestellung.positionen[].massanfertigung.einheitstringevetSo, wie der Käufer gemessen hat; nicht umgerechnet.Değerler: cm, Zoll
    bestellung.positionen[].massanfertigung.brustumfangnumberevet
    bestellung.positionen[].massanfertigung.taillenumfangnumberevet
    bestellung.positionen[].massanfertigung.hueftumfangnumberevet
    bestellung.positionen[].massanfertigung.koerpergroessenumberevetBarfuß.
    bestellung.positionen[].massanfertigung.schluesselbein_bodennumberevetVom Schlüsselbein bis zum Boden.
    bestellung.positionen[].massanfertigung.schulterlaengenumberevet
    bestellung.positionen[].massanfertigung.extralaengenumber | nullevet
    bestellung.sendungenSendung[]evetDeine Pakete dieser Bestellung, ältestes zuerst.
    bestellung.sendungen[].idstringevet
    bestellung.sendungen[].versanddienstleisterstringevetDeğerler: DHL, DPD, Hermes, GLS, UPS, Deutsche Post, Sonstige
    bestellung.sendungen[].sendungsnummerstringevetOhne Leerzeichen, in Großbuchstaben.
    bestellung.sendungen[].tracking_urlstring | nullevetLink zur Sendungsverfolgung; null bei „Sonstige“ ohne eigenen Link.
    bestellung.sendungen[].versendet_amstringevetWann das Paket gemeldet wurde. ISO 8601, UTC.
    bestellung.sendungen[].positionenstring[]evetposition_id der Positionen in diesem Paket.
  • 401 Kein, ungültiger oder widerrufener Schlüssel (keyMissing, keyInvalid, keyWrongEnvironment).
  • 403 Dem Schlüssel fehlt die Berechtigung (scopeMissing), der Shop ist dafür noch nicht freigegeben (registrationNotApproved) oder die API ist für deinen Shop noch nicht freigeschaltet (apiNotEnabled).
  • 404 Keine solche bezahlte Bestellung mit Positionen von dir (orderNotFound).
  • 409 Die Bestellung ist nicht mehr bezahlt, z. B. erstattet (orderNotShippable), oder keine deiner Positionen ist mehr „In Bearbeitung“ (nothingToShip).
  • 422 Ungültige Angaben (invalidCarrier, invalidTrackingNumber, invalidTrackingUrl, invalidBody) oder Positionen, die sich nicht versenden lassen (lineNotFound, lineNotShippable, lineInOtherShipment) – dann wurde nichts versendet.
  • 429 Mehr als 120 Anfragen pro Minute und Schlüssel (rateLimited). Siehe Header Retry-After.

Sürümler ve iletişim

API sürümlüdür (/api/v1). Yeni alanlar ve çağrılar v1 içinde eklenir – bu yüzden tanımadığın alanları yok say. Mevcut bağlantıları bozacak her şey yalnızca v2'de gelir ve önceden duyurulur.

Bağlantıyla ilgili sorular: info@eveyamin.com.

Teknik destek

Yukarıdaki bilgiler, teknik ekibinin entegrasyonu tamamlaması için yeterli olmalıdır. Ek desteğe ihtiyacın olursa teknoloji ortağımız entegrasyon konusunda sana memnuniyetle yardımcı olur.