Case study systemu B2B dla hurtowni szkła, świec i dekoracji z magazynami w Kanadzie i USA: WooCommerce, dwa magazyny w jednym sklepie, ukryte ceny hurtowe, minimalne ilości zamówień, chatbot AI i obsługa trzech języków na canpolltd.com.
Sklep hurtowy rządzi się innymi prawami niż sklep detaliczny. Ceny nie wiszą na wystawie, o zakupie decyduje konto firmowe, a ten sam produkt może być dostępny w jednym magazynie i niedostępny w drugim. Dla Canpol Manufacturing Ltd, hurtowni szkła, świec, sztucznych kwiatów i dekoracji z biurem w Mississauga (Ontario) i centrum dystrybucji w Suwanee (Georgia), zaprojektowaliśmy w Bydgoszczy system Canpol Warehouse. To wtyczka do WordPressa i WooCommerce, na której działa sklep hurtowy canpolltd.com. W tym case study opisujemy, jak zbudowaliśmy sklep B2B z dwoma magazynami na WooCommerce i jak ten system wygląda w codziennej pracy hurtowni.
W skrócie: system B2B z dwoma magazynami (USA i Kanada)
- Klient: Canpol Manufacturing Ltd, Mississauga (Kanada) i Suwanee (USA)
- Branża: hurtowa dystrybucja szkła, świec, sztucznych kwiatów, dekoracji i materiałów do pakowania dla florystów, sklepów z upominkami i projektantów eventów
- Zakres: motyw WordPress, wtyczka z logiką dwóch magazynów, konta firmowe z zatwierdzaniem, ceny i stany magazynowe per magazyn, MOQ i progi ilościowe, wersje EN, FR (kanadyjski) i ES, chatbot AI, SEO, newsletter, import i eksport danych, migracja ze starego serwisu
- Technologie: WordPress, WooCommerce, własny motyw i wtyczka, OpenAI, baza wektorowa Qdrant, n8n
- Wykonawca: Kreatywna Agencja, Bydgoszcz
- Adres strony: canpolltd.com
Wyzwanie: hurtownia, w której każdy klient widzi inny sklep
Dotychczasowy serwis Canpol był napisany w autorskim PHP, poza WordPressem, a sklep prowadził do zewnętrznej platformy. Nowy system miał zachować reguły biznesowe, które klient wypracował przez lata, i dołożyć narzędzia, których stary serwis nie miał. Lista wymagań była konkretna:
- konto firmowe przypisane do jednego z dwóch magazynów, czyli Kanady albo USA,
- osobne stany, dostępność i ceny w każdym magazynie, w tym produkty tylko dla Kanady,
- ceny hurtowe niewidoczne na stronach katalogu, a widoczne dopiero w koszyku,
- minimalna ilość zamówienia i ceny progowe zależne od magazynu,
- katalog w trzech językach i kolory produktów jako warianty,
- rejestracja nowych klientów z ręcznym zatwierdzaniem,
- przeniesienie istniejących klientów i historii zamówień bez wymuszania resetu haseł.
Najtrudniejsze były dwa magazyny w dwóch walutach (CAD i USD) przy jednym katalogu. Dlatego zdecydowaliśmy się na własne rozwiązanie na bazie WooCommerce, zamiast składać je z kilku gotowych wtyczek.
Jak pracowaliśmy nad projektem
- Analiza reguł biznesowych: spisaliśmy, jak działał stary serwis: kto widzi jakie ceny, jak liczony jest MOQ, co znaczy „tylko Kanada”.
- Model danych: stan, dostępność i cena są przechowywane osobno dla każdego magazynu, a nie w standardowych polach WooCommerce, które znają jeden magazyn.
- Motyw i katalog: układ strony głównej, nawigacja po kategoriach i karty produktów z kolorami jako wariantami.
- Migracja: import klientów, adresów i historii zamówień ze starego serwisu oraz dane produktów z plików CSV od dostawcy.
- Testy i etapy: pracowaliśmy zdalnie z Bydgoszczy, z cotygodniowymi postępami na środowisku testowym, tak jak przy każdym projekcie dla klientów w Polsce.
Rozwiązanie: jedna wtyczka, dwa magazyny, ukryte ceny
Strona główna od razu mówi, czym jest sklep: hasła o polskim szkle barwionym i świecach, przyciski „View specials” i „Request a quote”, logowanie, rejestracja i koszyk w nagłówku oraz przełącznik języków EN, FR i ES.

Konto przypisane do magazynu
Przy rejestracji klient podaje dane firmy, numer podatkowy i kraj, a kraj przypisuje konto do magazynu. Od tej chwili wszystko, co klient widzi, pochodzi z jego magazynu: stan, dostępność, waluta i cena. Ten sam kod produktu może kosztować inaczej w USD i w CAD, a część asortymentu jest oznaczona jako dostępna tylko w Kanadzie. Nowe konta trafiają do kolejki zatwierdzania, więc hurtownia sama decyduje, kto dostaje dostęp do cen.
Ceny widoczne dopiero w koszyku
Na kartach produktów nie ma cen, nawet dla zalogowanych klientów. Cena hurtowa pojawia się w koszyku i przy składaniu zamówienia. Gość zobaczy katalog, ale przy produkcie zostanie zaproszony do zalogowania. Minimalna ilość zamówienia jest wymuszana przy dodawaniu do koszyka, a cena progowa działa per magazyn. Zamówienia są składane „na rachunek”, bez płatności online w sklepie.

