Jump to content
  • 0

<Solved> Wie kann man die Anzeige des MwSt-Satzes beim Artikelpreis einbauen?


Claudiocool

Question

Hallo zusammen,

 

ich hab den Shop auch mal angefangen, da ich langsam mal weg von OSC muss :-)

 

Ich hätte noch ein kleines Anliegen, was die Mwst-Anzeige anbelangt. Hier wird ja inkl. Mwst bzw. zzgl. Mwst angezeigt. Allerdings vermisse ich da die Anzeige des Steuersatzes, also z.B. inkl. 19% Mwst.

 

Jetzt suche ich, wo ich das reinsetzen könnte, daß es entsprechend angezeigt wird. Okay, solange ich nur mit 19% arbeite, wäre es zumindest in einem deutschen Shop okay, aber da ich weltweit anbieten will, sollte da dann z.B. drinstehen zzgl. 0% Mwst, damit der Kunde nicht gleich wieder abhaut, weil er befürchtet, daß da noch Mwst. draufgeschlagen wird. Das betrifft Besteller aus Drittländern bzw. EU mit VAT-ID.

 

Kann mir da jemand mal etwas auf die Sprünge helfen? Ich bin da mit der Syntax und den Variablen noch purer Anfänger, hier findet man nicht so leicht wie im OSC, was man sucht.

Edited by Claudiocool (see edit history)
Link to comment
Share on other sites

47 answers to this question

Recommended Posts

  • 0

Naja, ich hatte mich gerade auf die andere Möglichkeit (vgl Post #18) bezogen <_<

 

 

Einmal die Ausgabe auf der Listenseite wegzulassen, da also wie bisher anzeigen, oder eben den Steuersatz auch da zu zeigen. Mir wäre in dem Fall sogar die Variante lieber, bei der kein Steuersatz angezeigt wird, der genügt mir vollauf in der Produktseite.

Aber wenn du das willst ist die Lösung doch ganz einfach!

Du gehst so vor wie in Post #21 beschrieben, führst aber noch eine if Bedingung auf das Vorhanden sein der tax-Variablen aus entweder mit isset oder mit <>0:

 

 

bei ca Zeile 48  fügst du die o.a. Code-Zeile ein:

Quote

 

 {if isset($smartyVars.price) && isset($smartyVars.price.tax_str_i18n)}
        <span class={if isset($smartyVars.price.css_class)}
                        "{$smartyVars.price.css_class|escape:'htmlall'}"
                    {else}
                        "aeuc_tax_label"
                    {/if}>
            {$smartyVars.price.tax_str_i18n|escape:'htmlall'}
                {if {$product->tax_rate} <> 0}
                <span class="aeuc_tax_label">{l s='('} {$product->tax_rate} {l s='%)'}</span>
                {/if}


        </span>
    {/if}

Kompillieren nicht vergessen!

 

Die Prozentangabe erscheint dann nur noch auf der Produkseite

 

Grüsse

Whiley

  • Like 1
Link to comment
Share on other sites

  • 0

Hallo, ich habe daraus einen eigenen Topic gemacht, weil du die Frage an einen älteren Thread angehängt hast, wo sie eigentlich nicht passte. Außerdem gilt hier im Forum: pro Topic nur ein Problem!

 

Wie kommst du eigentlich darauf, dass bei Verkäufen in Länder außerhalb der EU, wo es üblich ist, Nettopreise im Shop anzuzeigen, für die Endverbraucher keine MwSt. anfällt? Oder im B2B beim innereuropäischen Handel? Ich glaube, da solltest du dich mal gründlich mit dem Steuerrecht vertraut machen. Sonst gibt es herbe Überraschungen.

Link to comment
Share on other sites

  • 0

Hallo zusammen,

 

ich hab den Shop auch mal angefangen, da ich langsam mal weg von OSC muss :-)

 

Ich hätte noch ein kleines Anliegen, was die Mwst-Anzeige anbelangt. Hier wird ja inkl. Mwst bzw. zzgl. Mwst angezeigt. Allerdings vermisse ich da die Anzeige des Steuersatzes, also z.B. inkl. 19% Mwst.

 

Jetzt suche ich, wo ich das reinsetzen könnte, daß es entsprechend angezeigt wird. Okay, solange ich nur mit 19% arbeite, wäre es zumindest in einem deutschen Shop okay, aber da ich weltweit anbieten will, sollte da dann z.B. drinstehen zzgl. 0% Mwst, damit der Kunde nicht gleich wieder abhaut, weil er befürchtet, daß da noch Mwst. draufgeschlagen wird. Das betrifft Besteller aus Drittländern bzw. EU mit VAT-ID.

 

