Saya menghadapi masalah yang sangat aneh setelah pemasangan Magento 2.0.4. Saya telah membuat produk dengan harga $ 12 dan mengubah lokal dari konfigurasi Magento di backend.
Di bawah ini adalah tangkapan layar untuk halaman daftar.
Temukan juga tangkapan layar di bawah ini untuk halaman detail.
Anda mungkin telah memperhatikan perbedaan antara dua tangkapan layar. Ya, halaman detail produk menunjukkan harga $ 0,00 sementara halaman listing tetap dengan harga yang telah saya tambahkan.
Halaman detail produk secara otomatis memperbarui harga yang benar menjadi $ 0,00 Setelah satu atau dua detik (Pembaruan Javascript).
Temukan kode di bawah ini untuk itu
$('[data-price-type="' + priceCode + '"]', this.element).html(priceTemplate({data: price}));
Saya memiliki debug lebih lanjut dalam kode dan menemukan kode javascript lain yang melewati parameter ke widget Magento 2 pricebox.
<script>
require([
'jquery',
'Magento_Catalog/js/price-box'
], function($){
var priceBoxes = $('[data-role=priceBox]');
priceBoxes = priceBoxes.filter(function(index, elem){
return !$(elem).find('.price-from').length;
});
priceBoxes.priceBox({'priceConfig': <?php /* @escapeNotVerified */ echo $block->getJsonConfig() ?>});
});
</script>
Sekarang saya telah memeriksa metode getJsonConfig (),
$product = $this->getProduct();
if (!$this->hasOptions()) {
$config = [
'productId' => $product->getId(),
'priceFormat' => $this->_localeFormat->getPriceFormat()
];
return $this->_jsonEncoder->encode($config);
}
$tierPrices = [];
$tierPricesList = $product->getPriceInfo()->getPrice('tier_price')->getTierPriceList();
foreach ($tierPricesList as $tierPrice) {
$tierPrices[] = $this->priceCurrency->convert($tierPrice['price']->getValue());
}
$config = [
'productId' => $product->getId(),
'priceFormat' => $this->_localeFormat->getPriceFormat(),
'prices' => [
'oldPrice' => [
'amount' => $this->priceCurrency->convert(
$product->getPriceInfo()->getPrice('regular_price')->getAmount()->getValue()
),
'adjustments' => []
],
'basePrice' => [
'amount' => $this->priceCurrency->convert(
$product->getPriceInfo()->getPrice('final_price')->getAmount()->getBaseAmount()
),
'adjustments' => []
],
'finalPrice' => [
'amount' => $this->priceCurrency->convert(
$product->getPriceInfo()->getPrice('final_price')->getAmount()->getValue()
),
'adjustments' => []
]
],
'idSuffix' => '_clone',
'tierPrices' => $tierPrices
];
Saya melakukan banyak debugging melalui kode dan sampai pada kesimpulan bahwa mereka menggunakan ICUDATA untuk dukungan lokal.
Saya terjebak dengan semua ini, Sepertinya ini masalah PriceFormat.
Harap pastikan masalah ini muncul hanya untuk opsi Lokal tertentu seperti Persion (Iran).
sumber
Jawaban:
masalah ini telah diatasi, perbarui Magento2 Anda ke versi Stable terbaru
jika Anda telah menginstal dari GIT & Komposer ikuti langkah-langkah ini:
bin/magento setup:upgrade
)lain jika Anda telah menginstal menggunakan unduhan folder zip daripada unduh terbaru dari situs web magento dan menimpa semua file menggunakan zip baru dari yang Anda butuhkan untuk menghapus cache dan menjalankan
sumber
Tingkatkan magento dengan mengikuti perintah.
sumber
Silakan coba perbarui kode di bawah ini:
Path -
lib/internal/Magento/Framework/Locale/Format.php
Semoga ini berhasil untuk Anda.
sumber