Księgowość i magazyn

Landed Costs w Odoo: jak transport i import wpływają na wartość zapasów

Cena zakupu nie zawsze jest pełnym kosztem towaru. Pokazuję, jak rozdzielić dodatkowe koszty między produkty i kontrolować kwoty, które czekają na przypisanie do zapasów.

Kategorie
  • Odoo
  • Księgowość
  • Magazyn
Tagi
  • Landed Costs
  • Koszty nabycia
  • Wycena zapasów
  • Odoo Inventory
Korekty wyceny w Odoo: wartość zapasu przed doliczeniem kosztów nabycia i po nim

Dzisiaj chcę wyjaśnić, jak działają Landed Costs w Odoo, czyli mechanizm rozliczania dodatkowych kosztów nabycia.

Sam mechanizm jest dość prosty. Firma przyjmuje towary albo wytwarza produkty, a następnie dolicza do wartości zapasów odpowiednie koszty dodatkowe.

Ciekawsze są pytania praktyczne. Które koszty należy uwzględnić? Jak podzielić fakturę za transport między różne produkty? Co się dzieje, gdy faktura dociera po sprzedaży towaru? Jak zobaczyć koszty, które zostały już zaksięgowane, ale jeszcze nie przypisano ich do zapasów?

Zacznijmy od definicji.

Czym są Landed Costs?

W codziennym języku biznesowym landed costs oznaczają dodatkowe koszty związane z nabyciem towarów i doprowadzeniem ich do miejsca oraz stanu, w których firma ich potrzebuje.

Właściwym standardem MSSF jest MSR 2 „Zapasy” — IAS 2 Inventories. Koszt zapasów obejmuje więcej niż cenę na fakturze dostawcy: koszty zakupu, przetworzenia oraz inne wydatki niezbędne do doprowadzenia zapasów do ich aktualnego miejsca i stanu. IFRS Foundation: IAS 2 Inventories.

Koszty zakupu mogą obejmować cła importowe, podatki niepodlegające odzyskaniu, transport, przeładunek i inne koszty bezpośrednio związane z nabyciem. Podatki podlegające odzyskaniu są wyłączone, a rabaty zmniejszają koszt zakupu. Kosztów magazynowania zasadniczo nie uwzględnia się, chyba że są niezbędne pomiędzy etapami produkcji. Koszty ogólnego zarządu i sprzedaży również nie kwalifikują się automatycznie. MSR 2, punkty 11–16.

To ważne rozróżnienie. Faktura od dostawcy nie staje się częścią wartości zapasów tylko dlatego, że dotyczy danej dostawy.

W Odoo Landed Costs, w polskim interfejsie Koszty nabycia, to mechanizm przypisywania kwalifikujących się kosztów dodatkowych do wybranych operacji magazynowych.

Cena zakupu może być dopiero początkiem

Załóżmy, że przyjmujesz 100 sztuk towaru po 10 EUR.

Początkowa wartość towarów wynosi 1 000 EUR. Następnie otrzymujesz osobną fakturę za transport na 200 EUR, który kwalifikuje się do doliczenia do kosztu zapasów.

Jeśli rozdzielisz ten koszt równomiernie między 100 sztuk, każda otrzyma dodatkowe 2 EUR kosztu. Łączna wartość wyniesie 1 200 EUR, czyli 12 EUR za sztukę.

W tym prostym, umownym przykładzie zakładamy, że cały towar nadal znajduje się w magazynie i nie występują inne korekty.

Ilość się nie zmieniła. Zmienił się koszt przypisany do towarów.

Rzeczywisty zakup może wiązać się z kilkoma dodatkowymi fakturami: za transport, obsługę celną, cło, ubezpieczenie lub inne kwalifikujące się usługi. Faktura za sam towar nie musi więc zamykać jego kosztu nabycia.

Jeśli potrzebujesz szerszego wyjaśnienia przyjęć, przesunięć i ruchów magazynowych, przeczytaj mój artykuł o tym, jak działa Odoo Inventory i zarządzanie magazynem. Tutaj zajmujemy się wartością związaną z tymi operacjami.

Zacznij od faktury dostawcy

Dokument kosztów nabycia można utworzyć ręcznie w Magazynowanie → Operacje → Koszty nabycia.

Menu Operacje w Odoo Magazynowanie z pozycją Koszty nabycia

Dokumenty Landed Costs są dostępne w aplikacji Magazynowanie, w menu Operacje → Koszty nabycia.

W procesie, który zwykle wdrażamy, punktem wyjścia jest jednak faktura dostawcy.

