Formatieren Sie den Preis mit Javascript in Magento 2

9

In Javascript habe ich eine Zahl berechnet. Was ich als Preis anzeigen möchte.

Meine JS-Datei

define([
    'jquery'
], function ($) {
    "use strict";

    function irreleventCalculations() {
        // black magic here
        return 19.949999;
    }
    var price = irrelevenCalculation();

    jQuery('#myCustomPriceDiv').text(formatedPrice);

    return $;
});

Wie soll ich das in Magento 2 machen?

janw
quelle
Können Sie bitte Ihren Code teilen?
Amit Bera
versuchen Sie es mit einer .toFixed(2)Methode. DhformatedPrice = price.toFixed(2)
Renon Stewart
@RS Ich möchte, dass der Preis gemäß den Einstellungen formatiert wird. Das richtige Symbol und einige Länder haben also mehr als zwei
Wagen

Antworten:

19

Schauen Sie sich Versand_Methode / Preis.js an

define(
    [
        'jquery',
        'Magento_Checkout/js/model/quote',
        'Magento_Catalog/js/price-utils'
    ],
    function ($,quote, priceUtils) {
        "use strict";
            ......
            formatedPrice = getFormattedPrice(price)

            getFormattedPrice: function (price) {
                //todo add format data
                return priceUtils.formatPrice(price, quote.getPriceFormat());
            }
        });
    }
);
Renon Stewart
quelle
Das hat geholfen. Ich werde meinen Code in einer separaten Antwort veröffentlichen. Aber akzeptiere deine.
Janw
2
Dies funktioniert nur auf Warenkorb- und Checkout-Seiten. Auf den anderen Seiten ist window.checkoutConfig undefiniert und kann nicht auf das Anführungszeichenobjekt zugreifen und gibt einen Fehler aus:Uncaught TypeError: Cannot read property 'quoteData' of undefined at quote.js:13
Miroslav Petroff
@MiroslavPetroff Haben Sie eine einfache Lösung dafür gefunden? Außer eigenen Code zu schreiben, um das Preisformat zu erhalten?
Alex
Für diejenigen, die suchen, wie sie das tatsächliche priceFormat-Objekt erhalten (abhängig von der Store-Konfiguration): magento.stackexchange.com/a/151836/77158
nikoskip
5

Basierend auf der Antwort von RS

define([
    'jquery',
    'Magento_Catalog/js/price-utils'
], function ($, priceUtils) {
    "use strict";

    function irreleventCalculations() {
        // black magic here
        return 19.949999;
    }
    var price = irrelevenCalculation();
    price = priceUtils.formatPrice(price);


    jQuery('#myCustomPriceDiv').text(formatedPrice);

    return $;
});
janw
quelle
1
Dies scheint nur für nicht lokalisierte Preisformate zu funktionieren.
Alex