Kann mir da jemand mal etwas auf die Sprünge helfen? Ich bin da mit der Syntax und den Variablen noch purer Anfänger, hier findet man nicht so leicht wie im OSC, was man sucht.

 

Hallo Claudiocool,

 

von OSC haben wir wohl alle mal loslassen müssen :)

 

Obwohl im Backoffice die Einstellungen für die von dir skizzierten Fälle alle gemacht werden können (BO -->Lokalisierung-->Länder MwSt NEIN) und die Berechnung im Warenkorb ja auch durchaus richtig funktioniert hat Prestashop im aktuellen Template da leider einen Bug und zeigt beim Produkt immer "zzgl MwSt" an obwohl garkeine ausgewiesen wird.

Lösungsmöglichkeiten gibt es viele, je nach Konstellation, wobei die Anzeige "zzgl 0% MwSt" eher verwirrend wäre; wenn z.B. es in deinem Shop nur die Möglichkeit für den Kunden besteht, die Produkte inkl. 19% MwSt oder eben ohne MwSt(EU mit Vat-ID bzw Drittländer) zu erwerben (so interpretiere ich deine Frage) wäre die einfachste Möglichkeit in den Übersetzungen "zzgl MwSt" durch ein Leerzeichen zu ersetzen.

Falls du den Shop auf englisch betreibst, gäbe es natürlich auch die Möglichkeit in der product.tpl und in der product-list.tpl alle l s='tax excl.' durch l s='' zu ersetzen.

 

Grüsse

Whiley

Link to comment
Share on other sites

  • 0

Hallo, ich habe daraus einen eigenen Topic gemacht, weil du die Frage an einen älteren Thread angehängt hast, wo sie eigentlich nicht passte. Außerdem gilt hier im Forum: pro Topic nur ein Problem!

 

Wie kommst du eigentlich darauf, dass bei Verkäufen in Länder außerhalb der EU, wo es üblich ist, Nettopreise im Shop anzuzeigen, für die Endverbraucher keine MwSt. anfällt? Oder im B2B beim innereuropäischen Handel? Ich glaube, da solltest du dich mal gründlich mit dem Steuerrecht vertraut machen. Sonst gibt es herbe Überraschungen.

Bei den steuerrechtlichen Dingen bin ich soweit schon durch, ich mache das schon seit 25 Jahren :)

 

Es geht einfach darum, dass ich sämtliche Kundenkonstellationen im Shop haben werde (wie eben jetzt schon im OSC auch schon), also Inlandsendkunden, Inlandshändlerkunden, EU-Endkunden, EU-Händler mit VAT-ID und Drittlandkunden. Die Anzeige inkl. Mwst. ist soweit okay für die Endkunden, da bräuchte man dann per se nichts daran zu ändern, Allerdings gibt es dann leider noch die Dinge mit 7% Mwst., da läge dann der Grund für die Satzanzeige.

Bei den Händlern und EU-VAT-Kunden fällt keine Mwst. an, da wäre es okay, sie verschwinden zu lassen, was aber dann in der jetzigen Konstellation dazu führt, dass der Kunde nicht sicher ist, ob er nun noch die Steuer aufgebrummt bekäme, weil eben unter dem Preis nur "zzgl. Mwst." steht, aber eben nicht, wieviel, da geht dann mancher her und bricht an der Stelle ab, weil er nicht sicher ist, was hinterher auf ihn zukommt, das ist unbefriedigend. Stünde hier nun "zzgl. 0% Mwst." wäre der Kunde etwas entspannter. Anfangs hatte ich gesucht, ob man in die jeweilige Übersetzung einen passenden Platzhalter einsetzen könnte, aber das scheint so nicht möglich zu sein.

Link to comment
Share on other sites

  • 0

Hallo Claudiocool,

 

von OSC haben wir wohl alle mal loslassen müssen :)

 

Obwohl im Backoffice die Einstellungen für die von dir skizzierten Fälle alle gemacht werden können (BO -->Lokalisierung-->Länder MwSt NEIN) und die Berechnung im Warenkorb ja auch durchaus richtig funktioniert hat Prestashop im aktuellen Template da leider einen Bug und zeigt beim Produkt immer "zzgl MwSt" an obwohl garkeine ausgewiesen wird.

Lösungsmöglichkeiten gibt es viele, je nach Konstellation, wobei die Anzeige "zzgl 0% MwSt" eher verwirrend wäre; wenn z.B. es in deinem Shop nur die Möglichkeit für den Kunden besteht, die Produkte inkl. 19% MwSt oder eben ohne MwSt(EU mit Vat-ID bzw Drittländer) zu erwerben (so interpretiere ich deine Frage) wäre die einfachste Möglichkeit in den Übersetzungen "zzgl MwSt" durch ein Leerzeichen zu ersetzen.

