Ankündigung

Einklappen
Keine Ankündigung bisher.

Vorkasse nur für bestimmte Kategorien/Artikel anbieten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    (Zen-Cart 1.5.6) Vorkasse nur für bestimmte Kategorien/Artikel anbieten

    Hallo zusammen,

    ich würde gerne Vorkasse/Banküberweisung (eustandardtransfer) nur bei bestimmten Kategorien, bzw. Artikeln anbieten.
    In einem älteren Thema, habe ich etwas ähnliches entdeckt, diese haben sich aber Hauptsächlich auf das Versandmodul (includes/modules/shipping/) bezogen. Ich vermute aber eher, dass ich in der "/includes/modules/payment/eustandardtransfer.php" fündig werden müsste.
    Nur was müsste ich dort eintragen und wo genau?

    Danke schon mal voraus

    #2
    Das Prinzip ist dasselbe wie beim Deaktivieren eines Versandmoduls bei diversen Bedingungen und hier beschrieben:
    Hier einige Beispiele wie ein Versandmodul leicht so modifiziert werden kann, dass es nicht angeboten wird, wenn bestimmte Bedingungen erfüllt sind. Beispielsweise wenn ein bestimmtes Gewicht überschritten wird, ein bestimmter Bestellwert überschritten wird oder wenn Artikel aus einer bestimmten Kategorie im Warenkorb sind.


    Beispiele:

    Deaktivieren bei Selbstabholung

    Code:
            
    if (substr_count($_SESSION['shipping']['id'], 'storepickup') !=0) {
    $this->enabled = false;
    }
    Deaktivieren wenn Bestellwert mehr als 1000

    Code:
    if (IS_ADMIN_FLAG === false) {
    if ($_SESSION['cart']->show_total() > 1000) $this->enabled = false;
    }
    Deaktivieren wenn Artikel in Kategorie mit der ID 2

    Code:
    if ((IS_ADMIN_FLAG == false && $_SESSION['cart']->in_cart_check('master_categories_id','2') > 0)) {
    $this->enabled = false;
    }
    Für die Zahlungsart Banküberweisung fügst Du Deine Bedingung ein in
    includes/modules/payment/eustandardtransfer.php
    innerhalb der Funktion
    Code:
    function update_status() {
    Dort ist schon eine, die die hinterlegten Länder abfragt und entsprechend sperrt:
    Code:
    // check country
            $dest_country = isset ($order->billing['country']['iso_code_2']) ? $order->billing['country']['iso_code_2'] : 0 ;
            $dest_zone = 0;
            $error = false;
            $countries_table = MODULE_PAYMENT_EUTRANSFER_COUNTRIES;
            $country_zones = explode(",", $countries_table);
            if (in_array($dest_country, $country_zones)) {
                $dest_zone = $i;
                $this->enabled = true;
            } else {
                $this->enabled = false;
            }
    Unterhalb fügst Du Deine gewünschten weiteren Bedingungen ein.

    Kommentar


      #3
      Hallo webchills,

      wie immer eine schnelle, kompetente Antwort und natürlich funktioniert es so
      Vielen Dank

      Kommentar

      Info zu diesem Forenarchiv:
      Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
      Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
      Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
      PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
      Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
      FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

      Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
      Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
      Fehler in der Software können auf Github als Issues gemeldet werden.
      Follow us
      aktuelle version
      Zen Cart 1.5.7g deutsch
      vom 12.12.2023
      [Download]
      Lädt...
      X