Zum Inhalt springen

B2B-Katalogmodus

Der Katalogmodus verwandelt den Shop in einen Katalog ohne Kaufmoeglichkeit. Verbergen Sie Preise, ersetzen Sie Buttons durch Meldungen oder leiten Sie zu Angebotsanfragen weiter. Fuer B2B-Shops mit individuellen Preisen.

Gehen Sie zu WooCommerce > Ustawienia > Polski PRO > Tryb katalogowy und aktivieren Sie das Modul (Option polski_catalog).

EinstellungOption in der DatenbankStandardwertBeschreibung
Katalogmodus aktivierenpolski_catalogNeinAktiviert den Katalogmodus
Preise verbergenpolski_catalog_hide_pricesJaEntfernt die Preisanzeige
Warenkorb-Schaltflaeche verbergenpolski_catalog_hide_cartJaEntfernt die Schaltflaeche “In den Warenkorb”
Preis-Ersatztextpolski_catalog_price_text”Zapytaj o cenę”Text, der anstelle des Preises angezeigt wird
Meldung auf dem Produktpolski_catalog_notice""Meldung, die auf der Produktseite angezeigt wird
Weiterleitung zu RFQpolski_catalog_redirect_rfqNeinWeiterleitung zum Angebotsanfrageformular
Bedingter Moduspolski_catalog_conditionalallall, guests, roles

Der Katalogmodus kann aktiv sein:

  • Fuer alle (all) - jeder sieht den Katalog ohne Preise
  • Nur fuer nicht angemeldete Besucher (guests) - angemeldete Kunden sehen Preise und koennen kaufen
  • Fuer ausgewaehlte Rollen (roles) - Katalog nur fuer ausgewaehlte WordPress-Rollen aktiv

Der bedingte Modus “Nur fuer nicht angemeldete Besucher” ist beliebt in B2B-Modellen, bei denen der Grosshaendler eine Kontoregistrierung vor der Preisanzeige 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 den 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 - verschiedene Texte fuer 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 nutzt den Filter woocommerce_is_purchasable, um die Kaufmoeglichkeit 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 bestimmter 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 eine Meldung (Notice) angezeigt, die den Kunden ueber den Katalogmodus informiert.

Beispielmeldung:

Um den Preis dieses Produkts zu erfahren, kontaktieren Sie unser Vertriebsteam oder fuellen Sie das Angebotsanfrageformular aus.

Wenn die Option polski_catalog_redirect_rfq aktiviert ist, fuehrt die Ersatzschaltflaeche auf der Produktseite zum Angebotsanfrageformular (RFQ-Modul). Die Integration umfasst:

  1. Schaltflaeche “Preis anfragen” statt “In den Warenkorb”
  2. Automatische Uebergabe der Produkt-ID an das RFQ-Formular
  3. Vorbefuellung des Produktnamens im Formular
  4. Rueckkehr zum Produkt nach dem Absenden der Anfrage

Damit die Integration funktioniert, muessen beide Module - Katalog und RFQ - aktiv sein.

Neben Preisen und der Warenkorb-Schaltflaeche verbirgt das Modul automatisch:

ElementWooCommerce-HookEffekt
Schaltflaeche “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
Checkout-Seitetemplate_redirectWeiterleitung von /checkout/ zur Startseite

Es muessen nicht alle Elemente gleichzeitig verborgen werden. Jede Option kann unabhaengig ein- oder ausgeschaltet werden. Zum Beispiel:

  • Preise verbergen, aber Warenkorb-Schaltflaeche belassen (Kunde kauft zum “unbekannten Preis” - Kontakt nach Bestellung)
  • Warenkorb-Schaltflaeche verbergen, aber Preise zeigen (Kunde sieht Preise, muss aber den Kauf anfragen)
  • Alles verbergen (vollstaendiger Katalogmodus)

Ausgewaehlte Produkte koennen vom Katalogmodus ausgeschlossen werden - in der Produktbearbeitung, Tab Polski PRO > Tryb katalogowy, Option “Vom Katalogmodus ausschliessen” aktivieren.

/**
* 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 fuegt dem <body> CSS-Klassen zur Unterstuetzung des Stylings hinzu:

KlasseWann hinzugefuegt
polski-catalog-modeKatalogmodus ist aktiv
polski-catalog-prices-hiddenPreise sind verborgen
polski-catalog-cart-hiddenWarenkorb-Schaltflaeche 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-standardmaessige Methoden zur Preisanzeige und umgehen den Filter woocommerce_get_price_html. Verwenden Sie die CSS-Klassen .polski-catalog-prices-hidden .price { display: none; } als Absicherung.

Kunde kann Produkt ueber direkte URL in den Warenkorb legen Das Modul blockiert dies auf Ebene des Filters woocommerce_is_purchasable. Wenn das Problem auftritt, pruefen Sie, ob ein anderes Plugin diesen Filter mit hoeherer Prioritaet ueberschreibt.

Bedingter Modus funktioniert nicht korrekt mit Cache Cache-Plugins koennen die gecachte Version unabhaengig vom Anmeldestatus ausliefern. Konfigurieren Sie das Cache-Plugin so, dass es den Cache fuer angemeldete und nicht angemeldete Benutzer trennt.

Diese Seite dient ausschließlich zu Informationszwecken und stellt keine Rechtsberatung dar. Konsultieren Sie vor der Umsetzung einen Anwalt. Polski for WooCommerce ist Open-Source-Software (GPLv2) ohne Garantie.