galaxist Posted January 3, 2005 Report Share Posted January 3, 2005 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 Link to comment Share on other sites More sharing options...
ronne Posted January 6, 2005 Report Share Posted January 6, 2005 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 Link to comment Share on other sites More sharing options...
ronne Posted January 7, 2005 Report Share Posted January 7, 2005 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 Link to comment Share on other sites More sharing options...
galaxist Posted January 7, 2005 Author Report Share Posted January 7, 2005 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 Link to comment Share on other sites More sharing options...
ronne Posted January 7, 2005 Report Share Posted January 7, 2005 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 Link to comment Share on other sites More sharing options...
ronne Posted January 7, 2005 Report Share Posted January 7, 2005 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 Link to comment Share on other sites More sharing options...
ronne Posted January 26, 2005 Report Share Posted January 26, 2005 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 Link to comment Share on other sites More sharing options...
dreamer Posted January 26, 2005 Report Share Posted January 26, 2005 @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 Link to comment Share on other sites More sharing options...
galaxist Posted January 27, 2005 Author Report Share Posted January 27, 2005 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. 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: 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: 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 $products_price_netto=xtc_get_products_price_netto($product_info['products_id'], $price_special=1, $quantity=1); Zeile 124 $info_smarty->assign('PRODUCTS_PRICE_NETTO',$products_price_netto); "new_products.php" die Zeilen hinzu Zeile 94 'PRODUCTS_PRICE_NETTO' => xtc_get_products_price_netto($new_products['products_id'],$price_special=1,$quantity=1), Zeile 109 '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 Link to comment Share on other sites More sharing options...
galaxist Posted January 27, 2005 Author Report Share Posted January 27, 2005 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 Link to comment Share on other sites More sharing options...
khan_thep Posted January 27, 2005 Report Share Posted January 27, 2005 kannst im Template direkt berechnen Link to comment Share on other sites More sharing options...
galaxist Posted January 27, 2005 Author Report Share Posted January 27, 2005 Wie?? Dann war mein ganzer Aufwand umsonst?? :wall: Link to comment Share on other sites More sharing options...
Ernstle Posted January 27, 2005 Report Share Posted January 27, 2005 Hallo khan_thep, bin kein Profi, wie kann man den Nettopreis im Template berechnen ? Danke f?r eine L?sung. Frage an die xtc-Entwickler: W?re die generelle Anzeige von Brutto - und Nettopreisen nicht als "Standard" sinnvoll ?:dafuer: Danke f?r Euere Antworten. Ernst Link to comment Share on other sites More sharing options...
khan_thep Posted January 27, 2005 Report Share Posted January 27, 2005 Ernstle, ich schick Dir den Sponsoren-Link per PM. Link to comment Share on other sites More sharing options...
ronne Posted January 28, 2005 Report Share Posted January 28, 2005 Hallo, ich finde galaxist sollte f?r seine Arbeit belohnt werden. Hey galaxist, gute Arbeit. Weiter so, durch Deinen Einsatz ist der Shop weiterentwickelt worden. Wenn ich einen Sponsorlink h?tte w?rde ich Ihne Dir geben :-) Marcus Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.