Zurück   xt:Commerce Webshop Shop Support > xt:Commerce Shopsoftware Community Area > Shopbereich

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 03.01.2005, 14:34
Neuer Benutzer
 
Registriert seit: 14.07.2004
Beiträge: 9
Unglücklich

Hallo,
ich will in meinem Shop immer zus?tzlich zum Bruttopreis drunter klein den Netto-Preis anzeigen lassen. Hat das schon mal jemand gemacht? Und wenn ja, wie hast du es hinbekommen?

Gru?
Helmut
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 06.01.2005, 09:31
 
Registriert seit: 28.07.2004
Beiträge: 86
Standard

Ja, gut Frage, dass w?rde mich ebenfalls brennend interessieren. Ich denke, dass da ein Eingriff in den Code erforderlich ist, wovon ich leider 0 Plan habe.

Firmenkunden nehmen st?ndig meine Bruttopreis als Nettopreis, um z.B. per Fax zu bestellen. Das ist nat?rlich nicht ?ber f?r den Umsatz , macht aber mehr Arbeit als Spa?. Meine Privatkunden interessiert nat?rlich mehr der Bruttopreis.

F?r eine L?sung oder einen Anstoss (z.B. in welcher Datei man ansetzen muss) w?re ich auch extrem dankbar.

Gr??e Marcus
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #3 (permalink)  
Alt 07.01.2005, 08:44
 
Registriert seit: 28.07.2004
Beiträge: 86
Standard

habe mal bei oscommerce nachgesehen. Da funktioniert das durch einen Eintrag ein die currencies.php im Ordern includes. Leider kann man das nicht 1:1 ?bernehmen, vielmehr es funktioniert so bei xtc nicht.

Welche Datei muss ich angehen, um das Problem zu l?sen? F?r eine Antwort w?re ich dankbar.

Marcus
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #4 (permalink)  
Alt 07.01.2005, 14:19
Neuer Benutzer
 
Registriert seit: 14.07.2004
Beiträge: 9
Standard

F?r einige Seiten hab ichs jetzt hinbekommen. War nicht ganz so leicht. Man muss da in einigen Dateien PHP ein bisschen ver?ndern. Es gibt eine Datei xtc_get_products_price.php. Dort hab ich zB eine zweite Funktion eingebaut, die den netto Preis ausgibt. Dann kommen da noch viele kleine andere Schritte, um den den Nettopreis anzuzeigen. Bin jetzt noch dabei, die restlichen stellen zu bearbeiten, wo der netto Preis auch noch erscheinen soll.

bis dann
Helmut
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #5 (permalink)  
Alt 07.01.2005, 15:49
 
Registriert seit: 28.07.2004
Beiträge: 86
Standard

Hallo Helmut
ja, an der Datei habe ich auch schon rumgeschraubt, leider ohne Erfolg, da php nicht zu meinen Lieblingen geh?rt. Versuche es weiter. W?re super, wenn Du Deine L?sung zur Verf?gung stellen w?rdest.

Gr??e
Marcus
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #6 (permalink)  
Alt 07.01.2005, 15:51
 
Registriert seit: 28.07.2004
Beiträge: 86
Standard

Wow, habe es gerade auf Deiner Seite gesehen, spitze. Das w?rde mir schon reichen. W?re ein Traum, wenn Du den Code posten k?nntest. Super...

Marcus
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #7 (permalink)  
Alt 26.01.2005, 23:12
 
Registriert seit: 28.07.2004
Beiträge: 86
Standard

Hallo Helmut,

w?re doch nett, wenn Du uns oder zumindest mich teilhaben l??t. Ich habe es leider nicht hinbekommen. F?r eine L?sung w?re ich sehr dankbar.

Marcus
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #8 (permalink)  
Alt 26.01.2005, 23:49
Benutzerbild von dreamer  
Registriert seit: 28.02.2004
Beiträge: 659
Standard

@galaxist,
auch von mir ein Kompliment, Dein Shop sieht klasse aus
Ich nehme an dein zweiter Shop wird auch bald XTC, oder ?
Weitermachen sagt der
Dreamer
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #9 (permalink)  
Alt 27.01.2005, 01:02
Neuer Benutzer
 
Registriert seit: 14.07.2004
Beiträge: 9
Standard

Hallo,
danke, danke f?r euer Lob. Es kann sein, dass ich mal noch weitere Shops mit XTC machen werde. Aber nicht bevor ich noch mehr ?ber die Funktionsweise herausgefunden hab. Da sind schon noch einige Dinger drin, die ich noch nicht nachvolziehen kann.
Aber man lernt ja nie! Aus! ;-))

