Jump to content
xt:Commerce Community Forum
Sign in to follow this  
Matthias3x

Versandmodul Selbstabholung

Recommended Posts

Hi Leuts, ich habe hier einen Gambio GX im Einsatz und komme bislang keinen schritt weiter. Prinzipiell ist das Versandmodul identisch mit dem originalen von xt:commerce, daher versuche ich es hier einmal da in anderen Foren bisher keine Antworten zu bekommen waren.

Ich brauche das Versandmodul "Selbstabholung" 2 mal, da die Selbstabholung der Ware an zwei unterscheidlichen Orten (einmal Büro Firma und einmal Fanshop Eisstadion) erfolgen kann. Ich habe mir also das Modul "selfpickup" unter /includes/modules/shipping/selfpickup.php hergenommen und wie folgt abgeändert:

<?PHP

/* -----------------------------------------------------------------------------------------

   $Id: selfpickup.php 1306 2005-10-14 10:32:31Z 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(freeamount.php,v 1.01 2002/01/24); www.oscommerce.com 

   (c) 2003	 nextcommerce (freeamount.php,v 1.12 2003/08/24); www.nextcommerce.org


   Released under the GNU General Public License 

   -----------------------------------------------------------------------------------------

   Third Party contributions:

   selfpickup		 	Autor:	sebthom


   Released under the GNU General Public License 

   ---------------------------------------------------------------------------------------*/


class stadion_selfpickup

{

	var $code, $title, $description, $icon, $enabled;


	function stadion_selfpickup()

	{

		$this->code		= 'stadion_selfpickup';

		$this->title	   = MODULE_SHIPPING_STADION_SELFPICKUP_TEXT_TITLE;

		$this->description = MODULE_SHIPPING_STADION_SELFPICKUP_TEXT_DESCRIPTION;

		$this->icon		= '';   // change $this->icon =  DIR_WS_ICONS . 'shipping_ups.gif'; to some freeshipping icon

		$this->sort_order  = MODULE_SHIPPING_STADION_SELFPICKUP_SORT_ORDER;

		$this->enabled = ((MODULE_SHIPPING_STADION_SELFPICKUP_STATUS == 'True') ? true : false);

	}


	function quote($method = '')

	{

		$this->quotes = array(

			'id' => $this->code,

			'module' => MODULE_SHIPPING_STADION_SELFPICKUP_TEXT_TITLE

		);


		$this->quotes['methods'] = array(array(

			'id'	=> $this->code,

			'title' => MODULE_SHIPPING_STADION_SELFPICKUP_TEXT_WAY,

			'cost'  => 0

		));


		if(xtc_not_null($this->icon))

		{

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

		}


		return $this->quotes;

	}


	function check()

	{

		$check = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_STADION_SELFPICKUP_STATUS'");

		$check = xtc_db_num_rows($check);


		return $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_STADION_SELFPICKUP_STATUS', 'True', '6', '7', '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_STADION_SELFPICKUP_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_STADION_SELFPICKUP_SORT_ORDER', '0', '6', '4', now())");

	}


	function remove()

	{

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

	}


	function keys()

	{

		return array('MODULE_SHIPPING_STADION_SELFPICKUP_STATUS','MODULE_SHIPPING_STADION_SELFPICKUP_SORT_ORDER','MODULE_SHIPPING_STADION_SELFPICKUP_ALLOWED');

	}

}

?>

also prinzipiell nur die Namen der Konstanten und der Funktion geändert. Ich habe natürlich in der Datenbank noch die Tabellen "gm_lang_files", und "gm_lang_files_content" entspr. angepasst. das modul habe ich "stadion_selfpickup" genannt und natürlich auch die geänderten Files in den modules Ordner sowie in den lang Ordner kopiert. Die entspr.Werte von "stadion_selfpickup" sind analog zu "selfpickup" auch in der config tabelle vorhanden. Soweit sogut, also ab in den Adminbereich. Das Modul wird unter "Module" -> "Versandarten" angezeigt und ließ sich scheinbar auch problemlos installieren. Die Option wird auch beim Bestellvorgang angezeigt, entspr. der Sortierreihenfolge auch an letzter Stelle. Auswahl 1 ist Versicherter Versand, Auswahl 2 ist Selbstabholung im Firmenbüro und Auswahl 3 eben Selbstabholung im Stadion. Als erstes macht mich stutzig das immer Auswahl 2 bei Versandartauswahl markiert ist, nach welchen Kriterien richtet sich der Status "checked=checked" eigentlich? Das größere Problem ist das wenn ich Auswahl 3, also "Selbstabholung im Stadion" markiere und auf "Weiter" klicke, dann komme ich wiederum bei der Versandartauswahl heraus, keine Fehlermeldung etc. .. wähle ich einen der beiden anderen Punkte geht es ganz normal zur auswahl der bezahlart weiter. wo könnte hier der fehler liegen? evtl. Session-Handling etc.?! Ich habe schon einiges probiert, aber leider noch keine Lösung gefunden ...

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...