Кейс B2B-системы для оптовой компании, торгующей стеклом, свечами и декором, со складами в Канаде и США: WooCommerce, два склада в одном магазине, скрытые оптовые цены, минимальные объёмы заказа, ИИ-чатбот и поддержка трёх языков на canpolltd.com.
Оптовый магазин живёт по другим правилам, чем розничный. Цены не выставлены на витрине, решение о покупке зависит от корпоративного аккаунта, а один и тот же товар может быть в наличии на одном складе и отсутствовать на другом. Для Canpol Manufacturing Ltd, оптовой компании, которая поставляет стекло, свечи, искусственные цветы и декор и имеет офис в Mississauga (Онтарио) и распределительный центр в Suwanee (Джорджия), мы разработали в Быдгоще (Bydgoszcz) систему Canpol Warehouse. Это плагин для WordPress и WooCommerce, на котором работает оптовый магазин canpolltd.com. В этом кейсе мы рассказываем, как построили B2B-магазин с двумя складами на WooCommerce и как эта система выглядит в ежедневной работе оптовой компании.
Коротко: B2B-система с двумя складами (США и Канада)
- Клиент: Canpol Manufacturing Ltd, Mississauga (Канада) и Suwanee (США)
- Отрасль: оптовая дистрибуция стекла, свечей, искусственных цветов, декора и упаковочных материалов для флористов, магазинов подарков и event-дизайнеров
- Объём работ: тема WordPress, плагин с логикой двух складов, корпоративные аккаунты с подтверждением, цены и остатки по каждому складу, MOQ и пороги количества, версии EN, FR (канадский) и ES, ИИ-чатбот, SEO, рассылка, импорт и экспорт данных, миграция со старого сайта
- Технологии: WordPress, WooCommerce, собственная тема и плагин, OpenAI, векторная база Qdrant, n8n
- Исполнитель: Kreatywna Agencja, Быдгощ
- Адрес сайта: canpolltd.com
Задача: оптовая компания, где каждый клиент видит свой магазин
Прежний сайт Canpol был написан на авторском PHP вне WordPress, а магазин вёл на внешнюю платформу. Новая система должна была сохранить бизнес-правила, которые клиент вырабатывал годами, и добавить инструменты, которых не было в старом сайте. Требования были конкретными:
- корпоративный аккаунт, привязанный к одному из двух складов, то есть к Канаде или США,
- отдельные остатки, наличие и цены на каждом складе, включая товары только для Канады,
- оптовые цены не отображаются на страницах каталога и появляются только в корзине,
- минимальное количество в заказе и пороговые цены в зависимости от склада,
- каталог на трёх языках и цвета товаров в виде вариантов,
- регистрация новых клиентов с ручным подтверждением,
- перенос существующих клиентов и истории заказов без принудительного сброса паролей.
Сложнее всего было обеспечить два склада в двух валютах (CAD и USD) при одном каталоге. Поэтому мы решили создать собственное решение на базе WooCommerce, а не собирать его из нескольких готовых плагинов.
Как мы работали над проектом
- Анализ бизнес-правил: мы описали, как работал старый сайт: кто какие цены видит, как считается MOQ, что означает «только Канада».
- Модель данных: остаток, наличие и цена хранятся отдельно для каждого склада, а не в стандартных полях WooCommerce, которые рассчитаны на один склад.
- Тема и каталог: макет главной страницы, навигация по категориям и карточки товаров с цветами в виде вариантов.
- Миграция: импорт клиентов, адресов и истории заказов со старого сайта, а также данных о товарах из CSV-файлов поставщика.
- Тесты и этапы: мы работали удалённо из Быдгоща, показывая прогресс на тестовой среде каждую неделю, как и в любом проекте для клиентов в Польше.
Решение: один плагин, два склада, скрытые цены
Главная страница сразу показывает, что это за магазин: слоганы о польском цветном стекле и свечах, кнопки «View specials» и «Request a quote», вход, регистрация и корзина в шапке, а также переключатель языков EN, FR и ES.

