Ankündigung

Einklappen
Keine Ankündigung bisher.

Versandkosten Kundengruppen

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

    Versandkosten Kundengruppen

    Hallo Forengemeinde!
    Ich suche eine Möglichkeit um Versandkosten für unterschiedliche Kundengruppen einzustellen.
    Zur Erklärung:
    Herkömmliche Kunden bezahlen ab einen Einkauf von € 50.- keine Versandkosten
    Eine andere Kundengruppe (Händler) haben natürlich eigene Preise, welche sehr tief gestapelt sind (eben für Wiederverkaufer).
    Diese Händler kommen jetzt ebenfalls in den Genuß des freien Versandes ab € 50.-
    Nachteil: der lukrierte Gewinn über die Händler rechtfertigt einen freien Versand nicht (Gewinn zu gering).
    Ich würde gerne:
    Versandkosten frei ab € 50.- für Kundengruppe A
    Versandkosten frei ab € 200.- für Kundengruppe B
    Ist dies möglich und ohne Kunstgriff umzusetzen?

    #2
    Wie differenzierst Du die Kundengruppen? Ist das die Standardfunktionalität unter Kunden > Gruppenpreise?

    Wie regelst Du den versandkostenfreien Versand? Ist das mit irgendeinem Versandmodul (z.B. zones), wo dann ab einem bestimmten Bestellwert 0 hinterlegt ist. Oder mit Module >Zusammenfassung > Versandkosten > versandkostenfreie Lieferung erlauben ab?

    Kommentar


      #3
      Hallo Webchills!
      Ich regle das über die Standardfunktionalität unter Kunden > Gruppenpreise
      Versandkostenfreien Versand mit Module >Zusammenfassung > Versandkosten > versandkostenfreie Lieferung erlauben ab ...
      Also alles mit originalen Boardmittel geregelt!

      Kommentar


        #4
        Basierend auf dem Vorschlag von ajeh (http://www.zen-cart.com/showthread.p...discount-group) hier eine Variante, bei der die Kundengruppe und der Bestellwert nicht überall hardcodiert werden müssen.
        Damit ist das dann später leicht via Admin änderbar, wenn der Bestellwert oder die Kundengruppe mal geändert werden sollen.

        1)

        Folgenden Befehl einspielen über Admin > Tools > SQL Patches installieren oder direkt via phpMyAdmin:

        Code:
        INSERT INTO configuration (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, last_modified, date_added, use_function, set_function) VALUES
        ('Special Customers: Free Shipping For Orders Over', 'SPECIAL_CUSTOMER_FREE_SHIPPING_OVER', '200', 'Setting for Special Customers: Provide free shipping for orders over the set amount.', 7, 50, now(), now(), NULL, NULL),
        ('Special Customers ID for Free Shipping Setting', 'SPECIAL_CUSTOMER_FREE_SHIPPING_ID', '2', 'Enter the ID of the customer group for the special free shipping setting', 7, 51, now(), now(), NULL, NULL);
        REPLACE INTO configuration_language (configuration_title, configuration_key, configuration_description, configuration_language_id) VALUES
        ('Spezialkunden: Versandkostenfrei ab Bestellwert', 'SPECIAL_CUSTOMER_FREE_SHIPPING_OVER', 'Geben Sie hier den Bestellwert ein, ab dem Spezialkunden versandkostenfreie Lieferung erhalten.', 43),
        ('ID der Spezialkundengruppe für Versandkostenfrei ab Bestellwert', 'SPECIAL_CUSTOMER_FREE_SHIPPING_ID', 'Geben Sie hier die ID der Spezialkundengruppe an, die versandkostenfreie Lieferung ab dem oben angegebenen Betrag erhalten soll.', 43);
        Danach sind unter Konfiguration > Versandoptionen zwei neue Menüpunkte vorhanden.
        Unter "Spezialkunden: Versandkostenfrei ab Bestellwert" den gewünschten Bestellwert für die Spezialkunden eintragen
        Unter "ID der Spezialkundengruppe für Versandkostenfrei ab Bestellwert" die ID der gewünschten Kundengruppe eintragen (ermitteln unter Kunden > Gruppenpreise)


        2)

        includes/modules/pages/checkout_shipping/header_php.php

        ca. Zeile 120

        ändern von

        Code:
        $free_shipping = false;
        if ( ($pass == true) && ($_SESSION['cart']->show_total() >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {
              $free_shipping = true;
            }
        auf

        Code:
        global $db, $cart;
        $group_check = $db->Execute("select customers_group_pricing from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$_SESSION['customer_id'] . "'");
        if ($group_check->fields['customers_group_pricing'] == SPECIAL_CUSTOMER_FREE_SHIPPING_ID) {
        $over_total = SPECIAL_CUSTOMER_FREE_SHIPPING_OVER;
        } else {
        $over_total = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER;
        }
        $free_shipping = false;
        if ( ($pass == true) && ($_SESSION['cart']->show_total() >= $over_total) ) {
         $free_shipping = true;
        }
        3)

        includes/modules/order_total/ot_shipping.php

        ca. Zeile 35

        ändern von:

        Code:
        if ( ($pass == true) && ( ($order->info['total'] - $order->info['shipping_cost']) >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {
                  $order->info['shipping_method'] = $this->title;
                  $order->info['total'] -= $order->info['shipping_cost'];
                  $order->info['shipping_cost'] = 0;
                }
        auf:

        Code:
        global $db, $cart;
        $group_check = $db->Execute("select customers_group_pricing from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$_SESSION['customer_id'] . "'");
        if ($group_check->fields['customers_group_pricing'] == SPECIAL_CUSTOMER_FREE_SHIPPING_ID) {
        $over_total = SPECIAL_CUSTOMER_FREE_SHIPPING_OVER;
        } else {
        $over_total = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER;
        }
        if ( ($pass == true) && ( ($order->info['total'] - $order->info['shipping_cost']) >= $over_total) ) {
                  $order->info['shipping_method'] = $this->title;
                  $order->info['total'] -= $order->info['shipping_cost'];
                  $order->info['shipping_cost'] = 0;
                }
        4)

        includes/modules/shipping_estimator.php

        ca. Zeile 158:

        ändern von:

        Code:
        if ( ($pass == true) && ($_SESSION['cart']->show_total() >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) {
              $free_shipping = true;
              include(DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/order_total/ot_shipping.php');
            }
        auf:

        Code:
        global $db, $cart;
        $group_check = $db->Execute("select customers_group_pricing from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$_SESSION['customer_id'] . "'");
        if ($group_check->fields['customers_group_pricing'] == SPECIAL_CUSTOMER_FREE_SHIPPING_ID) {
        $over_total = SPECIAL_CUSTOMER_FREE_SHIPPING_OVER;
        } else {
        $over_total = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER;
        }
        $free_shipping = false;
        if ( ($pass == true) && ($_SESSION['cart']->show_total() >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) {
        $free_shipping = true;
        include(DIR_WS_LANGUAGES . $_SESSION['language'] . '/modules/order_total/ot_shipping.php');
        }
        Geänderte Datei hochladen nach includes/modules/DEINTEMPLATE/


        5)

        includes/templates/DEINTEMPLATE/templates/tpl_checkout_shipping_default.php
        Falls nicht vorhanden:
        includes/templates/template_default/templates/tpl_checkout_shipping_default.php

        ca. Zeile 57

        ändern von:

        Code:
        <div id="defaultSelected"><?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)) . zen_draw_hidden_field('shipping', 'free_free'); ?></div>
        auf:

        Code:
        <?php
        global $db, $cart;
        $group_check = $db->Execute("select customers_group_pricing from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$_SESSION['customer_id'] . "'");
        if ($group_check->fields['customers_group_pricing'] == SPECIAL_CUSTOMER_FREE_SHIPPING_ID) {
        $over_total = SPECIAL_CUSTOMER_FREE_SHIPPING_OVER;
        } else {
        $over_total = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER;
        }
        ?>
        <div id="defaultSelected"><?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format($over_total)) . zen_draw_hidden_field('shipping', 'free_free'); ?></div>
        Geänderte Datei hochladen nach
        includes/templates/DEINTEMPLATE/templates/

        6)

        includes/templates/DEINTEMPLATE/templates/tpl_modules_shipping_estimator.php
        Falls nicht vorhanden:
        includes/templates/template_default/templates/tpl_modules_shipping_estimator.php

        ca. Zeile 82 ändern von:

        Code:
        <?php echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format(MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER)); ?>
        auf

        Code:
        <?php
        global $db, $cart;
        $group_check = $db->Execute("select customers_group_pricing from " . TABLE_CUSTOMERS . " where customers_id = '" . (int)$_SESSION['customer_id'] . "'");
        if ($group_check->fields['customers_group_pricing'] == SPECIAL_CUSTOMER_FREE_SHIPPING_ID) {
        $over_total = SPECIAL_CUSTOMER_FREE_SHIPPING_OVER;
        } else {
        $over_total = MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER;
        }
        echo sprintf(FREE_SHIPPING_DESCRIPTION, $currencies->format($over_total));
        ?>
        Zuletzt geändert von webchills; 26.02.2015, 07:31. Grund: Anführungszeichen aus Befehl entfernt

        Kommentar


          #5
          Danke!
          Werde das am Wochenende testen und bescheid geben!!!

          Kommentar


            #6
            Habe mal alle Dateien umgeschrieben bevors los geht.... (noch nicht hochgeladen)
            Danach SQL Code eingespielt, gefolgt von dieser Fehlermeldung:

            2 statements processed.
            ERROR: Kann configuration_key "" nicht einfügen, da er bereits vorhanden ist.
            ERROR: Kann configuration_key "" nicht einfügen, da er bereits vorhanden ist.
            Note: 1 statements ignored. See "upgrade_exceptions" table for additional details.
            Keine weiteren Menüpunkte unter den Versandoptionen!
            Zuletzt geändert von webchills; 16.02.2015, 15:28.

            Kommentar


              #7
              Spiele den Befehl via phpMyAdmin ein.

              Kommentar


                #8
                Hat das geklappt? Würde mich sehr interessieren, da ich das gleiche plane

                Kommentar


                  #9
                  In älteren Zen Cart Versionen je nach verwendeter PHP Version kann es sein, dass das Ausführen von Befehlen mit Anführungszeichen im Stil von INSERT INTO 'configuration' per Admin > Tools > SQL Patches installieren mit der vom User Thommy beschriebenen Fehlermeldung endet.
                  Im Befehl oben sind jetzt die Zeichen entfernt, so dass es auch via Tools > SQL Patches keine Schwierigkeiten geben sollte. Via phpMyAdmin ist das Einspielen solcher Befehle aber ohnehin immer der bessere Weg.
                  Die Modifikation wurde getestet und funktioniert problemlos.

                  Kommentar


                    #10
                    Muss gestehen das es derzeit für mich nicht möglich ist das ich mich darum kümmere- es stapelt sich die Arbeit und somit muss ich dieses Projekt erstmal beiseite legen.
                    Ich melde mich sowie ich das eingebaut habe!
                    Danke nochmal!

                    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.7h deutsch
                    vom 15.04.2024
                    [Download]
                    Lädt...
                    X