Перейти до вмісту

Каталоговий режим B2B

Каталоговий режим перетворює магазин на каталог без можливості покупки. Приховайте ціни, замініть кнопки на повідомлення або перенаправте до запиту пропозиції. Призначений для магазинів B2B з індивідуальними цінами.

Перейдіть до WooCommerce > Налаштування > Polski PRO > Каталоговий режим та увімкніть модуль (опція polski_catalog).

ПараметрОпція в базіЗначення за замовчуваннямОпис
Увімкнути каталоговий режимpolski_catalogНіАктивує каталоговий режим
Приховати ціниpolski_catalog_hide_pricesТакПрибирає відображення цін
Приховати кнопку кошикаpolski_catalog_hide_cartТакПрибирає кнопку “Додати до кошика”
Замінний текст ціниpolski_catalog_price_text”Zapytaj o cenę”Текст, що відображається замість ціни
Повідомлення на продуктіpolski_catalog_notice""Повідомлення на сторінці продукту
Перенаправити до RFQpolski_catalog_redirect_rfqНіПеренаправлення до форми запиту пропозиції
Умовний режимpolski_catalog_conditionalallall, guests, roles

Каталоговий режим може бути активний:

  • Для всіх (all) - кожен бачить каталог без цін
  • Лише для неавторизованих (guests) - авторизовані клієнти бачать ціни та можуть купувати
  • Для обраних ролей (roles) - каталог активний лише для обраних ролей WordPress

Умовний режим “Лише для неавторизованих” популярний у моделях B2B, де гуртовня вимагає реєстрації облікового запису перед відкриттям цін.

// Przykład: własna logika warunkowa
add_filter('polski_pro/catalog/is_active', function (bool $is_active): bool {
// Wyłącz tryb katalogowy dla klientów z co najmniej 5 zamówieniami
if (is_user_logged_in()) {
$order_count = wc_get_customer_order_count(get_current_user_id());
if ($order_count >= 5) {
return false;
}
}
return $is_active;
});

Модуль підключається до фільтра woocommerce_get_price_html та замінює HTML ціни налаштованим замінним текстом.

/**
* Filtruje tekst zastępczy ceny w trybie katalogowym.
*
* @param string $replacement Tekst zastępczy
* @param \WC_Product $product Obiekt produktu
*/
apply_filters('polski_pro/catalog/price_replacement', string $replacement, \WC_Product $product): string;

Приклад - різні тексти для категорій:

add_filter('polski_pro/catalog/price_replacement', function (string $replacement, \WC_Product $product): string {
if (has_term('premium', 'product_cat', $product->get_id())) {
return '<span class="price-inquiry">Cena ustalana indywidualnie</span>';
}
return $replacement;
}, 10, 2);

Модуль використовує фільтр woocommerce_is_purchasable, щоб заблокувати можливість покупки:

/**
* Filtruje, czy produkt jest dostępny do zakupu w trybie katalogowym.
*
* @param bool $purchasable Czy produkt jest dostępny do zakupu
* @param \WC_Product $product Obiekt produktu
*/
apply_filters('polski_pro/catalog/is_purchasable', bool $purchasable, \WC_Product $product): bool;

Приклад - дозвіл на покупку обраних продуктів:

add_filter('polski_pro/catalog/is_purchasable', function (bool $purchasable, \WC_Product $product): bool {
$always_purchasable = [101, 102, 103]; // ID продуктів, завжди доступних
if (in_array($product->get_id(), $always_purchasable, true)) {
return true;
}
return $purchasable;
}, 10, 2);

Повідомлення на сторінці продукту

Section titled “Повідомлення на сторінці продукту”

Коли опція polski_catalog_notice встановлена, на сторінці окремого продукту відображається повідомлення (notice), що інформує клієнта про каталоговий режим.

Приклад повідомлення:

Щоб дізнатися ціну цього продукту, зверніться до нашого відділу продажів або заповніть форму запиту пропозиції.

Інтеграція з модулем запитів пропозицій