Warianty kolorystyczne i zarządzanie ofertą
Przy kilkuset produktach i ponad tysiącu wariantów kolorystycznych ręczne prowadzenie katalogu byłoby uciążliwe. Produkty są więc zmiennymi produktami WooCommerce z atrybutem koloru, a dane magazynowe mają osobno każdy wariant. Dane produktów można importować i eksportować w CSV i JSON, a magazyny aktualizować przez dedykowany interfejs REST. Raport brakujących towarów pokazuje, które warianty są wyprzedane w obu magazynach, i pozwala pobrać listę do zamówienia u dostawcy. Przygotowaliśmy też połączenie z QuickBooks Online, z osobną firmą księgową dla każdego magazynu.
Migracja ze starego serwisu
Klienci hurtowni nie powinni zaczynać od zera. Przygotowaliśmy most migracyjny, który tylko odczytuje dane ze starego serwisu i zapisuje je w WordPressie: konta klientów, adresy i historię zamówień. Dotychczasowe hasła działają bez wymuszania resetu, więc stały klient loguje się tak jak wcześniej. Na danych testowych przeniesiono około półtora tysiąca zamówień, dzięki czemu historia zakupów jest widoczna od pierwszego dnia, a segmenty klientów i raporty mają na czym pracować.
Trzy języki bez dublowania sklepu
Sklep działa po angielsku, w kanadyjskiej francuszczyźnie i po hiszpańsku. Każda wersja ma własny adres z parametrem języka, atrybut hreflang i poprawne metadane, więc wyszukiwarki rozróżniają wersje. Opisy produktów tłumaczy sztuczna inteligencja, ale każde tłumaczenie można poprawić ręcznie, a poprawiony tekst nie jest nadpisywany automatycznie.
Chatbot AI, który zna katalog, ale pilnuje cen
W prawym dolnym rogu działa „Canpol Ai Help desk”. Odpowiada w języku klienta na pytania o produkty, wymiary i kolory. Korzysta z opisów produktów i dokumentów w wektorowej bazie wiedzy, a ceny, minimalne ilości i dostępność odczytuje na żywo ze sklepu. Zasady widoczności są wymuszone w kodzie, a nie zostawione modelowi: gościowi chatbot nie pokaże ceny, tylko zaprosi do logowania, a dokładnych stanów magazynowych nie ujawnia nikomu, bo odpowiada opisowo („niski stan”, „dostępny”, „w drodze”).