Аккаунт, привязанный к складу
При регистрации клиент указывает данные компании, налоговый номер и страну, и страна определяет, к какому складу привязан аккаунт. С этого момента всё, что видит клиент, относится к его складу: остаток, наличие, валюта и цена. Один и тот же артикул может стоить по-разному в USD и в CAD, а часть ассортимента отмечена как доступная только в Канаде. Новые аккаунты попадают в очередь на подтверждение, так что оптовая компания сама решает, кто получает доступ к ценам.
Цены видны только в корзине
В карточках товаров цен нет, даже для авторизованных клиентов. Оптовая цена появляется в корзине и при оформлении заказа. Гость увидит каталог, но у товара ему предложат войти в аккаунт. Минимальное количество в заказе контролируется при добавлении в корзину, а пороговая цена действует для каждого склада отдельно. Заказы оформляются «на счёт», без онлайн-оплаты в магазине.

Цветовые варианты и управление ассортиментом
При нескольких сотнях товаров и более тысячи цветовых вариантов вести каталог вручную было бы обременительно. Поэтому товары реализованы как вариативные товары WooCommerce с атрибутом цвета, а складские данные хранятся отдельно для каждого варианта. Данные о товарах можно импортировать и экспортировать в CSV и JSON, а остатки на складах обновлять через специальный интерфейс REST. Отчёт об отсутствующих товарах показывает, какие варианты распроданы на обоих складах, и позволяет выгрузить список для заказа у поставщика. Мы также подготовили интеграцию с QuickBooks Online с отдельной бухгалтерской компанией для каждого склада.
Миграция со старого сайта
Клиентам оптовой компании не нужно начинать с нуля. Мы подготовили миграционный мост, который только читает данные старого сайта и записывает их в WordPress: аккаунты клиентов, адреса и историю заказов. Прежние пароли работают без принудительного сброса, поэтому постоянный клиент входит так же, как раньше. На тестовых данных было перенесено около полутора тысяч заказов, благодаря чему история покупок видна с первого дня, а сегментам клиентов и отчётам есть с чем работать.
Три языка без дублирования магазина
Магазин работает на английском, канадском французском и испанском. У каждой версии свой адрес с параметром языка, атрибут hreflang и корректные метаданные, поэтому поисковые системы различают версии. Описания товаров переводит искусственный интеллект, но любой перевод можно исправить вручную, а исправленный текст автоматически не перезаписывается.
ИИ-чатбот, который знает каталог, но следит за ценами
В правом нижнем углу работает «Canpol Ai Help desk». Он отвечает на языке клиента на вопросы о товарах, размерах и цветах. Он использует описания товаров и документы из векторной базы знаний, а цены, минимальные количества и наличие считывает из магазина в реальном времени. Правила видимости закреплены в коде, а не оставлены на усмотрение модели: гостю чатбот не покажет цену, а предложит войти в аккаунт, а точные складские остатки не раскрывает никому, отвечая описательно («мало», «в наличии», «в пути»).

