Preis mit Punkt statt Komma

Hallo, gibt es irgendwo eine globale Einstellung bei der man beim Preis einen Punkt (Schweiz) statt einem Komma (Deutschland) setzen kann?

Danke und Gruss

Früher wurde das ja angeblich über das Zend Framework mit der Lokalisierung des Shops ermöglicht. Diese Problemlösung gibts aber in SW6 nicht oder? Kann jemand einen Tip geben wie ich Currency manipulieren kann? Dankeschön.

Weiß ich aus dem Kopf jetzt nicht, wie man das in Shopware 6 gelöst hat.

Schau ich mir Montag aber mal an.

1 „Gefällt mir“

Hallo [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍ , konntest du schon was herausfinden?

Also wir benutzen in SW6 die php-intl Extension für die Formatierungen.

Es gibt da eine Twig Extension: 

Und die nutzt eine Core-Funktion: 

Da wird unter der Haube diese PHP Funktion genutzt: PHP: NumberFormatter::formatCurrency - Manual

Und die nutzt PHP-INTL: PHP: intl - Manual

1 „Gefällt mir“

uff… äh das heisst jetzt selbst programmieren?

Ja das würde mich nun auch wundern.
Hast du in der Zwischenzeit eine Lösung für das Punkt-statt-Komma-Problem?
Bzw. hast du es wie oben beschrieben gelöst?

Habs nun gefunden unter Einstellungen → Sprachen :slight_smile:

Hi @Fanello73 .
Ich habe SW6 dann nicht mehr genommen und nutze SW5. Dort habe ich im Template die Kommas gegen Punkte getauscht.

Könntest Du das genauer beschreiben? Wo befindet sich denn da eine Einstellmöglichkeit?

Es gibt keine Einstellmöglichkeit. Wenn du das im Core ändern möchtest, dann musst du die Klasse per Plugin überschreiben (falls es Shopware zulässt) oder die Datei direkt editieren. Dort kannst du, wie oben erwähnt, die PHP-Funktion formatCurrency so anpassen, dass es ein . anstatt , ausgibt.

Falls die Funktion nur in twig verwendet wird, wird es vermutlich funktionieren. Falls auch im Admin-Interface, etc., dann könnte es durchaus Probleme geben.

1 „Gefällt mir“

Hallo Max,
okay, dann ist das so.
Danke Dir für die schnelle Aufklärung!

Ich konnte das Problem lösen @Holley und ist sicher auch für andere Shop-Betreiber in der Schweiz hilfreich:

Gemäss Code wird die Währung anhand der Sprache formatiert.
Wenn du Deutsch als Sprache für den Shop aktiv hast, kannst du unter „Einstellungen“ > „Sprache“ die Sprache „Deutsch“ suchen und da den ISO Code von „de-DE“ auf „de-CH“ ändern, dann wird ein Punkt anstatt Komma als Dezimalzeichen verwendet.

Bei mir hat es jedenfalls so funktioniert (SW 6.5.x).

1 „Gefällt mir“

Hat aber den Nachteil, dass aus 10,00 CHF → CHF 10.00 wird.

Lässt es sich ändern, dass die Währung nach der Zahl ausgegeben wird?

Das ist auch völlig korrekt so. In der Schweiz wird CHF dem Betrag vorangestellt.

„In der Schweiz ist das Dezimaltrennzeichen in einer Währungsangabe ein Punkt, das Währungskürzel wird vorangesetzt, dies nicht nur für den Schweizer Franken, sondern generell (z. B. Fr. 12.35 oder CHF 12.35)“ (Quelle: Schweizer Franken – Wikipedia)

Übrigens scheint sogar in der EU die Verwendung grundsätzlich nicht einheitlich. Z.B. in Malta wird auch EUR vor dem Betrag geschrieben (siehe Amt für Veröffentlichungen – Interinstitutionelle Regeln für Veröffentlichungen – 7.3.3 Schreibregeln für Währungsbezeichnungen), was php intl und somit SW auch zu beachten scheint.

Du müsstest meiner Meinung nach sehr viele Templates anpassen, wenn du dies so nicht möchtest. Oder du findest ein Land, welches Punkt als Dezimalzeichen verwendet und die Währung nach dem Betrag hat und wählst den Sprachkürzel dieses Landes aus. Aber das ist dann etwas hacky und ich persönlich weiss nicht, wo diese Einstellung intern sonst noch Anwendung findet, nutze SW noch nicht so lange :wink:

1 „Gefällt mir“