Przejdź do treści

ProductPricing

ProductPricing (cennik produktu) to struktura reprezentująca zbiór cen jednego produktu w danym kontekście (sprzedaż, zakup, kanał): tablica price[], gdzie każdy element łączy type (rodzaj ceny) i amount (Money).

Dwa sposoby wymiany:

Sposób Gdzie Pola charakterystyczne
Osadzony (domyślny) contained w ProductDefinition Lokalne id; identifier i product zwykle puste
Samodzielny Poza zakresem API.ERP (brak endpointu); dopuszczony tylko jako element contained

DocumentPosition i Invoice niosą cenę transakcyjną na dokumencie. Wzorowany na SAP (warunki cenowe), Dynamics (Price/discount), FHIR (MedicationKnowledge.cost).

Rozszerza DomainResource — w trybie osadzonym obowiązują reguły contained.


1. Zakres i zastosowanie

ProductPricing = „ile kosztuje ten produkt”: wiele wpisów w price[] (cena katalogowa, transakcyjna, promocyjna, próg ilościowy).

  • ProductDefinition — nadrzędny zasób; ceny w contained[] (źródło detaliczne emituje jeden ProductPricing na cennik).
  • DocumentPosition — cena na dokumencie; referencja do produktu (np. ProductDefinition/pd-001#pp-retail).

2. Zawartość (struktura)

Oprócz elementów DomainResource (id, resourceType, meta, owner, comment, category, status, type, contained, attribute):

Nazwa Kard. Typ Opis
context 0..1 CodeableConcept Kontekst — słownik product-pricing-context (sale, purchase, channel-retail, channel-b2b)
period 0..1 Period Domyślny okres ważności cen
applicability 0..* CodeableConcept Segment (grupa klientów, region, kanał)
price 1..* Price (sekcja 3) Lista cen (type + amount)
vatRate 0..1 CodeableConcept Stawka VAT zestawu — słownik vat-rate
vatInclusion 0..1 Coding (element coding z CodeableConcept) Czy ceny w zestawie są bez VAT (exclusive) czy z VAT (inclusive) — słownik vat-inclusion
identifier 0..* Identifier Identyfikator wpisu cenowego w rejestrze
product 0..1 Reference(ProductDefinition) Produkt, którego dotyczą ceny

Schemat wymaga wyłącznie price. id w contained jest lokalny (np. pricing-<id cennika>). status (z DomainResource): API emituje active w systemie https://api-erp.kamsoft.pl/vs/status (adres w rejestrze, słownik nieopublikowany). W contained pola identifier i product są dopuszczalne, ale nie są wypełniane — produkt nadrzędny jest kontekstem.

Waluta

Waluta każdej pozycji jest w price[].amountMoney (value + currency, ISO 4217).


3. Price (zagnieżdżony typ)

Price to element tablicy price[] (Value Object: type + amount).

Nazwa Kard. Typ Opis
type 1..1 CodeableConcept Rodzaj ceny — słownik price-type (unit, list, transactional, promotional)
amount 1..1 Money Kwota (value + currency)
vatInclusion 0..1 Coding Czy ta cena jest bez VAT (exclusive) czy z VAT (inclusive) — słownik vat-inclusion; brak → ProductPricing.vatInclusion
perQuantity 0..1 Quantity Ilość jednostkowa, której dotyczy cena
minQuantity 0..1 Quantity Próg ilościowy
period 0..1 Period Okres ważności tej ceny
status 0..1 CodeableConcept Status pozycji

Schemat Price wymaga type i amount. Źródło detaliczne emituje ceny list (przed rabatem) i transactional (po rabacie).


4. Cennik wieloproduktowy

Każda ProductDefinition niesie własne ProductPricing w contained; nie ma osobnego zasobu cennika ani koperty zbiorczej.


5. Przykłady


6. Odniesienia