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).