W hurcie nie ma jednej ceny z metki - jest cena bazowa, ceny dla grup klientów, cenniki negocjowane i progi ilościowe, a WooCommerce potrafi to wszystko udźwignąć. Tylko że nikt Ci tego nie mówi przy instalacji sklepu. Świeży WooCommerce zna jedną cenę produktu i ewentualnie promocję. Cała reszta - hurtownik płaci mniej niż detalista, stały odbiorca ma wynegocjowane stawki, przy kartonie cena za sztukę spada - to warstwa, którą trzeba świadomie zaprojektować i dołożyć.
Ten tekst to mapa: jakie mechanizmy wchodzą w grę, kiedy wystarczy wtyczka, kiedy potrzebna jest logika szyta na miarę i gdzie czai się pułapka, przez którą klient A potrafi zobaczyć ceny klienta B.
Cennik hurtowy w sklepie internetowym to warstwy, nie jedna cena
Zanim dotkniesz jakiejkolwiek wtyczki, spisz jak naprawdę wygląda wycena w Twoim hurcie. Prawie zawsze składa się z warstw:
- Cena bazowa - to, co widzi anonimowy gość, czyli detal
- Grupy klientów - detal, hurt, VIP; każda grupa kupuje na swoim poziomie cen
- Cenniki negocjowane per klient - stały odbiorca ma indywidualne stawki na wybrane produkty
- Progi ilościowe - im więcej sztuk w zamówieniu, tym niższa cena za sztukę
WooCommerce obsłuży wszystkie cztery warstwy naraz. Ale kolejność ich nakładania i to, która wygrywa przy konflikcie (klient VIP kupuje hurtową ilość produktu, na który ma osobno wynegocjowaną stawkę - co obowiązuje?), to decyzje projektowe. Sklep, w którym nikt ich świadomie nie podjął, prędzej czy później wystawi komuś złą cenę. Szerzej o całym modelu sprzedaży hurtowej piszę w tekście o WooCommerce B2B.
Ceny po zalogowaniu - grupy klientów i role
Fundament to przypisanie klienta do grupy. Technicznie robi się to rolami użytkowników WordPressa albo grupami z wtyczki B2B: nowe konto hurtowe zatwierdzasz ręcznie (albo po weryfikacji NIP), a sklep od tej pory pokazuje temu klientowi ceny jego grupy - na karcie produktu, w koszyku i na fakturze.
Druga część tej układanki to ukrywanie cen przed niezalogowanymi. Wiele hurtowni nie chce świecić stawkami przed konkurencją, więc anonimowy gość widzi katalog bez cen i przycisk w stylu „Zaloguj się, aby zobaczyć ceny”, a liczby pojawiają się dopiero po zalogowaniu na zatwierdzone konto. Ten układ ma bonus: publiczny katalog bez cen cały czas pracuje w Google na frazy branżowe, więc chowając stawki, nie chowasz całej oferty. Grupy przydają się też do sterowania widocznością produktów - część asortymentu, na przykład markę premium, można pokazać wyłącznie autoryzowanym odbiorcom. WooCommerce tego nie umie sam z siebie, ale to standardowa funkcja wtyczek B2B i niewielki kawałek kodu, gdy wtyczki nie ma.
Różne ceny dla różnych klientów - cenniki per klient
Grupy wystarczają, dopóki warunki są proste: detal płaci pełną cenę, hurt niższą. Schody zaczynają się, gdy handlowiec wynegocjował z konkretnym odbiorcą indywidualne stawki - na cały asortyment albo tylko na kilka pozycji. Wtedy potrzebujesz cennika przypiętego do pojedynczego konta, który nadpisuje cenę grupy.
Dobra wiadomość: to też jest do zrobienia. Zła: właśnie tutaj gotowe wtyczki zaczynają trzeszczeć, bo edycja setek indywidualnych stawek przez panel WordPressa to mordęga, a każdy wyjątek od reguły mnoży kolejne. Stąd zdrowa zasada: tak mało indywidualnych wyjątków, jak się da - każdy z nich to przyszła pomyłka.
Progi cenowe ilościowe i netto kontra brutto
Progi ilościowe to klasyka hurtu: kupujesz na sztuki - płacisz stawkę bazową, bierzesz karton - cena za sztukę spada, bierzesz paletę - spada jeszcze bardziej. W WooCommerce ustawia się to per produkt albo per kategoria, a klient powinien widzieć tabelkę progów na karcie produktu, zanim doładuje koszyk. Konkretne progi i wysokości opustów to Twoja decyzja handlowa - mechanizm jest po to, żeby sklep pilnował ich za Ciebie.
Druga rzecz, o której hurtownie pamiętają, a wdrożeniowcy nie zawsze: hurt myśli netto, detal brutto. Firma porównuje Twoje stawki z cennikami konkurencji w netto, konsument chce widzieć cenę końcową z VAT. Sklep, który obsługuje obu, musi pokazywać ceny inaczej dla każdej grupy - to jedno ustawienie w złym miejscu potrafi zepsuć zaufanie hurtownika na dzień dobry.
Gotowa wtyczka czy logika szyta na miarę
Typowe przypadki - grupy cenowe, ukrywanie cen, proste progi - pokrywają dojrzałe wtyczki B2B i od tego bym zaczynał, bo to najkrótsza droga do działającego sklepu. Granica przebiega tam, gdzie zaczyna się Twoja specyfika: tysiące klientów z indywidualnymi warunkami prowadzonymi w ERP, ceny zależne od historii zakupów, łączenie progów z negocjowanymi stawkami. Wtedy praca zamienia się w walkę z wtyczką - obchodzenie jej założeń hakami, aż nikt już nie wie, skąd się bierze cena na ekranie.
W takiej sytuacji zdrowszy jest odwrotny kierunek: mała, własna warstwa logiki cenowej napisana pod Twoje reguły. Mniej kodu niż we wtyczce-kombajnie, za to każda linijka odpowiada realnej regule handlowej, którą umiesz wskazać palcem.
Pułapka numer jeden: cache
Teraz rzecz, przez którą trafiają do mnie sklepy „do naprawy po kimś”. Sklep przyspieszany jest cache’em - mechanizmem, który zapamiętuje raz wygenerowaną stronę i serwuje ją kolejnym odwiedzającym bez pytania bazy. Świetne dla szybkości, zabójcze dla cen indywidualnych: jeśli cache nie rozróżnia użytkowników, potrafi zapamiętać stronę z cenami klienta A i pokazać ją klientowi B. Albo wystawić ceny hurtowe niezalogowanym - dokładnie te, których miały nie widzieć konkurencja i detal.
To nie jest teoretyczny straszak, tylko błąd, który realnie naprawiam: strony z cenami zależnymi od konta muszą być z cache wyłączone albo cache musi trzymać osobne wersje per grupa. Po każdej zmianie wtyczki cache trzeba to sprawdzić od nowa - dlatego cenniki hurtowe i opieka techniczna nad sklepem chodzą parami.
Co pomaga: prosty test po każdym wdrożeniu i każdej zmianie ustawień - otwórz sklep w oknie prywatnym jako gość, potem zaloguj się na dwa różne konta testowe (detal i hurt) i porównaj ceny tego samego produktu. Trzy spojrzenia, a wyłapują większość wpadek z cache i grupami.
Cenniki z ERP - sklep pobiera, nie przepisuje
Jeśli Twoje cenniki żyją w programie handlowym typu Subiekt czy Optima, sklep powinien je stamtąd pobierać, a nie mieć drugą, ręcznie przepisywaną kopię. Ręczne przepisywanie kończy się zawsze tak samo: ktoś zmienia stawkę w ERP, zapomina o sklepie i klient zamawia po starej cenie. Jak spiąć te dwa światy - i co z fakturami - opisuję w tekście o integracji z ERP i KSeF.
Od czego zacząć
Nie od wtyczki. Od kartki: spisz swoje realne reguły cenowe - grupy, wyjątki, progi, kto negocjuje i co ma pierwszeństwo. Godzina z kartką oszczędza tygodnie przeróbek, bo dopiero mając reguły na papierze, widać, czy wystarczy gotowe narzędzie, czy potrzebna jest warstwa szyta na miarę.
Jeśli wolisz, żeby to poskładał ktoś, kto robił to nie raz - takie wdrożenia wyceniam w modelu fixed-bid, orientacyjnie w widełkach pięć-dziesięć tysięcy złotych netto zależnie od złożoności reguł, zawsze z konkretną wyceną na piśmie przed startem. To część usług rozwoju i optymalizacji sklepów, które już działają i mają zarabiać więcej.
Najczęstsze pytania
Czy WooCommerce obsługuje ceny hurtowe bez wtyczek? W standardzie nie - goły WooCommerce zna jedną cenę i promocję. Grupy klientów, ceny po zalogowaniu i progi ilościowe dokłada się wtyczką B2B albo własnym kodem.
Jak ukryć ceny przed niezalogowanymi w WooCommerce? Sklep pokazuje katalog bez cen i przycisk logowania, a stawki dopiero po zalogowaniu na zatwierdzone konto. Robi się to wtyczką B2B lub krótkim kodem - ważne, żeby cache nie wystawił ukrytych cen gościom.
Jak ustawić różne ceny dla różnych klientów w WooCommerce? Podstawą są grupy (detal, hurt, VIP) z własnymi poziomami cen, a dla klientów z wynegocjowanymi warunkami - cennik indywidualny przypięty do konta, który nadpisuje cenę grupy.
Czy ceny hurtowe mogą być netto, a detaliczne brutto? Tak, WooCommerce potrafi pokazywać ceny netto zalogowanym firmom i brutto detalistom. To kwestia poprawnej konfiguracji podatków i grup - warto ją przetestować na kontach testowych przed startem.
Co z klientem, który zawsze dzwonił po „swoją cenę”? Po zalogowaniu widzi dokładnie swoją cenę - i to zwykle najmocniejszy argument, żeby przesiadł się na zamawianie online. Telefon zostaje na negocjacje, nie na odczytywanie cennika.
Masz to u siebie i nie wiesz, od czego zacząć? Przyspieszam i naprawiam istniejące strony i sklepy - Core Web Vitals, awarie, rozbudowa o funkcje, których brakuje. Napisz, co się dzieje, a dostaniesz konkretną wycenę z terminem.