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

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

введите здесь описание изображения

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

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


person arvind jha    schedule 15.05.2018    source источник
comment
Я голосую за то, чтобы закрыть этот вопрос как не относящийся к теме, потому что Stack Overflow — это связанный с программированием сайт вопросов и ответов. Ваш вопрос не о программировании. Возможно, вам следует опубликовать его на magento.stackexchange.com?   -  person Enigmativity    schedule 15.05.2018


Ответы (2)


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

<?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);
?>
person David Coder    schedule 15.05.2018

  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. развернуть и `rm -rf var/cache/*

  2. Сделанный

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

person satyavir    schedule 23.04.2019
comment
Я предлагаю вам не изменять основные файлы magento, создать свой модуль и добавить файл en.xml. - person SagarPPanchal; 24.04.2019