Automatyzacja cen i kontrola marży
Ceny w walutach obcych, które przeliczają się same każdego dnia po kursie średnim NBP, i koszt zakupu widoczny przy produkcie, dzięki czemu marża jest liczbą w panelu, a nie czymś, co raz na miesiąc składa się w arkuszu.
Cena to dopiero połowa decyzji
Handlowiec dostaje telefon z pytaniem o rabat i ma pięć minut na odpowiedź. Cenę zna. Tego, ile zostaje po prowizji i podatku, zwykle nie, więc pyta kogoś, kto pyta kogoś innego, albo obniża cenę na wyczucie i wraca do rozmowy.
Powód jest prozaiczny. Cena i koszt zakupu prawie nigdy nie mieszkają w tym samym systemie, więc odpowiedź na pytanie o opłacalność powstaje raz na kwartał i zawsze po fakcie. Wtedy jest już tylko materiałem do wniosków, a nie do decyzji.
Kiedy koszt stoi przy cenie w jednym panelu, rabat przestaje być zakładem. Znika też cicha zależność od jednej osoby, która jako jedyna umie złożyć zestawienie marż, a którą zauważa się dopiero w tygodniu jej nieobecności.
Co robi codzienne przeliczanie
Źródłem jest cena w PLN. Każdego dnia zaplanowane zadanie pobiera kurs średni z tabeli A NBP i wylicza cenę walutową: cena w PLN podzielona przez kurs, pomnożona przez ustawiony przez Ciebie mnożnik marży, zaokrąglona połówkowo w górę do dwóch miejsc po przecinku.
W mnożniku siedzi cała ocena handlowa i właśnie dlatego nie ma dla niego wartości domyślnej. Przebieg, który nie znajdzie ustawionej marży, kończy się odmową w całości, zamiast policzyć cokolwiek na wymyślonej liczbie. Zgadywanie byłoby tu gorsze od bezczynności, bo błędna cena, która wygląda wiarygodnie, po prostu idzie do sklepu.
Nie musisz czekać na harmonogram. Przeliczenie odpalisz z panelu, a każdy przebieg raportuje osobno dla każdej waluty, co faktycznie zrobił. Odpowiedź na pytanie zadane po zmianie ustawień jest więc w interfejsie, a nie w logach.
Czego automat nie tyka
Zasada jest prosta: przy każdym sporze z człowiekiem automat ma przegrać.
Czytana i zapisywana jest wyłącznie cena domyślna. Nadpisania dla regionów, ceny dla grup klientów, progi ilościowe, wszystko, co objęte regułą albo umieszczone w cenniku, zostaje nietknięte, bo każda taka pozycja jest czyimś świadomym wyjątkiem.
Ręczne poprawki chroni zapis ostatniej ceny wystawionej przez wtyczkę, używany jako znacznik współbieżności. Kiedy cena w sklepie przestaje się z nim zgadzać, przebieg ją omija.
Waluta spoza listy obsługiwanych przez sklep jest pomijana w całości, a nie wariant po wariancie. Kurs starszy niż tolerancja, domyślnie pięć dni, albo kurs, którego w ogóle nie udało się pobrać, wyłącza tę walutę z całego przebiegu. Żadna cena nie powstaje z połowy danych.
Całość instaluje się w stanie wyłączonym. Samo wpięcie wtyczki nie zmienia w sklepie niczego, dopóki jej nie włączysz.
Historia kosztów, której nie da się wygładzić
Koszt zakupu netto pilnowany jest na poziomie SKU, a pod spodem leży historia, do której można wyłącznie dopisywać. Trwałym kluczem jest SKU, bo SKU przeżywa identyfikatory wariantów. Identyfikator wariantu jest tylko powiązaniem podręcznym, które w razie potrzeby odświeża się z panelu.
Wpis to więcej niż liczba. To także waluta, źródło, czyli informacja, czy koszt powstał ręcznie, z importu CSV, czy przez API, użytkownik Medusy, który go zmienił, i notatka. Po pół roku rzadko pytasz, ile wynosił koszt. Pytasz, dlaczego się zmienił i kto się na to zgodził.
Aktualizacja, usunięcie, usunięcie miękkie i przywrócenie na tabeli historii są celowo przesłonięte tak, żeby rzucały wyjątkiem. Nie ma wspieranej drogi do edytowania przeszłości i to jest zamierzone.
Liczby, które z tego wychodzą
Kiedy koszt i cena leżą w jednym miejscu, potrzebne wielkości są kwestią arytmetyki, a nie analizy.
Koszt brutto to koszt zakupu netto powiększony o VAT.
Dochód netto to cena sprzedaży pomniejszona o prowizję i o koszt brutto.
Próg opłacalności to koszt brutto podzielony przez jeden minus stawka prowizji, czyli dokładnie ta liczba, którą warto znać przed przyznaniem rabatu.
Marża to dochód netto odniesiony do ceny sprzedaży.
Brakujące dane wejściowe nie dają zera, tylko pusty wynik. To rozróżnienie ma znaczenie w praktyce, bo zero wydrukowane przy produkcie ktoś przeczyta jako informację i podejmie na jej podstawie decyzję.
Gdzie to widać na co dzień
W dwóch miejscach, oba w panelu Medusy, z którego i tak korzystasz.
Widget na karcie produktu pokazuje koszt, historię i wyliczenia dla produktu, który masz przed sobą. Kolumna z marżą trafia do wspólnej tabeli Catalog, czyli jednej rozszerzalnej listy produktów, do której nasze wtyczki do Medusy dopisują swoje kolumny, zamiast dokładać każda własną, prawie identyczną listę.
Efekt jest taki, że marżę widzisz mimochodem, przy okazji innej pracy, zamiast prosić kogoś o raport. Pełną dokumentację obu wtyczek znajdziesz na stronach medusa-fx-pricing i medusa-product-costs, więc możesz przeczytać, co dokładnie robią, zanim cokolwiek zamówisz.
Co dostajesz
Codzienne ceny w USD i EUR z ceny w PLN
Zaplanowane zadanie pobiera kurs średni z tabeli A NBP i wylicza cenę walutową jako cenę w PLN podzieloną przez kurs i pomnożoną przez Twój mnożnik marży, z zaokrągleniem połówkowym w górę do dwóch miejsc po przecinku.
Mnożnik marży ustawiany świadomie
Nie ma wartości domyślnej ani awaryjnej. Przebieg bez ustawionego mnożnika odrzucamy w całości, zamiast po cichu zgadywać liczbę, która trafiłaby potem na metkę.
Ochrona cen poprawionych ręcznie
Wtyczka zapamiętuje cenę, którą sama zapisała, i traktuje ten zapis jako znacznik współbieżności. Cena zmieniona przez człowieka przestaje się zgadzać, więc kolejny przebieg ją omija zamiast nadpisywać czyjąś decyzję.
Koszt zakupu przy każdym SKU i historia, do której można tylko dopisywać
W każdym wpisie jest koszt jednostkowy netto, waluta, źródło, czyli informacja, czy powstał ręcznie, z importu CSV, czy przez API, użytkownik Medusy, który go zmienił, oraz notatka z uzasadnieniem.
Wyliczenia zamiast szacunków
Koszt brutto to koszt netto powiększony o VAT. Dochód netto to cena sprzedaży pomniejszona o prowizję i koszt brutto. Próg opłacalności to koszt brutto podzielony przez jeden minus stawka prowizji, a marża to dochód netto do ceny sprzedaży.
Masowy import kosztów z CSV
Import radzi sobie z przecinkiem i średnikiem jako separatorem, przecinkiem i kropką w miejscach dziesiętnych, separatorem tysięcy, cudzysłowami oraz symbolem waluty zostawionym w komórce. Gdy separator jest naprawdę niejednoznaczny, przerywa zamiast zgadywać.
Jak pracujemy
- 01
Ustalamy cenę bazową i mnożnik
Cena w PLN jest jedynym źródłem, z którego liczone są pozostałe waluty. Najpierw domykamy mnożnik marży dla każdej z nich, bo to w tej liczbie siedzi cała decyzja handlowa, a wtyczka jej za Ciebie nie wymyśli.
- 02
Dokładamy koszt do każdego SKU
Koszty wchodzą importem z CSV, ręcznie w panelu albo przez API z systemu, który już je zna. Trwałym kluczem jest SKU, identyfikator wariantu jest tylko podręcznym powiązaniem, a w panelu czeka akcja odświeżenia tych powiązań, gdy katalog się przemebluje.
- 03
Wpisujemy VAT i prowizję wprost
Nie ma domyślnej stawki VAT ani domyślnej waluty. Operacja, która ich potrzebuje, odmawia i nazywa brakujące ustawienie. Pierwszy dzień jest przez to wolniejszy, a pierwszy miesiąc znacznie spokojniejszy.
- 04
Uruchamiamy ręcznie, zanim zacznie działać samo
Wszystko instaluje się wyłączone, więc nic nie zapisuje, dopóki sam tego nie włączysz. Przeliczenie odpalasz z panelu, czytasz podsumowanie tego, co przebieg zrobił w każdej walucie, i dopiero wtedy oddajesz sprawę harmonogramowi.
- 05
Patrzysz na kolumnę z marżą
Marża pojawia się jako kolumna we wspólnej tabeli Catalog w panelu Medusy, obok kolumn dokładanych przez pozostałe nasze wtyczki. Sprawdzenie, czy produkt się opłaca, przestaje być comiesięcznym ćwiczeniem raportowym.
Narzędzia i technologie
Tam, gdzie istnieje dobre narzędzie open source, wybieramy je zamiast zamkniętego. Bez uzależnienia od jednego dostawcy i z kosztami, które da się przewidzieć.
- Medusa v2
- TypeScript
- Node.js
- PostgreSQL
- Next.js
- NBP API
- @zanreal/medusa-fx-pricing
- @zanreal/medusa-product-costs
- @zanreal/medusa-admin-kit
- CSV
Najczęściej zadawane pytania
Pozostałe usługi w tej kategorii
Wdrożenia headless commerce na Medusie
Sklep pudełkowy narzuca własny model danych, własne reguły koszyka i własny harmonogram wydań. Medusa v2 jest frameworkiem, który stoi u Ciebie, więc to, co w Twojej sprzedaży odstaje od szablonu, da się zbudować zamiast obchodzić dookoła.
Integracje z marketplace'ami — Allegro
Sprzedaż na Allegro obok własnego sklepu zwykle kończy się jednym katalogiem prowadzonym w dwóch miejscach i arkuszem, który to wszystko spina. Oferty, stany i zamówienia mogą być w tym samym panelu co reszta asortymentu.
Fakturowanie i KSeF w sklepie internetowym
Od kwietnia 2026 faktura dla nabywcy z numerem NIP musi trafić do KSeF, a kary za brak wysyłki ruszają w styczniu 2027. Sklep może wystawiać i wysyłać te dokumenty sam, pod warunkiem że w wątpliwych sytuacjach pyta człowieka zamiast zgadywać.
Przeczytaj opinie firm, które nam zaufały
Dostarczone znacznie wcześniej niż termin.
Indywidualne podejście ZanReal jest imponujące.
Wiedza i intuicja biznesowa czynią ich wartościowym partnerem.
Szybkie rozwiązania, które obniżyły koszty o 99%.
+20% dostarczalności dla naszych kampanii e-mail.

Najnowsze
Poradniki techniczne, bezpieczeństwo i nasze doświadczenia z budowania rozwiązań AI.
Ciekawi Cię, co dalej?
Zobacz wszystkie postyKto w Twojej firmie wie, ile naprawdę zarabiasz na produkcie?
Napisz do nasPowiedz nam, w ilu walutach sprzedajesz i gdzie dziś trzymasz koszty zakupu. Pokażemy, co codzienne przeliczanie zrobiłoby z Twoim katalogiem, zanim cokolwiek zapisze pierwszą cenę.
Nie nadążasz za zmianami w świecie AI?
Pozwól, że weźmiemy to na siebie. Co tydzień destylujemy najważniejsze wydarzenia ze świata AI w skupiony, 5-minutowy przegląd - żebyś był na bieżąco bez szumu.
Dowiedz się więcej