Section titled “Інтеграція з модулем запитів пропозицій”

Коли опція polski_catalog_redirect_rfq увімкнена, замінна кнопка на сторінці продукту спрямовує до форми запиту пропозиції (модуль RFQ). Інтеграція включає:

  1. Кнопка “Запитати ціну” замість “Додати до кошика”
  2. Автоматична передача ID продукту до форми RFQ
  3. Попереднє заповнення назви продукту у формі
  4. Повернення до продукту після надсилання запиту

Для роботи інтеграції обидва модулі - каталоговий та RFQ - повинні бути активні.

Приховування елементів

Section titled “Приховування елементів”

Окрім цін та кнопки кошика, модуль автоматично приховує:

ЕлементХук WooCommerceЕфект
Кнопка “Додати до кошика”woocommerce_is_purchasableПродукт позначений як недоступний для покупки
Цінаwoocommerce_get_price_htmlHTML ціни замінений текстом
Іконка кошика в заголовкуpolski_pro/catalog/hide_cart_iconПриховує іконку міні-кошика
Сторінка кошикаtemplate_redirectПеренаправлення з /cart/ на головну сторінку
Сторінка касиtemplate_redirectПеренаправлення з /checkout/ на головну сторінку

Селективне приховування

Section titled “Селективне приховування”

Не обов’язково приховувати всі елементи одночасно. Кожну опцію можна вмикати або вимикати незалежно. Наприклад:

  • Приховати ціни, але залишити кнопку кошика (клієнт купує “за невідому ціну” - контакт після замовлення)
  • Приховати кнопку кошика, але показати ціни (клієнт бачить ціни, але повинен запитати про покупку)
  • Приховати все (повний каталоговий режим)

Виключення продуктів та категорій

Section titled “Виключення продуктів та категорій”

Обрані продукти можуть бути виключені з каталогового режиму в редагуванні продукту, вкладка Polski PRO > Каталоговий режим, відмітивши опцію “Виключити з каталогового режиму”.

/**
* Filtruje kategorie wykluczone z trybu katalogowego.
*
* @param array $excluded_categories Tablica ID kategorii
*/
apply_filters('polski_pro/catalog/excluded_categories', array $excluded_categories): array;

Приклад:

add_filter('polski_pro/catalog/excluded_categories', function (array $excluded_categories): array {
$excluded_categories[] = 15; // "Аксесуари" - завжди доступні для покупки
$excluded_categories[] = 28; // "Outlet"
return $excluded_categories;
});

Модуль додає CSS-класи до <body> для полегшення стилізації:

КласКоли додається
polski-catalog-modeКаталоговий режим активний
polski-catalog-prices-hiddenЦіни приховані
polski-catalog-cart-hiddenКнопка кошика прихована

Приклад CSS:

.polski-catalog-mode .price {
display: none; /* Додаткове приховування ціни, якщо тема не поважає фільтр */
}
.polski-catalog-mode .single_add_to_cart_button {
background-color: #0073aa;
content: "Zapytaj o cenę";
}

Ціни все ще відображаються, незважаючи на увімкнення каталогового режиму Деякі теми використовують нестандартні методи відображення цін, обходячи фільтр woocommerce_get_price_html. Використайте CSS-класи .polski-catalog-prices-hidden .price { display: none; } як захист.

Клієнт може додати продукт до кошика через прямий URL Модуль блокує це на рівні фільтра woocommerce_is_purchasable. Якщо проблема виникає, перевірте, чи інший плагін не перевизначає цей фільтр із вищим пріоритетом.

Умовний режим не працює правильно з кешем Плагіни кешування можуть видавати кешовану версію незалежно від стану авторизації. Налаштуйте плагін кешування, щоб розділяти кеш для авторизованих та неавторизованих користувачів.

Ця сторінка має виключно інформаційний характер і не є юридичною консультацією. Перед впровадженням зверніться до юриста. Polski for WooCommerce - це програмне забезпечення з відкритим кодом (GPLv2), що надається без гарантій.