Hatschepuh Posted September 6, 2005 Report Share Posted September 6, 2005 Hallo zusammen Ich habe folgendes Problem: Ich habe h?ufig denselben Artikel, aber in unterschiedlicher Menge. Als Beispiel: Italienisches Oliven?l 50ml, 100ml oder 500ml. Da es mir zu umst?ndlich war das alles jeweils als einzelnen Artikel einzugeben, und die Beschreibung ja auch jeweils dieselbe ist, habe ich mit den Artikel-Optionen gearbeitet. Leider ist das jetzt f?r die Kunden sehr un?bersichtlich, da sie immer den Kaufpreis und den Zusatzbetrag f?r die gr??ere Menge addieren m?ssen, und der Zusatzbetrag ist manchmal sehr hoch bzw. der Gesamtbetrag f?r weniger Begabte ist schwer zu errechnen, ich w?rde sogar sagen f?r DAKs (DAK=D?mmster anzunehmender Kunde) gar nicht ersichtlich. Als Beispiel: http://truestyle.tr.ohost.de/product_info....1&cPath=245_289 Zwar kann man als schlechter Kopfrechner (so wie ich) sp?testens im Warenkorb sehen wieviel der Artikel nun letztendlich kostet, aber ich bef?rchte diese un?bersichtliche Preisauszeichnung k?nnte rechtliche Probleme mit sich bringen, worauf ich auch schon hingewiesen wurde. Am liebsten w?re mir wenn dort statt nur "+1,50" "+1,50 = 6,50 ?", oder als Tabellenkalkulationsformel ausgedr?ckt "+Options-Aufpreis = (Options-Aufpreis + Grundpreis)" st?nde. Das zu Programmieren d?rfte vermutlich nicht schwierig sein, wenn man den Ahnung von php h?tte... :blush: Kann mir vielleicht jemand behilflich sein und mir verraten welchen Code ich daf?r eingeben muss? Das w?re sehr lieb! Link to comment Share on other sites More sharing options...
Hatschepuh Posted September 6, 2005 Author Report Share Posted September 6, 2005 M?sste der ben?tigte Code sich nicht theoretisch irgendwo in der shopping_cart.php befinden? Dort werden schlie?lich die Gesamtpreise angezeigt... Link to comment Share on other sites More sharing options...
hubbabubba Posted September 7, 2005 Report Share Posted September 7, 2005 Hier ist ne kleine Modifikation. Habe sie auf XTC-Version 2 ausprobiert. Aber ich denke funktioniert auch in Version 3. Datei: includes/modules/product_attributes.php Sichere vorher auf jeden Fall deine Originaldatei. Gru? Hen <?php /* ----------------------------------------------------------------------------------------- $Id: product_attributes.php,v 1.16 2004/02/21 22:38:22 fanta2k Exp $ XT-Commerce - community made shopping http://www.xt-commerce.com Copyright (c) 2003 XT-Commerce ----------------------------------------------------------------------------------------- patched by Hubbabubba 09/2005 ----------------------------------------------------------------------------------------- based on: (c) 2000-2001 The Exchange Project (earlier name of osCommerce) (c) 2002-2003 osCommerce(product_info.php,v 1.94 2003/05/04); [url]www.oscommerce.com[/url] (c) 2003 nextcommerce (product_info.php,v 1.46 2003/08/25); [url]www.nextcommerce.org[/url] Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contribution: Customers Status v3.x (c) 2002-2003 Copyright Elari [email][email protected][/email] | [url]www.unlockgsm.com/dload-osc/[/url] | CVS : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/elari/?sortby=date#dirlist New Attribute Manager v4b Autor: Mike G | [email][email protected][/email] | http://downloads.ephing.com Cross-Sell (X-Sell) Admin 1 Autor: Joshua Dechant (dreamscape) Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ $module_smarty=new Smarty; $module_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/'); $products_attributes_query = xtc_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$_GET['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$_SESSION['languages_id'] . "'"); $products_attributes = xtc_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { $products_options_name_query = xtc_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$_GET['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$_SESSION['languages_id'] . "' order by popt.products_options_name"); $row = 0; $col = 0; $products_options_data=array(); while ($products_options_name = xtc_db_fetch_array($products_options_name_query)) { $selected = 0; // kleiner Extrazufriff auf Produkte um Preis zu ermitteln $products_query = xtc_db_query("select products_price from " . TABLE_PRODUCTS . " where products_id = '" . (int)$_GET['products_id'] . "'"); $products_price = xtc_db_fetch_array($products_query); $products_price = $products_price['products_price']; // Artikelpreis liegt in nun $products_price vor $products_options_array = array(); $products_options_data[$row]=array( 'NAME'=>$products_options_name['products_options_name'], 'ID' => $products_options_name['products_options_id'], 'DATA' =>''); $products_options_query = xtc_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.attributes_model, pa.options_values_price, pa.price_prefix, pa.attributes_stock, pa.attributes_model from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$_GET['products_id'] . "' and pa.options_id = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$_SESSION['languages_id'] . "' order by pa.sortorder"); $col = 0; while ($products_options = xtc_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); if ($products_options['options_values_price'] != '0') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' '.$products_options['price_prefix'].' '.xtc_get_products_attribute_price($products_options['options_values_price'], $tax_class=$product_info['products_tax_class_id'],$price_special=0,$quantity=1,$prefix=$products_options['price_prefix']).' '.$_SESSION['currency']; } $price=''; if ($products_options['options_values_price']!='0.00') { // $price = xtc_format_price(xtc_get_products_attribute_price($products_options['options_values_price'], $tax_class=$product_info['products_tax_class_id'],$price_special=0,$quantity=1,$prefix=$products_options['price_prefix']),1,false,1); // Addition $products_price $price = xtc_format_price($products_price+xtc_get_products_attribute_price($products_options['options_values_price'], $tax_class=$product_info['products_tax_class_id'],$price_special=0,$quantity=1,$prefix=$products_options['price_prefix']),1,false,1); } $products_options_data[$row]['DATA'][$col]=array( 'ID' => $products_options['products_options_values_id'], 'TEXT' =>$products_options['products_options_values_name'], 'MODEL' =>$products_options['attributes_model'], // price_prefix auskommentiert, soll nicht mehr angezeigt werden // 'PRICE' =>$price, // 'PREFIX' =>$products_options['price_prefix']); 'PRICE' =>$price); $col++; } $row++; } } // template query $template_query=xtc_db_query("SELECT options_template FROM ".TABLE_PRODUCTS." WHERE products_id='".$_GET['products_id']."'"); $template_data=xtc_db_fetch_array($template_query); if ($template_data['options_template']=='' or $template_data['options_template']=='default') { $files=array(); if ($dir= opendir(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_options/')){ while (($file = readdir($dir)) !==false) { if (is_file( DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_options/'.$file) and ($file !="index.html")){ $files[]=array( 'id' => $file, 'text' => $file); }//if } // while closedir($dir); } $template_data['options_template']=$files[0]['id']; } $module_smarty->assign('language', $_SESSION['language']); $module_smarty->assign('options',$products_options_data); // set cache ID if (USE_CACHE=='false') { $module_smarty->caching = 0; $module= $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_options/'.$template_data['options_template']); } else { $module_smarty->caching = 1; $module_smarty->cache_lifetime=CACHE_LIFETIME; $module_smarty->cache_modified_check=CACHE_CHECK; $cache_id = $_GET['products_id'].$_SESSION['language'].$_SESSION['customers_status']['customers_status_name']; $module= $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_options/'.$template_data['options_template'],$cache_id); } $info_smarty->assign('MODULE_product_options',$module); ?> Link to comment Share on other sites More sharing options...
Hatschepuh Posted September 7, 2005 Author Report Share Posted September 7, 2005 ?hm... hab ich das richtig verstanden, dass ich den vorhandenen Code durch diesen ersetzen soll? Dann passiert n?mlich das hier: http://truestyle.tr.ohost.de/product_info....id=260&cPath=45 Oder hab ich mal wieder alles verrafft? Link to comment Share on other sites More sharing options...
hubbabubba Posted September 7, 2005 Report Share Posted September 7, 2005 Originally posted by Hatschepuh@Sep 7 2005, 01:40 PM ?hm... hab ich das richtig verstanden, dass ich den vorhandenen Code durch diesen ersetzen soll? Dann passiert n?mlich das hier: http://truestyle.tr.ohost.de/product_info....id=260&cPath=45 Oder hab ich mal wieder alles verrafft? Quoted post Bitte benutze einen Ascii-Editor. Notepad ist optimal. Das ist der Editor aus dem Windows Zubeh?r, Start->Zubeh?r->Editor. Gru? Hen Link to comment Share on other sites More sharing options...
Hatschepuh Posted September 7, 2005 Author Report Share Posted September 7, 2005 Hab ich gemacht, aber nun passiert entweder das hier: http://truestyle.tr.ohost.de/product_info....1&cPath=107_251 oder die Artikeloptionen werden bei unterschiedlichen Preisen gar nicht mehr angezeigt, bei gleichen Preisen sieht alles normal aus wie immer. Link to comment Share on other sites More sharing options...
hubbabubba Posted September 7, 2005 Report Share Posted September 7, 2005 Ding Dong! Du benutzt XTC Version 3. Die Routine war nur auf Version 2 getestet. H?ttest du doch mal was gesagt. :sad: Gru? Link to comment Share on other sites More sharing options...
hubbabubba Posted September 7, 2005 Report Share Posted September 7, 2005 Versuchs mal damit <?php /* ----------------------------------------------------------------------------------------- $Id: product_attributes.php,v 1.18 2004/06/11 18:21:38 fanta2k Exp $ XT-Commerce - community made shopping http://www.xt-commerce.com Copyright (c) 2003 XT-Commerce ----------------------------------------------------------------------------------------- gepatched ----------------------------------------------------------------------------------------- based on: (c) 2000-2001 The Exchange Project (earlier name of osCommerce) (c) 2002-2003 osCommerce(product_info.php,v 1.94 2003/05/04); [url]www.oscommerce.com[/url] (c) 2003 nextcommerce (product_info.php,v 1.46 2003/08/25); [url]www.nextcommerce.org[/url] Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contribution: Customers Status v3.x (c) 2002-2003 Copyright Elari [email][email protected][/email] | [url]www.unlockgsm.com/dload-osc/[/url] | CVS : http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/elari/?sortby=date#dirlist New Attribute Manager v4b Autor: Mike G | [email][email protected][/email] | http://downloads.ephing.com Cross-Sell (X-Sell) Admin 1 Autor: Joshua Dechant (dreamscape) Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ $module_smarty=new Smarty; $module_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/'); $products_attributes_query = xtc_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$_GET['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$_SESSION['languages_id'] . "'"); $products_attributes = xtc_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { $products_options_name_query = xtc_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$_GET['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$_SESSION['languages_id'] . "' order by popt.products_options_name"); $row = 0; $col = 0; $products_options_data=array(); while ($products_options_name = xtc_db_fetch_array($products_options_name_query)) { $selected = 0; $products_options_array = array(); $products_options_data[$row]=array( 'NAME'=>$products_options_name['products_options_name'], 'ID' => $products_options_name['products_options_id'], 'DATA' =>''); $products_options_query = xtc_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.attributes_model, pa.options_values_price, pa.price_prefix, pa.attributes_stock, pa.attributes_model from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$_GET['products_id'] . "' and pa.options_id = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$_SESSION['languages_id'] . "' order by pa.sortorder"); $col = 0; while ($products_options = xtc_db_fetch_array($products_options_query)) { $price=''; if ($_SESSION['customers_status']['customers_status_show_price'] == '0') { $products_options_data[$row]['DATA'][$col]=array( 'ID' => $products_options['products_options_values_id'], 'TEXT' =>$products_options['products_options_values_name'], 'MODEL' =>$products_options['attributes_model'], 'PRICE' =>'', 'FULL_PRICE'=>'', 'PREFIX' =>$products_options['price_prefix']); } else { $products_price=$xtPrice->xtcGetPrice($product_info['products_id'], $format=false, 1, $product_info['products_tax_class_id'], $product_info['products_price']); if ($products_options['options_values_price']!='0.00') { $price = $xtPrice->xtcFormat($products_price+$products_options['options_values_price'],false,$product_info['products_tax_class_id']); } $products_options_data[$row]['DATA'][$col]=array( 'ID' => $products_options['products_options_values_id'], 'TEXT' =>$products_options['products_options_values_name'], 'MODEL' =>$products_options['attributes_model'], 'PRICE' =>$xtPrice->xtcFormat($price,true), 'FULL_PRICE'=>$xtPrice->xtcFormat($products_price+$price,true), // 'PREFIX' =>$products_options['price_prefix']); 'PREFIX' =>''); //if PRICE for option is 0 we don't need to display it if ($price == 0) { unset($products_options_data[$row]['DATA'][$col]['PRICE']); unset($products_options_data[$row]['DATA'][$col]['PREFIX']); } } $col++; } $row++; } } // template query $template_query=xtc_db_query("SELECT options_template FROM ".TABLE_PRODUCTS." WHERE products_id='".(int)$_GET['products_id']."'"); $template_data=xtc_db_fetch_array($template_query); if ($template_data['options_template']=='' or $template_data['options_template']=='default') { $files=array(); if ($dir= opendir(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_options/')){ while (($file = readdir($dir)) !==false) { if (is_file( DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_options/'.$file) and ($file !="index.html")){ $files[]=array( 'id' => $file, 'text' => $file); }//if } // while closedir($dir); } $template_data['options_template']=$files[0]['id']; } $module_smarty->assign('language', $_SESSION['language']); $module_smarty->assign('options',$products_options_data); // set cache ID if (USE_CACHE=='false') { $module_smarty->caching = 0; $module= $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_options/'.$template_data['options_template']); } else { $module_smarty->caching = 1; $module_smarty->cache_lifetime=CACHE_LIFETIME; $module_smarty->cache_modified_check=CACHE_CHECK; $cache_id = $_GET['products_id'].$_SESSION['language'].$_SESSION['customers_status']['customers_status_name']; $module= $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_options/'.$template_data['options_template'],$cache_id); } $info_smarty->assign('MODULE_product_options',$module); ?> Link to comment Share on other sites More sharing options...
senior006de Posted September 7, 2005 Report Share Posted September 7, 2005 Hallo, das kannste doch ?ber die Artikelmerkmale machen. Leg ein Artikelmerkmal an: zB. Flaschen als Optionsmerkmal: K?che / Parf?m / Geschenk Dann ein Merkmal ml oder so. als Optionsmerkmal: 50 125 250 500 1000 oder ?hnlich Die Preise kannste da auch angeben. Danach gibst Du unter Artikelverwaltung f?r den Artikel die Optionen ein. Nimm f?r die Darstellung " dropdown " und " info....1 " an. Die Reihung der " Flaschen " und " ml " kannste dann in den Optionen zuordnen 1 f?r K?che 2 f?r Parf?m 3 f?rGeschenk 4 f?r 50 5 f?r 100 usw. sollte dann etwa so aussehen: http://www.my-dessous-shop.de/new_shop/pro...products_id=316 vergi? nicht f?r Mengen ( ML / Liter / gr. Kilo / Meter ) die Preise pro 1 Liter pro 1 Kilo pro 10 mtr. in der Artikelbeschreibung anzugeben. Gibt evtl. Abmahnungen von Anw?lten.( siehe Forum suche nach " Abmahnungen " ) Hoffe es hilft Dir weiter. Link to comment Share on other sites More sharing options...
Hatschepuh Posted September 7, 2005 Author Report Share Posted September 7, 2005 Danke Hen, jetzt hats funktioniert! Sieht gleich viel besser aus! @senior006de: Jeweils den Preis pro Liter angeben w?re aber extrem umst?ndlich, da er je nach Abgabemenge unterschiedlich ist. Bist Du Dir da sicher? Wei?t Du den Paragraphen wo das steht? Link to comment Share on other sites More sharing options...
Hatschepuh Posted September 7, 2005 Author Report Share Posted September 7, 2005 Vor allem: Wenn tats?chlich die Mehrwertsteuer erh?ht wird, muss ich bei jedem meiner 1500 Artikel diese Angabe ?ndern, da sich ja nicht nur der Verkaufspreis ?ndert, was durch eine simple ?nderung des allgemeinen Mehrwertsteuersatzes bewirkt wird, sondern nat?rlich auch der Grundpreis, den ich jeweils in die Artikeloptionen mit rein schreiben muss. Da hab ich keinen Bock drauf! Link to comment Share on other sites More sharing options...
Hatschepuh Posted September 14, 2005 Author Report Share Posted September 14, 2005 Hallo Hen, ich wusste ?brigens gar nicht, dass ich Version 3 habe, weil ich das Ding als Xoom-Shop gekauft habe. Sonst h?tte ich Dir das nat?rlich gleich verraten. Ich hoffe Du kannst mir (hoffentlich zum letzten Mal jetzt!) noch bei Folgendem helfen: Es w?re gut, wenn bei den Artikeloptionen die nicht mehr oder weniger, also den Grundpreis kosten, dieser auch noch mal angegeben w?re. Damit auch der d?mmste Kunde es rafft. Au?erdem habe ich auf auf senior006des Ratschlag hin das Wochende damit verbracht ?berall den Grundpreis mit in die Artikelbeschreibung zu schreiben. Bei den Artikeln mit Optionen w?re das allerdings sehr un?bersichtlich, und ich w?rde dort das Feld f?r Gewicht gern benutzen um den Grundpreis reinzuschreiben. So wie es jetzt ist kann man glaub ich nur Zahlen reinschreiben, die dann f?r den Versand addiert werden? Die Funktion ben?tige ich nicht, es w?re toll wenn man das +/- einfach wegmachen k?nnte, und dieses Zahleneingabefeld in ein normales Textfeld verwandelt. Fertig sollte es dann so aussehen, dass "Grundpreis 100ml: XY ?" in kleinerer Schriftart links vom Endpreis steht. Ich hoffe sehr Du kannst mir dabei helfen. Habe schon ?berlegt Sponsor zu werden, aber 99,- ? auf einmal kann ich mir grad nicht leisten. Wenn man das monatlich bezahlen k?nnte w?rd ichs sofort machen, will ja nicht immer umsonst Hilfe beanspruchen. Liebe Gr??e Hatschepuh Link to comment Share on other sites More sharing options...
hubbabubba Posted September 18, 2005 Report Share Posted September 18, 2005 > ich wusste ?brigens gar nicht, dass ich Version 3 habe, weil ich das Ding als > Xoom-Shop gekauft habe. Sonst h?tte ich Dir das nat?rlich gleich verraten. Hi Hatschipuh, sch?n reingefallen. XTC h?ttest du auch kostenlos haben k?nnen. F?r 150 M?cken h?tte ich dir deine Gimmicks komplett programmiert und installiert + Gew?hrleistung und Nachsorgeservice. > Feld f?r Gewicht gern benutzen um den Grundpreis reinzuschreiben. So wie es jetzt > ist kann man glaub ich nur Zahlen reinschreiben, die dann f?r den Versand addiert > werden? Die Funktion ben?tige ich nicht, es w?re toll wenn man das +/- einfach > wegmachen k?nnte, und dieses Zahleneingabefeld in ein normales Textfeld > verwandelt. Fertig sollte es dann so aussehen, dass "Grundpreis 100ml: XY ?" in > kleinerer Schriftart links vom Endpreis steht. Puh. Was willst du? Versteh ich das richtig? Der Normale Preis (ohne Optionen) soll neben den Optionspreisen nochmal stehen?! Z.B. dein Gew?rz?l http://truestyle.tr.ohost.de/product_info....=1462&cPath=1_4 Neben den 5,78 und den 19,28 soll stehen "Grundpreis 100 ml 4,- EUR"?? Grundpreis 100 ml 4,- EUR 5,78 Grundpreis 100 ml 4,- EUR 19,28 Gru? Hen Link to comment Share on other sites More sharing options...
Hatschepuh Posted September 18, 2005 Author Report Share Posted September 18, 2005 Also, bei dem genannten Beispiel steht ja momentan Standard C Dekor II 5,78 EUR 1l Kaninster 19,28 EUR Da soll einfach bei Standard C auch der Preis stehen, was ja in diesem Fall dem Grundpreis entspricht, also Standard C 4,00 EUR Dekor II 5,78 EUR 1l Kaninster 19,28 EUR Das soll nat?rlich bei allen Artikeloptionen so sein die keinen abweichenden Preis haben, dort soll einfach anstatt gar nichts der normale Preis angezeigt werden. Das Beispiel mit dem Grundpreis stimmt so, in diesem Beispiel w?rde das fertig so aussehen: Standard C Grundpreis 100ml: 4,00 EUR 4,00 EUR Dekor II Grundpreis 100ml: 5,78 EUR 5,78 EUR 1l Kanister Grundpreis 100ml: 1,93 EUR 19,28 Ist bei dem Beispiel ein bi?chen bescheuert, schlie?lich ist der Endpreis bei Standard C und Dekor II derselbe wie der Grundpreis. Jedenfalls sollte man den Text "Grundpreis 100ml: XY EUR" einfach frei eingeben k?nnen. So dass man theoretisch auch irgendwas anderes reinschreiben k?nnte, da schlag ich gleich zwei Fliegen mit einer Klappe. Optimal w?rs nat?rlich wenn das Ganze so programmiert und in den Shop integriert w?re, dass sich mit dem ?ndern des Mehrwertsteuersatzes auch dieser Grundpreis anpasst. Ich freu mich n?mlich schon tierisch darauf diese Grundpreisangabe bei 1600 Artikeln ab?ndern zu d?rfen wenn die Mehrwertsteuer erh?ht wird. Aber das ist wohl zu viel verlangt und auch recht schwierig nehm ich mal an? Ich bin jedenfalls sehr froh wenn ich ?berhaupt eine geschickte M?glichkeit habe den Grundpreis anzugeben, so wie im Beispiel dargestellt. Ja, h?tte ich das alles schon vorher gewusst, dann h?tte ich Dir mit Kusshand 150 ? bezahlt!!! Hinterher ist man immer schlauer. Aber wenn ich es mir leisten kann in ein paar Monaten meinen Shop ein bi?chen aufpeppen zu lassen (n?tig w?rs, sieht schon rein optisch recht bescheiden aus) bekommst Du den Auftrag als Allererster angeboten! Da kannst Du sicher sein! Link to comment Share on other sites More sharing options...
hubbabubba Posted September 19, 2005 Report Share Posted September 19, 2005 Etwas anders ausgedr?ckt. Du willst: 1.) In der ersten Option auch den Preis 2.) Du m?chtest vor der Preisangabe bei den Optionen noch einen frei definierbaren zus?tzlichen Preis angeben k?nnen. 1.) Das l?sst sich mit einem kleinen Hack realisieren. ?ffne Datei includes/modules/product_attributes.php Zeile 80 ungef?hr findes du folgenden Code: if ($products_options['options_values_price']!='0.00') { $price = $xtPrice->xtcFormat(... } Die if-Konstruktion auskommentieren ("//" davor setzen). // if ($products_options['options_values_price']!='0.00') { $price = $xtPrice->xtcFormat(... // }2.) Das bedarf schon mehr als 2-3 ge?nderten Programmzeilen. Da m?sste man in tiefere Gew?sser. W?rde hier den Rahmen sprengen. mfg Link to comment Share on other sites More sharing options...
Hatschepuh Posted September 19, 2005 Author Report Share Posted September 19, 2005 Zu 1): Ich suche und suche, kann die Stelle aber nicht finden: <?php /* ----------------------------------------------------------------------------------------- $Id: product_attributes.php,v 1.18 2004/06/11 18:21:38 fanta2k Exp $ XT-Commerce - community made shopping http://www.xt-commerce.com Copyright © 2003 XT-Commerce ----------------------------------------------------------------------------------------- gepatched ----------------------------------------------------------------------------------------- based on: © 2000-2001 The Exchange Project (earlier name of osCommerce) © 2002-2003 osCommerce(product_info.php,v 1.94 2003/05/04); www.oscommerce.com © 2003 nextcommerce (product_info.php,v 1.46 2003/08/25); www.nextcommerce.org Released under the GNU General Public License ----------------------------------------------------------------------------------------- Third Party contribution: Customers Status v3.x © 2002-2003 Copyright Elari [email protected] | www.unlockgsm.com/dload-osc/ | CVS : http://cvs.sourceforge.net/cgi-bin/viewcvs...by=date#dirlist New Attribute Manager v4b Autor: Mike G | [email protected] | http://downloads.ephing.com Cross-Sell (X-Sell) Admin 1 Autor: Joshua Dechant (dreamscape) Released under the GNU General Public License ---------------------------------------------------------------------------------------*/ $module_smarty=new Smarty; $module_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/'); $products_attributes_query = xtc_db_query("select count(*) as total from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$_GET['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$_SESSION['languages_id'] . "'"); $products_attributes = xtc_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { $products_options_name_query = xtc_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$_GET['products_id'] . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$_SESSION['languages_id'] . "' order by popt.products_options_name"); $row = 0; $col = 0; $products_options_data=array(); while ($products_options_name = xtc_db_fetch_array($products_options_name_query)) { $selected = 0; $products_options_array = array(); $products_options_data[$row]=array( 'NAME'=>$products_options_name['products_options_name'], 'ID' => $products_options_name['products_options_id'], 'DATA' =>''); $products_options_query = xtc_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.attributes_model, pa.options_values_price, pa.price_prefix, pa.attributes_stock, pa.attributes_model from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$_GET['products_id'] . "' and pa.options_id = '" . $products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$_SESSION['languages_id'] . "' order by pa.sortorder"); $col = 0; while ($products_options = xtc_db_fetch_array($products_options_query)) { $price=''; if ($_SESSION['customers_status']['customers_status_show_price'] == '0') { $products_options_data[$row]['DATA'][$col]=array( 'ID' => $products_options['products_options_values_id'], 'TEXT' =>$products_options['products_options_values_name'], 'MODEL' =>$products_options['attributes_model'], 'PRICE' =>'', 'FULL_PRICE'=>'', 'PREFIX' =>$products_options['price_prefix']); } else { $products_price=$xtPrice->xtcGetPrice($product_info['products_id'], $format=false, 1, $product_info['products_tax_class_id'], $product_info['products_price']); if ($products_options['options_values_price']!='0.00') { $price = $xtPrice->xtcFormat($products_price+$products_options['options_values_price'],false,$product_info['products_tax_class_id']); } $products_options_data[$row]['DATA'][$col]=array( 'ID' => $products_options['products_options_values_id'], 'TEXT' =>$products_options['products_options_values_name'], 'MODEL' =>$products_options['attributes_model'], 'PRICE' =>$xtPrice->xtcFormat($price,true), 'FULL_PRICE'=>$xtPrice->xtcFormat($products_price+$price,true), // 'PREFIX' =>$products_options['price_prefix']); 'PREFIX' =>''); //if PRICE for option is 0 we don't need to display it if ($price == 0) { unset($products_options_data[$row]['DATA'][$col]['PRICE']); unset($products_options_data[$row]['DATA'][$col]['PREFIX']); } } $col++; } $row++; } } // template query $template_query=xtc_db_query("SELECT options_template FROM ".TABLE_PRODUCTS." WHERE products_id='".(int)$_GET['products_id']."'"); $template_data=xtc_db_fetch_array($template_query); if ($template_data['options_template']=='' or $template_data['options_template']=='default') { $files=array(); if ($dir= opendir(DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_options/')){ while (($file = readdir($dir)) !==false) { if (is_file( DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/module/product_options/'.$file) and ($file !="index.html")){ $files[]=array( 'id' => $file, 'text' => $file); }//if } // while closedir($dir); } $template_data['options_template']=$files[0]['id']; } $module_smarty->assign('language', $_SESSION['language']); $module_smarty->assign('options',$products_options_data); // set cache ID if (USE_CACHE=='false') { $module_smarty->caching = 0; $module= $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_options/'.$template_data['options_template']); } else { $module_smarty->caching = 1; $module_smarty->cache_lifetime=CACHE_LIFETIME; $module_smarty->cache_modified_check=CACHE_CHECK; $cache_id = $_GET['products_id'].$_SESSION['language'].$_SESSION['customers_status']['customers_status_name']; $module= $module_smarty->fetch(CURRENT_TEMPLATE.'/module/product_options/'.$template_data['options_template'],$cache_id); } $info_smarty->assign('MODULE_product_options',$module); ?> Wo ist es? Zu 2): K?nntest Du das denn f?r mich machen und was w?rde das kosten? LG Hatschepuh Link to comment Share on other sites More sharing options...
Hatschepuh Posted September 19, 2005 Author Report Share Posted September 19, 2005 ?h, nochmal um Mi?verst?ndnissen vorzubeugen: Bei 2) M?chte ich vor der Preisangabe noch einen frei definierbaren zus?tzlichen TEXT angeben k?nnen. Link to comment Share on other sites More sharing options...
gartentechnik24 Posted April 17, 2006 Report Share Posted April 17, 2006 Hallo, ich habe versucht die Datei product_attributs wie oben beschrieben zu ?berschreiben. Hat auch soweit funktioniert. Nur leider haut das mit der MwSt irgendwie nicht hin. Wenn mein Artikel 69.90 kosten soll, dann muss ich bei den Artikeloptionen 81,08 eingeben, damit der Artikel am Ende 69.90 kostet. Oder mache ich was falsch? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.