Narzędzia dla właściciela: SEO, newsletter i powiadomienia
System zawiera moduły, które odciążają zespół hurtowni po starcie sklepu:
- SEO i widoczność w wyszukiwarkach AI: tytuły, opisy i teksty alternatywne obrazów w dwóch językach, mapa witryny, dane strukturalne i tabele parametrów produktów (wymiary, pochodzenie, ilość w opakowaniu).
- Newsletter: zapis w stopce, segmenty klientów (np. aktywni kupujący, klienci, którzy dawno nie zamawiali), statystyki otwarć i kliknięć oraz powiadomienia „produkt znów dostępny”.
- Powiadomienia i podsumowania: nowe zamówienia, niski stan, porzucone koszyki oraz dzienne lub tygodniowe podsumowanie sprzedaży.
- Kopie zapasowe: codzienne lub tygodniowe, z możliwością wysyłania kopii poza serwer.
- Dostępność: panel ułatwień dostępu na stronie. Nie zastępuje on audytu WCAG, o czym informujemy klienta wprost.
Zasady SEO takiego sklepu opisujemy szerzej w artykule o kampanii SEO dla lokalnego biznesu, a o tym, kiedy warto zlecić własną wtyczkę, w tekście o dedykowanych wtyczkach WordPress.
Zgodność i bezpieczeństwo
- Zgody na cookies: baner pozwala odrzucić pliki inne niż niezbędne, a analityka i piksel reklamowy czekają na zgodę.
- Ochrona przed botami: formularze rejestracji i kontaktu mają zabezpieczenia przed automatami.
- Dostęp do danych: ceny i dokumenty „tylko dla klientów” nie trafiają do osób niezalogowanych, także przez chatbota.
- Zgody marketingowe: newsletter wysyłamy tylko osobom, które się na niego zapisały.
Pozycji w Google nie obiecujemy. Sklep hurtowy ma wąską grupę odbiorców, a widoczność zależy od konkurencji, jakości danych produktów i regularności treści.
Technologie użyte w projekcie
- WordPress i WooCommerce jako baza katalogu, kont i zamówień,
- własny motyw i wtyczka Canpol Warehouse z logiką dwóch magazynów,
- OpenAI do opisów, tłumaczeń i odpowiedzi chatbota,
- Qdrant i n8n jako wektorowa baza wiedzy i warstwa pośrednia chatbota,
- import i eksport CSV i JSON oraz interfejs REST do aktualizacji katalogu i stanów.
Efekt: jeden system zamiast sklepu, który trzeba obchodzić
Klient dostał serwis, w którym klient z Kanady i klient z USA widzą swoje magazyny, a zespół zarządza katalogiem, tłumaczeniami, newsletterem i podsumowaniami z jednego panelu. Nie mamy dostępu do statystyk sprzedaży klienta, więc nie podajemy liczb konwersji ani przychodów. Wartość widać w uporządkowaniu: reguły, które wcześniej były zapisane w starym kodzie, są teraz ustawieniami, a nowe funkcje można dokładać modułami, bez przepisywania całości.
Ten projekt pokazuje też, że agencja z Bydgoszczy może prowadzić wdrożenie dla klienta po drugiej stronie Atlantyku: ustalenia zapisujemy, postępy pokazujemy co tydzień na środowisku testowym, a zmiany wprowadzamy etapami, bez zatrzymywania pracy hurtowni. Dla firmy z Bydgoszczy, Torunia czy Inowrocławia, która sprzedaje za granicę, to ten sam model współpracy.
Dla kogo takie rozwiązanie
System sprawdzi się w firmach, które sprzedają hurtowo i mają więcej niż jeden magazyn lub rynek: dystrybutorów, producentów i importerów, także z Bydgoszczy i regionu kujawsko-pomorskiego, którzy obsługują klientów za granicą. Inne nasze wdrożenia WooCommerce to sklep internetowy cukierni Rynkowa Bistro i strona software house AutCode z WooCommerce. Szersze podejście do sklepów opisuje artykuł o wykorzystaniu WooCommerce w sklepach internetowych. Stan istniejącego sklepu sprawdzisz w darmowym teście kondycji sklepu WooCommerce.
Najczęstsze pytania o sklep hurtowy B2B na WooCommerce
Czy WooCommerce nadaje się do sklepu hurtowego B2B?
Tak, ale wymaga dopasowania. WooCommerce ma koszyk, konta, warianty i zamówienia, a reguły hurtowe, takie jak ukryte ceny, minimalne ilości czy konta zatwierdzane ręcznie, dodaje się wtyczką lub kodem. W projekcie Canpol zrobiliśmy to własną wtyczką, bo klient potrzebował dwóch magazynów w dwóch walutach.
Jak obsłużyć dwa magazyny w jednym sklepie WooCommerce?
Standardowe pola WooCommerce znają jeden stan i jedną cenę, więc dane magazynowe trzeba zapisać osobno dla każdego magazynu. Konto klienta przypisujemy do magazynu, a sklep pokazuje stan, dostępność i cenę z tego magazynu. Pozwala to też oznaczać produkty dostępne tylko w jednym kraju.
Jak ukryć ceny przed niezalogowanymi klientami?
Cenę można usunąć z kart produktów i pokazywać ją dopiero w koszyku po zalogowaniu. Trzeba o niej pamiętać także w innych miejscach, takich jak dane strukturalne dla wyszukiwarek, kanały produktowe czy odpowiedzi chatbota. W Canpol cena nie trafia do gościa żadną z tych dróg.
Czy chatbot AI może działać w sklepie B2B bez ujawniania cen?
Tak, jeśli zasady widoczności są wymuszone w kodzie, a nie zapisane tylko w poleceniu dla modelu. Chatbot pobiera cenę i dostępność ze sklepu w chwili pytania i pokazuje je zalogowanemu klientowi z odpowiedniego magazynu. Gościowi proponuje logowanie.
Jak przenieść klientów i zamówienia ze starego serwisu?
Zależy od starego systemu. W tym projekcie przygotowaliśmy most migracyjny, który importuje klientów, adresy i zamówienia oraz pozwala zalogować się dotychczasowym hasłem, bez wymuszania resetu. Zakres migracji ustalamy po przeglądzie starych danych.
Ile kosztuje taki system?
Cena zależy od zakresu: liczby magazynów, rynków, języków, integracji i migracji. Po pierwszej, darmowej rozmowie przygotowujemy wycenę ryczałtową, a orientacyjny budżet policzysz w kalkulatorze wyceny.
Planujesz sklep hurtowy lub system B2B?
Budujemy sklepy WooCommerce i dedykowane wtyczki dla firm, które sprzedają hurtowo. Zobacz nasze usługi, sprawdź inne realizacje albo od razu skontaktuj się z nami. Pierwsza rozmowa jest darmowa.
Kreatywna Agencja (Canpol Bis Sp. z o.o.)
ul. Gimnazjalna 2/M501, 85-007 Bydgoszcz
tel. +48 502 811 949 · biuro@kreatywnaagencja.com.pl



