Klaus Krengel
16.09.2014, 14:20
Hallo all ,
ich bin auf der Suche nach einem Modul für meinen Gambio GX2 Shop - dem Inselzuschlag, da DPD mir eben für ein Paket auf einer besagte Insel eben 17,50€ berechnet hat. Wäre schön wenn mir da jemand weiter helfen könnte.
Klaus Krengel
20.09.2014, 10:42
Ich habe bei den Jungs vom Modified Forum das gefunden - da hat jemand aus dem Flat Modul ein Inselzuschlagmodul für DPD gemacht :
Da dieses komische "DPD-Modul" einfach nicht nachvollziehbar ist habe ich nun einfach das DPD-Modul deaktiviert und an Stelle dessen FLAT verwendet.
Im Modul selbst "/includes/modules/shipping/flat.php" habe ich die folgende Änderung direkt in der Methode "quote" vorgenommen:
$inseln = array('18565','25859','25845','25846','25847','258 49','25863','25869','25938','25929','25930','25931 ','25932','25933','25939','25940','25941','25942', '25946','25952','25953','25954','25955','25961','2 5962','25963','25964','25965','25966','25967','259 68','25969','25970','25980','25981','25982','25983 ','25984','25985','25986','25992','25993','25994', '25996','25997','25998','25999','25980','25981','2 5982','25983','25984','25985','25986','25987','259 88','25989','25990','25997','25845','26465','26474 ','26486','26548','26571','26579','26757','27498', '83209','83256');
if (in_array($order->delivery['postcode'], $inseln) ){
//Inselzuschlag erforderlich
$this->quotes = array('id' => $this->code,
'module' => MODULE_SHIPPING_FLAT_TEXT_TITLE,
'methods' => array(array('id' => $this->code,
'title' => MODULE_SHIPPING_FLAT_TEXT_WAY . ' ('.MODULE_SHIPPING_FLAT_COST.'EUR zzgl. 11.50EUR Inselzuschlag)',
'cost' => MODULE_SHIPPING_FLAT_COST + 11.50)));
} else {
//keine Insel
$this->quotes = array('id' => $this->code,
'module' => MODULE_SHIPPING_FLAT_TEXT_TITLE,
'methods' => array(array('id' => $this->code,
'title' => MODULE_SHIPPING_FLAT_TEXT_WAY,
'cost' => MODULE_SHIPPING_FLAT_COST)));
}
nur irgendwie will das bei mir nicht laufen :confused:
Klaus Krengel
20.09.2014, 16:30
Hier mal eine flat.php
<?php
/* -----------------------------------------------------------------------------------------
$Id: flat.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(flat.php,v 1.40 2003/02/05); www.oscommerce.com
(c) 2003 nextcommerce (flat.php,v 1.7 2003/08/24); www.nextcommerce.org
Released under the GNU General Public License
---------------------------------------------------------------------------------------*/
class flat_ORIGIN {
var $code, $title, $description, $icon, $enabled;
public function __construct() {
global $order;
$this->code = 'flat';
$this->title = MODULE_SHIPPING_FLAT_TEXT_TITLE;
$this->description = MODULE_SHIPPING_FLAT_TEXT_DESCRIPTION;
$this->sort_order = MODULE_SHIPPING_FLAT_SORT_ORDER;
$this->icon = '';
$this->tax_class = MODULE_SHIPPING_FLAT_TAX_CLASS;
$this->enabled = ((MODULE_SHIPPING_FLAT_STATUS == 'True') ? true : false);
if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FLAT_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_FLAT_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;
$inseln = array('18565','25859','25845','25846','25847','258 49','25863','25869','25938','25929','25930','25931 ','25932','25933','25939','25940','25941','25942', '25946','25952','25953','25954','25955','25961','2 5962','25963','25964','25965','25966','25967','259 68','25969','25970','25980','25981','25982','25983 ','25984','25985','25986','25992','25993','25994', '25996','25997','25998','25999','25980','25981','2 5982','25983','25984','25985','25986','25987','259 88','25989','25990','25997','25845','26465','26474 ','26486','26548','26571','26579','26757','27498', '83209','83256');
if (in_array($order->delivery['postcode'], $inseln) ){
//Inselzuschlag erforderlich
$this->quotes = array('id' => $this->code,
'module' => MODULE_SHIPPING_FLAT_TEXT_TITLE,
'methods' => array(array('id' => $this->code,
'title' => MODULE_SHIPPING_FLAT_TEXT_WAY . ' ('.MODULE_SHIPPING_FLAT_COST.'EUR zzgl. 11.50EUR Inselzuschlag)',
'cost' => MODULE_SHIPPING_FLAT_COST + 11.50)));
} else {
//keine Insel
$this->quotes = array('id' => $this->code,
'module' => MODULE_SHIPPING_FLAT_TEXT_TITLE,
'methods' => array(array('id' => $this->code,
'title' => MODULE_SHIPPING_FLAT_TEXT_WAY,
'cost' => MODULE_SHIPPING_FLAT_COST)));
}
}
function check() {
if (!isset($this->_check)) {
$check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_FLAT_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_FLAT_STATUS', 'True', '6', '0', 'gm_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_FLAT_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_FLAT_COST', '0.00', '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_FLAT_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_FLAT_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_FLAT_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_FLAT_STATUS', 'MODULE_SHIPPING_FLAT_COST','MODULE_SHIPPING_FLAT_ ALLOWED', 'MODULE_SHIPPING_FLAT_TAX_CLASS', 'MODULE_SHIPPING_FLAT_ZONE', 'MODULE_SHIPPING_FLAT_SORT_ORDER');
}
}
MainFactory::load_origin_class('flat');
es wird einfach kein Zuschalg dazugerechnet bei den entsprechenden PLZ´en . Hab das Modul im Admin aktiviert .... nur der Inselzuschlag wird nicht mitberechnet ....
Ich könnte mir vorstellen, dass die Zahl gar nicht als Zahl sondern als Text gesehen wird.
Oder, dass der Parser Probleme mit dem Punkt hat, er dient ja auch als Verkettungszeichen!
Hast du mal versucht nur 11 anstatt 11.50 zu addieren?
Oder die 11.50 in Klammern zu setzen?
Vielleicht solltest du die 11,50 Euro einfach in einer Variable definieren:
$zuschlag = 11.50
'cost' => MODULE_SHIPPING_FLAT_COST + $zuschlag)));
Für PHP-Code solltest du übrigens immer das PHP-Code-Fenster verwenden.
Die integrierte Syntaxhervorhebung (Highlighting) erhöht die Lesbarkeit ungemein.
Powered by vBulletin® Version 4.2.2 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.