zwei Versandarten bei Bestellung

  • Hallo,

    folgende Problematik:
    in einem Shop gibt es diese Versandarten:

    Versandkostenfrei fuer Endkunden in D ab € 50,00
    Versandkostenfrei fuer Haendler in D ab € 100,00
    Tabellarische Versandkosten in D fuer Versand unter diesen Werten
    Versandkosten nach Zonen fuer alle uebrigen Laender.

    Nun werden dem Endkunden aus D, der z.B. fuer € 70,00 bestellt, zwei Versandarten angeboten:

    1. Versandkostenfrei, was ja auch richtig ist, aber auch
    2. Versandkosten Bester Weg lt. Tabellarischen Versandkosten in Hoehe von € 5,68

    Wie kann ich denn die 2. Anzeige verhindern??

    Danke

    Micha

  • Hi admin,

    danke erstmal fuer den Denkanstoss, klappt aber noch nicht. Folgende Konfiguration besteht:
    Endkunde + Haendler haben unterschiedliche Versandkosten, siehe hier:

    Es gibt 2x Tabellarische Versandkosten (table + tableh), einmal fuer Endkunden mit folgender Einstellung:25:7.294,50:4.77,10000:0.00 (table)
    und fuer Haendler (tableh): 100:5.95,10000:0.00,
    gleichzeitig muss ein Haendler fuer mindestens € 50,00 kaufen (das funktioniert auch)
    Nach Deinem Tipp habe ich in der Zusammenfassung Versandkostenfrei erlauben eingestellt, allerdings ohne Betrag (die sind ja unterschiedlich bei Haendler und bei Kunde)
    in der Kundengruppe sind die nicht erlaubten Versandarten entsprechend zugeordnet.
    Trotzdem erscheinen beim Haendler auch bei einem Betrag zwischen 50 und 100 Euro: Versandkosten = € 0,00

    Setze ich die Versandkostenfreiheit in der Zusammenfassung wieder auf "false", zeigt er mir beim Haendler zwischen 50 und 100 Euro: "Bester Weg, Versandkosten Haendler" = 0,00 (ist falsch.......)

    Dafuer ist aber jetzt das Problem mit 2 verschieden angezeigten Versandwegen geloest (10000:0.00), wenigstens ein Teilerfolg.

    ratlos, ratlos

    Ich hoffe, Du blickst noch durch.

    Micha

  • Hi admin,

    hast Du vollkommen recht, nur ein Fehler bleibt:

    Es gibt 2x Tabellarische Versandkosten (table + tableh), einmal fuer Endkunden mit folgender Einstellung:25:7.294,50:4.77,10000:0.00 (table)
    und fuer Haendler (tableh): 100:5.95,10000:0.00, trotzdem erscheinen beim Haendler auch bei einem Betrag zwischen 50 und 100 Euro: Versandkosten = € 0,00

    Anscheinend greift er nicht auf die richtige Tabelle zu, obwohl die Tabellen bei den Kundengruppen eingestellt sind.

    Gruss

    Micha

    • Offizieller Beitrag

    Ab da musst Du natürlich auch ändern und dann das Modul 1 x neu installieren, sonst nimmt er die Werte aus table:

    PHP
    function install() {
          xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_SHIPPING_TABLE_STATUS', 'True', '6', '0', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");

    Also ab dem Punkt bis zu Ende ändern von TABLE auf TABLE2

  • Hi admin,

    claro, habe ich auch gemacht, das sind die beiden:

    Allerdings habe ich nichts neu installiert, sonder mit Kopieren und Aendern???????

    table:

    <?php
    /* -----------------------------------------------------------------------------------------
    $Id: table.php 1002 2005-07-10 16:11:37Z mz $

    XT-Commerce - community made shopping
    http://www.xt-commerce.com

    Copyright (c) 2003 XT-Commerce
    -----------------------------------------------------------------------------------------
    based on:
    (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
    (c) 2002-2003 osCommerce(table.php,v 1.27 2003/02/05); https://support.commerce-seo.de/www.oscommerce.com
    (c) 2003 nextcommerce (table.php,v 1.8 2003/08/24); https://support.commerce-seo.de/www.nextcommerce.org

    Released under the GNU General Public License
    ---------------------------------------------------------------------------------------*/


    class table {
    var $code, $title, $description, $icon, $enabled;


    function table() {
    global $order;

    $this->code = 'table';
    $this->title = MODULE_SHIPPING_TABLE_TEXT_TITLE;
    $this->description = MODULE_SHIPPING_TABLE_TEXT_DESCRIPTION;
    $this->sort_order = MODULE_SHIPPING_TABLE_SORT_ORDER;
    $this->icon = '';
    $this->tax_class = MODULE_SHIPPING_TABLE_TAX_CLASS;
    $this->enabled = ((MODULE_SHIPPING_TABLE_STATUS == 'True') ? true : false);

    if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLE_ZONE > 0) ) {
    $check_flag = false;
    $check_query = xtc_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TABLE_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
    while ($check = xtc_db_fetch_array($check_query)) {
    if ($check['zone_id'] < 1) {
    $check_flag = true;
    break;
    } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
    $check_flag = true;
    break;
    }
    }

    if ($check_flag == false) {
    $this->enabled = false;
    }

    }
    }


    function quote($method = '') {
    global $order, $shipping_weight, $shipping_num_boxes,$xtPrice;

    if (MODULE_SHIPPING_TABLE_MODE == 'price') {
    $order_total = $xtPrice->xtcRemoveCurr($_SESSION['cart']->show_total());
    } else {
    $order_total = $shipping_weight;
    }

    $table_cost = split("[:,]" , MODULE_SHIPPING_TABLE_COST);
    $size = sizeof($table_cost);
    for ($i=0, $n=$size; $i<$n; $i+=2) {
    if ($order_total <= $table_cost[$i]) {
    $shipping = $table_cost[$i+1];
    break;
    }
    }

    if (MODULE_SHIPPING_TABLE_MODE == 'weight') {
    $shipping = $shipping * $shipping_num_boxes;
    }

    $this->quotes = array('id' => $this->code,
    'module' => MODULE_SHIPPING_TABLE_TEXT_TITLE,
    'methods' => array(array('id' => $this->code,
    'title' => MODULE_SHIPPING_TABLE_TEXT_WAY,
    'cost' => $shipping + MODULE_SHIPPING_TABLE_HANDLING)));

    if ($this->tax_class > 0) {
    $this->quotes['tax'] = xtc_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
    }

    if (xtc_not_null($this->icon)) $this->quotes['icon'] = xtc_image($this->icon, $this->title);

    return $this->quotes;
    }

    function check() {
    if (!isset($this->_check)) {
    $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_TABLE_STATUS'");
    $this->_check = xtc_db_num_rows($check_query);
    }
    return $this->_check;
    }

    function install() {
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_SHIPPING_TABLE_STATUS', 'True', '6', '0', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_ALLOWED', '', '6', '0', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_COST', '25:8.50,50:5.50,10000:0.00', '6', '0', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_TABLE_MODE', 'weight', '6', '0', 'xtc_cfg_select_option(array(\'weight\', \'price\'), ', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_HANDLING', '0', '6', '0', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLE_TAX_CLASS', '0', '6', '0', 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLE_ZONE', '0', '6', '0', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLE_SORT_ORDER', '0', '6', '0', now())");
    }

    function remove() {
    xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
    return array('MODULE_SHIPPING_TABLE_STATUS', 'MODULE_SHIPPING_TABLE_COST', 'MODULE_SHIPPING_TABLE_MODE', 'MODULE_SHIPPING_TABLE_HANDLING','MODULE_SHIPPING_TABLE_ALLOWED', 'MODULE_SHIPPING_TABLE_TAX_CLASS', 'MODULE_SHIPPING_TABLE_ZONE', 'MODULE_SHIPPING_TABLE_SORT_ORDER');
    }
    }
    ?>

    und das hier ist die andere: (tableh)

    <?php
    /* -----------------------------------------------------------------------------------------
    $Id: tableh.php 1002 2005-07-10 16:11:37Z mz $

    XT-Commerce - community made shopping
    http://www.xt-commerce.com

    Copyright (c) 2003 XT-Commerce
    -----------------------------------------------------------------------------------------
    based on:
    (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
    (c) 2002-2003 osCommerce(table.php,v 1.27 2003/02/05); https://support.commerce-seo.de/www.oscommerce.com
    (c) 2003 nextcommerce (table.php,v 1.8 2003/08/24); https://support.commerce-seo.de/www.nextcommerce.org

    Released under the GNU General Public License
    ---------------------------------------------------------------------------------------*/


    class tableh {
    var $code, $title, $description, $icon, $enabled;


    function tableh() {
    global $order;

    $this->code = 'tableh';
    $this->title = MODULE_SHIPPING_TABLEH_TEXT_TITLE;
    $this->description = MODULE_SHIPPING_TABLEH_TEXT_DESCRIPTION;
    $this->sort_order = MODULE_SHIPPING_TABLEH_SORT_ORDER;
    $this->icon = '';
    $this->tax_class = MODULE_SHIPPING_TABLEH_TAX_CLASS;
    $this->enabled = ((MODULE_SHIPPING_TABLEH_STATUS == 'True') ? true : false);

    if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_TABLEH_ZONE > 0) ) {
    $check_flag = false;
    $check_query = xtc_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_TABLEH_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id");
    while ($check = xtc_db_fetch_array($check_query)) {
    if ($check['zone_id'] < 1) {
    $check_flag = true;
    break;
    } elseif ($check['zone_id'] == $order->delivery['zone_id']) {
    $check_flag = true;
    break;
    }
    }

    if ($check_flag == false) {
    $this->enabled = false;
    }

    }
    }


    function quote($method = '') {
    global $order, $shipping_weight, $shipping_num_boxes,$xtPrice;

    if (MODULE_SHIPPING_TABLEH_MODE == 'price') {
    $order_total = $xtPrice->xtcRemoveCurr($_SESSION['cart']->show_total());
    } else {
    $order_total = $shipping_weight;
    }

    $tableH_cost = split("[:,]" , MODULE_SHIPPING_TABLEH_COST);
    $size = sizeof($tableh_cost);
    for ($i=0, $n=$size; $i<$n; $i+=2) {
    if ($order_total <= $tableh_cost[$i]) {
    $shipping = $tableh_cost[$i+1];
    break;
    }
    }

    if (MODULE_SHIPPING_TABLEH_MODE == 'weight') {
    $shipping = $shipping * $shipping_num_boxes;
    }

    $this->quotes = array('id' => $this->code,
    'module' => MODULE_SHIPPING_TABLEH_TEXT_TITLE,
    'methods' => array(array('id' => $this->code,
    'title' => MODULE_SHIPPING_TABLEH_TEXT_WAY,
    'cost' => $shipping + MODULE_SHIPPING_TABLEH_HANDLING)));

    if ($this->tax_class > 0) {
    $this->quotes['tax'] = xtc_get_tax_rate($this->tax_class, $order->delivery['country']['id'], $order->delivery['zone_id']);
    }

    if (xtc_not_null($this->icon)) $this->quotes['icon'] = xtc_image($this->icon, $this->title);

    return $this->quotes;
    }

    function check() {
    if (!isset($this->_check)) {
    $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_TABLEH_STATUS'");
    $this->_check = xtc_db_num_rows($check_query);
    }
    return $this->_check;
    }

    function install() {
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_SHIPPING_TABLEH_STATUS', 'True', '6', '0', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLEH_ALLOWED', '', '6', '0', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLEH_COST', '25:8.50,50:5.50,10000:0.00', '6', '0', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_SHIPPING_TABLEH_MODE', 'weight', '6', '0', 'xtc_cfg_select_option(array(\'weight\', \'price\'), ', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLEH_HANDLING', '0', '6', '0', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLEH_TAX_CLASS', '0', '6', '0', 'xtc_get_tax_class_title', 'xtc_cfg_pull_down_tax_classes(', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) values ('MODULE_SHIPPING_TABLEH_ZONE', '0', '6', '0', 'xtc_get_zone_class_title', 'xtc_cfg_pull_down_zone_classes(', now())");
    xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_SHIPPING_TABLEH_SORT_ORDER', '0', '6', '0', now())");
    }

    function remove() {
    xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
    return array('MODULE_SHIPPING_TABLEH_STATUS', 'MODULE_SHIPPING_TABLEH_COST', 'MODULE_SHIPPING_TABLEH_MODE', 'MODULE_SHIPPING_TABLEH_HANDLING','MODULE_SHIPPING_TABLEH_ALLOWED', 'MODULE_SHIPPING_TABLEH_TAX_CLASS', 'MODULE_SHIPPING_TABLEH_ZONE', 'MODULE_SHIPPING_TABLEH_SORT_ORDER');
    }
    }
    ?>