Skip to Content

Cena sprzedaży w Odoo: jedno pole, wiele reguł

Jedna cena, wiele prawd — jak Odoo liczy cenę sprzedaży

Handlowiec wpisuje cenę produktu raz. A na ofercie pojawia się inna liczba — i zaczyna się śledztwo. To jeden z najczęstszych „drobiazgów", które potrafią podważyć zaufanie do całego systemu. Warto więc raz porządnie zrozumieć, skąd Odoo bierze cenę na dokumencie sprzedaży.

Punkt wyjścia: cena produktu i cennik

Każdy produkt ma cenę sprzedaży — jedno pole, zapisane w walucie firmy. To wartość domyślna. Ale między produktem a ofertą stoi jeszcze cennik przypisany do klienta. Jeśli cennik ma regułę pasującą do sytuacji (rabat ilościowy, cena specjalna, formuła z narzutem), to on decyduje. Jeśli reguły nie ma — Odoo wraca do ceny produktu.

W praktyce oznacza to prostą zasadę: cena na ofercie to nie „to, co wpisałem przy produkcie", tylko wynik reguły cennika, a dopiero w drugiej kolejności cena bazowa. Kto o tym pamięta, ten nie szuka błędu tam, gdzie go nie ma.

Kiedy w grę wchodzą waluty

Tu robi się ciekawie. Gdy waluta cennika różni się od waluty produktu — na przykład produkt w złotówkach, a cennik w euro — Odoo przelicza cenę po kursie. Kluczowe: to kurs waluty zdefiniowany w systemie, obowiązujący na datę dokumentu, a nie kurs „na dziś" ani kurs handlowy.

Stąd dwie typowe pułapki. Pierwsza: cena „skacze" razem z kursem dnia i wychodzą brzydkie końcówki. Druga, groźniejsza: jeśli dla danej waluty nie ma w ogóle wpisanego kursu, Odoo przyjmuje przelicznik 1:1 — i nagle 1000 zł staje się 1000 euro. To nie awaria cennika, tylko brak kursu.

Gdy standard to za mało

Domyślny mechanizm jest logiczny, ale nie zawsze wygodny. Firmy chcą stabilnych cen w euro niezależnych od kursu dnia, własnych zasad zaokrąglania, narzutów liczonych od kosztu, cenników zależnych od projektu albo automatycznego przenoszenia cen z oferty handlowej do produkcyjnej.

Dobra wiadomość: to obszar, w którym Odoo daje się rozsądnie rozszerzać — regułami cennika, formułami, a tam gdzie trzeba, dedykowaną logiką i automatyzacją.

Cena sprzedaży wygląda na drobiazg, a jest miejscem, gdzie spotykają się handel, księgowość i zaufanie do danych. Jeśli Wasz proces cenowy wymyka się standardowi, chętnie pomagamy ułożyć go tak, by liczba na ofercie nigdy nie była zaskoczeniem.


Krótko i konkretnie — bez żadnej reguły w cenniku EUR Odoo robi automatyczne przeliczenie walutowe ceny sprzedaży produktu:


Co się dzieje

  1. Punkt wyjścia = cena sprzedaży produktu (list_price). Ona jest zapisana w walucie firmy (np. PLN). Cennik bez reguł nie ma czym nadpisać ceny, więc Odoo bierze właśnie ją.
  2. Przelicza ją na walutę cennika (EUR), bo waluta cennika ≠ waluta produktu.
  3. Kurs = kurs waluty zdefiniowany w Odoo (Księgowość → Konfiguracja → Waluty → EUR), a nie żaden kurs handlowy czy „na dziś".

Po jakim kursie dokładnie

  • Data kursu = data dokumentu (date_order oferty), nie dzisiejsza. Zmień datę oferty → zmieni się cena.
  • Odoo bierze najświeższy wpis kursu ≤ data oferty. Jeśli na daną datę nie ma wpisu, użyje ostatniego wcześniejszego.
  • Kursy w Odoo są trzymane względem waluty firmy: rate(PLN) = 1, rate(EUR) = ile EUR za 1 PLN. Przeliczenie to:

    cena_EUR = cena_PLN × rate_EUR(na datę oferty)

    (potem zaokrąglone do precyzji waluty EUR).

Pułapka, na którą warto uważać

Jeśli dla EUR nie ma w ogóle wpisanego żadnego kursu → rate = 1 → cena w EUR wyjdzie liczbowo równa cenie w PLN (np. 1000 PLN → 1000 EUR). To najczęstsza przyczyna „dziwnych" cen na ofertach EUR — nie brak reguły w cenniku, tylko brak kursu waluty.


Czym są „Moje czynności" w Odoo