Przewoźnik wystawia fakturę za transport. Agent celny — za swoje usługi. Podwykonawca produkcyjny przesyła fakturę za wykonaną pracę.

Ważny szczegół to produkt wybrany na tej fakturze.

Dla powtarzalnych kosztów nabycia tworzymy osobne produkty typu Usługa (Service). Na karcie Zakup (Purchase) opcja Is a Landed Cost oznacza usługę jako koszt nabycia. Ustawiamy też domyślną metodę podziału.

Jeśli faktura zakupu zawiera odpowiednio oznaczone pozycje, Odoo udostępnia akcję utworzenia dokumentu kosztów nabycia. Faktura rejestruje zobowiązanie wobec dostawcy, a dokument Landed Cost rozdziela koszt między właściwe towary. Dokumentacja Landed Costs w Odoo.

Faktura zakupu w Odoo z produktem Landed Cost i kontem Landed Costs Clearing

Pozycja faktury wykorzystuje produkt Landed Cost i konto rozliczeniowe. U góry widoczna jest akcja Koszty nabycia, która łączy fakturę z dalszym rozliczeniem.

Dokument nadal wymaga wskazania właściwych operacji i sprawdzenia obliczeń.

Jak podzielić jedną fakturę za transport między różne produkty?

Wyobraź sobie kontener z butami, kurtkami, czapkami i sprzętem snowboardowym.

Faktura za transport wynosi 2 000 EUR.

Wszystkie produkty jechały razem, ale różnią się ilością, wartością, wagą i objętością. Jaką część tych 2 000 EUR powinien otrzymać każdy produkt?

Odoo udostępnia pięć standardowych metod podziału:

Metoda Podstawa podziału
Równo (Equal) Taka sama kwota dla każdej kwalifikującej się pozycji wyceny
Wg ilości (By Quantity) Udział ilości danej pozycji w łącznej ilości
Wg obecnych kosztów (By Current Cost) Udział pierwotnej wartości pozycji w wartości użytej do obliczenia
Wg wagi (By Weight) Udział wagi pozycji w łącznej wadze
Wg objętości (By Volume) Udział objętości pozycji w łącznej objętości

Podział równy i podział według ilości to różne metody. Pierwszy daje równe udziały pozycjom, drugi rozdziela koszt proporcjonalnie do ich ilości.

W naszej praktyce często rekomendujemy By Current Cost, czyli podział według obecnych kosztów. Towary o większej wartości otrzymują większy udział kosztu dodatkowego. Przy mieszanych dostawach to może być użyteczna i zrozumiała podstawa.

Nie nazwałbym jej jednak najdokładniejszą metodą dla każdego rodzaju kosztu. Jeśli cena transportu zależy od wagi, podział według wagi może lepiej odzwierciedlać wydatek. Jeśli głównym czynnikiem jest zajmowane miejsce, właściwsza może być objętość.

Wybierz podstawę odpowiadającą charakterowi kosztu i stosuj ją konsekwentnie. Podział według wagi i objętości wymaga również wiarygodnych danych produktów.

Wybierz przyjęcia, których wartość chcesz skorygować

Dokument kosztów nabycia musi wskazywać, do których operacji odnoszą się dodatkowe opłaty.

Dla kupowanych towarów wybierz odpowiednie przyjęcie lub przyjęcia w polu Przekazy (Transfers).

Łączysz koszt z ruchami, przez które towary trafiły do zapasów. Nie zwiększasz po prostu niezwiązanej z operacją liczby na karcie produktu.

Jeden dokument może obejmować kilka przyjęć. Przydaje się to, gdy faktura za transport dotyczy kilku kontenerów lub dostaw.

Dokument kosztów nabycia Odoo z przyjęciem i metodą podziału według obecnych kosztów

Dokument łączy przyjęcie z fakturą zakupu. W zakładce Dodatkowe koszty wskazano konto Landed Costs Clearing i metodę Wg obecnych kosztów.

Wybór wymaga uwagi. Prawidłowa kwota faktury przypisana do niewłaściwego przyjęcia nadal daje błędne koszty.

Standardowe obliczenia Landed Costs wymagają kwalifikujących się produktów z metodą kosztową FIFO lub średnią ważoną (AVCO). Efekt księgowy zależy również od konfiguracji wyceny.

Uruchom obliczenie, a następnie sprawdź korekty wyceny:

  • wartość pierwotną;
  • dodatkowy koszt nabycia;
  • nową wartość.