Инструменты для владельца: SEO, рассылка и уведомления
В систему входят модули, которые разгружают команду оптовой компании после запуска магазина:
- SEO и видимость в ИИ-поисковиках: заголовки, описания и альтернативные тексты изображений на двух языках, карта сайта, структурированные данные и таблицы параметров товаров (размеры, происхождение, количество в упаковке).
- Рассылка: подписка в футере, сегменты клиентов (например, активные покупатели, клиенты, которые давно не заказывали), статистика открытий и кликов, а также уведомления «товар снова в наличии».
- Уведомления и сводки: новые заказы, низкий остаток, брошенные корзины, а также ежедневная или еженедельная сводка продаж.
- Резервные копии: ежедневные или еженедельные, с возможностью отправки копий за пределы сервера.
- Доступность: панель специальных возможностей на сайте. Она не заменяет аудит WCAG, о чём мы прямо сообщаем клиенту.
Принципы SEO для такого магазина мы подробнее описываем в статье о SEO-кампании для местного бизнеса, а о том, когда стоит заказать собственный плагин, в тексте о индивидуальных плагинах WordPress.
Соответствие требованиям и безопасность
- Согласия на cookies: баннер позволяет отказаться от файлов, не являющихся необходимыми, а аналитика и рекламный пиксель ждут согласия.
- Защита от ботов: формы регистрации и контактная форма защищены от автоматических отправок.
- Доступ к данным: цены и документы «только для клиентов» не попадают к неавторизованным пользователям, в том числе через чатбот.
- Маркетинговые согласия: рассылку мы отправляем только тем, кто на неё подписался.
Мы не обещаем позиций в Google. У оптового магазина узкая аудитория, а видимость зависит от конкуренции, качества данных о товарах и регулярности публикации материалов.
Технологии, использованные в проекте
- WordPress и WooCommerce как основа каталога, аккаунтов и заказов,
- собственная тема и плагин Canpol Warehouse с логикой двух складов,
- OpenAI для описаний, переводов и ответов чатбота,
- Qdrant и n8n как векторная база знаний и промежуточный слой чатбота,
- импорт и экспорт CSV и JSON и интерфейс REST для обновления каталога и остатков.
Результат: единая система вместо магазина, который приходится обходить
Клиент получил сайт, в котором покупатель из Канады и покупатель из США видят свои склады, а команда управляет каталогом, переводами, рассылкой и сводками из одной панели. У нас нет доступа к статистике продаж клиента, поэтому мы не приводим цифры конверсии и выручки. Ценность видна в порядке: правила, которые раньше были записаны в старом коде, теперь стали настройками, а новые функции можно добавлять модулями, не переписывая всё целиком.
Этот проект также показывает, что агентство из Быдгоща может вести внедрение для клиента по ту сторону Атлантики: договорённости мы фиксируем, прогресс показываем каждую неделю на тестовой среде, а изменения вносим поэтапно, не останавливая работу оптовой компании. Для фирмы из Быдгоща, Торуни или Иновроцлава, которая продаёт за границу, это та же модель сотрудничества.
Для кого подходит такое решение
Система подойдёт компаниям, которые торгуют оптом и имеют больше одного склада или рынка: дистрибьюторам, производителям и импортёрам, в том числе из Быдгоща и Куявско-Поморского воеводства, которые обслуживают клиентов за границей. Другие наши внедрения WooCommerce — это интернет-магазин кондитерской Rynkowa Bistro и сайт софтверной компании AutCode с WooCommerce. Более широкий подход к магазинам описан в статье об использовании WooCommerce в интернет-магазинах. Состояние существующего магазина вы можете проверить в бесплатном тесте состояния магазина WooCommerce.
Часто задаваемые вопросы об оптовом B2B-магазине на WooCommerce
Подходит ли WooCommerce для оптового B2B-магазина?
Да, но требует доработки. В WooCommerce есть корзина, аккаунты, варианты и заказы, а оптовые правила, такие как скрытые цены, минимальные количества или аккаунты с ручным подтверждением, добавляются плагином или кодом. В проекте Canpol мы сделали это собственным плагином, потому что клиенту требовались два склада в двух валютах.
Как организовать два склада в одном магазине WooCommerce?
Стандартные поля WooCommerce рассчитаны на один остаток и одну цену, поэтому складские данные нужно хранить отдельно для каждого склада. Аккаунт клиента мы привязываем к складу, а магазин показывает остаток, наличие и цену с этого склада. Это также позволяет отмечать товары, доступные только в одной стране.
Как скрыть цены от неавторизованных клиентов?
Цену можно убрать из карточек товаров и показывать только в корзине после входа в аккаунт. О ней нужно помнить и в других местах, например в структурированных данных для поисковых систем, товарных фидах или ответах чатбота. В Canpol цена не попадает к гостю ни одним из этих путей.
Может ли ИИ-чатбот работать в B2B-магазине, не раскрывая цены?
Да, если правила видимости закреплены в коде, а не записаны только в инструкции для модели. Чатбот получает цену и наличие из магазина в момент вопроса и показывает их авторизованному клиенту с соответствующего склада. Гостю он предлагает войти в аккаунт.
Как перенести клиентов и заказы со старого сайта?
Это зависит от старой системы. В этом проекте мы подготовили миграционный мост, который импортирует клиентов, адреса и заказы и позволяет входить с прежним паролем, без принудительного сброса. Объём миграции мы определяем после анализа старых данных.
Сколько стоит такая система?
Цена зависит от объёма: количества складов, рынков, языков, интеграций и миграции. После первого бесплатного разговора мы готовим смету с фиксированной ценой, а ориентировочный бюджет можно рассчитать в калькуляторе стоимости.
Планируете оптовый магазин или B2B-систему?
Мы создаём магазины WooCommerce и индивидуальные плагины для компаний, которые торгуют оптом. Ознакомьтесь с нашими услугами, посмотрите другие проекты или сразу свяжитесь с нами. Первый разговор бесплатный.
Kreatywna Agencja (Canpol Bis Sp. z o.o.)
ul. Gimnazjalna 2/M501, 85-007 Bydgoszcz
tel. +48 502 811 949 · biuro@kreatywnaagencja.com.pl
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



