# Hoe het werkt

Van leveranciersaanbod naar jouw artikel: licenties, merkrechten, leveranciersrang en eigen voorraad.

Sectie: PIM · Aan de slag
Canonieke URL: https://docs.omniretailconnect.nl/pim/aan-de-slag/hoe-het-werkt

Je hoeft dit niet te weten om de API te gebruiken. Maar het helpt als je je afvraagt waarom een product wel of niet in je lijst staat, of waar een prijs of tekst vandaan komt.

## Van leverancier naar jouw artikel

1. Een leverancier stuurt een product, met prijs, voorraad, tekst en afbeeldingen.
2. De PIM koppelt dat aan één centraal product. Meerdere leveranciers kunnen hetzelfde product aanbieden.
3. De PIM kijkt per aanbod of jij het mag gebruiken.
4. Als er meer dan één aanbod over is, bepaalt de rang van de leverancier welk aanbod voorgaat.
5. Dat wordt jouw klantartikel. Dat is wat de API je laat zien.

## Het centrale product

Een centraal product is de gedeelde identiteit van een product, herkenbaar aan de EAN (`ean13`). Alle leveranciers die dat product verkopen, horen bij hetzelfde centrale product. Zo kun je hun aanbod naast elkaar zien.

## Het aanbod van een leverancier

Per leverancier bewaart de PIM een eigen aanbod: prijs, voorraad, naam, beschrijving, afbeeldingen en een status. In het antwoord staan die aanbiedingen onder `suppliers`.

*Statussen van een product*

| Status | Betekenis |
| --- | --- |
| `active` | Het product is leverbaar. |
| `eol` | Het product loopt uit en wordt niet meer geleverd. Soms staat er een einddatum in `eol_date`. |
| `unavailable` | Het product is op dit moment niet verkrijgbaar. |

In `suppliers` staan alleen actieve aanbiedingen die jij mag gebruiken. De status `eol` of `unavailable` staat bijvoorbeeld bovenaan een product als jouw eigen voorraad het in je lijst houdt, zie [Eigen voorraad](https://docs.omniretailconnect.nl/pim/aan-de-slag/hoe-het-werkt.md#eigen-voorraad).

## Jouw klantartikel

Per product bewaart de PIM voor jou één klantartikel. Daarin staan de gegevens zoals jij ze ziet: de gekozen tekst, afbeeldingen, jouw prijs en jouw voorraad, en of het artikel actief is. Alleen actieve klantartikelen komen in de API.

## Wanneer je een aanbod mag gebruiken

Een aanbod telt alleen mee als alles hieronder klopt.

- **Abonnement.** Je hebt een actief abonnement op de leverancier.
- **Actief aanbod.** Het aanbod is actief en gekoppeld aan een centraal product.
- **Licentie.** Heeft een leverancier een licentie nodig voor dit product, dan heb je een actieve licentie van diezelfde leverancier. Een licentie van een andere leverancier telt niet.
- **Merkrechten.** Is het merk beperkt, dan heb je toestemming voor dat merk. Is je abonnement beperkt tot bepaalde merken, dan staat het merk in die lijst.

Een aanbod dat hier niet aan voldoet, bestaat voor jou niet. Je ziet het niet in `suppliers`. Heeft een product geen enkel aanbod meer dat je mag gebruiken, dan verdwijnt het uit [Producten](https://docs.omniretailconnect.nl/pim/api/producten.md).

Licenties en merkrechten regelt de PIM-beheerder. Je kunt ze niet zelf aanpassen.

## Welke leverancier voorgaat

Je kunt meerdere leveranciers hebben. Elke leverancier heeft bij jou een rang.

- Een lager rangnummer gaat voor. Rang 1 is de hoogste.
- Hebben twee leveranciers dezelfde rang, dan gaat de leverancier met het laagste interne leveranciersnummer voor.
- De prijs speelt hierbij nooit een rol. Een goedkoper aanbod van een lagere rang wint niet.

Het aanbod van de leverancier met de hoogste rang is het hoofdaanbod, als dat aanbod voor jou beschikbaar is. De PIM neemt daaruit onder meer `nut_plas_number` en `category` over naar de velden bovenaan het product. Alle aanbiedingen die je mag gebruiken blijven in `suppliers` staan.

## Eigen voorraad uit je kassa of ERP

Komt een artikel uit je eigen kassa of ERP, dan kent de PIM ook jouw eigen voorraad. Die staat in `stock` bovenaan het product, als geheel getal. Voor andere artikelen is `stock` `null`. De voorraad van de leverancier staat apart in `suppliers[].stock`.

Is je eigen voorraad groter dan nul, dan blijft het artikel in je lijst staan, ook als de leverancier het product laat uitlopen of niet meer kan leveren. De status is dan `eol` of `unavailable`.

## Waar een veld vandaan komt en wanneer het wijzigde

`field_sources` zegt per veld waar de inhoud vandaan komt: de naam van een leverancier, of `Manual` als de tekst met de hand is ingevuld. Het gaat om `name`, `brand`, `content`, `short_description`, `description` en `images`.

`changed_at` geeft per veld het tijdstip van de laatste wijziging: `name`, `short_description`, `description`, `images`, `price` en `stock`. Het formaat is ISO 8601 met tijdzone, bijvoorbeeld `2026-03-12T11:30:00+01:00`. Een veld zonder bekend tijdstip is `null`.

Wil je weten welke producten zijn gewijzigd? Gebruik dan niet deze velden, maar het filter `updated_at`. Zie [Synchroniseren](https://docs.omniretailconnect.nl/pim/api/synchroniseren.md).