Nettopreis:
Ich hab festgestellt, dass die Preis erst aus der Datenbank geholt werden, dann wird er formatiert und erst dann ins Template geschrieben. Und da muss man ansetzten.
Zuerst mal kommt in "xtc_add_tax.inc.php" diese Funktion zus?tzlich rein.
Code:
function xtc_addno_tax($price, $tax) 
	{
  return $price;
  }
Dabei wird einfach keine Steuer draufgerechnet.

In der Datei "xtc_get_products_price.inc.php" hab ich folgende Funktion hinzugef?gt:
Code:
function xtc_get_products_price_netto($products_id,$price_special_netto,$quantity)
	{

	// check if customer is allowed to see prices (if not -> no price calculations , show error message)
	if ($_SESSION['customers_status']['customers_status_show_price'] == '1') {
 // load price data into array for further use!
 $product_price_query = xtc_db_query("SELECT  products_price,
     	products_discount_allowed,
     	products_tax_class_id
     	FROM ". TABLE_PRODUCTS ." 
     	WHERE
     	products_id = '".$products_id."'");
 $product_price_netto = xtc_db_fetch_array($product_price_query);
 $price_data_netto=array();
 $price_data_netto=array(
  	'PRODUCTS_PRICE'=>$product_price_netto['products_price'],
  	'PRODUCTS_DISCOUNT_ALLOWED'=>$product_price_netto['products_discount_allowed'],
//  	'PRODUCT_TAX_CLASS_ID'=>$product_price_netto['products_tax_class_id'],
  	'PRODUCT_TAX_CLASS_ID'=>'',
  	'PRODUCTS_PRICE_NETTO'=>$product_price_netto['products_price']
  	);
 // get tax rate for tax class
 $products_tax=xtc_get_tax_rate($price_data_netto['PRODUCT_TAX_CLASS_ID']);
 // check if user is allowed to see tax rates
 if ($_SESSION['customers_status']['customers_status_show_price_tax'] =='0') {
   $products_tax='';
 } // end $_SESSION['customers_status']['customers_status_show_price_tax'] =='0'
 	
 // check if special price is aviable for product (no product discount on special prices!)
 if ($special_price_netto=xtc_get_products_special_price($products_id)) {
   $special_price_netto= (xtc_addno_tax($special_price,$products_tax));
    $price_data_netto['PRODUCTS_PRICE']= (xtc_add_tax($price_data['PRODUCTS_PRICE'],$products_tax));
 	$price_string_netto=xtc_format_special_price($special_price_netto,$price_data_netto['PRODUCTS_PRICE'],$price_special_netto,$calculate_currencies=true,$quantity,$products_tax);
 }
    else {
      // if ($special_price=xtc_get_products_special_price($products_id))
      // Check if there is another price for customers_group (if not, take norm price and calculte discounts (NOTE: no discount on group PRICES(only OT DISCOUNT!)!
      $group_price_query_netto=xtc_db_query("SELECT personal_offer
         FROM personal_offers_by_customers_status_".$_SESSION['customers_status']['customers_status_id']."
         WHERE products_id='".$products_id."'");
 	$group_price_data_netto=xtc_db_fetch_array($group_price_query_netto);
 	// if we found a price, everything is ok if not, we will use normal price
 	if ($group_price_data_netto['personal_offer']!='' and $group_price_data_netto['personal_offer']!='0.0000') {
    $price_string_netto=$group_price_data_netto['personal_offer'];
    // check if customer is allowed to get graduated prices
    if ($_SESSION['customers_status']['customers_status_graduated_prices']=='1'){
      // check if there are graduated prices in db
      // get quantity for products

           // modifikations for new graduated prices



           $qty=xtc_get_qty($products_id);
           if (!xtc_get_qty($products_id)) $qty=$quantity;



      $graduated_price_query_netto=xtc_db_query("SELECT max(quantity)
                FROM personal_offers_by_customers_status_".$_SESSION['customers_status']['customers_status_id']."
                WHERE products_id='".$products_id."'
                AND quantity<='".$qty."'");
   $graduated_price_data_netto=xtc_db_fetch_array($graduated_price_query);
   // get singleprice
   $graduated_price_query_netto=xtc_db_query("SELECT personal_offer
                      FROM personal_offers_by_customers_status_".$_SESSION['customers_status']['customers_status_id']."
                WHERE products_id='".$products_id."'
                 AND quantity='".$graduated_price_data_netto['max(quantity)']."'");
   $graduated_price_data_netto=xtc_db_fetch_array($graduated_price_query_netto);
   $price_string_netto=$graduated_price_data_netto['personal_offer'];
   } // end $_SESSION['customers_status']['customers_status_graduated_prices']=='1'
//   $price_string_netto= (xtc_add_tax($price_string_netto,$products_tax));//*$quantity;
 	}
      else {
        // if ($group_price_data['personal_offer']!='' and $group_price_data['personal_offer']!='0.0000') 
        $price_string_netto= (xtc_add_tax($price_data_netto['PRODUCTS_PRICE'],$products_tax)); //*$quantity;
        $price_string_netto= $price_string_netto;
  // check if product allows discount
  if ($price_data_netto['PRODUCTS_DISCOUNT_ALLOWED'] != '0.00') {
    $discount_netto=$price_data_netto['PRODUCTS_DISCOUNT_ALLOWED'];
    // check if group discount > max. discount on product
  	if ($discount_netto > $_SESSION['customers_status']['customers_status_discount']) {
     $discount_netto=$_SESSION['customers_status']['customers_status_discount'];
   }
   // calculate price with rabatt
   $rabatt_string_netto = $price_string_netto - ($price_string_netto/100*$discount_netto);
   if ($price_string_netto==$rabatt_string_netto) {
   $price_string_netto=xtc_format_price($price_string_netto*$quantity,$price_special,$calculate_currencies=true);
  	
  	
   } else {
  	$price_string_netto=xtc_format_special_price($rabatt_string_netto,$price_string_netto,$price_special_netto,$calculate_currencies=false,$quantity,$products_tax);
   }
   return $price_string_netto;
   break; 
  }
  
 	}
 	// format price & calculate currency
 	$price_string_netto=xtc_format_price($price_string_netto*$quantity,$price_special_netto,$calculate_currencies=true);
 }
	}
  else {
    // return message, if not allowed to see prices
 $price_string_netto=NOT_ALLOWED_TO_SEE_PRICES;
	} // end ($_SESSION['customers_status']['customers_status_show_price'] == '1')
	return $price_string_netto;
}
Wie man sieht, gibts da schon mal den netto Preis zur?ck.

Dann wird der Einzelpreis in "xtc_get_single_prducts_price.inc.php" gebaut:
Code:
function xtc_get_single_products_price_netto($products_id,$price_special,$quantity)
	{
	// check if customer is allowed to see prices (if not -> no price calculations , show error message)
	if ($_SESSION['customers_status']['customers_status_show_price'] == '1') {
 // load price data into array for further use!
 $product_price_query = xtc_db_query("SELECT  products_price,
     	products_discount_allowed,
     	products_tax_class_id
     	FROM ". TABLE_PRODUCTS ." 
     	WHERE
     	products_id = '".$products_id."'");
 $product_price = xtc_db_fetch_array($product_price_query);
 $price_data=array();
 $price_data=array(
  	'PRODUCTS_PRICE'=>$product_price['products_price'],
  	'PRODUCTS_DISCOUNT_ALLOWED'=>$product_price['products_discount_allowed'],
  	'PRODUCT_TAX_CLASS_ID'=>$product_price['products_tax_class_id']
  	);
 // get tax rate for tax class
 $products_tax=xtc_get_tax_rate($price_data['PRODUCT_TAX_CLASS_ID']);
 // check if user is allowed to see tax rates
 	if ($_SESSION['customers_status']['customers_status_show_price_tax'] =='0') {
  $products_tax='';
 	} // end $_SESSION['customers_status']['customers_status_show_price_tax'] =='0'
 	
 // check if special price is aviable for product (no product discount on special prices!)
 	if ($special_price=xtc_get_products_special_price($products_id)) {
  	$special_price= (xtc_addno_tax($special_price,$products_tax));
  	$price_data['PRODUCTS_PRICE']= (xtc_addno_tax($price_data['PRODUCTS_PRICE'],$products_tax));
  	$price_string=xtc_format_special_price($special_price,$price_data['PRODUCTS_PRICE'],$price_special,$calculate_currencies=true,$quantity,$products_tax);
 	
  } else { // if ($special_price=xtc_get_products_special_price($products_id))
	
  
 	// Check if there is another price for customers_group (if not, take norm price and calculte discounts (NOTE: no discount on group PRICES(only OT DISCOUNT!)! 
 	
  $group_price_query=xtc_db_query("SELECT personal_offer
    	FROM personal_offers_by_customers_status_".$_SESSION['customers_status']['customers_status_id']."
    	WHERE products_id='".$products_id."'");
  $group_price_data=xtc_db_fetch_array($group_price_query);
  
  // if we found a price, everything is ok if not, we will use normal price
  if ($group_price_data['personal_offer']!='' and $group_price_data['personal_offer']!='0.0000')
   {
   $price_string=$group_price_data['personal_offer'];
    // check if customer is allowed to get graduated prices
   	if ($_SESSION['customers_status']['customers_status_graduated_prices']=='1'){
   	// check if there are graduated prices in db

    // get quantity for products
   	$graduated_price_query=xtc_db_query("SELECT max(quantity)
    	FROM personal_offers_by_customers_status_".$_SESSION['customers_status']['customers_status_id']."
    	WHERE products_id='".$products_id."'
    	AND quantity<='".$quantity."'");
   	$graduated_price_data=xtc_db_fetch_array($graduated_price_query);
    	// get singleprice
   	$graduated_price_query=xtc_db_query("SELECT personal_offer
    	FROM personal_offers_by_customers_status_".$_SESSION['customers_status']['customers_status_id']."
    	WHERE products_id='".$products_id."'
    	AND quantity='".$graduated_price_data['max(quantity)']."'");
   	$graduated_price_data=xtc_db_fetch_array($graduated_price_query);
   	$price_string=$graduated_price_data['personal_offer'];
   	
   	
   	
   	} // end $_SESSION['customers_status']['customers_status_graduated_prices']=='1'
    $price_string= (xtc_addno_tax($price_string,$products_tax));
  	} else { // if ($group_price_data['personal_offer']!='' and $group_price_data['personal_offer']!='0.0000') 
  $price_string= (xtc_addno_tax($price_data['PRODUCTS_PRICE'],$products_tax));
	
  // check if product allows discount
  if ($price_data['PRODUCTS_DISCOUNT_ALLOWED'] != '0.00') {
  $discount=$price_data['PRODUCTS_DISCOUNT_ALLOWED'];
 
  	// check if group discount > max. discount on product
  	if ($discount > $_SESSION['customers_status']['customers_status_discount']) {
   $discount=$_SESSION['customers_status']['customers_status_discount'];
   }
  // calculate price with rabatt
  $price_string = $price_string - ($price_string/100*$discount);

 	}
 	}
 	// format price & calculate currency
 	$price_string=xtc_format_price($price_string,$price_special,$calculate_currencies=true);
 	}
	
	
 	} else {
 // return message, if not allowed to see prices
 $price_string=NOT_ALLOWED_TO_SEE_PRICES;
 } // end ($_SESSION['customers_status']['customers_status_show_price'] == '1')
	
	
	return $price_string;
So, das waren soweit alle Vorbereitungen. Jetzt geht's weiter und man muss an bestimmten Stellen im Code die richtigen Variablen einsetzten. Alle Seiten, in denen irgend ein Preis vorkommt, m?ssen nun bearbeitet werden. product_info.php: Da muss an mehreren Stellen der netto Preis rein.

Zeile 86
Code:
$products_price_netto=xtc_get_products_price_netto($product_info['products_id'], $price_special=1, $quantity=1);
Zeile 124
Code:
$info_smarty->assign('PRODUCTS_PRICE_NETTO',$products_price_netto);
"new_products.php" die Zeilen hinzu
Zeile 94
Code:
   	'PRODUCTS_PRICE_NETTO' => xtc_get_products_price_netto($new_products['products_id'],$price_special=1,$quantity=1),
Zeile 109
Code:
   	'PRODUCTS_PRICE_NETTO' => xtc_get_products_price_netto($new_products['products_id'],$price_special=1,$quantity=1),
In den Zeilen wird der Nettopreis in die Arrays reingeschrieben, damit er dann an den richtigen Stellen wieder rauskommt.

Und nun geht's daran, die Nettopreise in die Templates einzubauen, damit sie auch angezeigt werden.

Dazu mehr im n?chsten Abschnitt
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #10 (permalink)  
Alt 27.01.2005, 01:18
Neuer Benutzer
 
Registriert seit: 14.07.2004
Beiträge: 9
Standard

In allen Templates sind Platzhalter eingebaut. Z.B. {$module_data.PRODUCTS_PRICE} . Wenn man sich die vorhergenden Schritte ansieht, kann man feststellen, wie die Platzhalter f?r den Nettopreis aussehen m?ssen. N?mlich: {$module_data.PRODUCTS_PRICE_NETTO}.
Also muss man s?mtliche HTML-Seite nach diesen Platzhaltern durchst?bern und den Platzhalter mit dem "PRICE_NETTO" dazu einbauen.

Dann erscheint auf den Saiten der Nettopreis. So hab ich's hinbekommen. Ob das jetzt gut oder schlecht ist, weis ich nicht. Hautpsache es funktioniert und die Funktionen des Shops werden nicht beeintr?chtigt.

Wen's interessiert, dort kann man sich das anschauen: Well-Fine-Shop

bis dann
Helmut
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
anzeigen, brutto, nettopreise

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus



Alle Zeitangaben in WEZ +1. Es ist jetzt 03:05 Uhr.

Copyright © 2011 xt:Commerce GmbH / xt:Commerce International Ltd. - All Rights Reserved

xt:Commerce is a SafeCharge brand