Jump to content
xt:Commerce Community Forum

Wie Kann Man Attribute Preis Unterdr?cken?


abo

Recommended Posts

Guten Abend,

ich m?chte die Preise der Attribute (Zu- oder Abschl?ge auf den Normalpreis) nur dann anzeigen lassen, wenn der ungleich 0.00 ist. Ich suche mir einen Wolf...

Ich denke, dass der Preis in \includes\modules\product_attributes.php ausgegeben wird. Dort wird bereits in Zeile 46 mit

" if ($products_options['options_values_price'] != '0') {..."

und in Zeile 50 mit

"if ($products_options['options_values_price']!='0.00') {..."

der Wert auf 0.00 abgefragt und an $Price ?bergeben (so verstehe ich das jedenfalls mit meinen leihenhaften php Verst?ndnis). Aber irgendwie kann ich

keinen Ans?tz f?r eine Anpassung an dieser Stelle des Codes erkennen.

Wo bitte m?sste man den schauen, um eine 0,00 Anzeige zu unterdr?cken?

Gru?, Axel

Link to comment
Share on other sites

@peeeters

Ich danke Dir.

Ich habe gestern Abend noch versucht dahinter zu kommen,

wie ich das angehen m?sste. Als Template habe ich die "order_deatils" hergenommen um dort in

" <td class="main"><div align="right">{$item_data.PRICE}</div></td>.."

eine IF Abfrage ein zu bauen. Aber ausser Fehlermeldungen bzgl. Syntax

habe ich noch nichts zu Stande gebracht. Ich werde mich heute Abend noch

einmal daran setzen.

Link to comment
Share on other sites

@mzanier

Ja, danke! Ich habe hier schon ein PDF (Smarty - die kompilierende

PHP Template-Engine) vor mir liegen. Damit habe ich jetzt mehrere

Varianten ausprobiert ? ich bekomme es aber nicht hin.

Wenn ich :

{if $item_data.PRICE gt 0} <td class="main"><div align="right">{$item_data.PRICE}</div></td>

{/if}

in der order_details.html eingebe, wird mir zwar der Produkt Optionen

Preis nicht mehr angezeigt...aber auch nicht wenn er <> 0 ist ? also gar

nicht mehr. Und wenn ich dann weiter schaue und an den checkout_confirmation

komme, dann stehe ich wieder vor dem Problem, dass ich 0 Preis unterdr?cken m?chte.

Hier sehe ich aber keine M?glichkeit gezielt im Template auf den Preis Einfluss

nehmen zu k?nnen. Da muss ich dann im xtc_get_products_attribute_price_checkout

die Bildung des Preises unterdr?cken, wenn er 0 ist?

Wenigstens wird in der Bestellbest?tigungsmail der 0 Preis nicht gezeigt.

Hat jemand noch einen Tipp?

Gru?, Axel

Link to comment
Share on other sites

du musst als bedingung nat?rlich auch eingeben was smarty als variable ausgibt, glaube kaum das da eine "0" auf deinem schirm steht.

sonder 0.00 EUR.

die bildung des preises in der funktion zu unterdr?cken ist nicht ratsam, da dann einige andere funktionen keinen wert zur?ckbekommen.

du brauchst nur ?berpr?fen ob der smarty string ein 0.00 !enthaltet, und dann darauf reagieren.

Link to comment
Share on other sites

Also ich habe jetzt einige Stunden mit:

{if $item_data.PRICE == '0,00'}

<td class="main"><div align="right">{$item_data.PRICE}</div></td>

{else}

<td class="main"></td>

{/if}

in allen m?glichen Kombinationen mit einschlei?endem "" oder '' oder != oder "eq" oder "neq" usw. versucht. Iregndwie komme ichnicht darauf, dass die if Abfrage erkennt, ob der Preis 0 oder 0.00 oder 0,00 (wie bei mir) oder + 0,00 usw. ist.

Bin denn mit obiger Abfrage auf dem richtigen Weg?

Gru?, Axel

Link to comment
Share on other sites

nun. bin auch schon seit ein paar "Minuten" (oder sind es Stunden) dran.

angezeigt wird ja "+ 0.00 EUR "

als Buchhalter h?tte ich au?erdem gerne, da? der Preis und wenn der Preis f?r ein Attribut ausgeworfen wird auch rechtsb?ndig untereinander stehen.

Wie bekommt man das noch hin ?

Hat schon jemand eine L?sung hierf?r ?

Link to comment
Share on other sites

Guten Abend,

Manchmal kann Ergeiz KnowHow ersetzen...

Nachdem ich Stunden damit verbracht habe und v??lig frustiert schon das Jammern anfangen wollte ;-)

habe ich es jett endlich heute Morgen, als die Familie noch schlief hinbekommen. Das Problem war wohl

(jedenfalls nach meinem leihenhaften Verst?ndnis), dass diese "IF" Bedingung das verdammte 0,00 nicht