Zawsze chcę uzgodnić kwotę przeznaczoną do rozliczenia z sumą przypisaną do wybranych towarów.

Jeśli kwalifikujący się koszt dostawcy wynosi 2 000 EUR, podział powinien wyjaśniać całe 2 000 EUR, z uwzględnieniem zaokrągleń.

Na zrzucie wykorzystanym jako okładka wartość przyjęcia wynosi 256 500,00 PLN, dodatkowy koszt 31 584,00 PLN, a nowa wartość 288 084,00 PLN. Ilość pozostaje bez zmian: 19 000.

Landed Costs dotyczą także produkcji

Ten sam pomysł można zastosować do wytwarzanych produktów.

Po zainstalowaniu odpowiedniej integracji z produkcją dokument kosztów nabycia może wskazywać zlecenia produkcyjne (Manufacturing Orders) zamiast przekazów magazynowych. Obsługuje to integracja kosztów nabycia z produkcją w Odoo.

Proces jest znajomy:

  1. Zarejestruj fakturę dostawcy za kwalifikującą się usługę.
  2. Utwórz dokument kosztów nabycia.
  3. Wybierz zlecenia produkcyjne jako cel rozliczenia.
  4. Oblicz i sprawdź podział.
  5. Zatwierdź dokument.

Na przykład zewnętrzna usługa produkcyjna może wymagać uwzględnienia w wartości wyrobów gotowych.

Transport surowców wymaga dokładniejszego rozróżnienia. Jeśli wiąże się z nabyciem materiałów, naturalnym miejscem przypisania kosztu może być ich przyjęcie. Jeśli wydatek dotyczy bezpośrednio wytworzenia wyrobów gotowych, właściwym celem może być zlecenie produkcyjne.

Trzeba też uniknąć podwójnego doliczenia tej samej usługi, jeżeli uwzględniono ją już w innym procesie produkcji lub podwykonawstwa.

Pytanie brzmi zawsze: które towary powinny ponieść ten koszt i gdzie został on już ujęty?

Szerszy proces opisujemy w anglojęzycznym artykule o rozliczaniu kosztów produkcji w Odoo. Wdrożenie i uporządkowanie tych procesów omawiamy także na stronie wdrożenia Odoo w firmie.

Obliczenie odbywa się w walucie firmy

Faktury dostawców mogą przychodzić w różnych walutach. Wycena kosztów nabycia jest wyrażana w walucie podstawowej firmy.

Jeśli firma prowadzi księgi w dolarach amerykańskich, a faktura za transport jest w euro, do podziału potrzebna jest wartość w dolarach.

Nie porównuj bezpośrednio kwoty faktury w EUR z korektą wyceny w USD. Sprawdź kwotę po przeliczeniu oraz podstawę kursu zastosowaną w dokumentach księgowych.

Ma to szczególne znaczenie, gdy towary i dodatkowe usługi są fakturowane w różnych walutach.

Na pokazanej fakturze usługa została zafakturowana w UGX, a zapisy księgowe i korekta wyceny przedstawiają jej wartość w PLN. To właśnie kwoty w walucie firmy należy porównywać podczas kontroli rozliczenia.

Używaj konta rozliczeniowego Landed Cost Clearing

Jedna z moich praktycznych rekomendacji to osobne konto rozliczeniowe kosztów nabycia — Landed Cost Clearing.

Chodzi o widoczność kosztów, które zarejestrowano już na fakturach zakupu, ale nie przypisano ich jeszcze przez zakończone dokumenty Landed Costs.

W prostym przypadku, gdy wszystkie wskazane towary nadal znajdują się w zapasach, oczekiwany przepływ wygląda tak:

Dokument Wn (debet) Ma (kredyt)
Faktura zakupu (Vendor Bill) Landed Cost Clearing — konto rozliczeniowe kosztów nabycia Account Payable — zobowiązania wobec dostawców
Koszty nabycia (Landed Cost) Stock Valuation — konto wyceny zapasów Landed Cost Clearing — konto rozliczeniowe kosztów nabycia

To pokazuje kontrolę, którą chcemy osiągnąć. Dokładna konfiguracja i zapisy zależą od wersji Odoo, ustawień wyceny i lokalizacji księgowej. Schemat dotyczy samego kwalifikującego się kosztu; odrębne rozliczenie podatków nie zostało w nim przedstawione.

Zapisy faktury zakupu: Wn Landed Costs Clearing i Ma Account Payable na 31 584 PLN

