Skip to content

B2B catalog mode

Der Katalogmodus verwandelt den Shop in einen Katalog ohne Kaufmöglichkeit. Verbergen Sie Preise, ersetzen Sie Buttons durch Meldungen oder leiten Sie zu einer Angebotsanfrage weiter. Konzipiert für B2B-Shops mit individueller Preisgestaltung.

Gehen Sie zu WooCommerce > Einstellungen > Polski PRO > Katalogmodus und aktivieren Sie das Modul (Option polski_catalog).

EinstellungDatenbankoptionStandardwertBeschreibung
Katalogmodus aktivierenpolski_catalogNeinAktiviert den Katalogmodus
Preise verbergenpolski_catalog_hide_pricesJaEntfernt die Preisanzeige
Warenkorb-Button verbergenpolski_catalog_hide_cartJaEntfernt den Button “In den Warenkorb”
Ersatztext für den Preispolski_catalog_price_text”Zapytaj o cenę”Anstelle des Preises angezeigter Text
Produkthinweispolski_catalog_notice""Auf der Produktseite angezeigter Hinweis
Zu RFQ weiterleitenpolski_catalog_redirect_rfqNeinLeitet zum Formular für die Angebotsanfrage weiter
Bedingter Moduspolski_catalog_conditionalallall, guests, roles

Der Katalogmodus kann aktiv sein:

  • Für alle (all) - jeder sieht einen Katalog ohne Preise
  • Nur für Gäste (guests) - angemeldete Kunden sehen Preise und können kaufen
  • Für ausgewählte Rollen (roles) - Katalog nur für ausgewählte WordPress-Rollen aktiv

Der bedingte Modus “Nur für Gäste” ist in B2B-Modellen beliebt, bei denen der Großhändler vor der Preisfreigabe eine Kontoregistrierung verlangt.

// 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;
});

Das Modul klinkt sich in den Filter woocommerce_get_price_html ein und ersetzt das Preis-HTML durch den konfigurierten Ersatztext.

/**
* 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;

Beispiel - unterschiedlicher Text für Kategorien:

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);

Das Modul verwendet den Filter woocommerce_is_purchasable, um die Kaufmöglichkeit zu blockieren:

/**
* 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;

Beispiel - Kauf ausgewählter Produkte erlauben:

add_filter('polski_pro/catalog/is_purchasable', function (bool $purchasable, \WC_Product $product): bool {
$always_purchasable = [101, 102, 103]; // ID produktów zawsze dostępnych
if (in_array($product->get_id(), $always_purchasable, true)) {
return true;
}
return $purchasable;
}, 10, 2);

Wenn die Option polski_catalog_notice gesetzt ist, wird auf der Einzelproduktseite ein Hinweis angezeigt, der den Kunden über den Katalogmodus informiert.

Beispielhinweis:

Um den Preis dieses Produkts zu erfahren, kontaktieren Sie unser Vertriebsteam oder füllen Sie das Formular für die Angebotsanfrage aus.

Integration mit dem Modul für Angebotsanfragen

Section titled “Integration mit dem Modul für Angebotsanfragen”

Wenn die Option polski_catalog_redirect_rfq aktiviert ist, leitet der Ersatz-Button auf der Produktseite zum Formular für die Angebotsanfrage weiter (RFQ-Modul). Die Integration umfasst:

  1. Button “Nach Preis fragen” anstelle von “In den Warenkorb”
  2. Automatische Übergabe der Produkt-ID an das RFQ-Formular
  3. Vorausfüllen des Produktnamens im Formular
  4. Rückkehr zum Produkt nach dem Absenden der Anfrage

Damit die Integration funktioniert, müssen beide Module - Katalog und RFQ - aktiv sein.

Neben den Preisen und dem Warenkorb-Button verbirgt das Modul automatisch:

ElementWooCommerce-HookEffekt
Button “In den Warenkorb”woocommerce_is_purchasableProdukt als nicht kaufbar markiert
Preiswoocommerce_get_price_htmlPreis-HTML durch Text ersetzt
Warenkorb-Symbol im Headerpolski_pro/catalog/hide_cart_iconVerbirgt das Mini-Warenkorb-Symbol
Warenkorbseitetemplate_redirectWeiterleitung von /cart/ zur Startseite
Kassenseitetemplate_redirectWeiterleitung von /checkout/ zur Startseite

Nicht alle Elemente müssen gleichzeitig verborgen werden. Jede Option kann unabhängig aktiviert oder deaktiviert werden. Zum Beispiel:

  • Preise verbergen, aber den Warenkorb-Button behalten (Kunde kauft zum “unbekannten Preis” - Kontakt nach der Bestellung)
  • Warenkorb-Button verbergen, aber Preise anzeigen (Kunde sieht Preise, muss aber für den Kauf anfragen)
  • Alles verbergen (voller Katalogmodus)

Ausgewählte Produkte können im Produkteditor vom Katalogmodus ausgeschlossen werden, im Tab Polski PRO > Katalogmodus, indem die Option “Vom Katalogmodus ausschließen” aktiviert wird.

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

Beispiel:

add_filter('polski_pro/catalog/excluded_categories', function (array $excluded_categories): array {
$excluded_categories[] = 15; // "Akcesoria" - zawsze dostępne do zakupu
$excluded_categories[] = 28; // "Outlet"
return $excluded_categories;
});

Das Modul fügt <body> CSS-Klassen hinzu, um das Styling zu erleichtern:

KlasseWann hinzugefügt
polski-catalog-modeDer Katalogmodus ist aktiv
polski-catalog-prices-hiddenDie Preise sind verborgen
polski-catalog-cart-hiddenDer Warenkorb-Button ist verborgen

CSS-Beispiel:

.polski-catalog-mode .price {
display: none; /* Dodatkowe ukrycie ceny, jeśli motyw nie respektuje filtra */
}
.polski-catalog-mode .single_add_to_cart_button {
background-color: #0073aa;
content: "Zapytaj o cenę";
}

Preise werden trotz aktiviertem Katalogmodus weiterhin angezeigt Einige Themes verwenden nicht standardisierte Methoden zur Preisanzeige und umgehen dabei den Filter woocommerce_get_price_html. Verwenden Sie die CSS-Klassen .polski-catalog-prices-hidden .price { display: none; } als Absicherung.

Kunde kann das Produkt über eine direkte URL in den Warenkorb legen Das Modul blockiert dies auf der Ebene des Filters woocommerce_is_purchasable. Wenn das Problem weiterhin besteht, prüfen Sie, ob ein anderes Plugin diesen Filter mit höherer Priorität überschreibt.

Der bedingte Modus funktioniert mit Cache nicht richtig Caching-Plugins können unabhängig vom Anmeldestatus die zwischengespeicherte Version ausliefern. Konfigurieren Sie das Caching-Plugin so, dass es den Cache für angemeldete und für gast-Benutzer trennt.

Diese Seite dient ausschließlich Informationszwecken und stellt keine Rechtsberatung dar. Konsultieren Sie vor der Umsetzung einen Anwalt. Polski for WooCommerce ist Open-Source-Software (GPLv2), die ohne Gewährleistung bereitgestellt wird.