Falls du den Shop auf englisch betreibst, gäbe es natürlich auch die Möglichkeit in der product.tpl und in der product-list.tpl alle l s='tax excl.' durch l s='' zu ersetzen.

 

Grüsse

Whiley

Okay, das wäre ein Weg, der hier vermutlich den meisten Sinn machte, also im Code selbst. Da englisch natürlich für alle nicht deutsch oder italienisch sprechenden Kunden wichtig ist, fällt die Lösung über die Sprache natürlich aus, weil es dann im englischen ja dennoch drin bliebe, so wie ich das sehe, wenn weitere Sprachen dazukommen, ginge die Suche nach den jeweiligen Übersetzungen wieder von vorne los.

 

Ich nehme an, die beiden Dateien im Theme-Ordner sind hier gemeint. In der Product.tpl habe ich es geänder, in der product-list.tpl finde ich den Ausdruck nicht. Geändert hat es im Frontend allerdings auch nichts, die Angabe bleibt drin, wenn ich das ändere.

Link to comment
Share on other sites

  • 0

 

Geändert hat es im Frontend allerdings auch nichts, die Angabe bleibt drin, wenn ich das ändere.

 

Naja, du verrätst nircht gerade viel über deinen Shop (Version /Module etc).

Ich kann jetzt nur raten, ev mußt du den Cache noch löschen (Variableninhalte werden bei smarty3 gecached) oder du verwendest ein Modul, daß die Preisanzeige formatiert, wie z.B. "Europäische Rechtssicherheit", in diesem Fall müßtest du dir mal die Datei

/modules/advancedeucompliance/views/templates/hook/hookDisplayProductPriceBlock.tpl

anschauen, oder overrides überschreiben deine Preisanzeige, oder ....

 

Grüße Whiley

Link to comment
Share on other sites

  • 0

Naja, du verrätst nircht gerade viel über deinen Shop (Version /Module etc).

Ich kann jetzt nur raten, ev mußt du den Cache noch löschen (Variableninhalte werden bei smarty3 gecached) oder du verwendest ein Modul, daß die Preisanzeige formatiert, wie z.B. "Europäische Rechtssicherheit", in diesem Fall müßtest du dir mal die Datei

/modules/advancedeucompliance/views/templates/hook/hookDisplayProductPriceBlock.tpl

anschauen, oder overrides überschreiben deine Preisanzeige, oder ....

 

Grüße Whiley

Jo, da gebe ich dir recht, die Eckdaten sind:

Version 1.6.1.7 und es die europäische Rechtssicherheit installiert.

 

Dann wird die Standardpreisanzeige hier natürlich nicht mehr greifen :)

 

Okay, ich hab mal die Datei im Advancedeucompliance

 

Ich gehe mal davon aus, daß ich hier fündig werden sollte....

 

 {* "Tax Inc/Exc" Price Hook templating *}

    {if isset($smartyVars.price) && isset($smartyVars.price.tax_str_i18n)}

        <span class={if isset($smartyVars.price.css_class)}

                        "{$smartyVars.price.css_class|escape:'htmlall'}"

                    {else}

                        "aeuc_tax_label"

                    {/if}>

            {$smartyVars.price.tax_str_i18n|escape:'htmlall'}

        </span>

    {/if}

 

Link to comment
Share on other sites

  • 0

Jo, da gebe ich dir recht, die Eckdaten sind:

Version 1.6.1.7 und es die europäische Rechtssicherheit installiert.

 

Ich gehe mal davon aus, daß ich hier fündig werden sollte....

 

 {* "Tax Inc/Exc" Price Hook templating *}

    {if isset($smartyVars.price) && isset($smartyVars.price.tax_str_i18n)}

        <span class={if isset($smartyVars.price.css_class)}

                        "{$smartyVars.price.css_class|escape:'htmlall'}"

                    {else}

                        "aeuc_tax_label"

                    {/if}>

            {$smartyVars.price.tax_str_i18n|escape:'htmlall'}

        </span>

    {/if}

 

Ja, aber hier wäre dann wohl nur eine quick'n'dirty Lösung möglich, denn geändert werden müsste die Abfrage an der/den Stelle(n) in der advancedeucompliance.php, wo die Variable "tax_str_i18n" generiert wird.

Link to comment
Share on other sites

  • 0

Ich habe jetzt nochmal alles durchgespielt, nachdem ich da nicht wirklich weitergekommen bin, was meine Suche nach der Anzeige an sich betrifft. Wenn ich es hinbekäme, daß er bei Steuersatz 0% einfach die Angabe zzgl. Mwst wegläßt, bliebe das Problem bei VAT-Kunden und Händlern in Deutschland weiter bestehen, weil denen auch nichts angezeigt würde, obwohl da am Ende die Steuer ja draufgepackt wird.

 