zu Packen bekam. Ich habe alle m?glichen Kombinationen probiert (habe ich ja weiter oben auch schon

geschrieben..). Letztendlich habe ich dann mit dem Browser die Ausgabe in diesem Bereich angeschaut:

Da steht ja nicht 0,00 oder 0.00 (je nacxhdem wie man seinen Dezimaltrenner eingestellt hat), sondern da

steht "Blank+Blank0,00BlankEURBlank". Ich schreib das hier so d?mlich, damit man mich besser versteht

(so hoffe ich doch...). Und f?r "copy&paste" hier der Schnippsel:

{foreach key=key_data item=item_data from=$module_data.ATTRIBUTES}

<tr>

{if $item_data.PRICE eq " + 0,00 EUR "}<td></td>

{else}

<td class="main"></td>

<td class="main"><div align="right">{$item_data.PRICE}</div></td>

{/if}

</tr>

{/foreach}

</table>

Einen Sch?nheitfehler hat die Prozedur allerdings immer noch. In der letzten Maske des

Bestellvorgangs wird wieder alles aufgelistet und auch die Produkt Optionen ohne Preis

werden mit "0,00 EUR" ausgewiesen. Und hier kann im Template nichts abgefangen werden,

sondern im checkout_confirmation.php bzw. checkout_process.php, dort wo der Price f?r die

Bildung der Bl?cke zusammengebaut wird. Aber da blicke ich nicht durch und "mzanier" meint,

dass man die Bildung des Preises besser nicht unterdr?ckt. Wat nu?

Gru?, Axel

Link to comment
Share on other sites

Noch was:

Wenn man die Beitr?ge hier im Forum betrachtet, dann hat jeder Beitrag als Symbol einen Breifumschlag in unterschiedlichen Farben vorangestellt. Die sind ja

auch im Fu? erleutert. Allerdings hat dieser Beitrag hier im Briefumschlag noch

einen kleinen Punkt in der Mitte. Wer wei?, was der bedeutet und l??t mich

daran teilhaben?

Axel

Link to comment
Share on other sites

Originally posted by abo@Jan 10 2004, 21:53 PM

{if $item_data.PRICE eq " + 0,00 EUR "}

damit (auch wenn ich "," durch "." ersetze) geht es bei mir leider auch nicht.

ich habe schon einige viele weitere Kombinationen versucht (mit den Leerstellen gespielt) ...aber auch noch ohne Ergebnis.

(auch schon template_c gel?scht)

Link to comment
Share on other sites

Sorry, ich habe in Zeile 34 noch etwas getan. Ich habe

<div align="right">{$module_data.PRODUCTS_PRICE}</div>

ausgetauscht gegen

<div align="right">{$module_data.PRODUCTS_PRICE}</div>

Also das   hinter dem Preis gel?scht. Das erzeugte eine zus?tzliche Leerstelle. Ohne diese zus?tzliche Leerstelle ist der Preis auch in der Spalte Rechtsb?ndig wie der Produkte Preis.

Vielleicht klappt es ja damit?

Axel

Link to comment
Share on other sites

Originally posted by abo@Jan 10 2004, 21:53 PM

{if $item_data.PRICE eq " + 0,00 EUR "}

ich habe f?r mich immer noch keine L?sung !

Der Wert hei?t doch "+ 0,00 EUR " (eine Leerstelle am Anfang weniger ?!)

Wie muss ich das denn nun abfragen um den Preis abzufragen um die + 0,00 EUR zu unterdr?cken ?

Bitte um Hilfe !

Link to comment
Share on other sites

Also, was ich nicht verstehe, ist dass diese Abfrage bei Dir ein anderes Ergebnis (n?mlich kein Ergebnis) bringt. Was kann es noch sein? Lass uns doch einmal vergleichen:

Admin > Konfiguration > Brutto Admin = True

Admin > Konfiguration > Brutto/Netto Dezimalstellen = 2

Admin > Land / Steuer / W?hrungen: Standard W?hrung = Euro, Symbol Rechts = EUR, Dezimal = , Tausenderpunkt = .

Und hier das ganze Template "order_details:

{config_load file="$language/lang_$language.conf" section="shopping_cart"}

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="1%" class="main" style="border-bottom: 1px solid; border-color: #cccccc;"></td>

