Paket oluştur

POST /OrderPackage/CreatePackage — OMS API · Paketler

Daha önce kaydedilmiş bir siparişe gönderi paketi ekler.

Ne zaman çağrılır: Siparişi packages olmadan kaydettiyseniz ya da sonradan yeni paket oluştuysa.

  • Sipariş sourceOrderId ve sourceOrderNumber birlikte eşleşerek bulunur (SaveOrders'taki orderId ve orderNumber).
  • packageItems[].sourceOrderItemId siparişte bulunan bir kaleme ait olmalıdır.
  • Sipariş bulunamazsa HTTP 200, isSuccess: false, errorMesssage: "Order Not Found !!" döner.
  • Başarılı her paket items[] içinde itemCode = sourcePackageId olarak listelenir.

İstek gövdesi

  • packages (object[]): Eklenecek paketler.
    • packages.cargoKey (string): Kargo anahtarı.
    • packages.lastStatus (string): Paketin kaynak sistemdeki son statüsü.
    • packages.vendorCode (string): Paketi gönderecek satıcı kodu. Satıcı kullanıcısıyla çağrıldığında tüm paketler o satıcıya ait olmalıdır.
    • packages.trackingURL (string): Kargo takip bağlantısı.
    • packages.packageItems (object[], zorunlu): Pakete giren kalemler.
      • packages.packageItems.vatRate (number<double>): KDV oranı.
      • packages.packageItems.quantity (integer<int32>): Bu pakete giren adet.
      • packages.packageItems.saleTotal (number<double>): Pakete düşen satış tutarı.
      • packages.packageItems.vendorSku (string): Satıcının kendi SKU kodu.
      • packages.packageItems.sourceOrderItemId (string, zorunlu): Pakete giren sipariş kaleminin items[].sourceOrderItemId değeri.
      • packages.packageItems.packageItemAttributes (object[]): Paket kalemine ait ek alanlar.
    • packages.subVendorCode (string): Alt satıcı kodu.
    • packages.deliveryMethod (integer<int32>): Teslim yöntemi. 0 = kargo ile teslim (varsayılan).
    • packages.erpOrderNumber (string): Paketin ERP sipariş numarası.
    • packages.invoiceAddress (object, zorunlu): Fatura adresi.
      • packages.invoiceAddress.phone (string, zorunlu): Telefon numarası.
      • packages.invoiceAddress.region (string): Bölge bilgisi.
      • packages.invoiceAddress.isValid (boolean): Adresin doğrulanmış olup olmadığı.
      • packages.invoiceAddress.zipCode (string, zorunlu): Posta kodu.
      • packages.invoiceAddress.cityCode (string): İl kodu.
      • packages.invoiceAddress.cityName (string, zorunlu): İl adı.
      • packages.invoiceAddress.lastName (string, zorunlu): Alıcı soyadı.
      • packages.invoiceAddress.firstName (string, zorunlu): Alıcı adı.
      • packages.invoiceAddress.stateCode (string): Eyalet/bölge kodu.
      • packages.invoiceAddress.stateName (string): Eyalet/bölge adı (yurt dışı adresler).
      • packages.invoiceAddress.taxNumber (string): Vergi numarası (kurumsal fatura).
      • packages.invoiceAddress.taxOffice (string): Vergi dairesi (kurumsal fatura).
      • packages.invoiceAddress.streetCode (string): Cadde/sokak kodu.
      • packages.invoiceAddress.streetName (string): Cadde/sokak adı.
      • packages.invoiceAddress.addressType (string, zorunlu): Adres tipi: Shipment (teslimat) ya da Invoice (fatura).
      • packages.invoiceAddress.companyName (string): Firma adı (kurumsal fatura için).
      • packages.invoiceAddress.countryName (string, zorunlu): Ülke adı.
      • packages.invoiceAddress.phonePrefix (string): Telefon ülke kodu öneki.
      • packages.invoiceAddress.addressLine1 (string, zorunlu): Adres satırı 1.
      • packages.invoiceAddress.addressLine2 (string, zorunlu): Adres satırı 2. Alan zorunludur; ikinci satır yoksa - gibi bir değer gönderin.
      • packages.invoiceAddress.buildingCode (string): Bina kodu.
      • packages.invoiceAddress.districtCode (string): İlçe kodu.
      • packages.invoiceAddress.districtName (string, zorunlu): İlçe adı.
      • packages.invoiceAddress.provinceName (string): Vilayet adı (yurt dışı adresler).
      • packages.invoiceAddress.identityNumber (string): Kimlik numarası (bireysel fatura).
      • packages.invoiceAddress.sourceAddressId (string, zorunlu): Adresin sizin sisteminizdeki kimliği; sipariş içinde tekil olmalıdır (1, 2 gibi verilebilir).
      • packages.invoiceAddress.externalCityCode (string): İlin dış sistemdeki kodu.
      • packages.invoiceAddress.formattedAddress (string): Biçimlendirilmiş tam adres metni.
      • packages.invoiceAddress.neighborhoodCode (string): Mahalle kodu.
      • packages.invoiceAddress.addressAttributes (object[]): Adrese ait ek alanlar.
      • packages.invoiceAddress.externalStateCode (string): Eyalet/bölgenin dış sistemdeki kodu.
      • packages.invoiceAddress.neighbourhoodName (string): Mahalle adı.
      • packages.invoiceAddress.externalStreetCode (string): Cadde/sokağın dış sistemdeki kodu.
      • packages.invoiceAddress.externalAddressCode (string): Adresin dış sistemdeki kodu.
      • packages.invoiceAddress.externalBuildingCode (string): Binanın dış sistemdeki kodu.
      • packages.invoiceAddress.externalDistrictCode (string): İlçenin dış sistemdeki kodu.
      • packages.invoiceAddress.externalNeighborhoodCode (string): Mahallenin dış sistemdeki kodu.
    • packages.trackingNumber (string): Kargo takip numarası.
    • packages.shipmentAddress (object): Teslimat adresi. Kargo ile teslimde (deliveryMethod 0) gönderilmelidir; yoksa fatura adresi kullanılır.
      • packages.shipmentAddress.phone (string, zorunlu): Telefon numarası.
      • packages.shipmentAddress.region (string): Bölge bilgisi.
      • packages.shipmentAddress.isValid (boolean): Adresin doğrulanmış olup olmadığı.
      • packages.shipmentAddress.zipCode (string, zorunlu): Posta kodu.
      • packages.shipmentAddress.cityCode (string): İl kodu.
      • packages.shipmentAddress.cityName (string, zorunlu): İl adı.
      • packages.shipmentAddress.lastName (string, zorunlu): Alıcı soyadı.
      • packages.shipmentAddress.firstName (string, zorunlu): Alıcı adı.
      • packages.shipmentAddress.stateCode (string): Eyalet/bölge kodu.
      • packages.shipmentAddress.stateName (string): Eyalet/bölge adı (yurt dışı adresler).
      • packages.shipmentAddress.taxNumber (string): Vergi numarası (kurumsal fatura).
      • packages.shipmentAddress.taxOffice (string): Vergi dairesi (kurumsal fatura).
      • packages.shipmentAddress.streetCode (string): Cadde/sokak kodu.
      • packages.shipmentAddress.streetName (string): Cadde/sokak adı.
      • packages.shipmentAddress.addressType (string, zorunlu): Adres tipi: Shipment (teslimat) ya da Invoice (fatura).
      • packages.shipmentAddress.companyName (string): Firma adı (kurumsal fatura için).
      • packages.shipmentAddress.countryName (string, zorunlu): Ülke adı.
      • packages.shipmentAddress.phonePrefix (string): Telefon ülke kodu öneki.
      • packages.shipmentAddress.addressLine1 (string, zorunlu): Adres satırı 1.
      • packages.shipmentAddress.addressLine2 (string, zorunlu): Adres satırı 2. Alan zorunludur; ikinci satır yoksa - gibi bir değer gönderin.
      • packages.shipmentAddress.buildingCode (string): Bina kodu.
      • packages.shipmentAddress.districtCode (string): İlçe kodu.
      • packages.shipmentAddress.districtName (string, zorunlu): İlçe adı.
      • packages.shipmentAddress.provinceName (string): Vilayet adı (yurt dışı adresler).
      • packages.shipmentAddress.identityNumber (string): Kimlik numarası (bireysel fatura).
      • packages.shipmentAddress.sourceAddressId (string, zorunlu): Adresin sizin sisteminizdeki kimliği; sipariş içinde tekil olmalıdır (1, 2 gibi verilebilir).
      • packages.shipmentAddress.externalCityCode (string): İlin dış sistemdeki kodu.
      • packages.shipmentAddress.formattedAddress (string): Biçimlendirilmiş tam adres metni.
      • packages.shipmentAddress.neighborhoodCode (string): Mahalle kodu.
      • packages.shipmentAddress.addressAttributes (object[]): Adrese ait ek alanlar.
      • packages.shipmentAddress.externalStateCode (string): Eyalet/bölgenin dış sistemdeki kodu.
      • packages.shipmentAddress.neighbourhoodName (string): Mahalle adı.
      • packages.shipmentAddress.externalStreetCode (string): Cadde/sokağın dış sistemdeki kodu.
      • packages.shipmentAddress.externalAddressCode (string): Adresin dış sistemdeki kodu.
      • packages.shipmentAddress.externalBuildingCode (string): Binanın dış sistemdeki kodu.
      • packages.shipmentAddress.externalDistrictCode (string): İlçenin dış sistemdeki kodu.
      • packages.shipmentAddress.externalNeighborhoodCode (string): Mahallenin dış sistemdeki kodu.
    • packages.sourcePackageId (string, zorunlu): Paketin sizin sisteminizdeki tekil kimliği. Aynı kimlikle ikinci kez gönderilen paket atlanır.
    • packages.deliverySlotCode (string): Teslimat zaman dilimi kodu (en fazla 50 karakter).
    • packages.lastModifiedDate (string<date-time>): Paketin son değişiklik zamanı. Gönderilmezse istek anı kullanılır.
    • packages.cargoIsChangeable (boolean): Kargo firmasının sonradan değiştirilebilir olup olmadığı.
    • packages.packageAttributes (object[]): Pakete ait ek alanlar.
      • packages.packageAttributes.attributeKey (string, zorunlu): Ek alan adı.
      • packages.packageAttributes.attributeValue (string, zorunlu): Ek alan değeri.
    • packages.carrierCompanyCode (string): Kargo firması kodu.
    • packages.erpOrderCreateDate (string<date-time>): ERP'de sipariş oluşma zamanı.
    • packages.deliveryServiceType (string): Teslimat hizmet tipi. Boş bırakılabilir; doluysa listedeki değerlerden biri olmalıdır, aksi halde sipariş reddedilir (büyük/küçük harf duyarsız).
  • sourceOrderId (string, zorunlu): Siparişin SaveOrders ile gönderilen orderId değeri.
  • sourceOrderNumber (string, zorunlu): Siparişin SaveOrders ile gönderilen orderNumber değeri.

Yanıtlar

  • 200: Başarılı. Gövdedeki isSuccess alanını mutlaka kontrol edin.
  • 400: Gövde doğrulanamadı (zorunlu alan eksik, tip uyumsuz ya da JSON bozuk). Yanıt ASP.NET Core ValidationProblemDetails biçimindedir; errors alanı hangi alanın hatalı olduğunu gösterir.
  • 401: Authorization başlığı yok, token geçersiz ya da süresi dolmuş. Gövde boş döner; /Auth/login ile yeni token alın.
  • 500: Beklenmeyen sunucu hatası. Bu yanıt PascalCase alan adlarıyla döner (diğer yanıtlardan farklı olarak) ve null alanlar da yazılır.

200 yanıt alanları

  • items (object[], zorunlu): Gönderilen her kayıt için ayrı sonuç.
    • items.itemCode (string, zorunlu): Sonucun ait olduğu kaydın kodu (sipariş kaydında orderNumber, paket oluşturmada sourcePackageId).
    • items.isSuccess (boolean, zorunlu): Bu kayıt başarıyla işlendiyse true.
    • items.errorMesssage (string): Kayıt başarısızsa hata mesajı. Yalnızca doluysa döner.
  • errorType (string): Genel hata tipi. Yalnızca doluysa döner.
  • isSuccess (boolean, zorunlu): Listedeki tüm kayıtlar başarılıysa true; en az biri başarısızsa false.
  • errorSource (string): Hata kaynağı. Yalnızca doluysa döner.
  • errorMesssage (string): Genel hata mesajı (ör. sipariş bulunamadı). Yalnızca doluysa döner.