Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Bestellung erneut in den Warenkorb


Yepi1533005574

Recommended Posts

Ich muss unbedingt die Attribute umgehen können. Gibt es die Möglichkeit dass Produkte von der product_listing.php direkt in den Warenkorb gelegt werden auch wenn dieses Produkt mit Attributen verknüpft ist ? Ich möchte dass Attribute nur von der Product_info.php ausgewählt und übergeben werden können.

Ich hoffe es gibt jemanden der mir helfen kann.

Link to comment
Share on other sites

So langsam glaub ich, dass dieses Forum schon tot ist. Leider. Vor ein paar Jahren war es hier so richtig lebendig und alle haben sich gegenseitig geholfen. 

Bevor jemand wieder schreibt das alles ist nicht so einfach und erfordert gute kenntnisse dann muss ich dem widersprechen. Übergabe der Produkte ohne Attribute von der produkt_listing.php direkt in den Warenkorb erfordert den austausch von nur 4 Buchstaben in einer Datei ! Falls jemand interessiert ist einfach mal ne pm schreiben. Ich helfe soweit ich kann aber hierher schreiben ist anscheinend sinnlos. LG.

Edited by Yepi
Link to comment
Share on other sites

  • 2 weeks later...

Übergabe der Produkte in der produkt_listing.php  oder products_info.php ohne Attributte in den Warenkorb funktioniert in allen osC Versionen ohne Änderungen im Code. Wenn Du Änderungen dafür brauchst, ist Dein Core Code schon an anderer Stelle versaut.

  • The clever one learn from everything and from everybody
  • The normal one learn from his experience
  • The silly one knows everything better

[socrates, 412 before Christ]

Computers help us with the problems we wouldn't have without them!
99.9% of the bugs sit in front of the computer!
My programmed add-ons: WDW EasyTabs 1.0.3, WDW Facebook Like 1.0.0

if(isset($this) || !isset($this)){ // that's the question...

 

Link to comment
Share on other sites

vor 4 Minuten, Yepi1533005574 said:

Ist nicht. genau dieser Code hat es erlaubt Produkte in den Warenkorb zu legen ohne auf die product_info.php geleitet zu werden.
Ansonsten sind alle Funktionen im Shop absolut in ordnung und werden nicht beeinflusst.

Aha okay, fhabe ich falsch verstanden,  aus den Listings. Und ja, richtig sind genau 4 Buchstaben in einer Datei.B)

  • The clever one learn from everything and from everybody
  • The normal one learn from his experience
  • The silly one knows everything better

[socrates, 412 before Christ]

Computers help us with the problems we wouldn't have without them!
99.9% of the bugs sit in front of the computer!
My programmed add-ons: WDW EasyTabs 1.0.3, WDW Facebook Like 1.0.0

if(isset($this) || !isset($this)){ // that's the question...

 

Link to comment
Share on other sites

Also für alle interessierten die wissen möchten wie es funktioniert bereits getätigte Bestellungen erneut in den Warenkorb zu legen.
Hierbei werden allerdings Keine Attribute übernommen und somit das Produkt das Attribute aufweist abgestossen.

Optional dazu gibt es die Möglichkeit die zu übergehen und das Produkt ohne diese in den Warenkorb zu legen.

catalog/includes/functions/general.php

Diesen Abschnitt:

// Check if product has attributes
function tep_has_product_attributes($products_id) {
$attributes_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$products_id . "'");
$attributes = tep_db_fetch_array($attributes_query);

if ($attributes['count'] > 0) {
return true;
} else {
return false;
}
}

 

Mit diesem ersetzen:

// Check if product has attributes
function tep_has_product_attributes($products_id) {
$attributes_query = tep_db_query("select count(*) as count from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . (int)$products_id . "'");
$attributes = tep_db_fetch_array($attributes_query);

if ($attributes['count'] > 0) {
return 
false;
} else {
return false;
}
}

 

***********************************************************************************************

Weiter mit dem Hauptthema. Hier gibt es vier Dateien die bearbeitet werden müssen.
Es handelt sich um die Dateien "account_history_info.php", die "application_top.php", die "general.php" und die "german.php" .


Als aller erstes erstellen Sie eine Kopie der Dateien, die wir bearbeiten werden in einem separaten Ordner.


catalog/account_history_info.php
Finde:

<?php
if (DOWNLOAD_ENABLED == 'true') include(DIR_WS_MODULES . 'downloads.php');
?>


davor einfügen:

<div class="buttonSet">
<?php
echo tep_draw_form('order_reorder', tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $_GET['order_id'] . '&action=reorder', 'SSL'));
echo '<td valign="middle" align="center">' . tep_draw_button(IMAGE_BUTTON_REORDER, 'triangle-1-w', 'Re-Order','','update_button') . '</td>';
echo '</form>';
?>
</div>


catalog/includes/application_top.php
Finde:

$cart->add_cart($HTTP_GET_VARS['pid'], $cart->get_quantity($HTTP_GET_VARS['pid'])+1);
}
}
tep_redirect(tep_href_link($goto, tep_get_all_get_params($parameters)));
break;


danach einfügen:

case 'reorder' : $reorder_result = tep_reorder($_GET['order_id']);
if ($reorder_result == '') {
tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING));
}
break;



catalog/includes/functions/general.php
Finde am Ende der Datei:

?>

davor einfügen:

function tep_reorder ($orders_id) {
global $cart, $languages_id;

$result = '';
$ordered_products_query = tep_db_query("select op.products_id,
op.orders_products_id,
op.products_quantity,
p.products_status,
p.products_model,
p.products_quantity as stock,
pd.products_name
from " . TABLE_ORDERS_PRODUCTS . " op, " .
TABLE_PRODUCTS . " p, " .
TABLE_PRODUCTS_DESCRIPTION . " pd
where op.orders_id = '" . $orders_id . "' and
op.products_id = p.products_id and
p.products_id = pd.products_id and
pd.language_id = '" . $languages_id . "'");

while ($ordered_product = tep_db_fetch_array($ordered_products_query)) {
if ($ordered_product['products_status'] == '1') {
if (!tep_has_product_attributes($ordered_product['products_id'])) {
if ($ordered_product['stock'] >= ($cart->get_quantity($ordered_product['products_id'])+$ordered_product['products_quantity'])) {
$cart->add_cart($ordered_product['products_id'], $cart->get_quantity($ordered_product['products_id'])+$ordered_product['products_quantity']);
} else {
$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Not enough stock<br>';
}
} else {
$attributes = array();
$attributes_count = 0;
$attributes_query = tep_db_query("select po.products_options_id ,
pov.products_options_values_id
from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " opa,
" . TABLE_PRODUCTS_OPTIONS . " po,
" . TABLE_PRODUCTS_OPTIONS_VALUES . " pov,
" . TABLE_PRODUCTS_ATTRIBUTES . " pa
where opa.orders_id = '" . $orders_id . "' and
opa.orders_products_id = '" . $ordered_product['orders_products_id'] . "' and
po.products_options_name = opa.products_options and
po.language_id = '" . $languages_id . "' and
pa.options_id = po.products_options_id and
pa.options_values_id = pov.products_options_values_id and
pa.products_id = '" . $ordered_product['products_id'] . "' and
pov.products_options_values_name = opa.products_options_values and
pov.language_id = '" . $languages_id . "'");

while ($attribute = tep_db_fetch_array($attributes_query)) {
$attributes[$attribute['products_options_id']] = $attribute['products_options_values_id'];
$attributes_count++;
}

if ($attributes_count < 1) {
$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Attributes changed<br>';
}

if ($ordered_product['stock'] >= ($cart->get_quantity(tep_get_uprid($ordered_product['products_id'], $attributes))+$ordered_product['products_quantity'])) {
$cart->add_cart($ordered_product['products_id'], $cart->get_quantity(tep_get_uprid($ordered_product['products_id'], $attributes))+$ordered_product['products_quantity'], $attributes);
} else {
$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Not enough stock (attr)<br>';
}
}
} else {
$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Not Available<br>';
}
}
return $result;
}


catalog/includes/languages/german.php

Finde:

define('IMAGE_BUTTON_ADD_ADDRESS', 'Neue Adresse');

davor einfügen:

define('IMAGE_BUTTON_REORDER', 'Erneut bestellen');


Speichern Sie diese Dateien.

Übertragt jetzt die Dateien mittels FTP in die entsprechenden Verzeichnisse auf Ihrem Server und es ist geschafft.

 

Ich hoffe Ihr könnt damit etwas anfangen.

Link to comment
Share on other sites

catalog/includes/functions/general.php vor ?> einfgen

// reorder code
  function tep_reorder ($orders_id) {

	  global $cart, $languages_id;
	
	$result = '';
	$ordered_products_query = tep_db_query("select op.products_id, 
								op.orders_products_id,
								op.products_quantity, 
								p.products_status,
								p.products_model,
								p.products_quantity as stock,
								pd.products_name
			from " . TABLE_ORDERS_PRODUCTS . " op, " . 
			TABLE_PRODUCTS . " p, " . 
			TABLE_PRODUCTS_DESCRIPTION . " pd 
			where op.orders_id = '" . $orders_id . "' and
			op.products_id = p.products_id and
			p.products_id = pd.products_id and
			pd.language_id = '" . $languages_id . "'");
	
	while ($ordered_product = tep_db_fetch_array($ordered_products_query)) {
	   if ($ordered_product['products_status'] == '1') {
		   if (!tep_has_product_attributes($ordered_product['products_id'])) {
			 if ($ordered_product['stock'] >= ($cart->get_quantity($ordered_product['products_id'])+$ordered_product['products_quantity'])) {
			   $cart->add_cart($ordered_product['products_id'], $cart->get_quantity($ordered_product['products_id'])+$ordered_product['products_quantity']);
			 } else {
				$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Not enough stock<br>'; 
			 }
		   } else {
			   $attributes = array();
			   $attributes_count = 0;
			   $attributes_query = tep_db_query("select po.products_options_id , 
			pov.products_options_values_id 
			from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " opa,
			" . TABLE_PRODUCTS_OPTIONS . " po,
			" . TABLE_PRODUCTS_OPTIONS_VALUES . " pov,
			" . TABLE_PRODUCTS_ATTRIBUTES . " pa
			where opa.orders_id = '" . $orders_id . "' and
			opa.orders_products_id = '" . $ordered_product['orders_products_id'] . "' and
			po.products_options_name = opa.products_options and
			po.language_id = '" . $languages_id . "' and
			pa.options_id =  po.products_options_id and
			pa.options_values_id = pov.products_options_values_id and
			pa.products_id = '" . $ordered_product['products_id'] . "' and
			pov.products_options_values_name = opa.products_options_values and
			pov.language_id = '" . $languages_id . "'");
	
			   while ($attribute = tep_db_fetch_array($attributes_query)) {
					 $attributes[$attribute['products_options_id']] = $attribute['products_options_values_id'];
					 $attributes_count++;
			   }
	
	if ($attributes_count < 1) {
		$result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Attributes changed<br>'; 
			  }
	
		if ($ordered_product['stock'] >= ($cart->get_quantity(tep_get_uprid($ordered_product['products_id'], $attributes))+$ordered_product['products_quantity'])) {
		$cart->add_cart($ordered_product['products_id'], $cart->get_quantity(tep_get_uprid($ordered_product['products_id'], $attributes))+$ordered_product['products_quantity'], $attributes);
		} else {
		 $result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Not enough stock (attr)<br>'; 
			  }
		   }
	   } else {
		  $result .= 'product: ' . $ordered_product['products_id'] . ' [' . $ordered_product['products_model'] . '] > ' . $ordered_product['products_name'] . ': Not Available<br>'; 
	   }
	}
	return $result;
	}
// reorder code end

 

Link to comment
Share on other sites

×
×
  • Create New...