Vendor Bill: 31 584,00 PLN po stronie Wn na koncie 110150 Landed Costs Clearing i po stronie Ma na koncie 211000 Account Payable.

Zapisy kosztów nabycia: Wn Stock Valuation i Ma Landed Costs Clearing na 31 584 PLN

Landed Cost: ta sama kwota zwiększa Stock Valuation po stronie Wn i rozlicza Landed Costs Clearing po stronie Ma. Numery kont pochodzą z pokazanej konfiguracji, nie są uniwersalnym planem kont.

Konto Stock Valuation może być różne dla różnych grup produktów. Przypisujemy je do kategorii produktów, dzięki czemu można oddzielić w księgach komponenty od wyrobów gotowych, a akcesoria od głównego towaru. Koszt dodatkowy trafia wtedy na odpowiednie konto wyceny wynikające z konfiguracji kategorii danego produktu.

Pozostałe saldo na koncie Clearing daje księgowemu coś do sprawdzenia.

Być może fakturę zaksięgowano, ale dokument kosztów nabycia nadal jest w wersji roboczej. Może rozliczono tylko część kosztu. Może wybrano niewłaściwe przyjęcie.

Saldo jest sygnałem do uzgodnienia, a nie automatycznym dowodem błędu.

Bilans Odoo z zaznaczonym saldem konta Landed Costs Clearing

W bilansie widać saldo Landed Costs Clearing. Trzeba sprawdzić, jakie faktury i dokumenty kosztów nabycia składają się na tę kwotę oraz które pozycje nadal czekają na rozliczenie.

Dlatego wolę proces, w którym każdą opłatę dostawcy można prześledzić aż do jej przypisania do zapasów.

Podobną ideę kontroli operacji w toku opisuję przy innym koncie przejściowym w artykule o przelewach wewnętrznych i Liquidity Transfer w Odoo. To odrębny proces, ale również wymaga wyjaśnienia pozostającego salda.

Odoo 19 zmieniło istotne elementy księgowania zapasów. Szerszy kontekst omawiamy w anglojęzycznym artykule o modelu wyceny zapasów w Odoo 19.

Konfiguracja produktów jest prosta; ważna jest dyscyplina zespołu

Zwykle tworzymy kategorię Landed Cost Products i umieszczamy w niej odpowiednie produkty usługowe.

To nasz sposób organizacji katalogu. Sama kategoria nie aktywuje mechanizmu.

Poszczególne produkty nadal wymagają oznaczenia jako koszt nabycia, odpowiednich domyślnych metod podziału oraz prawidłowej konfiguracji księgowej. Ustawienia magazynu również muszą wspierać ten proces.

Możesz utworzyć produkty dla transportu, obsługi celnej, ubezpieczenia i zewnętrznych usług produkcyjnych — tam, gdzie koszty kwalifikują się do ujęcia w wartości zapasów.

Następnie ustal z zespołem jedną praktyczną zasadę: przy wprowadzaniu odpowiedniej faktury dostawcy wybieramy wyznaczony produkt z katalogu.

Jeśli pracownicy użyją ogólnego produktu usługowego, zamierzony proces może zostać pominięty.

Krótka, jasno wyjaśniona lista często jest bardziej użyteczna niż skomplikowana procedura, której nikt nie stosuje. Takie zasady warto przećwiczyć podczas szkolenia Odoo Accounting.

Zatwierdzanie wymaga uwagi

Po zatwierdzeniu dokumentu kosztów nabycia standardowy Odoo nie pozwala anulować go zwykłą akcją anulowania.

Nie oznacza to, że błędu nie da się skorygować. Standard przewiduje ujemne koszty nabycia jako sposób odwrócenia rozliczenia. Taką korektę trzeba jednak sprawdzić w odniesieniu do późniejszych ruchów i skutków księgowych. Implementacja Landed Costs w Odoo.

Przed zatwierdzeniem sprawdź koszt, wskazane operacje, metodę podziału, walutę firmy i wynikowe wartości.

Dla towarów, które pozostają w magazynie, koszt dodatkowy staje się częścią wyceny wykorzystywanej przy ich późniejszej sprzedaży lub zużyciu, zgodnie z metodą kosztową.

Chwila poświęcona sprawdzeniu obliczenia jest znacznie łatwiejsza niż późniejsze wyjaśnianie korekty.

Co zrobić, gdy towary zostały już sprzedane lub zużyte?

Tutaj znaczenie ma moment rozliczenia.

Towary przyjeżdżają. Magazyn je wydaje. Część materiałów zostaje zużyta w produkcji. Dopiero potem faktura za transport trafia do księgowości.

