> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.noyax.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ürün kısmi güncelle

> Ürün kaydının yalnızca gönderilen alanlarını değiştirir.

Gövdede **yalnızca değiştirmek istediğiniz alanları** gönderirsiniz; gönderilmeyen alanlar mevcut değerleriyle kalır. Kural ve örnekler: [kısmi güncelleme](/tr/v1/guides/partial-update).

* Gönderilmeyen alan değişmez, `null` gönderilen alan temizlenir.
* Doğrulama birleştirilmiş kaydın tamamı üzerinde çalışır; zorunlu bir alanı `null` yaparsanız istek reddedilir.
* `Code` alanı `"Next"` olamaz; kod üretimi yalnızca oluştururken çalışır.
* Ürünün [kritik stok tanımı](/tr/v1/products/critical-stock/list) varken `StockType` `1` (stok tutulmuyor) yapılamaz (`2014`); önce tanımlar silinmelidir.


## OpenAPI

````yaml api-reference/openapi.tr.json PATCH /api/v1/products/{productId}
openapi: 3.1.1
info:
  title: Noyax API
  description: Server-to-server API for integrations to access Noyax data.
  version: '1.0'
servers:
  - url: https://api.noyax.com
security:
  - Bearer: []
tags:
  - name: Sections
  - name: Warehouses
  - name: Product Critical Stock
  - name: Product groups
  - name: Product Parameter Definitions
  - name: Product Parameters
  - name: Product Prices
  - name: Products
  - name: Cities
  - name: Countries
  - name: Currencies
  - name: Districts
  - name: Shipment Definitions
  - name: Units
  - name: VAT rates
  - name: Customer Addresses
  - name: Customer Bank Accounts
  - name: Customer Definitions
  - name: Customer Group Members
  - name: Customer Links
  - name: Customer Parameters
  - name: Customer Representatives
  - name: Customers
  - name: Customer Statement
  - name: Customer Telephones
paths:
  /api/v1/products/{productId}:
    patch:
      tags:
        - Products
      summary: Ürünü kısmi güncelle
      description: >-
        Yalnızca gövdede gönderilen alanları değiştirir (JSON Merge Patch).
        Gönderilmeyen alanlar mevcut değerleriyle kalır; null gönderilen alan
        temizlenir. Code alanı "Next" olamaz.
      parameters:
        - name: productId
          in: path
          description: Ürün ID'si.
          required: true
          schema:
            type: string
            format: uuid
        - name: X-UserID
          in: header
          description: >-
            İsteğin adına yapıldığı Noyax kullanıcısının ID'si. Oluşturulan,
            güncellenen ve silinen kayıtların denetim alanlarına yazılır.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-CompanyID
          in: header
          description: >-
            Şirketin ID'si. Kullanıcı bu şirkete tanımlı olmalıdır. Bütün okuma
            ve yazma işlemleri bu şirketle sınırlıdır.
          required: true
          schema:
            minimum: 1
            type: integer
            format: int32
        - name: X-PeriodID
          in: header
          description: >-
            Muhasebe döneminin ID'si. Cari endpoint'lerinde isteğe bağlıdır;
            gönderilirse oluşturulan kayıtlara yazılır.
          schema:
            minimum: 1
            type: integer
            format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProductUpdateRequestDto'
          text/json:
            schema:
              $ref: '#/components/schemas/ProductUpdateRequestDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ProductUpdateRequestDto'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataResultOfProductDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '2014'
                Message: >-
                  StockType cannot be set to 1 (no stock tracking) while this
                  product has critical stock definitions.
                Errors:
                  - Code: '2014'
                    Message: >-
                      StockType cannot be set to 1 (no stock tracking) while
                      this product has critical stock definitions.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0102'
                Message: Token has expired. Obtain a new token using the refresh token.
                Errors:
                  - Code: '0102'
                    Message: >-
                      Token has expired. Obtain a new token using the refresh
                      token.
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0110'
                Message: You do not have permission for this operation.
                Errors:
                  - Code: '0110'
                    Message: You do not have permission for this operation.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '2000'
                Message: Product not found.
                Errors:
                  - Code: '2000'
                    Message: Product not found.
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResult'
              example:
                Success: false
                ResultCode: '0120'
                Message: Daily request limit (10000) exceeded.
                Errors:
                  - Code: '0120'
                    Message: Daily request limit (10000) exceeded.