Also müßte ich doch meinen Wunsch, den Steuersatz abzubilden, wieder hervorkramen. In unserem OSC-Shop wird das seit Jahren problemlos von den Kunden so akzeptiert, es gab nie einen Abbruch durch unklare Steuerangaben. Hier würde ich dies aktuell befürchten. Ein alter Hase im Einkauf weiß, daß keine Steuer obendraufkommt, ein neuer Kunde hätte bis zum Kaufklick die Sorge, daß Steuer draufgehauen wird.

Link to comment
Share on other sites

  • 0

Schön wär's! Bis Prestashop 1.6.0.14 wäre das mit wenig Aufwand noch möglich gewesen, aber ab 1.6.1 ist die Programmierung von Advancedeucompliance ist aus meiner Sicht zunehmend vermurkst worden, und selbst unter 1.7 wirst du da kein Glück haben, da die Entwicklung des Nachfolgemodul ps_legalcompliance zwar spartanischer, aber im Prinzip genauso ausgefallen ist.

Warum muss ich jetzt bloß gerade an Windows Vista denken ...? ;)

Link to comment
Share on other sites

  • 0

Ich komme da jetzt drauf zurück, nachdem ich dem Hoster noc den Marsch blasen musste, weil der Shop elend lange Ladezeiten hatte, die nur durch Umzug auf einen schnelleren Server zu beheben waren. Nun läuft es sehr geschmeidig und ich kann wieder hier im Shop weitermachen.

 

Eigentlich wäre das nur in der entsprechenden Datei (vermutlich ja im Template) eine Tax-Rate-Angabe einzubauen. Da er ja den korrekten Preis errechnen kann, muß dieser Steuersatz als Variable existieren, damit damit gerechnet werden kann, bloß stehe ich jetzt mit der Suche, wo die Ausgabe generiert wird, auf dem Schlauch, dann könnte man zurückverfolgen, ob der das in einer anderen Datei generiert und dann übergibt, oder beides in einer Datei passiert.

Link to comment
Share on other sites

  • 0

Sodele, ich krame das nun einfach mal wieder hoch, weil es einer der letzten Punkte auf meiner langen Liste der Unzulänglichkeiten ist.....

 

Um den neuen Lesern einen kurzen Einstieg zu schaffen:

 

Unterm Preis kann ich entweder "inkl. Mwst" oder eben "zzgl. Mwst." anzeigen lassen, was mir aber zu wenig ist, weil ich dies zwar innerhalb der EU so stehen lassen kann (bis auf die Leute mit VAT-ID), aber eben insgesamt eine Unsicherheit besteht, was nachher unterm Strich zu zaheln ist.

 

Die Idee war, hinter diese Angabe in Klammern den für den Artikel gültigen Satz z.B. "inkl. Mwst (19%)" zu bekommen, allerdings haben sich da alle Versuche meinerseits, dies dahinter zu bekommen, als untauglich erwiesen (siehe oben), also suche ich nun andere Ansatzpunkte. Vielleicht hat das ja mal jemand hinbekommen und kann mir da weiterhelfen.

 

Im Prinzip reicht es mir, es dahinter zu haben, ansonsten müßte auch der Satz "inkl. Mwst" in 2 Strings zerhackt werden, was später durchaus auch noch denkbar wäre, wenn mal das Grundproblem, den Steuersatz selbst darzustellen, gelöst ist.

Link to comment
Share on other sites

  • 0

 

Die Idee war, hinter diese Angabe in Klammern den für den Artikel gültigen Satz z.B. "inkl. Mwst (19%)" zu bekommen, allerdings haben sich da alle Versuche meinerseits, dies dahinter zu bekommen, als untauglich erwiesen (siehe oben), also suche ich nun andere Ansatzpunkte. Vielleicht hat das ja mal jemand hinbekommen und kann mir da weiterhelfen.

 

 

Hallo Claudio,

 

ich habe mir jetzt nicht den ganzen thread durchgelesen aber der MwSt Satz steckt  in der Variablen

$product->tax_rate

Die könntest du doch auf der Produkt-Seite anzeigen lassen - oder sehe ich das jetzt viel zu einfach?

 

Anyway ich habs im Demoshop mal eingetippt.

http://quintilius-varus.de/de/home/test-test

 

Grüsse

Whiley

Link to comment
Share on other sites

  • 0

Ich such mir nen Wolf in der Datei, ich kriege Inhalte über und unter der Zeile hin, aber nicht hinter die Steuergeschichte. Im Quelltext ist auch

"span_Class=aeuc_tax_label"

daher vermute ich mal, das das bei installierter AEUC woanders hergeholt wird, daran hat es seinerzeit -wenn ich mich richtig entsinne- auch gescheitert....

Edited by Claudiocool (see edit history)
Link to comment
Share on other sites

  • 0

Also hier mal die genaue Anleitung:

 

Der prozentuale Mehrwertsteuersatz steckt in der Variablen $product->tax_rate  (z.B. 19)

Will man eine Variable in einer tpl-Datei anzeigen setzt man geschweifte Klammern davor und dahinter.

Vor den Prozentwert kommt noch eine runde Klammer und dahinter das Prozentzeichen und ebenfalls eine runde Klammer (z.B. {l s='('} und {l s='%)'} damit besteht die Möglichkeit, diese Anzeige bei den Sprachübersetzungen zu ändern)

Die Anzeige formatiert man am vernünftigsten gleich wie "incl MwSt", wenn man AEUC verwendet wäre das die class aeuc_tax_label.

Also sieht das ganze dann so aus:

<span class="aeuc_tax_label">{l s='('} {$product->tax_rate} {l s='%)'}</span>

 

Dann also mit notepad++ die Datei öffnen:

/themes/DeinTheme/product.tpl

und ca bei Zeile 280 die o.a. Code-Zeile eingeben:

 

<p class="our_price_display" itemprop="offers" itemscope itemtype="https://schema.org/Offer">{strip}
                                    {if $product->quantity > 0}<link itemprop="availability" href="https://schema.org/InStock"/>{/if}
                                    {if $priceDisplay >= 0 && $priceDisplay <= 2}
                                        <span id="our_price_display" class="price" itemprop="price" content="{$productPrice}">{convertPrice price=$productPrice|floatval}</span>
                                        {if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
                                            {if $priceDisplay == 1} {l s='tax excl.'}{else} {l s='tax incl.'}{/if}
                                        {/if}
                                        <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
                                        {hook h="displayProductPriceBlock" product=$product type="price"}
                                        <span class="aeuc_tax_label">{l s='('} {$product->tax_rate} {l s='%)'}</span>
                                        
                                    {/if}
                                {/strip}</p>

 

Das Ergebnis müßte dann in etwa so aussehen:

post-467854-0-91383900-1500676588_thumb.jpg

 

Grüsse

Whiley
                                     

 

 

 

 

 

Link to comment
Share on other sites

  • 0

Bei mir sieht der Preisblock so aus.... (ich denke, das ist der ganze Bereich):

<!-- prices -->
							<div>
								<p class="our_price_display" itemprop="offers" itemscope itemtype="https://schema.org/Offer">{strip}
									{if $product->quantity > 0}<link itemprop="availability" href="https://schema.org/InStock"/>{/if}
									{if $priceDisplay >= 0 && $priceDisplay <= 2}
										<span id="our_price_display" class="price" itemprop="price" content="{$productPrice}">{convertPrice price=$productPrice|floatval}</span>     
										{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}  
											{if $priceDisplay == 1} {l s='tax excl.'}{else} {l s='tax incl.'}{/if}     
										{/if}
										<meta itemprop="priceCurrency" content="{$currency->iso_code}" />       
										{hook h="displayProductPriceBlock" product=$product type="price"}   
									{/if}
								{/strip}</p>
								<p id="reduction_percent" {if $productPriceWithoutReduction <= 0 || !$product->specificPrice || $product->specificPrice.reduction_type != 'percentage'} style="display:none;"{/if}>{strip}
									<span id="reduction_percent_display">
										{if $product->specificPrice && $product->specificPrice.reduction_type == 'percentage'}-{$product->specificPrice.reduction*100}%{/if}
									</span>
								{/strip}</p>
								<p id="reduction_amount" {if $productPriceWithoutReduction <= 0 || !$product->specificPrice || $product->specificPrice.reduction_type != 'amount' || $product->specificPrice.reduction|floatval ==0} style="display:none"{/if}>{strip}
									<span id="reduction_amount_display">
									{if $product->specificPrice && $product->specificPrice.reduction_type == 'amount' && $product->specificPrice.reduction|floatval !=0}
										-{convertPrice price=$productPriceWithoutReduction|floatval-$productPrice|floatval}
									{/if}
									</span>
								{/strip}</p>
								<p id="old_price"{if (!$product->specificPrice || !$product->specificPrice.reduction)} class="hidden"{/if}>{strip}
									{if $priceDisplay >= 0 && $priceDisplay <= 2}
										{hook h="displayProductPriceBlock" product=$product type="old_price"}
										<span id="old_price_display"><span class="price">{if $productPriceWithoutReduction > $productPrice}{convertPrice price=$productPriceWithoutReduction|floatval}{/if}</span>{if $productPriceWithoutReduction > $productPrice && $tax_enabled && $display_tax_label == 1} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}{/if}</span>
									{/if}
								{/strip}</p>
								{if $priceDisplay == 2}
									<br />
									<span id="pretaxe_price">{strip}
										<span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL)}</span> {l s='tax excl.'}
									{/strip}</span>
								{/if}
							</div> <!-- end prices -->
