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

# Dodawanie zdjęć

> Wgrywanie, kompresja i zarządzanie obrazami sklepu.

Panel ItemShop pozwala wgrywać obrazy produktów, logo, favicony i grafiki edytora bezpośrednio do magazynu sklepu. Backend sprawdza, kompresuje i konwertuje pliki do WebP, usuwa metadane oraz zapisuje wynik w skonfigurowanym Cloudflare R2/CDN.

## Wgrywanie w panelu

<Steps>
  <Step title="Wybierz plik">
    W formularzu produktu lub edytorze kliknij **Wgraj**. Panel przyjmuje PNG, JPEG, WebP i GIF; pojedynczy plik może mieć do 8 MB.
  </Step>

  <Step title="Poczekaj na przetworzenie">
    Serwer sprawdzi, czy plik jest poprawnym obrazem, ograniczy jego wymiary zależnie od zastosowania i zwróci adres CDN. Samo rozszerzenie lub nagłówek MIME nie wystarcza do przejścia walidacji.
  </Step>

  <Step title="Zapisz formularz">
    Wgranie pliku nie publikuje jeszcze zmiany. Zapisz produkt albo opublikuj układ, aby obraz został oznaczony jako używany.
  </Step>
</Steps>

## Limit i automatyczne czyszczenie

Każdy sklep ma 10 MB miejsca na przetworzone pliki. Zakładka **Pliki** pokazuje wykorzystanie, referencje i pozwala usunąć obiekt. Plik nieużywany w żadnym produkcie ani w ustawieniach jest automatycznie usuwany po okresie ochronnym: po 1 godzinie w planie Darmowym albo po 24 godzinach przy aktywnym planie Pro.

<Warning>
  Usunięcie używanego pliku powoduje zniknięcie grafiki wszędzie, gdzie zapisano jego adres. Najpierw usuń lub zastąp referencję w produkcie albo edytorze.
</Warning>

## Użycie API

`POST /uploads/{shopId}/image` przyjmuje obraz jako base64/data URL i wymaga dostępu `full` do sklepu. `GET /uploads/{shopId}/files` zwraca pliki oraz zużycie limitu. Produkty przechowują ostatecznie tablicę adresów URL, więc integracja API może też podać własny publiczny adres HTTPS; wtedy ItemShop nie kontroluje dostępności ani retencji zewnętrznego hosta.

<Note>
  Jeśli magazyn R2 nie jest skonfigurowany w instalacji, endpoint uploadu zwraca `503`. To błąd konfiguracji wdrożenia, a nie pliku użytkownika.
</Note>
