table Modul für xtcommerce shipping Pauschale
23 02 2008Bin grade dabei ein XTCommerce Shop zu konfigurieren. Wenn man im Shop Versandkosten pauschalen haben möchte kommt man ums klonen von modulen nicht herrum.
Hier ist eine Anleitung von mir.
 (Benutzte es für Versandkosten pauschalen. z.b DE 5€, EU 10 €, weltweit 15€ (dazu hab ich das modul drei mal geclont.)
Geändert oder am besten kopiert und umbenannt werden müssen die beiden dateien:
xtcommerce/includes/modules/shipping/table.php Â
xtcommerce/lang/german/modules/shipping/table.php
in meinem fall in deversandkosten.php
Öffnet die dateien im editor (windows suche “editor”)
oder noch viel besser einen editor für MultiScripts wie “Proton”
ersetzt alle “deversandkosten” und DEVERSANDKOSTEN” mit euren eigenen namen. Drauf achten kein _ unterschrich im namen keine umlaute und auf groß und klein schreibung achten. Benutzt kein Web editor (frontpage,Golive..) der haut euch da code rein der nicht rein gehört.
xtcommerce/includes/modules/shipping/deversandkosten.php Â
 [quickcode]
[CODE]<?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); www.oscommerce.com
  (c) 2003 nextcommerce (table.php,v 1.8 2003/08/24); www.nextcommerce.org
  Released under the GNU General Public License
  —————————————————————————————*/
 class deversandkosten {
   var $code, $title, $description, $icon, $enabled;
   function deversandkosten() {
     global $order;
     $this->code = ‘deversandkosten';
     $this->title = MODULE_SHIPPING_DEVERSANDKOSTEN_TEXT_TITLE;
     $this->description = MODULE_SHIPPING_DEVERSANDKOSTEN_TEXT_DESCRIPTION;
     $this->sort_order = MODULE_SHIPPING_DEVERSANDKOSTEN_SORT_ORDER;
     $this->icon = ”;
     $this->tax_class = MODULE_SHIPPING_DEVERSANDKOSTEN_TAX_CLASS;
     $this->enabled = ((MODULE_SHIPPING_DEVERSANDKOSTEN_STATUS == ‘True’) ? true : false);
     if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_MODE == ‘price’) {
       $order_total = $xtPrice->xtcRemoveCurr($_SESSION[‘cart’]->show_total());
     } else {
       $order_total = $shipping_weight;
     }
     $table_cost = split(“[:,]” , MODULE_SHIPPING_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_MODE == ‘weight’) {
       $shipping = $shipping * $shipping_num_boxes;
     }
     $this->quotes = array(‘id’ => $this->code,
                           ‘module’ => MODULE_SHIPPING_DEVERSANDKOSTEN_TEXT_TITLE,
                           ‘methods’ => array(array(‘id’ => $this->code,
                                                    ‘title’ => MODULE_SHIPPING_DEVERSANDKOSTEN_TEXT_WAY,
                                                    ‘cost’ => $shipping + MODULE_SHIPPING_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_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_DEVERSANDKOSTEN_STATUS’, ‘MODULE_SHIPPING_DEVERSANDKOSTEN_COST’, ‘MODULE_SHIPPING_DEVERSANDKOSTEN_MODE’, ‘MODULE_SHIPPING_DEVERSANDKOSTEN_HANDLING’,’MODULE_SHIPPING_DEVERSANDKOSTEN_ALLOWED’, ‘MODULE_SHIPPING_DEVERSANDKOSTEN_TAX_CLASS’, ‘MODULE_SHIPPING_DEVERSANDKOSTEN_ZONE’, ‘MODULE_SHIPPING_DEVERSANDKOSTEN_SORT_ORDER’);
   }
 }
?>[/CODE]
 [/quickcode]
 [quickcode]
xtcommerce/lang/german/modules/shipping/deversandkosten.php
[CODE]<?php
/* —————————————————————————————–
  $Id: table.php 899 2005-04-29 02:40:57Z hhgag $
  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.6 2003/02/16); www.oscommerce.com
  (c) 2003 nextcommerce (table.php,v 1.4 2003/08/13); www.nextcommerce.org
  Released under the GNU General Public License
  —————————————————————————————*/
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_TEXT_TITLE’, ‘DE-Versandkosten’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_TEXT_DESCRIPTION’, ‘DE-Versandkosten’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_TEXT_WAY’, ‘Deutsche Post’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_TEXT_WEIGHT’, ‘Gewicht’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_TEXT_AMOUNT’, ‘Menge’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_STATUS_TITLE’ , ‘DE-Versandkosten aktivieren’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_STATUS_DESC’ , ‘Möchten Sie Tabellarische Versandkosten anbieten?’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_ALLOWED_TITLE’ , ‘Erlaubte Versandzonen’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_ALLOWED_DESC’ , ‘Geben Sie <b>einzeln</b> die Zonen an, in welche ein Versand möglich sein soll. (z.B. AT,DE (lassen Sie dieses Feld leer, wenn Sie alle Zonen erlauben wollen))’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_COST_TITLE’ , ‘Versandkosten’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_COST_DESC’ , ‘Die Versandkosten basieren auf Gesamtkosten oder Gesamtgewicht der bestellten Waren. Beispiel: 25:5.50,50:8.50,etc.. Bis 25 werden 5.50 verrechnet, darüber bis 50 werden 8.50 verrechnet, etc’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_MODE_TITLE’ , ‘Versandkosten Methode’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_MODE_DESC’ , ‘Die Versandkosten basieren auf Gesamtkosten oder Gesamtgewicht der bestellten Waren.’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_HANDLING_TITLE’ , ‘Handling Gebühr’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_HANDLING_DESC’ , ‘Handling Gebühr für diese Versandmethode’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_TAX_CLASS_TITLE’ , ‘Steuerklasse’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_TAX_CLASS_DESC’ , ‘Folgende Steuerklasse an Versandkosten anwenden’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_ZONE_TITLE’ , ‘Versandzone’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_ZONE_DESC’ , ‘Wenn eine Zone ausgewählt ist, wird diese Versandmethode ausschliseslich für diese Zone angewendet’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_SORT_ORDER_TITLE’ , ‘Sortierreihenfolge’);
define(‘MODULE_SHIPPING_DEVERSANDKOSTEN_SORT_ORDER_DESC’ , ‘Reihenfolge der Anzeige’);
?>[/CODE]
[/quickcode]
6 Stunden hab ich dafür gebraucht damit das Funktioniert man darf halt nicht alle table ändern sondern nur die mit dem unterstich davor und dahinter _table_ sowie die class table {, function table() { und $this->code = ‘table';
mehr nicht.
Letzte Kommentare