Link to comment
Share on other sites

  • 0

Ah, ok,

in dem Fall öffnest du halt die Datei:

/modules/advancedeucompliance/views/templates/hook/hookDisplayProductPriceBlock.tpl

 

bei ca Zeile 48  fügst du die o.a. Code-Zeile ein:

 

 {if isset($smartyVars.price) && isset($smartyVars.price.tax_str_i18n)}
        <span class={if isset($smartyVars.price.css_class)}
                        "{$smartyVars.price.css_class|escape:'htmlall'}"
                    {else}
                        "aeuc_tax_label"
                    {/if}>
            {$smartyVars.price.tax_str_i18n|escape:'htmlall'}
            <span class="aeuc_tax_label">{l s='('} {$product->tax_rate} {l s='%)'}</span>
        </span>
    {/if}

Kompillieren nicht vergessen!

 

Grüsse

Whiley

Link to comment
Share on other sites

  • 0

Soooooo.....

 

in der Artikelenzeige geht es jetzt aber nun fehlt die Angebe noch in der Artikelübersicht, hier wird nur ein leeres % ausgegeben

 

post-1323095-0-27592000-1500681073_thumb.jpg

 

Komisch ist, dass in der Artikelübersicht alles aus der Product_Price_Block übernommen wird, nur der Prozentsatz selbst nicht.

@Whilley: Da der Shop produktiv ist, habe ich die Änderung erstmal wieder auskommentiert, das auf der Artikelseite selbst funktioniert tadellos

Edited by Claudiocool (see edit history)
Link to comment
Share on other sites

  • 0

Sodele, nach ein paar Stündchen Schlaf habe ich jetzt mal vor, die Suche nach dem Übeltäter weiterzuführen....

 

Meine Überlegung:

Nach der von Whiley geposteten Änderunge in der /modules/advancedeucompliance/views/templates/hook/hookDisplayProductPriceBlock.tpl hat die Anzeige des Prozentsatzes in der Artikelbeschreibung selbst gut funktioniert, auch z.B. die Anzeige bei verschiedenen Kunden mit jeweils anderen Umsatzsteuerregeln führt zum gewünschten Ergebnis, also bei Fällen ohne Umsatzsteuer wird dann "zzgl. Mwst (0%) angezeigt, was dann die Sache eindeutiger macht. Vielleicht wäre es noch eine Option, hier eine Bedingung einzusetzen, die dann einfach die Mwst-Anzeige auf Hidden setzt oder gar nicht anzeigt (je nachdem, wie es eleganter lösbar wäre), ist aber nicht zwingend, der Wert an sich genügt vollauf und man weiss, was Sache ist.

 

Nun aber zum Problem der Anzeige "inkl. Mwst ( %)" -also ohne den Steuersatz- auf den Seiten, wo die Produkte gelistet werden....

Die Änderung mit dem Prozentsatz greift auch dort, also kann man davon ausgehen, dass die Preisangabe auch aus der o.g. Datei geholt wird, aber vermutlich kriegt die Variable in dem Fall keinen Wert zugewiesen und bleibt leer.

Nun also erstmal die Frage, wo genau der Preis  für die Anzeige der Produkte z.B. auf der Startseite des Shops und in den Kategorien gesetzt wird, um zu sehen, wie das da gemacht wird, dann als nächstes, wie man die Variable dort mit dem Steuersatz "füttern" kann. Es sieht so aus, als würde der berechnete Preis übergeben, dazu der Text, aber die Variable wird nicht mit rübergenommen.

Kann man dann die Definition der Variablen in der entsprechenden Datei vornehmen, damit der Wert bei der Anzeige gefüllt wird? Oder (was vielleicht noch besser wäre) die Variable "global" zu machen, so dass man von "überall" darauf zugreifen kann?

Link to comment
Share on other sites

  • 0

Hallo Claudio,

 

aus Zeitgründen nur ganz kurz:

 

Deine Vermutungen bzgl der Variablen mögen richtig sein, besser wäre es aber einfach nachzuschauen (debug console); ich meine mich zu erinnern, daß die MwSt-Variable schon auch zur product-list.tpl übergeben wird, sie heißt aber einfach anders , wahrscheinlich $product.rate statt $product->tax_rate (wie gesagt einfach nachschauen).

 

Grüsse

Whiley

Link to comment
Share on other sites

  • 0

