印度卢比的Magento 2价格格式有误吗?

时间:2018-05-15 07:00:26

标签: magento magento2 magento2.2 magento2.2.3

我使用的是Magento 2.2.3我的默认货币是INR,但它的显示格式错误 enter image description here

enter image description here

但它应该是₹77,65,000.00我们如何纠正目前的价格格式如美元

我尝试了很多方法,但我无法解决此问题,请帮助解决此问题

2 个答案:

答案 0 :(得分:0)

您可以按照以下代码设置货币格式。

<?php
    $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); // Instance of Object Manager
    $priceHelper = $objectManager->create('Magento\Framework\Pricing\Helper\Data'); // Instance of Pricing Helper
    $price =  1000; //Your Price
    $formattedPrice = $priceHelper->currency($price, true, false);
?>

答案 1 :(得分:0)

  1. 文件路径:vendor / magento / zendframework1 / library / Zend / Locale / Data / en.xml

  2. 在行号3353的currencyFormat部分下,并键入=“ standard”,将模式从<pattern>¤#,##0.00</pattern>更改为<pattern>¤ #,##,##0.00</pattern>

  3. 仍然,在PDP页面和购物车页面摘要中,价格格式不会更改,因为奖金格式来自js,其中Magento使用RegExp函数仅针对美国价格格式。 为此,请更改以下文件中的代码。

文件路径:vendor / magento / module-catalog / view / base / web / js / price-utils.js(首先在主题目录中扩展此文件,然后进行重要的更改。)

在此行下方的功能formatPrice下,注释相应功能中的所有行。

i = parseInt(
                amount = Number(Math.round(Math.abs(+amount || 0) + 'e+' + precision) + ('e-' + precision)),
                10
            ) + '';

并在上一行下面添加这组代码。

var x=i;
x=x.toString();
var afterPoint = '';
if(x.indexOf('.') > 0)
   afterPoint = x.substring(x.indexOf('.'),x.length);
x = Math.floor(x);
x=x.toString();
var lastThree = x.substring(x.length-3);
var otherNumbers = x.substring(0,x.length-3);
if(otherNumbers != '')
    lastThree = ',' + lastThree;
var response = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree + afterPoint;
return pattern.replace('%s', response);
  1. 部署和`rm -rf var / cache / *

  2. 完成

示例:以前显示的价格为453,453,现在将以印度方式显示为4,53,453。