ฉันกำลังเผชิญกับปัญหาที่แปลกมากหลังจากการติดตั้ง Magento 2.0.4 ฉันได้สร้างผลิตภัณฑ์ที่มีราคา $ 12 และเปลี่ยนสถานที่จากการตั้งค่าวีโอไอพีในแบ็กเอนด์
ด้านล่างเป็นภาพหน้าจอสำหรับหน้ารายการ
นอกจากนี้ยังพบภาพหน้าจอด้านล่างสำหรับหน้ารายละเอียด
คุณอาจสังเกตเห็นความแตกต่างระหว่างภาพหน้าจอสองภาพ ใช่หน้ารายละเอียดผลิตภัณฑ์จะแสดงราคา $ 0.00 ในขณะที่หน้ารายการมีการรักษาราคาที่ฉันเพิ่มไว้
หน้ารายละเอียดผลิตภัณฑ์จะอัปเดตราคาที่ถูกต้องเป็น $ 0 โดยอัตโนมัติหลังจากหนึ่งหรือสองวินาที (การอัปเดต Javascript)
ค้นหารหัสด้านล่างสำหรับมัน
$('[data-price-type="' + priceCode + '"]', this.element).html(priceTemplate({data: price}));
ฉันมีการแก้ปัญหาเพิ่มเติมในรหัสและหารหัสจาวาสคริปต์อื่นที่ส่งผ่านพารามิเตอร์ไปยังวิดเจ็ตกล่องราคา 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>
ตอนนี้ฉันตรวจสอบเมธอด 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
];
ฉันทำการดีบักจำนวนมากผ่านโค้ดและได้ข้อสรุปว่าพวกเขากำลังใช้ ICUDATA เพื่อสนับสนุนสถานที่เกิดเหตุ
ฉันติดอยู่กับทุกสิ่งนี้ดูเหมือนว่าเป็นปัญหาของ PriceFormat
โปรดตรวจสอบให้แน่ใจว่าปัญหานี้เกิดขึ้นเฉพาะกับตัวเลือกสถานที่บางแห่งเช่น Persion (อิหร่าน)