Как должно работать для дилеров
Гость видит розницу или «войдите для опта». Пользователь с ролью dealer_1, wholesale или custom получает свою сетку цен в каталоге, в корзине и на чекауте — одинаково.
Если цены разъехались между каталогом и корзиной, покупатель не оформит заказ: доверие к магазину падает сильнее, чем от медленной доставки.
Типовая схема: один плагин ролевых цен + отдельный кэш для авторизованных + тест каждой роли на staging перед выкатом.
Типовые конфликты плагинов
Два плагина опта (Wholesale Suite, YITH, Role-based pricing и кастом) — перебивают друг друга хуками `woocommerce_product_get_price`. Оставьте один источник правды.
Плагин скидок по купону может сбрасывать оптовую цену до розничной при пересчёте корзины. Проверьте сценарий: товар в корзине → обновить количество → сменить адрес доставки.
Dynamic pricing «от количества» иногда считает только для гостя, если роль не указана в правилах плагина.

Кэш и сессии
Page cache отдаёт HTML каталога гостя — авторизованный дилер видит чужие цены до обновления. Исключите каталог и корзину из полного кэша или включите vary-by-cookie для роли.
Object cache ускоряет магазин, но при ошибке конфигурации сессия «отваливается» и роль сбрасывается на customer — снова розница. Симптомы похожи на статью про корзину.
CDN с агрессивным кэшем на `/product/` без bypass для logged-in — та же история.
Что проверить на staging
Создайте тестовых пользователей под каждую роль дилера. Пройдите путь: каталог → корзина → оформление → итоговая сумма.
Сравните цену SKU, который участвует в акции и в оптовой сетке — акция не должна ломать опт без явного правила.
После обновления плагина опта прогоните тест снова — breaking change в API WooCommerce встречается раз в год.
Что не делать
Не правьте цены вручную в базе `wp_postmeta` без бэкапа — WooCommerce пересчитает при следующем импорте.
Не включайте «скрыть цену для гостей» без страницы входа — SEO и конверсия страдают.
Не выкатывайте новую сетку ролей в пятницу вечером без окна отката.
Что сделает WebStudio7
Воспроизведём сценарий на staging, найдём конфликт кэша или плагина, настроим пересчёт для ролей, проверим чекаут и выкатим в согласованное окно.
Одна зона WooCommerce (оптовые цены, корзина или оплата) — от 4 900 ₽ после брифа. Кейс с тремя ролями дилеров — в разделе кейсов.
Магазины с нуля не собираем — только доработка действующего WordPress. Смета до старта — Telegram @webstudio7.
Услуга: Доработка WooCommerce · Кейс: Кейс: опт, три роли дилеров · Расценки · Контакты