Okay, es scheint so, als muss man der product-list.tpl erzählen, welchen Wert die $product->tax_rate hat.

 

jetzt ist nur die spanndende Frage, wie ich das in der Template-Datei hinkriege. In der Datenbank ist ja nur der Wert an sich hinterlegt, der nichts bringt, weil der ja mit dem aktuellen Benutzerprofil verknüpft sein muss, um den korrekten Wert auszugeben.

 

Was mich ein wenig konfus macht, ist die tatsache, dass ja irgendwie mit dem Wert gerechnet wird, diese Variable also irgendwo "rumgeistern" muss....

Link to comment
Share on other sites

  • 0

Da "zerschreddert" es die Produktseite :) und auf der Übersichtseite wird als Wert "NAN" ausgegeben. Also scheint das eventuell schon ein Ansatz zu sein, aber irgendwas hält den Shop davon ab, das zu tun, was ich will ;)

Für die Produktseite (wo der andere Code ja funktioniert) war mein Code nicht gedacht, in der product-list.tpl habe ich ihn erfolgreich getestet, du hast ihn originalgetreu eingebaut? NAN heißt Not A Number, also möglicherweise erkennt er eine der Preisvariablen als Zahl an.

 

Natürlich kann man die Variable für die Steuer irgendwo deklarieren, man muß nur wissen wie und wo ... Und wie ich im Browser eine Auflistung der Smarty-Variablen mit Developer Tools erhalte, habe ich noch nicht herausgefunden ...

Link to comment
Share on other sites

  • 0

In der Produc-list.tpl will ich ihn ja eigentlich haben, nur hat der ja da Teile der MWST-Angaben mitgenommen, und ich sehe nicht , wo der Aufruf generiert wird.

 

Will heissen, der nimmt die Angabe, ob mit oder ohne Mwst und eben die Klammer mit dem Prozentzeichen ohne die Prozenzwerte.

Link to comment
Share on other sites

  • 0

Ich habe heute gesucht wie blöd.....

 

Dass die Product-List die Preisangabe liefert, sieht man ja daran, dass die Leere Klammer mit dem Prozentzeichen übernommen wird, lediglich der Wert wird nicht übernommen und ich werde wahnsinnig, weil ich nicht sehe, wieso das nicht funktioniert. Die Variable wird sicher mit rübergenommen, aber der Wert bleibt aussen vor.

 

Der Wert für $product->tax_rate ist quasi leer in der Produktübersicht. Nun bleibt nach einem Sonntag Suche immer noch die spannende Frage, woher nehmen.....

Link to comment
Share on other sites

  • 0

Man muss unterscheiden! In den Listen haben wir nicht alle Daten verfügbar sondern nur ein Subset.

Mögliche Ansätze:

A ) Product::getprice anschauen evtl. kann man da nur die Steuer bekommen

B ) Tax selbst rechnen $product->price minus $product->price_exc

Achtung: Bei Produktevarianten haben wir dann in der Liste das Problem, dass wir die Defaultvariante berücksichtigen müssen

 

Alles ggf. in Verbindung mit der Prüfung, ab Kunde angemeldet ist -> islogged()

Edited by Scully (see edit history)
Link to comment
Share on other sites

  • 0

Hallo Claudio,

 

ich würde den Ansatz aus Post #18 weiterverfolgen.

 

um die gleiche Darstellung  auf den Übersichtsseiten zu bekommen, mußt du eine ähnliche Änderung in die

/themes/DeinTheme/product-list.tpl einfügen.

Die Variable heißt dort etwas anders, die Zeile sollte so aussehen:

 

<span class="aeuc_tax_label">{l s='('} {$product.rate} {l s='%)'}</span>

 

Das Problem, daß du dann noch lösen mußt ist die richtige Reihenfolge hnzubekommen. AEUC packt leider price, tax-label, shipping-label und weight-label in einen hook, allerdings wird ja auch noch ein weiterer hook "after_price" angelegt, du müßtest es also schaffen die ship und weight in diesen hook zu verschieben, dann erscheint deine Steuer-Prozentangabe nach dem tax-label an der richtigen Stelle.

Schau dir mal die

/modules/advancedeucompliance/advancedeucompliance.php

und die

/modules/advancedeucompliance/views/templates/hook/hookDisplayProductPriceBlock.tpl

daraufhin an.

 

Grüsse

Whiley

Link to comment
Share on other sites

  • 0

Hier fehlt aber (zumindest mir) komplett die Logik....

 

Der Mwst-Zusatz wird ja quasi aus der ProductPriceBlock geholt, weil die Änderung, die wir auf der Produktseite haben, zu der gewünschten Ausgabe führte. Soweit so gut, aber gleichzeitig ändert sich damit auch die Ausgabe der Mwst-Angabe in den Produktlisten, nur leider eben ohne den Steuersatz an sich anzuzeigen.

 

