# Walidacja

{% hint style="warning" %}
Możesz ustawić walidator dla już istniejących atrybutów, jednak aby zapisać zmianę, wartość tego atrybutu we wszystkich produktach MUSI spełniać parametry walidacji. Jeśli tak nie jest, zostanie wyświetlony komunikat o błędzie.&#x20;
{% endhint %}

## Wprowadzenie

Walidatory pomagają chronić integralność danych, zapewniając, że tylko dane spełniające określone warunki są akceptowane w systemie. Na przykład przy atrybutach typu tekstowego możesz użyć wyrażeń regularnych (regex). Wyobraź sobie regex jako wzorzec sprawdzający, czy wartość atrybutu jest poprawna — na przykład czy adres e‑mail zawiera znak "@". To pomaga utrzymać dokładność i zapobiega błędom.

Różne typy atrybutów wymagają różnych reguł walidacji. Liczba może wymagać znajdowania się w określonym zakresie, natomiast obraz może mieć określone ograniczenia wymiarów lub rozmiaru. Walidatory pomagają więc utrzymać spójność pól danych.

**W Ergonode możesz ustawić walidację dla następujących typów atrybutów:**

| Typ atrybutu  | Dostępne walidatory                                                                                                                          |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Plik          | <ul><li>Minimalna liczba plików</li><li>Maksymalna liczba plików</li><li>Maksymalny rozmiar pliku</li><li>Dozwolone rozszerzenia</li></ul>   |
| Galeria       | <ul><li>Minimalna liczba obrazów</li><li>Maksymalna liczba obrazów</li><li>Maksymalny rozmiar pliku</li><li>Dozwolone rozszerzenia</li></ul> |
| Obraz         | <ul><li>Maksymalny rozmiar pliku</li><li>Dozwolone rozszerzenia</li></ul>                                                                    |
| Numeryczny    | <ul><li>Wartość minimalna</li><li>Wartość maksymalna</li></ul>                                                                               |
| Cena          | <ul><li>Wartość minimalna</li><li>Wartość maksymalna</li></ul>                                                                               |
| Tekst         | <ul><li>Wyrażenie regularne (regex) z przykładami</li></ul>                                                                                  |
| Pole tekstowe | <ul><li>Lista zabronionych słów (limit 1000 znaków)</li></ul>                                                                                |
| Jednostka     | <ul><li>Wartość minimalna</li><li>Wartość maksymalna</li></ul>                                                                               |

## O regex (dostępne tylko w atrybucie tekstowym)

{% hint style="info" %}
W systemie możesz używać niektórych wstępnie zdefiniowanych wzorców regex, ale możliwe jest też użycie własnych. Aby użyć wzorców wstępnie zdefiniowanych, kliknij "Copy from regex templates".
{% endhint %}

Wyrażenia regularne, czyli regex, to zaawansowane narzędzia walidacji dla tekstu. Używają one określonej sekwencji znaków do zdefiniowania wzorca. Można je traktować jak rozbudowane „znajdź”, ale z większą precyzją i elastycznością. Oto jak używać regex do walidacji:

1. **Podstawowa walidacja**:
   * Załóżmy, że chcesz zwalidować dowolne trzyznakowe słowa. Użyjesz wzorca `\b\w{3}\b`. W tym wzorcu `\b` oznacza granice słowa, a `\w{3}` określa dokładnie trzy znaki słowa.
2. **Walidacja cyfr**:
   * Aby zwalidować dowolną sekwencję cyfr w tekście, użyj wzorca `\d`. Tutaj `\d` oznacza dowolną cyfrę, więc dopasuje dowolny ciąg zawierający pojedynczą cyfrę, np. 123, 4aa lub 678aaa9. Jeśli chcesz zwalidować ciąg kończący się cyfrą, użyj`\d$`, np.: something1.
3. **Walidacja adresów e‑mail**:
   * Jeśli walidujesz adresy e‑mail, możesz użyć czegoś takiego: `\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b`. Ten wzorzec sprawdza typową strukturę e‑mail, weryfikując znaki alfanumeryczne przed i po znaku "@".
4. **Walidacja dat**:
   * Aby zwalidować daty w formacie DD/MM/YYYY, możesz użyć `\b\d{2}\/\d{2}\/\d{4}\b`. Tutaj `\d{2}` znajduje dokładnie dwie cyfry, `/` to dosłowny ukośnik, a `\d{4}` szuka czterech cyfr.