components:
  schemas:
    ProductUpdateRequestDto:
      type: object
      properties:
        Code:
          type:
            - 'null'
            - string
          description: >-
            Zorunlu. Ürün kodu, şirket içinde benzersiz olmalıdır. "Next"
            gönderilirse kod "ÜRÜN" seri tanımından üretilir (yalnızca
            oluştururken). En fazla 50 karakter.
          example: URN-0001
        Name:
          type:
            - 'null'
            - string
          description: Zorunlu. Ürün tanımı. En fazla 255 karakter.
          example: VİDA 5X40 GALVANİZ
        UnitId:
          type:
            - 'null'
            - string
          description: Zorunlu. GET /api/v1/definitions/units ile dönen ana birimin ID'si.
          format: uuid
        Barcode:
          type:
            - 'null'
            - string
          description: Ana birimin barkodu. En fazla 30 karakter.
          example: '8690000000017'
        ProductType:
          type: integer
          description: >-
            Ürün tipi: 1 İlk madde, 2 Yarı mamül, 3 Mamül, 4 Ticari mal, 5
            Hizmet. Varsayılan 4.
          format: int32
          example: 4
        StockType:
          type: integer
          description: >-
            Stok tipi: 1 Stok tutma, 2 Stok tut, 3 Lot, 4 FIFO, 5 Seri, 6 LIFO,
            7 FEFO. Varsayılan 1.
          format: int32
          example: 2
        VatRateId:
          type:
            - 'null'
            - string
          description: GET /api/v1/definitions/vat-rates ile dönen KDV oranının ID'si.
          format: uuid
        AdditionalTaxCode1:
          type:
            - 'null'
            - string
          description: Ek vergi kodu 1. En fazla 15 karakter.
        AdditionalTaxRate1:
          type: number
          description: Yüzde olarak ek vergi oranı 1.
          format: double
        AdditionalTaxCode2:
          type:
            - 'null'
            - string
          description: Ek vergi kodu 2. En fazla 15 karakter.
        AdditionalTaxRate2:
          type: number
          description: Yüzde olarak ek vergi oranı 2.
          format: double
        AdditionalTaxCode3:
          type:
            - 'null'
            - string
          description: Ek vergi kodu 3. En fazla 15 karakter.
        AdditionalTaxRate3:
          type: number
          description: Yüzde olarak ek vergi oranı 3.
          format: double
        IsOutOfUse:
          type: boolean
          description: >-
            Ürünün kullanım dışı olup olmadığı. Kullanım dışı ürünler saklanır
            ama yeni kayıtlarda önerilmez.
          example: false
        ManufacturerCode:
          type:
            - 'null'
            - string
          description: Üretici kodu. En fazla 50 karakter.
        SupplierCode:
          type:
            - 'null'
            - string
          description: Tedarikçi kodu. En fazla 50 karakter.
        GroupDetailId1:
          type:
            - 'null'
            - string
          description: >-
            GET /api/v1/products/groups ile dönen 1. grup detayının ID'si. Grup
            1 detaylarının üstü olmadığı için hepsi seçilebilir.
          format: uuid
        GroupDetailId2:
          type:
            - 'null'
            - string
          description: >-
            2. grup detayının ID'si. Ya üstü boş olmalı ya da üstü
            GroupDetailId1 ile seçilen detay olmalıdır.
          format: uuid
        GroupDetailId3:
          type:
            - 'null'
            - string
          description: >-
            3. grup detayının ID'si. Ya üstü boş olmalı ya da üstü
            GroupDetailId2 ile seçilen detay olmalıdır.
          format: uuid
        GroupDetailId4:
          type:
            - 'null'
            - string
          description: >-
            4. grup detayının ID'si. Ya üstü boş olmalı ya da üstü
            GroupDetailId3 ile seçilen detay olmalıdır.
          format: uuid
        GroupDetailId5:
          type:
            - 'null'
            - string
          description: >-
            5. grup detayının ID'si. Ya üstü boş olmalı ya da üstü
            GroupDetailId4 ile seçilen detay olmalıdır.
          format: uuid
        ShelfNumber:
          type:
            - 'null'
            - string
          description: Raf numarası. En fazla 20 karakter.
          example: A-12
        Description:
          type:
            - 'null'
            - string
          description: Açıklama. En fazla 255 karakter.
        SerialNumberIndex:
          type: integer
          description: Seri takibinde kullanılan seri no indeksi.
          format: int32
        ECommerceProductCode:
          type:
            - 'null'
            - string
          description: >-
            E-ticaret entegrasyonunun kullandığı ürün kodu. En fazla 50
            karakter.
        IsFavourite:
          type: boolean
          description: Ürünün favori olarak işaretlenip işaretlenmediği.
          example: false
        Gtip:
          type:
            - 'null'
            - string
          description: >-
            İhracat faturalarında kullanılan GTİP numarası. En fazla 20
            karakter.
          example: '7318159000'
        DeliveryTerm:
          type:
            - 'null'
            - string
          description: >-
            İhracat faturalarında kullanılan teslim şekli kodu (Incoterms, ör.
            EXW, FCA, CIF). En fazla 10 karakter.
          example: EXW
        PackagingType:
          type:
            - 'null'
            - string
          description: >-
            İhracat faturalarında kullanılan paketleme tipi kodu. En fazla 10
            karakter.
          example: BX
        TransportMode:
          type: integer
          description: >-
            İhracat faturalarında kullanılan taşıma modu: 0 belirtilmemiş, 1
            Denizyolu, 2 Demiryolu, 3 Karayolu, 4 Havayolu, 5 Posta, 6 Çok
            araçlı, 7 Sabit taşıma tesisleri, 8 İç su yolu. Bu liste, sevkiyat
            tanımındaki TransportMode listesinden farklıdır.
          format: int32
          example: 3
        Brand:
          type:
            - 'null'
            - string
          description: Marka. En fazla 100 karakter.
        Model:
          type:
            - 'null'
            - string
          description: Model. En fazla 100 karakter.
        OriginCountryCode:
          type:
            - 'null'
            - string
          description: >-
            İhracat faturalarında kullanılan menşei ülke kodu (ISO 3166-1
            alpha-2). En fazla 10 karakter.
          example: TR
    DataResultOfProductDto:
      required:
        - Success
        - ResultCode
        - Data
      type: object
      properties:
        Success:
          type: boolean
          description: İşlemin başarılı olup olmadığı.
          example: true
        ResultCode:
          type: string
          description: >-
            Başarıda "0000". Hatada ilk hatanın kodu; hataların tamamı Errors
            içinde listelenir.
          example: '0000'
        Message:
          type:
            - 'null'
            - string
          description: >-
            Success false olduğunda hata mesajı. Bütün hataların mesajları tek
            metinde birleştirilir.
        Data:
          $ref: '#/components/schemas/ProductDto'
    ErrorResult:
      type: object
      properties:
        Success:
          type: boolean
          description: İşlemin başarılı olup olmadığı.
          example: false
        ResultCode:
          type:
            - 'null'
            - string
          description: >-
            Başarıda "0000". Hatada ilk hatanın kodu; hataların tamamı Errors
            içinde listelenir.
        Message:
          type:
            - 'null'
            - string
          description: >-
            Success false olduğunda hata mesajı. Bütün hataların mesajları tek
            metinde birleştirilir.
        Errors:
          type:
            - 'null'
            - array
          items:
            $ref: '#/components/schemas/ResultError'
          description: >-
            Kodlarıyla birlikte bütün hatalar. Yalnızca Success false olduğunda
            bulunur.
    ProductDto:
      type: object
      properties:
        Id:
          type: string
          description: Ürün ID'si.
          format: uuid
        UnitName:
          type:
            - 'null'
            - string
          description: Ana birimin adı.
          example: ADET
        VatRate:
          type:
            - 'null'
            - integer
          description: KDV oranı tanımından gelen, yüzde olarak KDV oranı.
          format: int32
          example: 20
        Code:
          type:
            - 'null'
            - string
          description: >-
            Zorunlu. Ürün kodu, şirket içinde benzersiz olmalıdır. "Next"
            gönderilirse kod "ÜRÜN" seri tanımından üretilir (yalnızca
            oluştururken). En fazla 50 karakter.
          example: URN-0001
        Name:
          type:
            - 'null'
            - string
          description: Zorunlu. Ürün tanımı. En fazla 255 karakter.
          example: VİDA 5X40 GALVANİZ
        UnitId:
          type:
            - 'null'
            - string
          description: Zorunlu. GET /api/v1/definitions/units ile dönen ana birimin ID'si.
          format: uuid
        Barcode:
          type:
            - 'null'
            - string
          description: Ana birimin barkodu. En fazla 30 karakter.
          example: '8690000000017'
        ProductType:
          type: integer
          description: >-
            Ürün tipi: 1 İlk madde, 2 Yarı mamül, 3 Mamül, 4 Ticari mal, 5
            Hizmet. Varsayılan 4.
          format: int32
          example: 4
        StockType:
          type: integer
          description: >-
            Stok tipi: 1 Stok tutma, 2 Stok tut, 3 Lot, 4 FIFO, 5 Seri, 6 LIFO,
            7 FEFO. Varsayılan 1.
          format: int32
          example: 2
        VatRateId:
          type:
            - 'null'
            - string
          description: GET /api/v1/definitions/vat-rates ile dönen KDV oranının ID'si.
          format: uuid
        AdditionalTaxCode1:
          type:
            - 'null'
            - string
          description: Ek vergi kodu 1. En fazla 15 karakter.
        AdditionalTaxRate1:
          type: number
          description: Yüzde olarak ek vergi oranı 1.
          format: double
        AdditionalTaxCode2:
          type:
            - 'null'
            - string
          description: Ek vergi kodu 2. En fazla 15 karakter.
        AdditionalTaxRate2:
          type: number
          description: Yüzde olarak ek vergi oranı 2.
          format: double
        AdditionalTaxCode3:
          type:
            - 'null'
            - string
          description: Ek vergi kodu 3. En fazla 15 karakter.
        AdditionalTaxRate3:
          type: number
          description: Yüzde olarak ek vergi oranı 3.
          format: double
        IsOutOfUse:
          type: boolean
          description: >-
            Ürünün kullanım dışı olup olmadığı. Kullanım dışı ürünler saklanır
            ama yeni kayıtlarda önerilmez.
          example: false
        ManufacturerCode:
          type:
            - 'null'
            - string
          description: Üretici kodu. En fazla 50 karakter.
        SupplierCode:
          type:
            - 'null'
            - string
          description: Tedarikçi kodu. En fazla 50 karakter.
        GroupDetailId1:
          type:
            - 'null'
            - string
          description: >-
            GET /api/v1/products/groups ile dönen 1. grup detayının ID'si. Grup
            1 detaylarının üstü olmadığı için hepsi seçilebilir.
          format: uuid
        GroupDetailId2:
          type:
            - 'null'
            - string
          description: >-
            2. grup detayının ID'si. Ya üstü boş olmalı ya da üstü
            GroupDetailId1 ile seçilen detay olmalıdır.
          format: uuid
        GroupDetailId3:
          type:
            - 'null'
            - string
          description: >-
            3. grup detayının ID'si. Ya üstü boş olmalı ya da üstü
            GroupDetailId2 ile seçilen detay olmalıdır.
          format: uuid
        GroupDetailId4:
          type:
            - 'null'
            - string
          description: >-
            4. grup detayının ID'si. Ya üstü boş olmalı ya da üstü
            GroupDetailId3 ile seçilen detay olmalıdır.
          format: uuid
        GroupDetailId5:
          type:
            - 'null'
            - string
          description: >-
            5. grup detayının ID'si. Ya üstü boş olmalı ya da üstü
            GroupDetailId4 ile seçilen detay olmalıdır.
          format: uuid
        ShelfNumber:
          type:
            - 'null'
            - string
          description: Raf numarası. En fazla 20 karakter.
          example: A-12
        Description:
          type:
            - 'null'
            - string
          description: Açıklama. En fazla 255 karakter.
        SerialNumberIndex:
          type: integer
          description: Seri takibinde kullanılan seri no indeksi.
          format: int32
        ECommerceProductCode:
          type:
            - 'null'
            - string
          description: >-
            E-ticaret entegrasyonunun kullandığı ürün kodu. En fazla 50
            karakter.
        IsFavourite:
          type: boolean
          description: Ürünün favori olarak işaretlenip işaretlenmediği.
          example: false
        Gtip:
          type:
            - 'null'
            - string
          description: >-
            İhracat faturalarında kullanılan GTİP numarası. En fazla 20
            karakter.
          example: '7318159000'
        DeliveryTerm:
          type:
            - 'null'
            - string
          description: >-
            İhracat faturalarında kullanılan teslim şekli kodu (Incoterms, ör.
            EXW, FCA, CIF). En fazla 10 karakter.
          example: EXW
        PackagingType:
          type:
            - 'null'
            - string
          description: >-
            İhracat faturalarında kullanılan paketleme tipi kodu. En fazla 10
            karakter.
          example: BX
        TransportMode:
          type: integer
          description: >-
            İhracat faturalarında kullanılan taşıma modu: 0 belirtilmemiş, 1
            Denizyolu, 2 Demiryolu, 3 Karayolu, 4 Havayolu, 5 Posta, 6 Çok
            araçlı, 7 Sabit taşıma tesisleri, 8 İç su yolu. Bu liste, sevkiyat
            tanımındaki TransportMode listesinden farklıdır.
          format: int32
          example: 3
        Brand:
          type:
            - 'null'
            - string
          description: Marka. En fazla 100 karakter.
        Model:
          type:
            - 'null'
            - string
          description: Model. En fazla 100 karakter.
        OriginCountryCode:
          type:
            - 'null'
            - string
          description: >-
            İhracat faturalarında kullanılan menşei ülke kodu (ISO 3166-1
            alpha-2). En fazla 10 karakter.
          example: TR
    ResultError:
      required:
        - Code
        - Message
      type: object
      properties:
        Code:
          type: string
          description: Hata kodu. Tam liste için sonuç kodları sayfasına bakın.
        Message:
          type: string
          description: Hata açıklaması.
  securitySchemes:
    Bearer:
      type: http
      description: Access token obtained from the Noyax auth service with your API key.
      scheme: bearer
      bearerFormat: JWT

````