---
title: "Aktualizuje produkt"
method: PUT
path: "/products/{product_id}"
tags: ["Produkty"]
---

# Aktualizuje produkt

`PUT /products/{product_id}`

## Request

- Base URL: `https://demo.sellasist.pl/api/v1`
- URL: `https://demo.sellasist.pl/api/v1/products/{product_id}`
- Auth: API key in header `apiKey`

Aktualizacja produktu w oparciu o jego ID

## Path parameters

- `product_id` integer, required

## Query parameters

- `categories_replacement_mode` 0 | 1
- `images_replacement_mode` 0 | 1

## Request body

- ProductDataUpdate
  - `title` string
  - `catalog` string
  - `ean` string
  - `pack_ean` string
  - `as_set` boolean
  - `presale_date` string
  - `symbol` string
  - `volume` number
  - `no_barcode_label` integer
  - `location` string
  - `unit_id` integer
  - `priority` integer
  - `before_gpsr` integer: Wprowadzenie przed rozporządzeniem GPSR (marketed_before_GPSR_obligation)
  - `step` number
  - `alert` integer
  - `alert_expiration_days` integer
  - `alert_expired_days` integer
  - `responsibleperson_id` integer
  - `extra_info` string
  - `bestseller` integer
  - `new` integer
  - `shipment_template_id` integer
  - `availability_id` integer
  - `quantity` number
  - `external_shops_mappings` object[]
    - `shop_id` integer
    - `foreign_id` integer
  - `locations` object[]
    - `storage_id` integer
    - `shelf_id` integer
    - `rack_id` integer
    - `quantity` number
    - `expiration_date` string
    - `additional_field` string
  - `price` number
  - `prices` object[]: Aktualizacja stawek cenowych w poszczególnych walutach
    - `currency` string
    - `price` number, float
    - `price_promo` number, float, nullable
  - `vat_rates` object: Aktualizacja wielokrajowych stawek VAT (kod ISO-2 kraju => wartość stawki)
  - `weight` number
  - `status` integer
  - `variants_group_id` integer
  - `attributes_group_id` integer
  - `manufacturer_id` integer
  - `category_id` integer
  - `categories` integer[]
  - `vat` integer
  - `price_promo` number
  - `promotion` integer
  - `additional_eans` object[]
    - `currency` string: Kod waluty, w której podano wartość (waluta musi być włączona w usłudze). Bez waluty wartość dotyczy waluty domyślnej. Z walutą kwota jest ustawiana tylko dla tej waluty i nie zmienia jej przeliczanie kursem.
    - `id` integer: ID istniejącego wpisu dodatkowego EAN
    - `ean` string: Kod EAN do dodania lub aktualizacji
    - `delete` boolean: Flaga określająca czy usunąć dany EAN
  - `shops_settings` object[]
    - `shop_id` integer
    - `price` number
    - `price_promo` number
    - `promotion` integer
    - `promotion_end` string
  - `additional_fields` object[]
    - `field_id` integer
    - `field_name` string
    - `field_value` string
  - `meta` object
    - `title` string
    - `keywords` string
    - `description` string
  - `description` string
  - `description_short` string
  - `descriptions` object[]
    - `datacell_id` integer
    - `content` string
  - `images` string[]
  - `variants` object
    - `group_name` string
    - `options` object[]
      - `name` string
      - `catalog` string
      - `quantity` number
      - `price_promo` number
      - `price` number
  - `storages` StoragesProductRequest[]
    - `id` string: Identyfikator wpisu stanu magazynowego tylko w GET, PUT
    - `product_variant_id` integer: Identyfikator wariantu produktu
    - `quantity` number: Ilość sztuk dostępnych w tym stanie magazynowym
    - `rack_id` number: Numer identyfikacyjny szafy w magazynie
    - `shelf_id` number: Numer identyfikacyjny półki w szafie
    - `storage_id` integer: Identyfikator magazynu
  - `suppliers` SuppliersProduct[]
    - `quantity` number: Ilość sztuk dostępnych w hurtowni
    - `supplier_id` integer: Identyfikator hurtowni
  - `packages` object
    - `normal` object
      - `width` number
      - `length` number
      - `height` number
    - `collective` object
      - `width` number
      - `length` number
      - `height` number
  - `pricesfieldsvalues` object[]
    - `pricesfield_id` integer
    - `value` number

## Response `200`

Sukces

- object
  - `product_id` integer
  - `errors` object[]
    - `field` string
    - `message` string

## Other responses

- `401`: Błąd autoryzacji

## Changes

- **2026-10-28** `58415a41c446`: 2 warning
  - removed the request property `external_offers_settings`
  - removed the request property `price_buy`
- **2026-10-11** `400197636ecd`: 3 breaking, 1 warning, 14 info
  - the `as_set` request property type changed from `bool` to `boolean`
  - the `images/items/` request property type changed from `integer` to `string`, and format from `int64` to no format
  - the `weight` request property type changed from `float` to `number`
  - removed the request property `pricesfieldsvalues/items/id`
  - …14 more

[Operation history](https://skmtc.dev/sellasist/apis/sellasist-api/changes/products/:product_id/put.md)

---

[API](https://skmtc.dev/sellasist/apis/sellasist-api.md) - [All operations](https://skmtc.dev/sellasist/apis/sellasist-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sellasist/apis/sellasist-api/revisions/58415a41c446?raw)