Dodatkowy koszt odnosi się teraz częściowo albo w całości do towarów, które nie znajdują się już w pierwotnej postaci lub lokalizacji.

Stwierdzenie, że standardowy Odoo nie potrafi obsłużyć towarów już wydanych, byłoby zbyt szerokie. Odoo 18 zawiera korekty księgowe dotyczące ilości wydanych. Odoo 19 wykorzystuje inną logikę wyceny i księgowania, dlatego wynik trzeba sprawdzić w rzeczywistej konfiguracji. Implementacja Landed Costs w Odoo 18.

Moja praktyczna rekomendacja pozostaje taka sama: rejestruj i rozliczaj koszty nabycia na bieżąco, a sposób obsługi spóźnionych faktur sprawdzaj osobno.

Sam zaksięgowany dokument nie mówi jeszcze, czy wszystkie późniejsze marże i koszty produkcji skorygowano zgodnie z oczekiwaniami.

W niektórych wdrożeniach wprowadzamy lokalizację buforową dla towarów oczekujących na uzupełnienie kosztów lub dopuszczenie do dalszych operacji.

Lokalizacja musi być wsparta trasami, rezerwacjami i procedurą zwalniania towaru, które rzeczywiście zapobiegają przedwczesnemu wydaniu. Sama nazwa lokalizacji nie sprawia, że zapas jest niedostępny.

To podejście przydaje się tam, gdzie firma może poczekać na odpowiednie koszty. Jeśli nie może, obsługa spóźnionych kosztów potrzebuje własnej kontrolowanej procedury.

Co opracowaliśmy w ERPixel?

W ERPixel rozszerzaliśmy obsługę kosztów nabycia dla bardziej złożonych sytuacji.

Nasze prace obejmują kontrolowane procesy anulowania i odwracania rozliczeń, dodatkowe koszty towarów, które opuściły już firmę, oraz korekty dotyczące surowców zużytych w produkcji.

Ten ostatni przypadek jest szczególnie wymagający.

Koszt dodatkowy dotyczy przyjęcia surowca, ale surowiec został już przetworzony w wyrób gotowy. Część wyrobów może nadal być w magazynie, a część została już sprzedana.

Korekta musi przejść przez ten łańcuch i umieścić koszt tam, gdzie powinien się znaleźć.

Są to rozszerzenia przygotowywane dla konkretnych projektów. Nie należy mylić ich ze standardowym procesem Landed Costs ani przedstawiać jako uniwersalnej funkcji dostępnej w każdej instalacji Odoo.

Celem jest zachowanie możliwej do wyjaśnienia relacji między pierwotnym kosztem, zapasami, których dotyczy, a wynikowymi kosztami. Takie wymagania analizujemy w ramach dostosowywania Odoo do procesów firmy.

Dlaczego koszt zapasów zasługuje na tyle uwagi?

Po co poświęcać tyle pracy kosztowi zapasów?

Ponieważ wartość zapasów wpływa na bilans, koszt własny sprzedaży, marże i wynik finansowy.

Dla producenta albo firmy importującej sprzęt, materiały lub gotowe towary dodatkowe koszty nabycia mogą być znaczne.

Gdy firma szuka inwestora albo przechodzi audyt, musi umieć wyjaśnić te liczby. Które koszty dostawców uwzględniono? Jakie towary je otrzymały? Co pozostało w magazynie? Co już sprzedano? Co nadal czeka na przypisanie?

Prawidłowe rozliczanie Landed Costs wspiera takie wyjaśnienie. Samo w sobie nie gwarantuje jednak wyniku audytu.

Mechanizm Odoo jest prosty. Jego użyteczność zależy od wiarygodnych dokumentów, sensownej podstawy podziału, terminowej obsługi i czytelnej ścieżki audytowej.

Do takiego efektu dążymy: firma potrafi zweryfikować koszty zapasów, wyjaśnić marże i zaufać liczbom w swoim systemie księgowym.

Jeśli chcesz uporządkować koszty nabycia w swoim Odoo, skontaktuj się z ERPixel lub opisz proces w formularzu poniżej.

Zapytanie o projekt

Zacznijmy rozmowę

Opowiedz, jak działa Twoja firma i który proces chcesz uporządkować w Odoo.

Możesz opisać własny proces lub wskazać, co zaciekawiło Cię w demo Odoo.

O przetwarzaniu danych przeczytasz w polityce prywatności.

← Wróć do bloga ERPixel