<td width="1%" class="main" style="border-bottom: 1px solid; border-color: #cccccc;"><div align="center">{#text_qty#}</div></td>

<td nowrap width="70%" class="main" style="border-bottom: 1px solid; border-color: #cccccc;">{#text_article#}</td>

<td nowrap width="38%" bgcolor="f1f1f1" class="main" style="border-bottom: 1px solid; border-color: #cccccc;">

<div align="right">{#text_total#}</div></td>

<td width="1%" bgcolor="FEF8F8" class="main" style="border-bottom: 1px solid; border-color: #cccccc;"> <div align="center">{#text_remove#}</div></td>

</tr>

{foreach name=aussen item=module_data from=$module_content}

<tr>

<td height="5" colspan="5"></td>

</tr>

<tr>

<td class="main">{$module_data.PRODUCTS_IMAGE}</td>

<td valign="top" class="main"> <div align="center">{$module_data.PRODUCTS_QTY}</div></td>

<td valign="top" class="main">{$module_data.PRODUCTS_NAME}{$module_data.PRODUCTS_SINGLE_PRICE}

{if $module_data.ATTRIBUTES!=''}

<table width="100%" border="0" cellspacing="0" cellpadding="0">

{foreach key=key_data item=item_data from=$module_data.ATTRIBUTES}

<tr>

<td width="1" class="main">{$item_data.NAME}:</td>

<td class="main"><div align="left">{$item_data.VALUE_NAME}</div></td>

</tr>

{/foreach}

</table>

{else}

<font size="1">{$module_data.PRODUCTS_SHORT_DESCRIPTION|truncate:150:"...":true}</font>

{/if}

</td>

<td valign="top" nowrap bgcolor="f1f1f1" class="main" style="border-right: 1px solid; border-color: #cccccc;">

<div align="right">{$module_data.PRODUCTS_PRICE}</div>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

{foreach key=key_data item=item_data from=$module_data.ATTRIBUTES}

<tr>

{if $item_data.PRICE eq " + 0,00 EUR "}<td></td>

{else}

<td class="main"></td>

<td class="main"><div align="right">{$item_data.PRICE}</div></td>

{/if}

</tr>

{/foreach}

</table>

</td>

<td align="center" valign="middle" bgcolor="FEF8F8" class="main"> <div align="center">{$module_data.BOX_DELETE}</div></td>

</tr>

{/foreach}

<tr>

<td height="5" colspan="5"></td>

</tr>

<tr>

<td style="border-top: 1px solid; border-color: #cccccc;" colspan="4" class="main"><div align="right">{$TOTAL_CONTENT}</div></td>

<td style="border-top: 1px solid; border-color: #cccccc;" align="center" valign="middle" class="main"></td>

</tr>

</table>

Wenn`s hilft?

Gru?, Axel

Link to comment
Share on other sites

Originally posted by abo@Jan 11 2004, 23:55 PM

noch sein? Lass uns doch einmal vergleichen:

Admin > Konfiguration > Brutto Admin = True

Admin > Konfiguration > Brutto/Netto Dezimalstellen = 2

Admin > Land / Steuer / W?hrungen: Standard W?hrung = Euro, Symbol Rechts = EUR, Dezimal = , Tausenderpunkt = .

{if $item_data.PRICE eq " + 0,00 EUR "}<td></td>

{else}

<td class="main"></td>

<td class="main"><div align="right">{$item_data.PRICE}</div></td>

{/if}

ist alles so und funktioniert doch nicht.

ich bin am verzweifeln.

das gibt es doch ?berhaupt nicht. Ich wei? was bei $item_data.PRICE exakt drinnen ist und kann es doch nicht packen.

w?re toll, wenn einer der ADMINs da nochmals was zu schreiben k?nnte.

Link to comment
Share on other sites

nur mal so nachgedacht..

order_details_cart.php

aus:


   	$module_content[$i]['ATTRIBUTES'][]=array(

     'ID' =>$products[$i][$option]['products_attributes_id'],

     'MODEL'=>$products[$i][$option]['products_options_model'],

     'NAME' => $products[$i][$option]['products_options_name'],

     'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check,

     'PRICE' => xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=1,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']));


wird

$attribute_price=xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=1,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']);


if (eregi('0.00',$attribute_price)) {

$attribute_price='';

}



   	$module_content[$i]['ATTRIBUTES'][]=array(

     'ID' =>$products[$i][$option]['products_attributes_id'],

     'MODEL'=>$products[$i][$option]['products_options_model'],

     'NAME' => $products[$i][$option]['products_options_name'],

     'VALUE_NAME' => $products[$i][$option]['products_options_values_name'].$attribute_stock_check,

     'PRICE' => $attribute_price);






Link to comment
Share on other sites

if(xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=0,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']))!='0.00') {

$attribute_price=xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=1,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']);

} else {

$attribute_price='';

}

Link to comment
Share on other sites

Originally posted by mzanier@Jan 12 2004, 12:11 PM

if(xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=0,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']))!='0.00') {

$attribute_price=xtc_get_products_attribute_price($products[$i][$option]['options_values_price'], $tax_class=$products[$i]['tax_class_id'],$price_special=1,$quantity=$products[$i]['quantity'],$prefix= $products[$i][$option]['price_prefix']);

} else {

$attribute_price='';

}

vor dem !='0.00') muss ein ")" weg.

Jetzt klappt es super !!

Danke f?r die gro?e Hilfe !!!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...