Nun wäre der Ansatz in 2 Richtungen denkbar:

Einmal die Ausgabe auf der Listenseite wegzulassen, da also wie bisher anzeigen, oder eben den Steuersatz auch da zu zeigen. Mir wäre in dem Fall sogar die Variante lieber, bei der kein Steuersatz angezeigt wird, der genügt mir vollauf in der Produktseite.

 

Egal, was ich da mache, der scheint hier noch irgendwo eine oder mehrere weitere Datei(en) im Spiel zu haben und dabei geht dann wohl unterwegs die Variable unter.

Link to comment
Share on other sites

  • 0

Whiley.......

 

ich habe jetzt 2 Tage in den ganzen Files rumgesucht und probiert, um das hinzukriegen, und auf die banale Idee, das mit einer if-Bedingung zu lösen, bin ich nicht gekommen...

Typisches Beispeil für viel zu kompliziertes Denken, würde ich sagen.

 

Vielen Dank, jetzt ist es perfekt!

Link to comment
Share on other sites

  • 0

Das ist mir auch aufgefallen.... :) Muss man da an die Zahlenformate ran?

Da gibt es der Möglichkeiten viele.

Eine hervorragende Anleitung generell zu Smarty findest du hier:

https://www.smarty.net/docsv2/de/

 

Ich binde die Stringanteile  oftmals mit assign aneinander, da müßte der Leerraum verschwunden sein (Vorzeichen wird nicht mitgezählt), der neue Code sähe dann so aus:

 

{if {$product->tax_rate} <> 0}

            {assign var="prozent" value="({$product->tax_rate}%)"}

             <span class="aeuc_tax_label">{$prozent}</span>

 {/if}

 

Probiers mal und poste ob das so klappt.

 

Grüsse

Whiley

Link to comment
Share on other sites

  • 0

Okay, kleines bischen zu früh gefreut.... aber ich denke, das kann man lösen....

 

Wo müsste denn die Bedingung sitzen, dass wenn jemand 0% Steuer (also z.B. der Chinese) hätte, erst gar kein "zzgl. Mwst erscheinen würde?

 

So wie ich deine früheren Post verstanden habe soll ja bei keiner MwSt (0%) stehen, das ist wahrscheinlich im Moment nicht der Fall. Um das hinzukriegen müßtest du mit der if-Bedingung nicht den Wert 0 abfragen sondern den leeren String, also nochmal eine Änderung:

 

{if {$product->tax_rate} <> ""}

            {assign var="prozent" value="({$product->tax_rate}%)"}

             <span class="aeuc_tax_label">{$prozent}</span>

 {/if}

Kompillieren nicht vergessen! Und ggf das Ergebnis posten!

 

Grüsse

Whiley

Link to comment
Share on other sites

  • 0

Jetzt ist es perfekt, es wird nun auch bei 0% der Wert angezeigt. Da hätte ich selbst draufkommen können, aber ich dachte da nur in Zahlen, nicht in Inhalten ;)

 

Vielen Dank für deine Mühe, jetzt hat der Shop die beiden letzten Dinge, die micht störten, weg ;)

Link to comment
Share on other sites

  • 0

 

Natürlich führen viele Wege nach Rom, aber warum solche Umstände, um Übersetzungsvariablen für Klammern und %-Zeichen zu generieren, die kein Mensch braucht? :)

 

Logisch, aber der Aufwand dies so einzugeben um das über die Übersetzungen ändern zu können ist doch minimal (10 zeichen mehr zu tippen müßte noch drin sein), und so besteht die Möglichkeit für eine einzelne Sprache z.B ein Sternchen für Erläuterungen anzuhängen oder was auch immer. <_<

 

 

... Und wie ich im Browser eine Auflistung der Smarty-Variablen mit Developer Tools erhalte, habe ich noch nicht herausgefunden ...

 

Über die Smarty Console wie schon weiter oben gepostet.

 

Grüsse

Whiley

Link to comment
Share on other sites

  • 0

Über die Smarty Console wie schon weiter oben gepostet.

Ja, aber wo finde ich die, über Google werde ich da auch nicht schlauer, es soll eine Debug-Konsole mit Smarty mitgeliefert werden und in Prestashop kann man die wohl durch irgendeinen Code - den ich wiederum nicht finde - aktiviert werden können (aber die sieht dann doch auch der Besucher?). Andererseits, ging es nicht um die Developer-Tools im Browser, wobei es da ja auch verschiedene gibt, da finde ich weder in Chrome noch in Firefox noch in Firebug etwas mit Smarty ...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...