Ценовой формат Magento 2 неверен в индийских рупиях?

Я использую Magento 2.2.3, моя валюта по умолчанию - INR, но она отображается в неверном формате.

Но это должно быть 77,65,000,00 ф. Ст., Как мы корректируем ценовой формат в настоящее время, как в долларах США.

Я пробовал много способов, но я не могу решить эту проблему, пожалуйста, помогите решить эту проблему

1 ответ

Вы можете установить формат валюты с помощью следующего кода.

<?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. Путь к файлу: vendor/magento/zendframework1/library/Zend/Locale/Data/en.xml

  2. В строке номер 3353 в разделе currencyFormat и type = "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. deploy и `rm -rf var/cache/*

  2. Готово

Пример: цена, ранее отображавшаяся как 453 453, теперь будет отображаться в индийской манере как 4,53 453.

Другие вопросы по тегам