5. **Elastyczna walidacja**:
   * Czasami możesz chcieć zwalidować słowa zaczynające się od określonej litery. Na przykład, aby znaleźć słowa zaczynające się na „a”, użyj `\ba\w*\b`. To szuka granic słowa (`\b`), litery "a" oraz dowolnej liczby znaków słowa (`\w*`).

Regex daje możliwość szybkiego wyszukiwania wzorców i wyodrębniania istotnych informacji z tekstu bez ręcznego przeszukiwania. Na początku mogą wydawać się skomplikowane, ale z praktyką stają się niezwykle przydatne do walidacji danych i przetwarzania tekstu. Zanurz się i odkrywaj nieograniczone możliwości!

## Dostępne szablony regex

W Ergonode znajdziesz kilka powszechnych wzorców regex już dostępnych dla twojej wygody.

**Oto lista:**

* EAN-13
* EAN-8
* Adres URL
* Ścieżka pliku
* Alfanumeryczne (bez spacji)
* Alfanumeryczne (ze spacją)
* Numeryczne (liczby całkowite)
* Numeryczne (oddzielane kropką)
* Numeryczne (oddzielane przecinkiem)

Aby z nich skorzystać kliknij ***Copy from regex templates*** i wybierz jeden z listy.

<figure><img src="https://2967841381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM9BbYBbDPiJapb75xJ2k%2Fuploads%2FBHgZtP4NPCMEbgvSEDQw%2Fimage.png?alt=media&#x26;token=200e0949-4c60-4e9c-9294-08572fa4e0ac" alt=""><figcaption></figcaption></figure>

## Niestandardowy komunikat o błędzie walidacji regex

Możesz ustawić niestandardowy komunikat o błędzie walidacji dla użytkownika.

<figure><img src="https://2967841381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM9BbYBbDPiJapb75xJ2k%2Fuploads%2FQC7udQebSNCbrKI9mXvm%2Fimage.png?alt=media&#x26;token=4b853ceb-8b87-4373-b67a-a570ab41c48a" alt=""><figcaption><p>Karta walidacji atrybutu tekstowego</p></figcaption></figure>

Komunikat zostanie wyświetlony w polu walidacji

<figure><img src="https://2967841381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM9BbYBbDPiJapb75xJ2k%2Fuploads%2FcbZYcDCMsEClY9N9B4n6%2Fimage.png?alt=media&#x26;token=82cf494e-1a23-4f16-98cf-a7cd39e0df46" alt=""><figcaption><p>Karta walidacji atrybutu tekstowego - niestandardowy komunikat o błędzie walidacji</p></figcaption></figure>

w dymku narzędzia na [Katalog produktów (siatka produktów)](https://usermanual.ergonode.com/ergonode-user-manual-pl/produkty/katalog)

<figure><img src="https://2967841381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM9BbYBbDPiJapb75xJ2k%2Fuploads%2FRhK0sspWKMgkpi5B5mz7%2Fimage.png?alt=media&#x26;token=aef48e0e-28e1-4489-9a8c-70ebedd7fb6b" alt=""><figcaption><p>Katalog produktów - niestandardowy komunikat o błędzie walidacji</p></figcaption></figure>

w [Atrybut kategorii](https://usermanual.ergonode.com/ergonode-user-manual-pl/struktura-produktu/atrybuty-kategorii) (jeśli atrybut jest ustawiony jako jeden)

<figure><img src="https://2967841381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM9BbYBbDPiJapb75xJ2k%2Fuploads%2F99NCnuAGdI4w6bjVYJbg%2Fimage.png?alt=media&#x26;token=3658250e-71f2-4bc4-b33a-a052df2579bb" alt=""><figcaption></figcaption></figure>

w [Akcja masowa](https://usermanual.ergonode.com/ergonode-user-manual-pl/produkty/katalog/akcje-masowe)

<figure><img src="https://2967841381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM9BbYBbDPiJapb75xJ2k%2Fuploads%2Fdpmxp2KSlEpOgghwkgVu%2Fimage.png?alt=media&#x26;token=29edf30c-6943-4948-8e99-6742d80d8fe4" alt=""><figcaption></figcaption></figure>

i na karcie produktu.

<figure><img src="https://2967841381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM9BbYBbDPiJapb75xJ2k%2Fuploads%2FeZqyq8juT9pey0UB9n8K%2Fimage.png?alt=media&#x26;token=aba07010-6c97-4373-93f0-dc22c23b7631" alt=""><figcaption></figcaption></figure>
