PDA

Shop Support News Archive - Shopbetreiber News -> Forum : ECB --> gelöst Produkt "auf Anfrage" in Listenansicht


useeme2ce
19.11.2009, 16:53
Ich hab nen kleines Problemchen mit der product_listing.html

Ich würde gerne wenn Euro = 0 eben nicht die Angabe "null euro" sondern Preis auf Anfrage machen. Alles soweit vorbereitet. In der /yaml/snippets/product_listing_item.html hab ich folgendes gemacht:

****"productListing1ColBodyTxt">
************{if $item.PRODUCTS_SHORT_DESCRIPTION}
****************"productListing1ColDesc">
********************{$item.PRODUCTS_SHORT_DESCRIPT ION}
****************</div>
************{/if}
{if ($module_data.PRODUCTS_QUANTITY>0) }


************"productListing1ColPriceInfo">


{if ($PRODUCTS_PRICE==0 and $PRODUCTS_QUANTITY==0) } {#TEXT_ON_REQUEST#} {/if}

{if ($PRODUCTS_PRICE==0 and $PRODUCTS_QUANTITY>=1) } {#TEXT_ON_REQUEST#} {/if}

{if ($PRODUCTS_QUANTITY>=1 and $PRODUCTS_PRICE>=1) }****{$PRODUCTS_PRICE} {/if}




****************{if $item.PRODUCTS_VPE}
********************{$item.PRODUCTS_VPE}

****************{/if}
{if ($PRODUCTS_QUANTITY>=1 and $PRODUCTS_PRICE>=1 ) }****
****************
********************{$item.PRODUCTS_TAX_INFO} {get_shipping_link}
****************
{/if}
************</div>

Die Idee war wohl nicht schlecht, aber das Ergebnis stimmt nicht. Ich bekomme jetzt immer die Angabe "Preis auf Anfrage" auch wenn Preis bzw. Quantity vorhanden ist.

Was muss ich noch ergänzen, damit die Abfrage funktioniert?

useeme2ce
19.11.2009, 17:41
Ich hab noch mal ein wenig herumprobiert...
die komplette Datei ist jetzt:
{strip}
<h1 class="productListing1ColHead">
****{$item.PRODUCTS_NAME} ({$item.PRODUCTS_LINK})
</h1>
{/strip}

"productListing1ColBody">
****"floatbox">
********"productListing1ColBodyImg">
************{if $item.PRODUCTS_IMAGE}
****************{strip}
****************<a href="{$item.PRODUCTS_LINK}">
********************{$item.PRODUCTS_IMAGE}
****************</a>
****************{/strip}
************{else}{ if no picture available** }
****************
************{/if}
********</div>

********"productListing1ColBodyTxt">
************{if $item.PRODUCTS_SHORT_DESCRIPTION}
****************"productListing1ColDesc">
********************{$item.PRODUCTS_SHORT_DESCRIPT ION}
****************</div>
************{/if}

************"productListing1ColPriceInfo">
{if ($module_data.PRODUCTS_QUANTITY>0 and $item.PRODUCTS_PRICE>0 ) }
{$item.PRODUCTS_PRICE}{/if}
{if ($module_data.PRODUCTS_QUANTITY>0 and $item.PRODUCTS_PRICE==0 ) }


{#TEXT_ON_REQUEST#}</p>{/if}
{if ($module_data.PRODUCTS_QUANTITY==0 and $item.PRODUCTS_PRICE==0 ) }


</p>
{/if}
****************{if $item.PRODUCTS_VPE}
********************{$item.PRODUCTS_VPE}

****************{/if}
{if ($module_data.PRODUCTS_QUANTITY>0) }
****************
********************{$item.PRODUCTS_TAX_INFO} {get_shipping_link}
****************
************</div>

************{if $item.PRODUCTS_SHIPPING_NAME}
****************"productListing1ColShiptime">
********************{#text_shippingtime#}

********************{if $item.PRODUCTS_SHIPPING_IMAGE}
************************{$item.PRODUCTS_SHIPPING_I MAGE}
********************{/if}

********************{$item.PRODUCTS_SHIPPING_NAME}
****************</div>
************{/if}
{/if}
************"productListing1ColButtons">
****************
********************{strip}
********************<a href="{$item.PRODUCTS_LINK}">
************************{$tpl_path}buttons/{$language}/small_view.gif
********************</a>
********************{/strip}
****************
********{if ($module_data.PRODUCTS_QUANTITY>0) }
****************{$item.PRODUCTS_BUTTON_BUY_NOW|nof ollow}
********{/if}
************</div>
********</div>
****</div>
</div>

Die Abfrage "wenn mehr als "0" auf Lager --> dann zeige Kaufen-Button und "Shipping-Details" klappt komischerweise. Nur eben "Preis auf Anfrage" nicht.

Hintergrund: Es gibt Artikel mit 0 Euro und 0 Lager. Das sind "Info-Artikel", nicht zum bestellen geeignet. Dann gibt es Artikel mit Preis, die sollen normal kaufbar sein. Und dann eben Artikel mit "Null Euro", deren Preis auf Anfrage zu erhalten ist... Es muss doch möglich sein, dieses alles in der Kategorie-Ansicht darstellen zu können, oder? :huh:

Mitglied
19.11.2009, 17:55
Hallo,

wie ich das sehe ist $PRODUCTS_PRICE keine reine Zahl

Du mußt dazu entweder eine weitere Smartyvariable in der PHP hinzufügen oder aber die jetzige Variable
für die IF abfrage von den Buchstaben trennen und eine rein Zahl daraus machen.

Gruß

Mitglied
19.11.2009, 18:10
''>ZITAT(Mitglied @ Nov 19 2009, 17:55) 204948
Hallo,

wie ich das sehe ist $PRODUCTS_PRICE keine reine Zahl

Du mußt dazu entweder eine weitere Smartyvariable in der PHP hinzufügen oder aber die jetzige Variable
für die IF abfrage von den Buchstaben trennen und eine rein Zahl daraus machen.

Gruß
[/b]

das hier macht eine Zahl mit 2 Kommastellen

{$PRODUCTS_PRICE|string_format:"%.2f"}

Gruß

Eselchen
19.11.2009, 18:22
... oder ändere die if-Bedingung auf:

$item.PRODUCTS_PRICE==' 0,00 EUR'

PRODUCTS_PRICE ist nämlich nicht 0 (Zahl), sondern ' 0,00 EUR' (Ein String, der zumindest bei mir ein führendes Leerzeichen hat)

So lange Du keine andere Währung hast geht das.

- Eselchen

useeme2ce
19.11.2009, 18:37
Es gibt aber leider zwei Währungen (EUR + CHF). Geht das auch?

Und was ist denn nun richtig, in der Datei?
$item.PRODUCTS_PRICE
oder
$PRODUCTS_PRICE

... jaja, die Fachmänner lachen sich sicher gerade kaputt :blush:

Mitglied
19.11.2009, 18:44
versuche

es mal so


{if ($item.PRODUCTS_PRICE|string_format:"%.2f"==0 and $item.PRODUCTS_QUANTITY==0) } {#TEXT_ON_REQUEST#} {/if}



Gruß

Xantiva
19.11.2009, 19:43
Welche Variable beinhaltet denn nun das Product Array?

$module_data oder $item

:smiley_emoticons_aufsmaul: B)

(Ein {debug} wirkt manchmal Wunder ... )

useeme2ce
20.11.2009, 19:03
Es ging nur mit etwas Mehraufwand, da die "span class priceSymbolLeft" dem ganzen einen Strich durch die Rechnung gemacht hat, die ist nämlich bereits im Core verarbeitet...

Dank tatkräftiger Unterstützung läuft es jetzt mit diesem Code (sowohl für EUR, was hinten angestellt wird, wie auch CHF, welches vor dem Preis steht)

************
"productListing1ColPriceInfo">
********{if ($module_data.PRODUCTS_QUANTITY>0) }
********{assign var=MEINPREIS value=$module_data.PRODUCTS_PRICE}
********{php}
**********$price = $this->get_template_vars('MEINPREIS');
**********(stristr( $price, 'EUR')) ? $price = substr($price, 1, 2) :**$price = substr($price, -6, 5);
**********$this->assign('pricenumber',$price);
********{/php}
**********{if ($pricenumber == " 0.00" or $pricenumber == "0") }
************

{#TEXT_ON_REQUEST#}</p>
**************{else}
**************{$item.PRODUCTS_PRICE}

**************{if $item.PRODUCTS_VPE}
**************{$item.PRODUCTS_VPE}
{/if}
**************
************************{$item.PRODUCTS_TAX_INFO} {get_shipping_link}
**********************
**********{/if}
********{/if}
</div>


Nicht schön, aber selten - und ohne Eingriff in den Core. :icon_turnaround: