Tôi đang gặp một vấn đề rất lạ sau khi cài đặt Magento 2.0.4. Tôi đã tạo ra một sản phẩm với giá $ 12 và thay đổi ngôn ngữ từ cấu hình Magento trong phần phụ trợ.
Dưới đây là ảnh chụp màn hình cho trang danh sách.
Cũng tìm ảnh chụp màn hình dưới đây cho trang chi tiết.
Bạn có thể nhận thấy sự khác biệt giữa hai ảnh chụp màn hình. Có, trang chi tiết sản phẩm hiển thị giá $ 0,00 trong khi trang danh sách vẫn giữ nguyên với giá tôi đã thêm.
Trang chi tiết sản phẩm tự động cập nhật giá chính xác đến $ 0,00 Sau một hoặc hai giây (Cập nhật Javascript).
Tìm mã dưới đây cho nó
$('[data-price-type="' + priceCode + '"]', this.element).html(priceTemplate({data: price}));
Tôi đã gỡ lỗi thêm trong mã và tìm một mã javascript khác chuyển tham số cho tiện ích hộp giá Magento 2.
<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>
Bây giờ tôi đã kiểm tra phương thức 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
];
Tôi đã gỡ lỗi thông qua mã và đi đến kết luận rằng họ đang sử dụng ICUDATA để hỗ trợ ngôn ngữ.
Tôi bị mắc kẹt với tất cả những điều này, có vẻ như đó là vấn đề của PriceFormat.
Vui lòng đảm bảo rằng vấn đề này chỉ phát sinh đối với các tùy chọn Địa phương nhất định như Persion (Iran).